summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2017-02-23 22:29:00 +0000
committerHans Wennborg <hans@hanshq.net>2017-02-23 22:29:00 +0000
commit5cd9a9bf8c1859fcc8f67bcb2e73e0da1ee4d72c (patch)
tree9ab259a29e5a329fb4f2a5c3569b3efa6173ad26 /llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
parent11813280712d3e9468b48931a4a62ed8cfa038cf (diff)
downloadbcm5719-llvm-5cd9a9bf8c1859fcc8f67bcb2e73e0da1ee4d72c.tar.gz
bcm5719-llvm-5cd9a9bf8c1859fcc8f67bcb2e73e0da1ee4d72c.zip
Revert r282872 "CVP. Turn marking adds as no wrap on by default"
While not CVP's fault, this caused miscompiles (PR31181). Reverting until those are resolved. (This also reverts the follow-ups r288154 and r288161 which removed the flag.) llvm-svn: 296030
Diffstat (limited to 'llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp b/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
index 60786a3373f..d4d5ef4b158 100644
--- a/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
+++ b/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
@@ -41,6 +41,8 @@ STATISTIC(NumSDivs, "Number of sdiv converted to udiv");
STATISTIC(NumAShrs, "Number of ashr converted to lshr");
STATISTIC(NumSRems, "Number of srem converted to urem");
+static cl::opt<bool> DontProcessAdds("cvp-dont-process-adds", cl::init(true));
+
namespace {
class CorrelatedValuePropagation : public FunctionPass {
public:
@@ -405,6 +407,9 @@ static bool processAShr(BinaryOperator *SDI, LazyValueInfo *LVI) {
static bool processAdd(BinaryOperator *AddOp, LazyValueInfo *LVI) {
typedef OverflowingBinaryOperator OBO;
+ if (DontProcessAdds)
+ return false;
+
if (AddOp->getType()->isVectorTy() || hasLocalDefs(AddOp))
return false;
OpenPOWER on IntegriCloud