mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-12 14:17:59 +00:00
bb7b23f5b7
This analysis is going to run immediately after LiveIntervals. It will stay alive during register allocation and keep track of user variables mentioned in DBG_VALUE instructions. When the register allocator is moving values between registers and the stack, it is very hard to keep track of DBG_VALUE instructions. We usually get it wrong. This analysis maintains a data structure that makes it easy to update DBG_VALUE instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120385 91177308-0d34-0410-b5e6-96231b3b80d8
62 lines
2.3 KiB
C++
62 lines
2.3 KiB
C++
//===-- CodeGen.cpp -------------------------------------------------------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file implements the common initialization routines for the
|
|
// CodeGen library.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/InitializePasses.h"
|
|
#include "llvm-c/Initialization.h"
|
|
|
|
using namespace llvm;
|
|
|
|
/// initializeCodeGen - Initialize all passes linked into the CodeGen library.
|
|
void llvm::initializeCodeGen(PassRegistry &Registry) {
|
|
initializeCalculateSpillWeightsPass(Registry);
|
|
initializeDeadMachineInstructionElimPass(Registry);
|
|
initializeGCModuleInfoPass(Registry);
|
|
initializeIfConverterPass(Registry);
|
|
initializeLiveDebugVariablesPass(Registry);
|
|
initializeLiveIntervalsPass(Registry);
|
|
initializeLiveStacksPass(Registry);
|
|
initializeLiveVariablesPass(Registry);
|
|
initializeMachineCSEPass(Registry);
|
|
initializeMachineDominatorTreePass(Registry);
|
|
initializeMachineLICMPass(Registry);
|
|
initializeMachineLoopInfoPass(Registry);
|
|
initializeMachineModuleInfoPass(Registry);
|
|
initializeMachineSinkingPass(Registry);
|
|
initializeMachineVerifierPassPass(Registry);
|
|
initializeOptimizePHIsPass(Registry);
|
|
initializePHIEliminationPass(Registry);
|
|
initializePeepholeOptimizerPass(Registry);
|
|
initializePreAllocSplittingPass(Registry);
|
|
initializeProcessImplicitDefsPass(Registry);
|
|
initializePEIPass(Registry);
|
|
initializeRALinScanPass(Registry);
|
|
initializeRegisterCoalescerAnalysisGroup(Registry);
|
|
initializeRenderMachineFunctionPass(Registry);
|
|
initializeSimpleRegisterCoalescingPass(Registry);
|
|
initializeSlotIndexesPass(Registry);
|
|
initializeLoopSplitterPass(Registry);
|
|
initializeStackProtectorPass(Registry);
|
|
initializeStackSlotColoringPass(Registry);
|
|
initializeStrongPHIEliminationPass(Registry);
|
|
initializeTwoAddressInstructionPassPass(Registry);
|
|
initializeUnreachableBlockElimPass(Registry);
|
|
initializeUnreachableMachineBlockElimPass(Registry);
|
|
initializeVirtRegMapPass(Registry);
|
|
initializeLowerIntrinsicsPass(Registry);
|
|
}
|
|
|
|
void LLVMInitializeCodeGen(LLVMPassRegistryRef R) {
|
|
initializeCodeGen(*unwrap(R));
|
|
}
|