180fc0762SOwen Anderson //===-- CodeGen.cpp -------------------------------------------------------===// 280fc0762SOwen Anderson // 380fc0762SOwen Anderson // The LLVM Compiler Infrastructure 480fc0762SOwen Anderson // 580fc0762SOwen Anderson // This file is distributed under the University of Illinois Open Source 680fc0762SOwen Anderson // License. See LICENSE.TXT for details. 780fc0762SOwen Anderson // 880fc0762SOwen Anderson //===----------------------------------------------------------------------===// 980fc0762SOwen Anderson // 1080fc0762SOwen Anderson // This file implements the common initialization routines for the 1180fc0762SOwen Anderson // CodeGen library. 1280fc0762SOwen Anderson // 1380fc0762SOwen Anderson //===----------------------------------------------------------------------===// 1480fc0762SOwen Anderson 1580fc0762SOwen Anderson #include "llvm/InitializePasses.h" 1680fc0762SOwen Anderson #include "llvm-c/Initialization.h" 178a8cd2baSChandler Carruth #include "llvm/PassRegistry.h" 1880fc0762SOwen Anderson 1980fc0762SOwen Anderson using namespace llvm; 2080fc0762SOwen Anderson 2180fc0762SOwen Anderson /// initializeCodeGen - Initialize all passes linked into the CodeGen library. 2280fc0762SOwen Anderson void llvm::initializeCodeGen(PassRegistry &Registry) { 2359c23cd9SRobin Morisset initializeAtomicExpandPass(Registry); 24b223cfabSNemanja Ivanovic initializeBranchCoalescingPass(Registry); 2558648e4eSAndrew Trick initializeBranchFolderPassPass(Registry); 2636919a4fSMatt Arsenault initializeBranchRelaxationPass(Registry); 27a349084aSQuentin Colombet initializeCodeGenPreparePass(Registry); 2840d7f5c2SHal Finkel initializeCountingFunctionInserterPass(Registry); 2980fc0762SOwen Anderson initializeDeadMachineInstructionElimPass(Registry); 30fbe85ae1SMatthias Braun initializeDetectDeadLanesPass(Registry); 31be0a0506SReid Kleckner initializeDwarfEHPreparePass(Registry); 32f8a63a15SJakob Stoklund Olesen initializeEarlyIfConverterPass(Registry); 33301ed0c3SChandler Carruth initializeExpandISelPseudosPass(Registry); 34be0a0506SReid Kleckner initializeExpandPostRAPass(Registry); 35a7c041d1SNirav Dave initializeFEntryInserterPass(Registry); 366e670529SMatthias Braun initializeFinalizeMachineBundlesPass(Registry); 3797890230SDavid Majnemer initializeFuncletLayoutPass(Registry); 381fa5bcbeSAndrew Trick initializeGCMachineCodeAnalysisPass(Registry); 3980fc0762SOwen Anderson initializeGCModuleInfoPass(Registry); 4080fc0762SOwen Anderson initializeIfConverterPass(Registry); 416e670529SMatthias Braun initializeImplicitNullChecksPass(Registry); 42330a1255SMatthew Simpson initializeInterleavedAccessPass(Registry); 436e670529SMatthias Braun initializeLiveDebugValuesPass(Registry); 44d4900a64SJakob Stoklund Olesen initializeLiveDebugVariablesPass(Registry); 4580fc0762SOwen Anderson initializeLiveIntervalsPass(Registry); 466b737ddcSDehao Chen initializeLiveRangeShrinkPass(Registry); 4780fc0762SOwen Anderson initializeLiveStacksPass(Registry); 4880fc0762SOwen Anderson initializeLiveVariablesPass(Registry); 491fa5bcbeSAndrew Trick initializeLocalStackSlotPassPass(Registry); 50be0a0506SReid Kleckner initializeLowerIntrinsicsPass(Registry); 51875ebd5fSJakub Staszak initializeMachineBlockFrequencyInfoPass(Registry); 5210281425SChandler Carruth initializeMachineBlockPlacementPass(Registry); 53ae4e800cSChandler Carruth initializeMachineBlockPlacementStatsPass(Registry); 54301ed0c3SChandler Carruth initializeMachineCSEPass(Registry); 55be0a0506SReid Kleckner initializeMachineCombinerPass(Registry); 56be0a0506SReid Kleckner initializeMachineCopyPropagationPass(Registry); 5780fc0762SOwen Anderson initializeMachineDominatorTreePass(Registry); 58be0a0506SReid Kleckner initializeMachineFunctionPrinterPassPass(Registry); 5980fc0762SOwen Anderson initializeMachineLICMPass(Registry); 6080fc0762SOwen Anderson initializeMachineLoopInfoPass(Registry); 6180fc0762SOwen Anderson initializeMachineModuleInfoPass(Registry); 62259a0cf3SJustin Bogner initializeMachineOptimizationRemarkEmitterPassPass(Registry); 63596f483aSJessica Paquette initializeMachineOutlinerPass(Registry); 64254f889dSBrendon Cahoon initializeMachinePipelinerPass(Registry); 65be0a0506SReid Kleckner initializeMachinePostDominatorTreePass(Registry); 6643130592SMatthias Braun initializeMachineRegionInfoPassPass(Registry); 671fa5bcbeSAndrew Trick initializeMachineSchedulerPass(Registry); 6880fc0762SOwen Anderson initializeMachineSinkingPass(Registry); 6980fc0762SOwen Anderson initializeMachineVerifierPassPass(Registry); 7080fc0762SOwen Anderson initializeOptimizePHIsPass(Registry); 71be0a0506SReid Kleckner initializePEIPass(Registry); 7280fc0762SOwen Anderson initializePHIEliminationPass(Registry); 736e670529SMatthias Braun initializePatchableFunctionPass(Registry); 7480fc0762SOwen Anderson initializePeepholeOptimizerPass(Registry); 7517080b9bSAndrew Trick initializePostMachineSchedulerPass(Registry); 76ee34680bSTom Stellard initializePostRAHazardRecognizerPass(Registry); 771fa5bcbeSAndrew Trick initializePostRASchedulerPass(Registry); 7882d5da5aSMichael Kuperstein initializePreISelIntrinsicLoweringLegacyPassPass(Registry); 7980fc0762SOwen Anderson initializeProcessImplicitDefsPass(Registry); 80*ebbaed6dSQuentin Colombet initializeRABasicPass(Registry); 8111e60ff7STom Stellard initializeRAGreedyPass(Registry); 82676c405aSRafael Espindola initializeRegisterCoalescerPass(Registry); 83f9acacaaSMatthias Braun initializeRenameIndependentSubregsPass(Registry); 8400d68222SAhmed Bougacha initializeSafeStackLegacyPassPass(Registry); 85c5490e5aSAyman Musa initializeScalarizeMaskedMemIntrinPass(Registry); 8661b305edSQuentin Colombet initializeShrinkWrapPass(Registry); 8780fc0762SOwen Anderson initializeSlotIndexesPass(Registry); 88301ed0c3SChandler Carruth initializeStackColoringPass(Registry); 89be0a0506SReid Kleckner initializeStackMapLivenessPass(Registry); 90be0a0506SReid Kleckner initializeStackProtectorPass(Registry); 9180fc0762SOwen Anderson initializeStackSlotColoringPass(Registry); 921fa5bcbeSAndrew Trick initializeTailDuplicatePassPass(Registry); 93b7551336SAndrew Trick initializeTargetPassConfigPass(Registry); 9480fc0762SOwen Anderson initializeTwoAddressInstructionPassPass(Registry); 951fa5bcbeSAndrew Trick initializeUnpackMachineBundlesPass(Registry); 9690d195a5SWei Mi initializeUnreachableBlockElimLegacyPassPass(Registry); 9780fc0762SOwen Anderson initializeUnreachableMachineBlockElimPass(Registry); 9880fc0762SOwen Anderson initializeVirtRegMapPass(Registry); 991224312fSJakob Stoklund Olesen initializeVirtRegRewriterPass(Registry); 100be0a0506SReid Kleckner initializeWinEHPreparePass(Registry); 1016e670529SMatthias Braun initializeXRayInstrumentationPass(Registry); 10280fc0762SOwen Anderson } 10380fc0762SOwen Anderson 10480fc0762SOwen Anderson void LLVMInitializeCodeGen(LLVMPassRegistryRef R) { 10580fc0762SOwen Anderson initializeCodeGen(*unwrap(R)); 10680fc0762SOwen Anderson } 107