1*80fc0762SOwen Anderson //===-- CodeGen.cpp -------------------------------------------------------===// 2*80fc0762SOwen Anderson // 3*80fc0762SOwen Anderson // The LLVM Compiler Infrastructure 4*80fc0762SOwen Anderson // 5*80fc0762SOwen Anderson // This file is distributed under the University of Illinois Open Source 6*80fc0762SOwen Anderson // License. See LICENSE.TXT for details. 7*80fc0762SOwen Anderson // 8*80fc0762SOwen Anderson //===----------------------------------------------------------------------===// 9*80fc0762SOwen Anderson // 10*80fc0762SOwen Anderson // This file implements the common initialization routines for the 11*80fc0762SOwen Anderson // CodeGen library. 12*80fc0762SOwen Anderson // 13*80fc0762SOwen Anderson //===----------------------------------------------------------------------===// 14*80fc0762SOwen Anderson 15*80fc0762SOwen Anderson #include "llvm/InitializePasses.h" 16*80fc0762SOwen Anderson #include "llvm-c/Initialization.h" 17*80fc0762SOwen Anderson 18*80fc0762SOwen Anderson using namespace llvm; 19*80fc0762SOwen Anderson 20*80fc0762SOwen Anderson /// initializeCodeGen - Initialize all passes linked into the CodeGen library. 21*80fc0762SOwen Anderson void llvm::initializeCodeGen(PassRegistry &Registry) { 22*80fc0762SOwen Anderson initializeCalculateSpillWeightsPass(Registry); 23*80fc0762SOwen Anderson initializeDeadMachineInstructionElimPass(Registry); 24*80fc0762SOwen Anderson initializeGCModuleInfoPass(Registry); 25*80fc0762SOwen Anderson initializeIfConverterPass(Registry); 26*80fc0762SOwen Anderson initializeLiveIntervalsPass(Registry); 27*80fc0762SOwen Anderson initializeLiveStacksPass(Registry); 28*80fc0762SOwen Anderson initializeLiveVariablesPass(Registry); 29*80fc0762SOwen Anderson initializeMachineCSEPass(Registry); 30*80fc0762SOwen Anderson initializeMachineDominatorTreePass(Registry); 31*80fc0762SOwen Anderson initializeMachineLICMPass(Registry); 32*80fc0762SOwen Anderson initializeMachineLoopInfoPass(Registry); 33*80fc0762SOwen Anderson initializeMachineModuleInfoPass(Registry); 34*80fc0762SOwen Anderson initializeMachineSinkingPass(Registry); 35*80fc0762SOwen Anderson initializeMachineVerifierPassPass(Registry); 36*80fc0762SOwen Anderson initializeOptimizePHIsPass(Registry); 37*80fc0762SOwen Anderson initializePHIEliminationPass(Registry); 38*80fc0762SOwen Anderson initializePeepholeOptimizerPass(Registry); 39*80fc0762SOwen Anderson initializePreAllocSplittingPass(Registry); 40*80fc0762SOwen Anderson initializeProcessImplicitDefsPass(Registry); 41*80fc0762SOwen Anderson initializePEIPass(Registry); 42*80fc0762SOwen Anderson initializeRALinScanPass(Registry); 43*80fc0762SOwen Anderson initializeRegisterCoalescerAnalysisGroup(Registry); 44*80fc0762SOwen Anderson initializeRenderMachineFunctionPass(Registry); 45*80fc0762SOwen Anderson initializeSimpleRegisterCoalescingPass(Registry); 46*80fc0762SOwen Anderson initializeSlotIndexesPass(Registry); 47*80fc0762SOwen Anderson initializeLoopSplitterPass(Registry); 48*80fc0762SOwen Anderson initializeStackProtectorPass(Registry); 49*80fc0762SOwen Anderson initializeStackSlotColoringPass(Registry); 50*80fc0762SOwen Anderson initializeStrongPHIEliminationPass(Registry); 51*80fc0762SOwen Anderson initializeTwoAddressInstructionPassPass(Registry); 52*80fc0762SOwen Anderson initializeUnreachableBlockElimPass(Registry); 53*80fc0762SOwen Anderson initializeUnreachableMachineBlockElimPass(Registry); 54*80fc0762SOwen Anderson initializeVirtRegMapPass(Registry); 55*80fc0762SOwen Anderson } 56*80fc0762SOwen Anderson 57*80fc0762SOwen Anderson void LLVMInitializeCodeGen(LLVMPassRegistryRef R) { 58*80fc0762SOwen Anderson initializeCodeGen(*unwrap(R)); 59*80fc0762SOwen Anderson } 60