diff options
author | Mehdi Amini <mehdi.amini@apple.com> | 2015-02-28 19:34:54 +0000 |
---|---|---|
committer | Mehdi Amini <mehdi.amini@apple.com> | 2015-02-28 19:34:54 +0000 |
commit | 8d25e3a83205918688ecec526b6d41f61b6f4500 (patch) | |
tree | e4be80b21419bf3079e1dc9886607c01170be7a1 | |
parent | 8df1c6ef095176bc45c8f1d322c84d7e2ff28356 (diff) |
Fixup for recent -fast-isel-abort change: code didn't match description
Level 1 should abort for all instructions but call/terminators/args.
Instead it was aborting only if the level was > 2
From: Mehdi Amini <mehdi.amini@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230861 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index 3506de08f61..d015b0b0dd0 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -1282,16 +1282,19 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) { continue; } + bool ShouldAbort = EnableFastISelAbort; if (EnableFastISelVerbose || EnableFastISelAbort) { if (isa<TerminatorInst>(Inst)) { // Use a different message for terminator misses. dbgs() << "FastISel missed terminator: "; + // Don't abort unless for terminator unless the level is really high + ShouldAbort = (EnableFastISelAbort > 2); } else { dbgs() << "FastISel miss: "; } Inst->dump(); } - if (EnableFastISelAbort > 2) + if (ShouldAbort) // FastISel selector couldn't handle something and bailed. // For the purpose of debugging, just abort. llvm_unreachable("FastISel didn't select the entire block"); |