mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 23:17:16 +00:00
Add all codegen passes to the PassManager via TargetPassConfig.
This is a preliminary step toward having TargetPassConfig be able to start and stop the compilation at specified passes for unit testing and debugging. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159567 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -78,34 +78,6 @@ LLVMTargetMachine::LLVMTargetMachine(const Target &T, StringRef Triple,
|
||||
"and that InitializeAllTargetMCs() is being invoked!");
|
||||
}
|
||||
|
||||
/// Turn exception handling constructs into something the code generators can
|
||||
/// handle.
|
||||
static void addPassesToHandleExceptions(TargetMachine *TM,
|
||||
PassManagerBase &PM) {
|
||||
switch (TM->getMCAsmInfo()->getExceptionHandlingType()) {
|
||||
case ExceptionHandling::SjLj:
|
||||
// SjLj piggy-backs on dwarf for this bit. The cleanups done apply to both
|
||||
// Dwarf EH prepare needs to be run after SjLj prepare. Otherwise,
|
||||
// catch info can get misplaced when a selector ends up more than one block
|
||||
// removed from the parent invoke(s). This could happen when a landing
|
||||
// pad is shared by multiple invokes and is also a target of a normal
|
||||
// edge from elsewhere.
|
||||
PM.add(createSjLjEHPreparePass(TM->getTargetLowering()));
|
||||
// FALLTHROUGH
|
||||
case ExceptionHandling::DwarfCFI:
|
||||
case ExceptionHandling::ARM:
|
||||
case ExceptionHandling::Win64:
|
||||
PM.add(createDwarfEHPass(TM));
|
||||
break;
|
||||
case ExceptionHandling::None:
|
||||
PM.add(createLowerInvokePass(TM->getTargetLowering()));
|
||||
|
||||
// The lower invoke pass may create unreachable code. Remove it.
|
||||
PM.add(createUnreachableBlockEliminationPass());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// addPassesToX helper drives creation and initialization of TargetPassConfig.
|
||||
static MCContext *addPassesToGenerateCode(LLVMTargetMachine *TM,
|
||||
PassManagerBase &PM,
|
||||
@@ -120,7 +92,7 @@ static MCContext *addPassesToGenerateCode(LLVMTargetMachine *TM,
|
||||
|
||||
PassConfig->addIRPasses();
|
||||
|
||||
addPassesToHandleExceptions(TM, PM);
|
||||
PassConfig->addPassesToHandleExceptions();
|
||||
|
||||
PassConfig->addISelPrepare();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user