summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2011-01-04 19:10:54 +0000
committerOwen Anderson <resistor@mac.com>2011-01-04 19:10:54 +0000
commit83546f2fe0514f5fe84349cf1d7ece623875bc7a (patch)
tree77e923136a22562fd3a3e30ab4e3267c2009ed64 /llvm/lib/Transforms
parenta71d2cc88d9e2da576feeb8162a68d1827c4102a (diff)
downloadbcm5719-llvm-83546f2fe0514f5fe84349cf1d7ece623875bc7a.tar.gz
bcm5719-llvm-83546f2fe0514f5fe84349cf1d7ece623875bc7a.zip
When removing a value from GVN's leaders list, don't drop the Next pointer in a corner case.
llvm-svn: 122822
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/Scalar/GVN.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/GVN.cpp b/llvm/lib/Transforms/Scalar/GVN.cpp
index cf82ebc027f..c78c4c308cb 100644
--- a/llvm/lib/Transforms/Scalar/GVN.cpp
+++ b/llvm/lib/Transforms/Scalar/GVN.cpp
@@ -466,6 +466,7 @@ namespace {
NumberTableEntry* Next = Curr->Next;
Curr->Val = Next->Val;
Curr->BB = Next->BB;
+ Curr->Next = Next->Next;
}
}
}
@@ -1693,7 +1694,7 @@ bool GVN::processInstruction(Instruction *I,
return false;
}
-
+
uint32_t NextNum = VN.getNextUnusedValueNumber();
unsigned Num = VN.lookup_or_add(I);
OpenPOWER on IntegriCloud