[llvm-commits] [llvm] r123925 - in /llvm/trunk/lib/CodeGen: SplitKit.cpp SplitKit.h
Jakob Stoklund Olesen
stoklund at 2pi.dk
Thu Jan 20 09:45:20 PST 2011
Author: stoklund
Date: Thu Jan 20 11:45:20 2011
New Revision: 123925
URL: http://llvm.org/viewvc/llvm-project?rev=123925&view=rev
Log:
Add LiveIntervalMap::dumpCache() to print out the cache used by the ssa update algorithm.
Modified:
llvm/trunk/lib/CodeGen/SplitKit.cpp
llvm/trunk/lib/CodeGen/SplitKit.h
Modified: llvm/trunk/lib/CodeGen/SplitKit.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SplitKit.cpp?rev=123925&r1=123924&r2=123925&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SplitKit.cpp (original)
+++ llvm/trunk/lib/CodeGen/SplitKit.cpp Thu Jan 20 11:45:20 2011
@@ -449,6 +449,7 @@
// VNInfo. Insert phi-def VNInfos along the path back to IdxMBB.
DEBUG(dbgs() << "\n Reaching defs for BB#" << IdxMBB->getNumber()
<< " at " << Idx << " in " << *li_ << '\n');
+ DEBUG(dumpCache());
// Blocks where li_ should be live-in.
SmallVector<MachineDomTreeNode*, 16> LiveIn;
@@ -586,6 +587,7 @@
assert(IdxVNI && "Didn't find value for Idx");
#ifndef NDEBUG
+ DEBUG(dumpCache());
// Check the liveOutCache_ invariants.
for (LiveOutMap::iterator I = liveOutCache_.begin(), E = liveOutCache_.end();
I != E; ++I) {
@@ -620,6 +622,25 @@
return IdxVNI;
}
+#ifndef NDEBUG
+void LiveIntervalMap::dumpCache() {
+ for (LiveOutMap::iterator I = liveOutCache_.begin(), E = liveOutCache_.end();
+ I != E; ++I) {
+ assert(I->first && "Null MBB entry in cache");
+ assert(I->second.first && "Null VNInfo in cache");
+ assert(I->second.second && "Null DomTreeNode in cache");
+ dbgs() << " cache: BB#" << I->first->getNumber()
+ << " has valno #" << I->second.first->id << " from BB#"
+ << I->second.second->getBlock()->getNumber() << ", preds";
+ for (MachineBasicBlock::pred_iterator PI = I->first->pred_begin(),
+ PE = I->first->pred_end(); PI != PE; ++PI)
+ dbgs() << " BB#" << (*PI)->getNumber();
+ dbgs() << '\n';
+ }
+ dbgs() << " cache: " << liveOutCache_.size() << " entries.\n";
+}
+#endif
+
// extendTo - Find the last li_ value defined in MBB at or before Idx. The
// parentli_ is assumed to be live at Idx. Extend the live range to Idx.
// Return the found VNInfo, or NULL.
Modified: llvm/trunk/lib/CodeGen/SplitKit.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SplitKit.h?rev=123925&r1=123924&r2=123925&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SplitKit.h (original)
+++ llvm/trunk/lib/CodeGen/SplitKit.h Thu Jan 20 11:45:20 2011
@@ -216,6 +216,9 @@
// The cache is also used as a visiteed set by mapValue().
LiveOutMap liveOutCache_;
+ // Dump the live-out cache to dbgs().
+ void dumpCache();
+
public:
LiveIntervalMap(LiveIntervals &lis,
MachineDominatorTree &mdt,
More information about the llvm-commits
mailing list