[llvm-commits] CVS: llvm/lib/CodeGen/RegAlloc/IGNode.cpp IGNode.h
Misha Brukman
brukman at cs.uiuc.edu
Thu Oct 23 13:03:01 PDT 2003
Changes in directory llvm/lib/CodeGen/RegAlloc:
IGNode.cpp updated: 1.10 -> 1.11
IGNode.h updated: 1.18 -> 1.19
---
Log message:
* Use C++ style comments instead of C-style
* Make file description more readable
* Make code layout more consistent, include comment in assert so it's visible
during execution if it hits
---
Diffs of the changes: (+25 -30)
Index: llvm/lib/CodeGen/RegAlloc/IGNode.cpp
diff -u llvm/lib/CodeGen/RegAlloc/IGNode.cpp:1.10 llvm/lib/CodeGen/RegAlloc/IGNode.cpp:1.11
--- llvm/lib/CodeGen/RegAlloc/IGNode.cpp:1.10 Mon Oct 20 14:43:16 2003
+++ llvm/lib/CodeGen/RegAlloc/IGNode.cpp Thu Oct 23 13:02:47 2003
@@ -7,7 +7,8 @@
//
//===----------------------------------------------------------------------===//
//
-// class IGNode for coloring-based register allocation for LLVM.
+// This file implements an Interference graph node for coloring-based register
+// allocation.
//
//===----------------------------------------------------------------------===//
@@ -28,7 +29,7 @@
assert(0 && "Invalid adj list size");
}
- for(int i=0; i < neighs; i++)
+ for (int i=0; i < neighs; i++)
AdjList[i]->decCurDegree();
}
@@ -39,7 +40,7 @@
void IGNode::delAdjIGNode(const IGNode *Node) {
std::vector<IGNode *>::iterator It=find(AdjList.begin(), AdjList.end(), Node);
- assert( It != AdjList.end() ); // the node must be there
+ assert(It != AdjList.end() && "The node must be there!");
AdjList.erase(It);
}
@@ -48,13 +49,10 @@
//-----------------------------------------------------------------------------
unsigned
-IGNode::getCombinedDegree(const IGNode* otherNode) const
-{
+IGNode::getCombinedDegree(const IGNode* otherNode) const {
std::vector<IGNode*> nbrs(AdjList);
nbrs.insert(nbrs.end(), otherNode->AdjList.begin(), otherNode->AdjList.end());
sort(nbrs.begin(), nbrs.end());
std::vector<IGNode*>::iterator new_end = unique(nbrs.begin(), nbrs.end());
return new_end - nbrs.begin();
}
-
-
Index: llvm/lib/CodeGen/RegAlloc/IGNode.h
diff -u llvm/lib/CodeGen/RegAlloc/IGNode.h:1.18 llvm/lib/CodeGen/RegAlloc/IGNode.h:1.19
--- llvm/lib/CodeGen/RegAlloc/IGNode.h:1.18 Tue Oct 21 10:24:53 2003
+++ llvm/lib/CodeGen/RegAlloc/IGNode.h Thu Oct 23 13:02:47 2003
@@ -6,29 +6,26 @@
// the University of Illinois Open Source License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
-
-/* Title: IGNode.h -*- C++ -*-
- Author: Ruchira Sasanka
- Date: July 25, 01
- Purpose: Represents a node in an interference graph.
- Notes:
-
- For efficiency, the AdjList is updated only once - ie. we can add but not
- remove nodes from AdjList.
-
- The removal of nodes from IG is simulated by decrementing the CurDegree.
- If this node is put on stack (that is removed from IG), the CurDegree of all
- the neighbors are decremented and this node is marked OnStack. Hence
- the effective neighbors in the AdjList are the ones that do not have the
- OnStack flag set (therefore, they are in the IG).
-
- The methods that modify/use the CurDegree must be called only
- after all modifications to the IG are over (i.e., all neighbors are fixed).
-
- The vector representation is the most efficient one for adj list.
- Though nodes are removed when coalescing is done, we access it in sequence
- for far many times when coloring (colorNode()).
-*/
+//
+// This file represents a node in an interference graph.
+//
+// For efficiency, the AdjList is updated only once - ie. we can add but not
+// remove nodes from AdjList.
+//
+// The removal of nodes from IG is simulated by decrementing the CurDegree.
+// If this node is put on stack (that is removed from IG), the CurDegree of all
+// the neighbors are decremented and this node is marked OnStack. Hence
+// the effective neighbors in the AdjList are the ones that do not have the
+// OnStack flag set (therefore, they are in the IG).
+//
+// The methods that modify/use the CurDegree must be called only
+// after all modifications to the IG are over (i.e., all neighbors are fixed).
+//
+// The vector representation is the most efficient one for adj list.
+// Though nodes are removed when coalescing is done, we access it in sequence
+// for far many times when coloring (colorNode()).
+//
+//===----------------------------------------------------------------------===//
#ifndef IGNODE_H
#define IGNODE_H
More information about the llvm-commits
mailing list