summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2007-06-05 22:11:49 +0000
committerOwen Anderson <resistor@mac.com>2007-06-05 22:11:49 +0000
commitc84720913a14fb1f634f75638f2f23ba5c203d55 (patch)
tree4a567b8193c0638f709a2798dfc9e34d08135870 /llvm/lib/Transforms
parentc1a0b8ce1d4de86218cfb90399bb9400b390eaa1 (diff)
downloadbcm5719-llvm-c84720913a14fb1f634f75638f2f23ba5c203d55.tar.gz
bcm5719-llvm-c84720913a14fb1f634f75638f2f23ba5c203d55.zip
Don't leak memory.
llvm-svn: 37442
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/Scalar/GVNPRE.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/Scalar/GVNPRE.cpp b/llvm/lib/Transforms/Scalar/GVNPRE.cpp
index b34239d6a61..b93c70b0400 100644
--- a/llvm/lib/Transforms/Scalar/GVNPRE.cpp
+++ b/llvm/lib/Transforms/Scalar/GVNPRE.cpp
@@ -158,11 +158,14 @@ Value* GVNPRE::phi_translate(ValueTable& VN, std::set<Value*, ExprLT>& MS,
Value* newVal = BinaryOperator::create(BO->getOpcode(),
newOp1, newOp2,
BO->getName()+".gvnpre");
- add(VN, MS, newVal);
- if (!find_leader(VN, set, VN[newVal]))
+
+ if (!find_leader(VN, set, VN[newVal])) {
+ add(VN, MS, newVal);
return newVal;
- else
+ } else {
+ delete newVal;
return 0;
+ }
}
} else if (PHINode* P = dyn_cast<PHINode>(V)) {
if (P->getParent() == pred->getTerminator()->getSuccessor(0))
OpenPOWER on IntegriCloud