[llvm-commits] [llvm] r173331 - /llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp
Chandler Carruth
chandlerc at gmail.com
Thu Jan 24 00:22:40 PST 2013
Author: chandlerc
Date: Thu Jan 24 02:22:40 2013
New Revision: 173331
URL: http://llvm.org/viewvc/llvm-project?rev=173331&view=rev
Log:
Lift a cheap early exit test above loops and other complex early exit
tests. No need to pay the high cost when we're never going to do
anything.
No functionality changed.
Modified:
llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp
Modified: llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp?rev=173331&r1=173330&r2=173331&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp (original)
+++ llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp Thu Jan 24 02:22:40 2013
@@ -1370,6 +1370,11 @@
///
/// \returns true if the conditional block is removed.
static bool SpeculativelyExecuteBB(BranchInst *BI, BasicBlock *BB1) {
+ // Be conservative for now. FP select instruction can often be expensive.
+ Value *BrCond = BI->getCondition();
+ if (isa<FCmpInst>(BrCond))
+ return false;
+
// Only speculatively execution a single instruction (not counting the
// terminator) for now.
Instruction *HInst = NULL;
@@ -1409,11 +1414,6 @@
}
}
- // Be conservative for now. FP select instruction can often be expensive.
- Value *BrCond = BI->getCondition();
- if (isa<FCmpInst>(BrCond))
- return false;
-
// If BB1 is actually on the false edge of the conditional branch, remember
// to swap the select operands later.
bool Invert = false;
More information about the llvm-commits
mailing list