CodeGen.cpp revision f55c1c85881afd65647bde5346f64d9685235c7c
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) {
2278b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeCalculateSpillWeightsPass(Registry);
2378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeDeadMachineInstructionElimPass(Registry);
2478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeGCModuleInfoPass(Registry);
2578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeIfConverterPass(Registry);
26bb7b23f5b79a7ca2aa62faa1a6078428af597234Jakob Stoklund Olesen  initializeLiveDebugVariablesPass(Registry);
2778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeLiveIntervalsPass(Registry);
2878b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeLiveStacksPass(Registry);
2978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeLiveVariablesPass(Registry);
30f55c1c85881afd65647bde5346f64d9685235c7cJakub Staszak  initializeMachineBlockFrequencyInfoPass(Registry);
3178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineCSEPass(Registry);
3278b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineDominatorTreePass(Registry);
3378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineLICMPass(Registry);
3478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineLoopInfoPass(Registry);
3578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineModuleInfoPass(Registry);
3678b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineSinkingPass(Registry);
3778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeMachineVerifierPassPass(Registry);
3878b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeOptimizePHIsPass(Registry);
3978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializePHIEliminationPass(Registry);
4078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializePeepholeOptimizerPass(Registry);
4178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeProcessImplicitDefsPass(Registry);
4278b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializePEIPass(Registry);
4378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeRALinScanPass(Registry);
445b220213bfe9c37c2bb41a7ae0804e06a14f1007Rafael Espindola  initializeRegisterCoalescerPass(Registry);
4578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeRenderMachineFunctionPass(Registry);
4678b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeSlotIndexesPass(Registry);
4778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeLoopSplitterPass(Registry);
4878b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeStackProtectorPass(Registry);
4978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeStackSlotColoringPass(Registry);
5078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeStrongPHIEliminationPass(Registry);
5178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeTwoAddressInstructionPassPass(Registry);
5278b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeUnreachableBlockElimPass(Registry);
5378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeUnreachableMachineBlockElimPass(Registry);
5478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeVirtRegMapPass(Registry);
55081c34b725980f995be9080eaec24cd3dfaaf065Owen Anderson  initializeLowerIntrinsicsPass(Registry);
5678b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson}
5778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson
5878b152470d80c27eec82087b2a3c3fdf809e0050Owen Andersonvoid LLVMInitializeCodeGen(LLVMPassRegistryRef R) {
5978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson  initializeCodeGen(*unwrap(R));
6078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson}
61