CodeGen.cpp revision 61f1e3db43e556f495b6b9360d2f550291f78471
178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson//===-- CodeGen.cpp -------------------------------------------------------===//
278b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson//
378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson//                     The LLVM Compiler Infrastructure
478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson//
578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson// This file is distributed under the University of Illinois Open Source
678b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson// License. See LICENSE.TXT for details.
778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson//
878b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson//===----------------------------------------------------------------------===//
978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson//
1078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson// This file implements the common initialization routines for the
1178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson// CodeGen library.
1278b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson//
1378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson//===----------------------------------------------------------------------===//
1478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson
1578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson#include "llvm/InitializePasses.h"
1678b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson#include "llvm-c/Initialization.h"
1778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson
1878b152470d80c27eec82087b2a3c3fdf809e0050Owen Andersonusing namespace llvm;
1978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson
2078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson/// initializeCodeGen - Initialize all passes linked into the CodeGen library.
2178b152470d80c27eec82087b2a3c3fdf809e0050Owen Andersonvoid llvm::initializeCodeGen(PassRegistry &Registry) {
2261f1e3db43e556f495b6b9360d2f550291f78471Andrew Trick  initializeBranchFolderPassPass(Registry);
2378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeCalculateSpillWeightsPass(Registry);
2478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeDeadMachineInstructionElimPass(Registry);
2578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeGCModuleInfoPass(Registry);
2678b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeIfConverterPass(Registry);
27bb7b23f5b79a7ca2aa62faa1a6078428af597234Jakob Stoklund Olesen  initializeLiveDebugVariablesPass(Registry);
2878b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeLiveIntervalsPass(Registry);
2978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeLiveStacksPass(Registry);
3078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeLiveVariablesPass(Registry);
31f55c1c85881afd65647bde5346f64d9685235c7cJakub Staszak  initializeMachineBlockFrequencyInfoPass(Registry);
32db35087d21f09fdde81cab7e12fc0bcd8b7d00e9Chandler Carruth  initializeMachineBlockPlacementPass(Registry);
3337efc9fe42a4867c81526cac7fca9fe0ea04a484Chandler Carruth  initializeMachineBlockPlacementStatsPass(Registry);
3478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineCSEPass(Registry);
3578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineDominatorTreePass(Registry);
3678b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineLICMPass(Registry);
3778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineLoopInfoPass(Registry);
3878b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineModuleInfoPass(Registry);
3978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineSinkingPass(Registry);
4078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineVerifierPassPass(Registry);
4178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeOptimizePHIsPass(Registry);
4278b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializePHIEliminationPass(Registry);
4378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializePeepholeOptimizerPass(Registry);
4478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeProcessImplicitDefsPass(Registry);
4578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializePEIPass(Registry);
465b220213bfe9c37c2bb41a7ae0804e06a14f1007Rafael Espindola  initializeRegisterCoalescerPass(Registry);
4742b7a71dc7381d1f38bf7b7201fc26dd80453364Andrew Trick  initializeMachineSchedulerPass(Registry);
4878b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeRenderMachineFunctionPass(Registry);
4978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeSlotIndexesPass(Registry);
5078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeStackProtectorPass(Registry);
5178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeStackSlotColoringPass(Registry);
5278b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeStrongPHIEliminationPass(Registry);
537461334084aa77286b6f9af596fb0f6ba0465685Andrew Trick  initializeTargetPassConfigPass(Registry);
5478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeTwoAddressInstructionPassPass(Registry);
5578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeUnreachableBlockElimPass(Registry);
5678b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeUnreachableMachineBlockElimPass(Registry);
5778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeVirtRegMapPass(Registry);
58081c34b725980f995be9080eaec24cd3dfaaf065Owen Anderson  initializeLowerIntrinsicsPass(Registry);
5978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson}
6078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson
6178b152470d80c27eec82087b2a3c3fdf809e0050Owen Andersonvoid LLVMInitializeCodeGen(LLVMPassRegistryRef R) {
6278b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeCodeGen(*unwrap(R));
6378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson}
64