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" 1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines#include "llvm/PassRegistry.h" 1878b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson 1978b152470d80c27eec82087b2a3c3fdf809e0050Owen Andersonusing namespace llvm; 2078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson 2178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson/// initializeCodeGen - Initialize all passes linked into the CodeGen library. 2278b152470d80c27eec82087b2a3c3fdf809e0050Owen Andersonvoid llvm::initializeCodeGen(PassRegistry &Registry) { 23dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines initializeAtomicExpandLoadLinkedPass(Registry); 24aeef83c6afa1e18d1cf9d359cc678ca0ad556175Chandler Carruth initializeBasicTTIPass(Registry); 2561f1e3db43e556f495b6b9360d2f550291f78471Andrew Trick initializeBranchFolderPassPass(Registry); 2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines initializeCodeGenPreparePass(Registry); 2778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeDeadMachineInstructionElimPass(Registry); 2833242fd3ed5586091e73254b58dd1825e9d53c60Jakob Stoklund Olesen initializeEarlyIfConverterPass(Registry); 291dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeExpandPostRAPass(Registry); 301dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeExpandISelPseudosPass(Registry); 311dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeFinalizeMachineBundlesPass(Registry); 321dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeGCMachineCodeAnalysisPass(Registry); 3378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeGCModuleInfoPass(Registry); 3478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeIfConverterPass(Registry); 35bb7b23f5b79a7ca2aa62faa1a6078428af597234Jakob Stoklund Olesen initializeLiveDebugVariablesPass(Registry); 3678b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeLiveIntervalsPass(Registry); 3778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeLiveStacksPass(Registry); 3878b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeLiveVariablesPass(Registry); 391dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeLocalStackSlotPassPass(Registry); 40f55c1c85881afd65647bde5346f64d9685235c7cJakub Staszak initializeMachineBlockFrequencyInfoPass(Registry); 41db35087d21f09fdde81cab7e12fc0bcd8b7d00e9Chandler Carruth initializeMachineBlockPlacementPass(Registry); 4237efc9fe42a4867c81526cac7fca9fe0ea04a484Chandler Carruth initializeMachineBlockPlacementStatsPass(Registry); 431dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeMachineCopyPropagationPass(Registry); 4478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineCSEPass(Registry); 4578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineDominatorTreePass(Registry); 46a52c3acc14062a7c2220cedb9f75531bf730eda8Tom Stellard initializeMachinePostDominatorTreePass(Registry); 4778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineLICMPass(Registry); 4878b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineLoopInfoPass(Registry); 4978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineModuleInfoPass(Registry); 501dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeMachineSchedulerPass(Registry); 5178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineSinkingPass(Registry); 5278b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeMachineVerifierPassPass(Registry); 5378b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeOptimizePHIsPass(Registry); 5478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializePHIEliminationPass(Registry); 5578b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializePeepholeOptimizerPass(Registry); 5636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines initializePostMachineSchedulerPass(Registry); 571dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializePostRASchedulerPass(Registry); 5878b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeProcessImplicitDefsPass(Registry); 5978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializePEIPass(Registry); 605b220213bfe9c37c2bb41a7ae0804e06a14f1007Rafael Espindola initializeRegisterCoalescerPass(Registry); 6178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeSlotIndexesPass(Registry); 6278b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeStackProtectorPass(Registry); 63c05d30601ced172b55be81bb529df6be91d6ae15Nadav Rotem initializeStackColoringPass(Registry); 6478b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeStackSlotColoringPass(Registry); 651dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeTailDuplicatePassPass(Registry); 667461334084aa77286b6f9af596fb0f6ba0465685Andrew Trick initializeTargetPassConfigPass(Registry); 6778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeTwoAddressInstructionPassPass(Registry); 681dd8c8560d45d36a8e507cd014352f1d313f9f9eAndrew Trick initializeUnpackMachineBundlesPass(Registry); 6978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeUnreachableBlockElimPass(Registry); 7078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeUnreachableMachineBlockElimPass(Registry); 7178b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeVirtRegMapPass(Registry); 7205ec712e7f75635abbdd84dced69f4a45fe0f541Jakob Stoklund Olesen initializeVirtRegRewriterPass(Registry); 73081c34b725980f995be9080eaec24cd3dfaaf065Owen Anderson initializeLowerIntrinsicsPass(Registry); 746e1b8128505711276a87e96f6bffb818b435cbd5Bob Wilson initializeMachineFunctionPrinterPassPass(Registry); 7536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines initializeStackMapLivenessPass(Registry); 7678b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson} 7778b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson 7878b152470d80c27eec82087b2a3c3fdf809e0050Owen Andersonvoid LLVMInitializeCodeGen(LLVMPassRegistryRef R) { 7978b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson initializeCodeGen(*unwrap(R)); 8078b152470d80c27eec82087b2a3c3fdf809e0050Owen Anderson} 81