aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/RegAlloc/InterferenceGraph.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/RegAlloc/InterferenceGraph.cpp')
-rw-r--r--lib/CodeGen/RegAlloc/InterferenceGraph.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/lib/CodeGen/RegAlloc/InterferenceGraph.cpp b/lib/CodeGen/RegAlloc/InterferenceGraph.cpp
index 5f14631b06..9e7372177b 100644
--- a/lib/CodeGen/RegAlloc/InterferenceGraph.cpp
+++ b/lib/CodeGen/RegAlloc/InterferenceGraph.cpp
@@ -10,6 +10,12 @@
#include <algorithm>
using std::cerr;
+// for asserting this IG node is infact in the IGNodeList of this class
+inline static void assertIGNode(const InterferenceGraph *IG,
+ const IGNode *Node) {
+ assert(IG->getIGNodeList()[Node->getIndex()] == Node);
+}
+
//-----------------------------------------------------------------------------
// Constructor: Records the RegClass and initalizes IGNodeList.
// The matrix is NOT yet created by the constructor. Call createGraph()
@@ -79,14 +85,14 @@ void InterferenceGraph::setInterference(const LiveRange *const LR1,
const LiveRange *const LR2 ) {
assert(LR1 != LR2);
- IGNode *const IGNode1 = LR1->getUserIGNode();
- IGNode *const IGNode2 = LR2->getUserIGNode();
+ IGNode *IGNode1 = LR1->getUserIGNode();
+ IGNode *IGNode2 = LR2->getUserIGNode();
- assertIGNode( IGNode1 );
- assertIGNode( IGNode2 );
+ assertIGNode(this, IGNode1);
+ assertIGNode(this, IGNode2);
- const unsigned int row = IGNode1->getIndex();
- const unsigned int col = IGNode2->getIndex();
+ unsigned row = IGNode1->getIndex();
+ unsigned col = IGNode2->getIndex();
char *val;
@@ -111,8 +117,8 @@ unsigned InterferenceGraph::getInterference(const LiveRange *const LR1,
const LiveRange *const LR2 ) const {
assert(LR1 != LR2);
- assertIGNode( LR1->getUserIGNode() );
- assertIGNode( LR2->getUserIGNode() );
+ assertIGNode(this, LR1->getUserIGNode());
+ assertIGNode(this, LR2->getUserIGNode());
const unsigned int row = LR1->getUserIGNode()->getIndex();
const unsigned int col = LR2->getUserIGNode()->getIndex();
@@ -142,8 +148,8 @@ void InterferenceGraph::mergeIGNodesOfLRs(const LiveRange *LR1,
IGNode *const DestNode = LR1->getUserIGNode();
IGNode *SrcNode = LR2->getUserIGNode();
- assertIGNode( DestNode );
- assertIGNode( SrcNode );
+ assertIGNode(this, DestNode);
+ assertIGNode(this, SrcNode);
if( DEBUG_RA >= RA_DEBUG_Interference) {
cerr << "Merging LRs: \""; printSet(*LR1);