Replace isTrapping with a new, similar method called
[oota-llvm.git] / lib / Transforms / Scalar / TailDuplication.cpp
index 684b0963456ea5f2238a33be371f203f55e7db06..6d05fdf18c23836b880b20a8ea3cd79a9c03bda6 100644 (file)
@@ -258,7 +258,8 @@ void TailDup::eliminateUnconditionalBranch(BranchInst *Branch) {
     while (!isa<TerminatorInst>(BBI)) {
       Instruction *I = BBI++;
 
-      bool CanHoist = !I->isTrapping() && !I->mayHaveSideEffects();
+      bool CanHoist = I->isSafeToSpeculativelyExecute() &&
+                      !I->mayReadFromMemory();
       if (CanHoist) {
         for (unsigned op = 0, e = I->getNumOperands(); op != e; ++op)
           if (Instruction *OpI = dyn_cast<Instruction>(I->getOperand(op)))