mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-02 08:26:29 +00:00
Temporarily disable on-demand fast-isel.
llvm-svn: 107393
This commit is contained in:
parent
cf64605ccb
commit
31850f2d8b
@ -329,15 +329,19 @@ bool LLVMTargetMachine::addCommonCodeGenPasses(PassManagerBase &PM,
|
||||
if (OptLevel != CodeGenOpt::None)
|
||||
PM.add(createOptimizePHIsPass());
|
||||
|
||||
if (OptLevel != CodeGenOpt::None) {
|
||||
// With optimization, dead code should already be eliminated. However
|
||||
// there is one known exception: lowered code for arguments that are only
|
||||
// used by tail calls, where the tail calls reuse the incoming stack
|
||||
// arguments directly (see t11 in test/CodeGen/X86/sibcall.ll).
|
||||
PM.add(createDeadMachineInstructionElimPass());
|
||||
printAndVerify(PM, "After codegen DCE pass",
|
||||
/* allowDoubleDefs= */ true);
|
||||
// Delete dead machine instructions regardless of optimization level.
|
||||
//
|
||||
// At -O0, fast-isel frequently creates dead instructions.
|
||||
//
|
||||
// With optimization, dead code should already be eliminated. However
|
||||
// there is one known exception: lowered code for arguments that are only
|
||||
// used by tail calls, where the tail calls reuse the incoming stack
|
||||
// arguments directly (see t11 in test/CodeGen/X86/sibcall.ll).
|
||||
PM.add(createDeadMachineInstructionElimPass());
|
||||
printAndVerify(PM, "After codegen DCE pass",
|
||||
/* allowDoubleDefs= */ true);
|
||||
|
||||
if (OptLevel != CodeGenOpt::None) {
|
||||
PM.add(createOptimizeExtsPass());
|
||||
if (!DisableMachineLICM)
|
||||
PM.add(createMachineLICMPass());
|
||||
|
@ -709,11 +709,13 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) {
|
||||
FastIS->startNewBlock(BB);
|
||||
// Do FastISel on as many instructions as possible.
|
||||
for (; BI != End; ++BI) {
|
||||
#if 0
|
||||
// Defer instructions with no side effects; they'll be emitted
|
||||
// on-demand later.
|
||||
if (BI->isSafeToSpeculativelyExecute() &&
|
||||
!FuncInfo->isExportedInst(BI))
|
||||
continue;
|
||||
#endif
|
||||
|
||||
// Try to select the instruction with FastISel.
|
||||
if (FastIS->SelectInstruction(BI))
|
||||
|
@ -5,7 +5,7 @@
|
||||
; CHECK: foo:
|
||||
; CHECK-NEXT: movq %rdi, -8(%rsp)
|
||||
; CHECK-NEXT: movq %rsi, -16(%rsp)
|
||||
; CHECK-NEXT: movsd 128(%rsi,%rdi,8), %xmm0
|
||||
; CHECK: movsd 128(%rsi,%rdi,8), %xmm0
|
||||
; CHECK-NEXT: ret
|
||||
|
||||
define double @foo(i64 %x, double* %p) nounwind {
|
||||
|
Loading…
Reference in New Issue
Block a user