diff options
author | Hans Wennborg <hans@hanshq.net> | 2017-02-23 22:29:00 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2017-02-23 22:29:00 +0000 |
commit | 5cd9a9bf8c1859fcc8f67bcb2e73e0da1ee4d72c (patch) | |
tree | 9ab259a29e5a329fb4f2a5c3569b3efa6173ad26 /llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp | |
parent | 11813280712d3e9468b48931a4a62ed8cfa038cf (diff) | |
download | bcm5719-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.cpp | 5 |
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; |