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