summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/LazyValueInfo.cpp
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2010-08-30 17:03:45 +0000
committerOwen Anderson <resistor@mac.com>2010-08-30 17:03:45 +0000
commit9517943d1177111508a638f8a745c8f1a81a9f45 (patch)
tree803b338d9e3dbc11bb1c89edb323d8e8b1188fa7 /llvm/lib/Analysis/LazyValueInfo.cpp
parent561eceb4c4a20280d5324c873ddad1940960b891 (diff)
downloadbcm5719-llvm-9517943d1177111508a638f8a745c8f1a81a9f45.tar.gz
bcm5719-llvm-9517943d1177111508a638f8a745c8f1a81a9f45.zip
It is possible to try to merge a not-constant with a constantrage, when dealing with ptrtoint ConstantExpr's.
Unfortunately, the only testcase I have for this is huge and doesn't reduce well because the error is sensitive to iteration-order issues, since the problem only occurs when merging values in a particular order. llvm-svn: 112489
Diffstat (limited to 'llvm/lib/Analysis/LazyValueInfo.cpp')
-rw-r--r--llvm/lib/Analysis/LazyValueInfo.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Analysis/LazyValueInfo.cpp b/llvm/lib/Analysis/LazyValueInfo.cpp
index e7929f3127b..f6f715e4df3 100644
--- a/llvm/lib/Analysis/LazyValueInfo.cpp
+++ b/llvm/lib/Analysis/LazyValueInfo.cpp
@@ -196,13 +196,14 @@ public:
isa<ConstantExpr>(RHS.getNotConstant()))
return markOverdefined();
return false;
- }
- if (isConstant()) {
+ } else if (isConstant()) {
if (getConstant() == RHS.getNotConstant() ||
isa<ConstantExpr>(RHS.getNotConstant()) ||
isa<ConstantExpr>(getConstant()))
return markOverdefined();
return markNotConstant(RHS.getNotConstant());
+ } else if (isConstantRange()) {
+ return markOverdefined();
}
assert(isUndefined() && "Unexpected lattice");
OpenPOWER on IntegriCloud