summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Transforms/Scalar/LICM.cpp9
1 files changed, 1 insertions, 8 deletions
diff --git a/llvm/lib/Transforms/Scalar/LICM.cpp b/llvm/lib/Transforms/Scalar/LICM.cpp
index 0edba8fc993..29c7a881a7c 100644
--- a/llvm/lib/Transforms/Scalar/LICM.cpp
+++ b/llvm/lib/Transforms/Scalar/LICM.cpp
@@ -412,14 +412,7 @@ bool llvm::sinkRegion(DomTreeNode *N, AliasAnalysis *AA, LoopInfo *LI,
//
bool FreeInLoop = false;
if (isNotUsedOrFreeInLoop(I, CurLoop, SafetyInfo, TTI, FreeInLoop) &&
- canSinkOrHoistInst(I, AA, DT, CurLoop, CurAST, true, ORE) &&
- // FIXME: Remove the special casing here. Why do we need the
- // execution check at all? We're sinking from a dominating location
- // to a dominated location.
- (isa<LoadInst>(I) || isa<CallInst>(I) ||
- // TODO: Plumb the context instruction through to make sinking
- // more powerful.
- isSafeToExecuteUnconditionally(I, DT, CurLoop, SafetyInfo, ORE))) {
+ canSinkOrHoistInst(I, AA, DT, CurLoop, CurAST, true, ORE)) {
if (sink(I, LI, DT, CurLoop, SafetyInfo, ORE, FreeInLoop)) {
if (!FreeInLoop) {
++II;
OpenPOWER on IntegriCloud