diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar/GuardWidening.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/GuardWidening.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/Scalar/GuardWidening.cpp b/llvm/lib/Transforms/Scalar/GuardWidening.cpp index 27439a206d1..943cc9ac593 100644 --- a/llvm/lib/Transforms/Scalar/GuardWidening.cpp +++ b/llvm/lib/Transforms/Scalar/GuardWidening.cpp @@ -58,6 +58,7 @@ #include "llvm/Support/Debug.h" #include "llvm/Support/KnownBits.h" #include "llvm/Transforms/Scalar.h" +#include "llvm/Transforms/Utils/GuardUtils.h" #include "llvm/Transforms/Utils/LoopUtils.h" #include <functional> @@ -277,11 +278,7 @@ class GuardWideningImpl { widenCondCommon(getCondition(ToWiden), NewCondition, ToWiden, Result, InvertCondition); if (isGuardAsWidenableBranch(ToWiden)) { - auto *BI = cast<BranchInst>(ToWiden); - auto *And = cast<Instruction>(BI->getCondition()); - And->setOperand(0, Result); - And->moveBefore(ToWiden); - assert(isGuardAsWidenableBranch(ToWiden) && "still widenable?"); + setWidenableBranchCond(cast<BranchInst>(ToWiden), Result); return; } setCondition(ToWiden, Result); |