summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2007-07-04 18:26:18 +0000
committerOwen Anderson <resistor@mac.com>2007-07-04 18:26:18 +0000
commitcd94fc982ab373dbd03f651db658930cd5f4953c (patch)
treeb4e9cc90c7fc8a597342745ee4416520e781d0bb /llvm
parent664e260a9c1c1a1feb0e821b41c155ef2c764553 (diff)
downloadbcm5719-llvm-cd94fc982ab373dbd03f651db658930cd5f4953c.tar.gz
bcm5719-llvm-cd94fc982ab373dbd03f651db658930cd5f4953c.zip
Fix a typo that was killing GVNPRE of select instructions.
llvm-svn: 37871
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Transforms/Scalar/GVNPRE.cpp2
-rw-r--r--llvm/test/Transforms/GVNPRE/2007-07-04-CleanSelect.ll9
2 files changed, 10 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/GVNPRE.cpp b/llvm/lib/Transforms/Scalar/GVNPRE.cpp
index 33926ea127a..5d52aa48875 100644
--- a/llvm/lib/Transforms/Scalar/GVNPRE.cpp
+++ b/llvm/lib/Transforms/Scalar/GVNPRE.cpp
@@ -1040,7 +1040,7 @@ void GVNPRE::topo_sort(SmallPtrSet<Value*, 16>& set, std::vector<Value*>& vec) {
stack.push_back(r);
else if (m != 0 && isa<Instruction>(m) &&
visited.count(m) == 0)
- stack.push_back(r);
+ stack.push_back(m);
else {
vec.push_back(e);
visited.insert(e);
diff --git a/llvm/test/Transforms/GVNPRE/2007-07-04-CleanSelect.ll b/llvm/test/Transforms/GVNPRE/2007-07-04-CleanSelect.ll
new file mode 100644
index 00000000000..d72e2e1eb51
--- /dev/null
+++ b/llvm/test/Transforms/GVNPRE/2007-07-04-CleanSelect.ll
@@ -0,0 +1,9 @@
+; RUN: llvm-as < %s | opt -gvnpre | llvm-dis
+
+define i32* @_ZN6Solver9propagateEv(i32* %this) {
+entry:
+ %tmp15.i48 = load i8* null ; <i8> [#uses=2]
+ %tmp64.i.i51 = sub i8 0, %tmp15.i48 ; <i8> [#uses=1]
+ %tmp231.i52 = select i1 false, i8 %tmp15.i48, i8 %tmp64.i.i51 ; <i8> [#uses=0]
+ ret i32* null
+}
OpenPOWER on IntegriCloud