[llvm-commits] [llvm] r61350 - /llvm/trunk/lib/Transforms/Scalar/GVN.cpp
Bill Wendling
isanbard at gmail.com
Mon Dec 22 14:14:08 PST 2008
Author: void
Date: Mon Dec 22 16:14:07 2008
New Revision: 61350
URL: http://llvm.org/viewvc/llvm-project?rev=61350&view=rev
Log:
Add verification that deleted instruction isn't hiding in the PHI map.
Modified:
llvm/trunk/lib/Transforms/Scalar/GVN.cpp
Modified: llvm/trunk/lib/Transforms/Scalar/GVN.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/GVN.cpp?rev=61350&r1=61349&r2=61350&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/GVN.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/GVN.cpp Mon Dec 22 16:14:07 2008
@@ -40,11 +40,11 @@
#include <cstdio>
using namespace llvm;
-STATISTIC(NumGVNInstr, "Number of instructions deleted");
-STATISTIC(NumGVNLoad, "Number of loads deleted");
-STATISTIC(NumGVNPRE, "Number of instructions PRE'd");
+STATISTIC(NumGVNInstr, "Number of instructions deleted");
+STATISTIC(NumGVNLoad, "Number of loads deleted");
+STATISTIC(NumGVNPRE, "Number of instructions PRE'd");
STATISTIC(NumGVNBlocks, "Number of blocks merged");
-STATISTIC(NumPRELoad, "Number of loads PRE'd");
+STATISTIC(NumPRELoad, "Number of loads PRE'd");
static cl::opt<bool> EnablePRE("enable-pre",
cl::init(true), cl::Hidden);
@@ -1581,6 +1581,7 @@
// are not value numbered precisely.
if (!success) {
delete PREInstr;
+ DEBUG(verifyRemoved(PREInstr));
continue;
}
@@ -1659,4 +1660,16 @@
/// internal data structures.
void GVN::verifyRemoved(const Instruction *I) const {
VN.verifyRemoved(I);
+
+ // Walk through the PHI map to make sure the instruction isn't hiding in there
+ // somewhere.
+ for (PhiMapType::iterator
+ II = phiMap.begin(), IE = phiMap.end(); II != IE; ++II) {
+ assert(II->first != I && "Inst is still a key in PHI map!");
+
+ for (SmallPtrSet<Instruction*, 4>::iterator
+ SI = II->second.begin(), SE = II->second.end(); SI != SE; ++SI) {
+ assert(*SI != I && "Inst is still a value in PHI map!");
+ }
+ }
}
More information about the llvm-commits
mailing list