diff options
Diffstat (limited to 'lib/Target/Sparc/SparcTargetMachine.cpp')
-rw-r--r-- | lib/Target/Sparc/SparcTargetMachine.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/Target/Sparc/SparcTargetMachine.cpp b/lib/Target/Sparc/SparcTargetMachine.cpp index fbe353fc05..08e38fc7a3 100644 --- a/lib/Target/Sparc/SparcTargetMachine.cpp +++ b/lib/Target/Sparc/SparcTargetMachine.cpp @@ -73,9 +73,6 @@ bool SparcV8TargetMachine::addPassesToEmitFile(PassManager &PM, // FIXME: Implement efficient support for garbage collection intrinsics. PM.add(createLowerGCPass()); - // Make sure that no unreachable blocks are instruction selected. - PM.add(createUnreachableBlockEliminationPass()); - // FIXME: implement the invoke/unwind instructions! PM.add(createLowerInvokePass()); @@ -90,9 +87,14 @@ bool SparcV8TargetMachine::addPassesToEmitFile(PassManager &PM, // Replace malloc and free instructions with library calls. PM.add(createLowerAllocationsPass()); PM.add(createLowerSelectPass()); + // Make sure that no unreachable blocks are instruction selected. + PM.add(createUnreachableBlockEliminationPass()); PM.add(createSparcV8SimpleInstructionSelector(*this)); - } else + } else { + // Make sure that no unreachable blocks are instruction selected. + PM.add(createUnreachableBlockEliminationPass()); PM.add(createSparcV8ISelDag(*this)); + } // Print machine instructions as they were initially generated. if (PrintMachineCode) |