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" 1780fc0762SOwen Anderson 1880fc0762SOwen Anderson using namespace llvm; 1980fc0762SOwen Anderson 2080fc0762SOwen Anderson /// initializeCodeGen - Initialize all passes linked into the CodeGen library. 2180fc0762SOwen Anderson void llvm::initializeCodeGen(PassRegistry &Registry) { 2258648e4eSAndrew Trick initializeBranchFolderPassPass(Registry); 2380fc0762SOwen Anderson initializeCalculateSpillWeightsPass(Registry); 241fa5bcbeSAndrew Trick initializeCodePlacementOptPass(Registry); 2580fc0762SOwen Anderson initializeDeadMachineInstructionElimPass(Registry); 26f8a63a15SJakob Stoklund Olesen initializeEarlyIfConverterPass(Registry); 271fa5bcbeSAndrew Trick initializeExpandPostRAPass(Registry); 281fa5bcbeSAndrew Trick initializeExpandISelPseudosPass(Registry); 291fa5bcbeSAndrew Trick initializeFinalizeMachineBundlesPass(Registry); 301fa5bcbeSAndrew Trick initializeGCMachineCodeAnalysisPass(Registry); 3180fc0762SOwen Anderson initializeGCModuleInfoPass(Registry); 3280fc0762SOwen Anderson initializeIfConverterPass(Registry); 33d4900a64SJakob Stoklund Olesen initializeLiveDebugVariablesPass(Registry); 3480fc0762SOwen Anderson initializeLiveIntervalsPass(Registry); 3580fc0762SOwen Anderson initializeLiveStacksPass(Registry); 3680fc0762SOwen Anderson initializeLiveVariablesPass(Registry); 371fa5bcbeSAndrew Trick initializeLocalStackSlotPassPass(Registry); 38875ebd5fSJakub Staszak initializeMachineBlockFrequencyInfoPass(Registry); 3910281425SChandler Carruth initializeMachineBlockPlacementPass(Registry); 40ae4e800cSChandler Carruth initializeMachineBlockPlacementStatsPass(Registry); 411fa5bcbeSAndrew Trick initializeMachineCopyPropagationPass(Registry); 4280fc0762SOwen Anderson initializeMachineCSEPass(Registry); 4380fc0762SOwen Anderson initializeMachineDominatorTreePass(Registry); 4480fc0762SOwen Anderson initializeMachineLICMPass(Registry); 4580fc0762SOwen Anderson initializeMachineLoopInfoPass(Registry); 4680fc0762SOwen Anderson initializeMachineModuleInfoPass(Registry); 471fa5bcbeSAndrew Trick initializeMachineSchedulerPass(Registry); 4880fc0762SOwen Anderson initializeMachineSinkingPass(Registry); 4980fc0762SOwen Anderson initializeMachineVerifierPassPass(Registry); 5080fc0762SOwen Anderson initializeOptimizePHIsPass(Registry); 5180fc0762SOwen Anderson initializePHIEliminationPass(Registry); 5280fc0762SOwen Anderson initializePeepholeOptimizerPass(Registry); 531fa5bcbeSAndrew Trick initializePostRASchedulerPass(Registry); 5480fc0762SOwen Anderson initializeProcessImplicitDefsPass(Registry); 5580fc0762SOwen Anderson initializePEIPass(Registry); 56676c405aSRafael Espindola initializeRegisterCoalescerPass(Registry); 5780fc0762SOwen Anderson initializeSlotIndexesPass(Registry); 5880fc0762SOwen Anderson initializeStackProtectorPass(Registry); 59*7c277da3SNadav Rotem initializeStackColoringPass(Registry); 6080fc0762SOwen Anderson initializeStackSlotColoringPass(Registry); 6180fc0762SOwen Anderson initializeStrongPHIEliminationPass(Registry); 621fa5bcbeSAndrew Trick initializeTailDuplicatePassPass(Registry); 63b7551336SAndrew Trick initializeTargetPassConfigPass(Registry); 6480fc0762SOwen Anderson initializeTwoAddressInstructionPassPass(Registry); 651fa5bcbeSAndrew Trick initializeUnpackMachineBundlesPass(Registry); 6680fc0762SOwen Anderson initializeUnreachableBlockElimPass(Registry); 6780fc0762SOwen Anderson initializeUnreachableMachineBlockElimPass(Registry); 6880fc0762SOwen Anderson initializeVirtRegMapPass(Registry); 691224312fSJakob Stoklund Olesen initializeVirtRegRewriterPass(Registry); 706c18d1aaSOwen Anderson initializeLowerIntrinsicsPass(Registry); 7133e5188cSBob Wilson initializeMachineFunctionPrinterPassPass(Registry); 7280fc0762SOwen Anderson } 7380fc0762SOwen Anderson 7480fc0762SOwen Anderson void LLVMInitializeCodeGen(LLVMPassRegistryRef R) { 7580fc0762SOwen Anderson initializeCodeGen(*unwrap(R)); 7680fc0762SOwen Anderson } 77