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. 200b57cec5SDimitry Andric void llvm::initializeCodeGen(PassRegistry &Registry) { 21bdd1243dSDimitry Andric initializeAssignmentTrackingAnalysisPass(Registry); 22*0fca6ea1SDimitry Andric initializeAtomicExpandLegacyPass(Registry); 235f757f3fSDimitry Andric initializeBasicBlockPathCloningPass(Registry); 24e8d8bef9SDimitry Andric initializeBasicBlockSectionsPass(Registry); 250b57cec5SDimitry Andric initializeBranchFolderPassPass(Registry); 260b57cec5SDimitry Andric initializeBranchRelaxationPass(Registry); 2706c3fb27SDimitry Andric initializeBreakFalseDepsPass(Registry); 2806c3fb27SDimitry Andric initializeCallBrPreparePass(Registry); 29480093f4SDimitry Andric initializeCFGuardLongjmpPass(Registry); 3081ad6265SDimitry Andric initializeCFIFixupPass(Registry); 310b57cec5SDimitry Andric initializeCFIInstrInserterPass(Registry); 32e8d8bef9SDimitry Andric initializeCheckDebugMachineModulePass(Registry); 331db9f3b2SDimitry 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); 445f757f3fSDimitry 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); 5306c3fb27SDimitry Andric initializeHardwareLoopsLegacyPass(Registry); 540b57cec5SDimitry Andric initializeIfConverterPass(Registry); 550b57cec5SDimitry Andric initializeImplicitNullChecksPass(Registry); 565f757f3fSDimitry Andric initializeIndirectBrExpandLegacyPassPass(Registry); 57*0fca6ea1SDimitry Andric initializeInitUndefPass(Registry); 580b57cec5SDimitry Andric initializeInterleavedLoadCombinePass(Registry); 590b57cec5SDimitry Andric initializeInterleavedAccessPass(Registry); 6081ad6265SDimitry Andric initializeJMCInstrumenterPass(Registry); 610b57cec5SDimitry Andric initializeLiveDebugValuesPass(Registry); 620b57cec5SDimitry Andric initializeLiveDebugVariablesPass(Registry); 63*0fca6ea1SDimitry Andric initializeLiveIntervalsWrapperPassPass(Registry); 640b57cec5SDimitry Andric initializeLiveRangeShrinkPass(Registry); 650b57cec5SDimitry Andric initializeLiveStacksPass(Registry); 66*0fca6ea1SDimitry Andric initializeLiveVariablesWrapperPassPass(Registry); 670b57cec5SDimitry Andric initializeLocalStackSlotPassPass(Registry); 6881ad6265SDimitry Andric initializeLowerGlobalDtorsLegacyPassPass(Registry); 690b57cec5SDimitry Andric initializeLowerIntrinsicsPass(Registry); 704824e7fdSDimitry Andric initializeMIRAddFSDiscriminatorsPass(Registry); 710b57cec5SDimitry Andric initializeMIRCanonicalizerPass(Registry); 728bcb0991SDimitry Andric initializeMIRNamerPass(Registry); 734824e7fdSDimitry Andric initializeMIRProfileLoaderPassPass(Registry); 74*0fca6ea1SDimitry Andric initializeMachineBlockFrequencyInfoWrapperPassPass(Registry); 750b57cec5SDimitry Andric initializeMachineBlockPlacementPass(Registry); 760b57cec5SDimitry Andric initializeMachineBlockPlacementStatsPass(Registry); 77bdd1243dSDimitry Andric initializeMachineCFGPrinterPass(Registry); 780b57cec5SDimitry Andric initializeMachineCSEPass(Registry); 790b57cec5SDimitry Andric initializeMachineCombinerPass(Registry); 800b57cec5SDimitry Andric initializeMachineCopyPropagationPass(Registry); 810eae32dcSDimitry Andric initializeMachineCycleInfoPrinterPassPass(Registry); 820eae32dcSDimitry Andric initializeMachineCycleInfoWrapperPassPass(Registry); 83*0fca6ea1SDimitry Andric initializeMachineDominatorTreeWrapperPassPass(Registry); 840b57cec5SDimitry Andric initializeMachineFunctionPrinterPassPass(Registry); 85bdd1243dSDimitry Andric initializeMachineLateInstrsCleanupPass(Registry); 860b57cec5SDimitry Andric initializeMachineLICMPass(Registry); 87*0fca6ea1SDimitry Andric initializeMachineLoopInfoWrapperPassPass(Registry); 888bcb0991SDimitry Andric initializeMachineModuleInfoWrapperPassPass(Registry); 890b57cec5SDimitry Andric initializeMachineOptimizationRemarkEmitterPassPass(Registry); 900b57cec5SDimitry Andric initializeMachineOutlinerPass(Registry); 910b57cec5SDimitry Andric initializeMachinePipelinerPass(Registry); 92bdd1243dSDimitry Andric initializeMachineSanitizerBinaryMetadataPass(Registry); 938bcb0991SDimitry Andric initializeModuloScheduleTestPass(Registry); 94*0fca6ea1SDimitry Andric initializeMachinePostDominatorTreeWrapperPassPass(Registry); 950b57cec5SDimitry Andric initializeMachineRegionInfoPassPass(Registry); 960b57cec5SDimitry Andric initializeMachineSchedulerPass(Registry); 970b57cec5SDimitry Andric initializeMachineSinkingPass(Registry); 98bdd1243dSDimitry Andric initializeMachineUniformityAnalysisPassPass(Registry); 99bdd1243dSDimitry Andric initializeMachineUniformityInfoPrinterPassPass(Registry); 100*0fca6ea1SDimitry Andric initializeMachineVerifierLegacyPassPass(Registry); 101bdd1243dSDimitry Andric initializeObjCARCContractLegacyPassPass(Registry); 1020b57cec5SDimitry Andric initializeOptimizePHIsPass(Registry); 1030b57cec5SDimitry Andric initializePEIPass(Registry); 1040b57cec5SDimitry Andric initializePHIEliminationPass(Registry); 1050b57cec5SDimitry Andric initializePatchableFunctionPass(Registry); 1060b57cec5SDimitry Andric initializePeepholeOptimizerPass(Registry); 1070b57cec5SDimitry Andric initializePostMachineSchedulerPass(Registry); 1080b57cec5SDimitry Andric initializePostRAHazardRecognizerPass(Registry); 1090b57cec5SDimitry Andric initializePostRAMachineSinkingPass(Registry); 1100b57cec5SDimitry Andric initializePostRASchedulerPass(Registry); 1110b57cec5SDimitry Andric initializePreISelIntrinsicLoweringLegacyPassPass(Registry); 1120b57cec5SDimitry Andric initializeProcessImplicitDefsPass(Registry); 1130b57cec5SDimitry Andric initializeRABasicPass(Registry); 1140b57cec5SDimitry Andric initializeRAGreedyPass(Registry); 1150b57cec5SDimitry Andric initializeRegAllocFastPass(Registry); 1160b57cec5SDimitry Andric initializeRegUsageInfoCollectorPass(Registry); 1170b57cec5SDimitry Andric initializeRegUsageInfoPropagationPass(Registry); 1180b57cec5SDimitry Andric initializeRegisterCoalescerPass(Registry); 119fe6060f1SDimitry Andric initializeRemoveRedundantDebugValuesPass(Registry); 1200b57cec5SDimitry Andric initializeRenameIndependentSubregsPass(Registry); 1210b57cec5SDimitry Andric initializeSafeStackLegacyPassPass(Registry); 12281ad6265SDimitry Andric initializeSelectOptimizePass(Registry); 123fe6060f1SDimitry Andric initializeShadowStackGCLoweringPass(Registry); 1240b57cec5SDimitry Andric initializeShrinkWrapPass(Registry); 1255ffd83dbSDimitry Andric initializeSjLjEHPreparePass(Registry); 126*0fca6ea1SDimitry Andric initializeSlotIndexesWrapperPassPass(Registry); 1270b57cec5SDimitry Andric initializeStackColoringPass(Registry); 128bdd1243dSDimitry Andric initializeStackFrameLayoutAnalysisPassPass(Registry); 1290b57cec5SDimitry Andric initializeStackMapLivenessPass(Registry); 1300b57cec5SDimitry Andric initializeStackProtectorPass(Registry); 1310b57cec5SDimitry Andric initializeStackSlotColoringPass(Registry); 1325ffd83dbSDimitry Andric initializeStripDebugMachineModulePass(Registry); 1330b57cec5SDimitry Andric initializeTailDuplicatePass(Registry); 1340b57cec5SDimitry Andric initializeTargetPassConfigPass(Registry); 135*0fca6ea1SDimitry Andric initializeTwoAddressInstructionLegacyPassPass(Registry); 136bdd1243dSDimitry Andric initializeTypePromotionLegacyPass(Registry); 1370b57cec5SDimitry Andric initializeUnpackMachineBundlesPass(Registry); 1380b57cec5SDimitry Andric initializeUnreachableBlockElimLegacyPassPass(Registry); 1390b57cec5SDimitry Andric initializeUnreachableMachineBlockElimPass(Registry); 1400b57cec5SDimitry Andric initializeVirtRegMapPass(Registry); 1410b57cec5SDimitry Andric initializeVirtRegRewriterPass(Registry); 1420b57cec5SDimitry Andric initializeWasmEHPreparePass(Registry); 1430b57cec5SDimitry Andric initializeWinEHPreparePass(Registry); 1440b57cec5SDimitry Andric initializeXRayInstrumentationPass(Registry); 1450b57cec5SDimitry Andric } 146