CodeGen.cpp revision 05ec712e7f75635abbdd84dced69f4a45fe0f541
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); 241dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeCodePlacementOptPass(Registry); 2578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeDeadMachineInstructionElimPass(Registry); 261dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeExpandPostRAPass(Registry); 271dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeExpandISelPseudosPass(Registry); 281dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeFinalizeMachineBundlesPass(Registry); 291dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeGCMachineCodeAnalysisPass(Registry); 3078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeGCModuleInfoPass(Registry); 3178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeIfConverterPass(Registry); 32bb7b23f5b79a7ca2aa62faa1a6078428af597234Jakob Stoklund Olesen initializeLiveDebugVariablesPass(Registry); 3378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeLiveIntervalsPass(Registry); 3478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeLiveStacksPass(Registry); 3578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeLiveVariablesPass(Registry); 361dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeLocalStackSlotPassPass(Registry); 37f55c1c85881afd65647bde5346f64d9685235c7cJakub Staszak initializeMachineBlockFrequencyInfoPass(Registry); 38db35087d21f09fdde81cab7e12fc0bcd8b7d00e9Chandler Carruth initializeMachineBlockPlacementPass(Registry); 3937efc9fe42a4867c81526cac7fca9fe0ea04a484Chandler Carruth initializeMachineBlockPlacementStatsPass(Registry); 401dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeMachineCopyPropagationPass(Registry); 4178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineCSEPass(Registry); 4278b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineDominatorTreePass(Registry); 4378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineLICMPass(Registry); 4478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineLoopInfoPass(Registry); 4578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineModuleInfoPass(Registry); 461dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeMachineSchedulerPass(Registry); 4778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineSinkingPass(Registry); 4878b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineVerifierPassPass(Registry); 4978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeOptimizePHIsPass(Registry); 5078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializePHIEliminationPass(Registry); 5178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializePeepholeOptimizerPass(Registry); 521dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializePostRASchedulerPass(Registry); 5378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeProcessImplicitDefsPass(Registry); 5478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializePEIPass(Registry); 555b220213bfe9c37c2bb41a7ae0804e06a14f1007Rafael Espindola initializeRegisterCoalescerPass(Registry); 5678b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeRenderMachineFunctionPass(Registry); 5778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeSlotIndexesPass(Registry); 5878b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeStackProtectorPass(Registry); 5978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeStackSlotColoringPass(Registry); 6078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeStrongPHIEliminationPass(Registry); 611dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeTailDuplicatePassPass(Registry); 627461334084aa77286b6f9af596fb0f6ba0465685Andrew Trick initializeTargetPassConfigPass(Registry); 6378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeTwoAddressInstructionPassPass(Registry); 641dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeUnpackMachineBundlesPass(Registry); 6578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeUnreachableBlockElimPass(Registry); 6678b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeUnreachableMachineBlockElimPass(Registry); 6778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeVirtRegMapPass(Registry); 6805ec712e7f75635abbdd84dced69f4a45fe0f541Jakob Stoklund Olesen initializeVirtRegRewriterPass(Registry); 69081c34b725980f995be9080eaec24cd3dfaaf065Owen Anderson initializeLowerIntrinsicsPass(Registry); 706e1b8128505711276a87e96f6bffb818b435cbd5Bob Wilson initializeMachineFunctionPrinterPassPass(Registry); 7178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson} 7278b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson 7378b152470d80c27eec82087b2a3c3fdf809e0050Owen Andersonvoid LLVMInitializeCodeGen(LLVMPassRegistryRef R) { 7478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeCodeGen(*unwrap(R)); 7578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson} 76