Remember to clear the maximal sets between functions.
authorOwen Anderson <resistor@mac.com>
Tue, 19 Jun 2007 04:32:55 +0000 (04:32 +0000)
committerOwen Anderson <resistor@mac.com>
Tue, 19 Jun 2007 04:32:55 +0000 (04:32 +0000)
Thanks to Nicholas for valgrinding this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37646 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/GVNPRE.cpp

index 91c1cd4d47b30af8b068252a9aa0f862a1a0cdd6..05a28b3f7db50377c9bee36626bc9967ba9b9510 100644 (file)
@@ -297,6 +297,8 @@ ValueTable::Expression ValueTable::create_expression(CmpInst* C) {
 void ValueTable::clear() {
   valueNumbering.clear();
   expressionNumbering.clear();
+  maximalExpressions.clear();
+  maximalValues.clear();
   nextValueNumber = 1;
 }
 
@@ -306,10 +308,9 @@ namespace {
     bool runOnFunction(Function &F);
   public:
     static char ID; // Pass identification, replacement for typeid
-    GVNPRE() : FunctionPass((intptr_t)&ID) { nextValueNumber = 1; }
+    GVNPRE() : FunctionPass((intptr_t)&ID) { }
 
   private:
-    uint32_t nextValueNumber;
     ValueTable VN;
     std::vector<Instruction*> createdExpressions;