10b57cec5SDimitry Andric //===-- CodeGen.cpp -------------------------------------------------------===// 20b57cec5SDimitry Andric // 30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60b57cec5SDimitry Andric // 70b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 80b57cec5SDimitry Andric // 90b57cec5SDimitry Andric // This file implements the common initialization routines for the 100b57cec5SDimitry Andric // CodeGen library. 110b57cec5SDimitry Andric // 120b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 130b57cec5SDimitry Andric 140b57cec5SDimitry Andric #include "llvm/InitializePasses.h" 150b57cec5SDimitry Andric #include "llvm/PassRegistry.h" 160b57cec5SDimitry Andric 170b57cec5SDimitry Andric using namespace llvm; 180b57cec5SDimitry Andric 190b57cec5SDimitry Andric /// initializeCodeGen - Initialize all passes linked into the CodeGen library. initializeCodeGen(PassRegistry & Registry)200b57cec5SDimitry Andricvoid llvm::initializeCodeGen(PassRegistry &Registry) { 21bdd1243dSDimitry Andric initializeAssignmentTrackingAnalysisPass(Registry); 220b57cec5SDimitry Andric initializeAtomicExpandPass(Registry); 23c9157d92SDimitry Andric initializeBasicBlockPathCloningPass(Registry); 24e8d8bef9SDimitry Andric initializeBasicBlockSectionsPass(Registry); 250b57cec5SDimitry Andric initializeBranchFolderPassPass(Registry); 260b57cec5SDimitry Andric initializeBranchRelaxationPass(Registry); 27fe013be4SDimitry Andric initializeBreakFalseDepsPass(Registry); 28fe013be4SDimitry Andric initializeCallBrPreparePass(Registry); 29480093f4SDimitry Andric initializeCFGuardLongjmpPass(Registry); 3081ad6265SDimitry Andric initializeCFIFixupPass(Registry); 310b57cec5SDimitry Andric initializeCFIInstrInserterPass(Registry); 32e8d8bef9SDimitry Andric initializeCheckDebugMachineModulePass(Registry); 33*cdc20ff6SDimitry Andric initializeCodeGenPrepareLegacyPassPass(Registry); 340b57cec5SDimitry Andric initializeDeadMachineInstructionElimPass(Registry); 355ffd83dbSDimitry Andric initializeDebugifyMachineModulePass(Registry); 360b57cec5SDimitry Andric initializeDetectDeadLanesPass(Registry); 37e8d8bef9SDimitry Andric initializeDwarfEHPrepareLegacyPassPass(Registry); 380b57cec5SDimitry Andric initializeEarlyIfConverterPass(Registry); 398bcb0991SDimitry Andric initializeEarlyIfPredicatorPass(Registry); 400b57cec5SDimitry Andric initializeEarlyMachineLICMPass(Registry); 410b57cec5SDimitry Andric initializeEarlyTailDuplicatePass(Registry); 42bdd1243dSDimitry Andric initializeExpandLargeDivRemLegacyPassPass(Registry); 43bdd1243dSDimitry Andric initializeExpandLargeFpConvertLegacyPassPass(Registry); 44c9157d92SDimitry Andric initializeExpandMemCmpLegacyPassPass(Registry); 450b57cec5SDimitry Andric initializeExpandPostRAPass(Registry); 460b57cec5SDimitry Andric initializeFEntryInserterPass(Registry); 470b57cec5SDimitry Andric initializeFinalizeISelPass(Registry); 480b57cec5SDimitry Andric initializeFinalizeMachineBundlesPass(Registry); 495ffd83dbSDimitry Andric initializeFixupStatepointCallerSavedPass(Registry); 500b57cec5SDimitry Andric initializeFuncletLayoutPass(Registry); 510b57cec5SDimitry Andric initializeGCMachineCodeAnalysisPass(Registry); 520b57cec5SDimitry Andric initializeGCModuleInfoPass(Registry); 53fe013be4SDimitry Andric initializeHardwareLoopsLegacyPass(Registry); 540b57cec5SDimitry Andric initializeIfConverterPass(Registry); 550b57cec5SDimitry Andric initializeImplicitNullChecksPass(Registry); 56c9157d92SDimitry Andric initializeIndirectBrExpandLegacyPassPass(Registry); 570b57cec5SDimitry Andric initializeInterleavedLoadCombinePass(Registry); 580b57cec5SDimitry Andric initializeInterleavedAccessPass(Registry); 5981ad6265SDimitry Andric initializeJMCInstrumenterPass(Registry); 600b57cec5SDimitry Andric initializeLiveDebugValuesPass(Registry); 610b57cec5SDimitry Andric initializeLiveDebugVariablesPass(Registry); 620b57cec5SDimitry Andric initializeLiveIntervalsPass(Registry); 630b57cec5SDimitry Andric initializeLiveRangeShrinkPass(Registry); 640b57cec5SDimitry Andric initializeLiveStacksPass(Registry); 650b57cec5SDimitry Andric initializeLiveVariablesPass(Registry); 660b57cec5SDimitry Andric initializeLocalStackSlotPassPass(Registry); 6781ad6265SDimitry Andric initializeLowerGlobalDtorsLegacyPassPass(Registry); 680b57cec5SDimitry Andric initializeLowerIntrinsicsPass(Registry); 694824e7fdSDimitry Andric initializeMIRAddFSDiscriminatorsPass(Registry); 700b57cec5SDimitry Andric initializeMIRCanonicalizerPass(Registry); 718bcb0991SDimitry Andric initializeMIRNamerPass(Registry); 724824e7fdSDimitry Andric initializeMIRProfileLoaderPassPass(Registry); 730b57cec5SDimitry Andric initializeMachineBlockFrequencyInfoPass(Registry); 740b57cec5SDimitry Andric initializeMachineBlockPlacementPass(Registry); 750b57cec5SDimitry Andric initializeMachineBlockPlacementStatsPass(Registry); 76bdd1243dSDimitry Andric initializeMachineCFGPrinterPass(Registry); 770b57cec5SDimitry Andric initializeMachineCSEPass(Registry); 780b57cec5SDimitry Andric initializeMachineCombinerPass(Registry); 790b57cec5SDimitry Andric initializeMachineCopyPropagationPass(Registry); 800eae32dcSDimitry Andric initializeMachineCycleInfoPrinterPassPass(Registry); 810eae32dcSDimitry Andric initializeMachineCycleInfoWrapperPassPass(Registry); 820b57cec5SDimitry Andric initializeMachineDominatorTreePass(Registry); 830b57cec5SDimitry Andric initializeMachineFunctionPrinterPassPass(Registry); 84bdd1243dSDimitry Andric initializeMachineLateInstrsCleanupPass(Registry); 850b57cec5SDimitry Andric initializeMachineLICMPass(Registry); 860b57cec5SDimitry Andric initializeMachineLoopInfoPass(Registry); 878bcb0991SDimitry Andric initializeMachineModuleInfoWrapperPassPass(Registry); 880b57cec5SDimitry Andric initializeMachineOptimizationRemarkEmitterPassPass(Registry); 890b57cec5SDimitry Andric initializeMachineOutlinerPass(Registry); 900b57cec5SDimitry Andric initializeMachinePipelinerPass(Registry); 91bdd1243dSDimitry Andric initializeMachineSanitizerBinaryMetadataPass(Registry); 928bcb0991SDimitry Andric initializeModuloScheduleTestPass(Registry); 930b57cec5SDimitry Andric initializeMachinePostDominatorTreePass(Registry); 940b57cec5SDimitry Andric initializeMachineRegionInfoPassPass(Registry); 950b57cec5SDimitry Andric initializeMachineSchedulerPass(Registry); 960b57cec5SDimitry Andric initializeMachineSinkingPass(Registry); 97bdd1243dSDimitry Andric initializeMachineUniformityAnalysisPassPass(Registry); 98bdd1243dSDimitry Andric initializeMachineUniformityInfoPrinterPassPass(Registry); 990b57cec5SDimitry Andric initializeMachineVerifierPassPass(Registry); 100bdd1243dSDimitry Andric initializeObjCARCContractLegacyPassPass(Registry); 1010b57cec5SDimitry Andric initializeOptimizePHIsPass(Registry); 1020b57cec5SDimitry Andric initializePEIPass(Registry); 1030b57cec5SDimitry Andric initializePHIEliminationPass(Registry); 1040b57cec5SDimitry Andric initializePatchableFunctionPass(Registry); 1050b57cec5SDimitry Andric initializePeepholeOptimizerPass(Registry); 1060b57cec5SDimitry Andric initializePostMachineSchedulerPass(Registry); 1070b57cec5SDimitry Andric initializePostRAHazardRecognizerPass(Registry); 1080b57cec5SDimitry Andric initializePostRAMachineSinkingPass(Registry); 1090b57cec5SDimitry Andric initializePostRASchedulerPass(Registry); 1100b57cec5SDimitry Andric initializePreISelIntrinsicLoweringLegacyPassPass(Registry); 1110b57cec5SDimitry Andric initializeProcessImplicitDefsPass(Registry); 1120b57cec5SDimitry Andric initializeRABasicPass(Registry); 1130b57cec5SDimitry Andric initializeRAGreedyPass(Registry); 1140b57cec5SDimitry Andric initializeRegAllocFastPass(Registry); 1150b57cec5SDimitry Andric initializeRegUsageInfoCollectorPass(Registry); 1160b57cec5SDimitry Andric initializeRegUsageInfoPropagationPass(Registry); 1170b57cec5SDimitry Andric initializeRegisterCoalescerPass(Registry); 118fe6060f1SDimitry Andric initializeRemoveRedundantDebugValuesPass(Registry); 1190b57cec5SDimitry Andric initializeRenameIndependentSubregsPass(Registry); 1200b57cec5SDimitry Andric initializeSafeStackLegacyPassPass(Registry); 12181ad6265SDimitry Andric initializeSelectOptimizePass(Registry); 122fe6060f1SDimitry Andric initializeShadowStackGCLoweringPass(Registry); 1230b57cec5SDimitry Andric initializeShrinkWrapPass(Registry); 1245ffd83dbSDimitry Andric initializeSjLjEHPreparePass(Registry); 1250b57cec5SDimitry Andric initializeSlotIndexesPass(Registry); 1260b57cec5SDimitry Andric initializeStackColoringPass(Registry); 127bdd1243dSDimitry Andric initializeStackFrameLayoutAnalysisPassPass(Registry); 1280b57cec5SDimitry Andric initializeStackMapLivenessPass(Registry); 1290b57cec5SDimitry Andric initializeStackProtectorPass(Registry); 1300b57cec5SDimitry Andric initializeStackSlotColoringPass(Registry); 1315ffd83dbSDimitry Andric initializeStripDebugMachineModulePass(Registry); 1320b57cec5SDimitry Andric initializeTailDuplicatePass(Registry); 1330b57cec5SDimitry Andric initializeTargetPassConfigPass(Registry); 1340b57cec5SDimitry Andric initializeTwoAddressInstructionPassPass(Registry); 135bdd1243dSDimitry Andric initializeTypePromotionLegacyPass(Registry); 1360b57cec5SDimitry Andric initializeUnpackMachineBundlesPass(Registry); 1370b57cec5SDimitry Andric initializeUnreachableBlockElimLegacyPassPass(Registry); 1380b57cec5SDimitry Andric initializeUnreachableMachineBlockElimPass(Registry); 1390b57cec5SDimitry Andric initializeVirtRegMapPass(Registry); 1400b57cec5SDimitry Andric initializeVirtRegRewriterPass(Registry); 1410b57cec5SDimitry Andric initializeWasmEHPreparePass(Registry); 1420b57cec5SDimitry Andric initializeWinEHPreparePass(Registry); 1430b57cec5SDimitry Andric initializeXRayInstrumentationPass(Registry); 1440b57cec5SDimitry Andric } 145