Fix an error where ANTIC_OUT was ending up with more than one expression of
the same value number. This fixes an infinite loop on 444.namd.
llvm-svn: 37967
diff --git a/llvm/lib/Transforms/Scalar/GVNPRE.cpp b/llvm/lib/Transforms/Scalar/GVNPRE.cpp
index 0661c94..44846cb 100644
--- a/llvm/lib/Transforms/Scalar/GVNPRE.cpp
+++ b/llvm/lib/Transforms/Scalar/GVNPRE.cpp
@@ -1370,7 +1370,7 @@
unsigned num = VN.lookup_or_add(*I);
numbers.resize(VN.size());
- if (isa<Instruction>(*I)) {
+ if (isa<Instruction>(*I) && !numbers.test(num)) {
anticIn.insert(*I);
numbers.set(num);
}