diff options
| author | Owen Anderson <resistor@mac.com> | 2007-06-05 22:11:49 +0000 |
|---|---|---|
| committer | Owen Anderson <resistor@mac.com> | 2007-06-05 22:11:49 +0000 |
| commit | c84720913a14fb1f634f75638f2f23ba5c203d55 (patch) | |
| tree | 4a567b8193c0638f709a2798dfc9e34d08135870 /llvm/lib/Transforms | |
| parent | c1a0b8ce1d4de86218cfb90399bb9400b390eaa1 (diff) | |
| download | bcm5719-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.cpp | 9 |
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)) |

