1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00

* 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

llvm-svn: 9430
This commit is contained in:
Misha Brukman 2003-10-23 18:02:47 +00:00
parent 6ace5e86b1
commit 765938c377
2 changed files with 25 additions and 30 deletions

View File

@ -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 @@ void IGNode::pushOnStack() {
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::pushOnStack() {
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 @@ void IGNode::delAdjIGNode(const IGNode *Node) {
//-----------------------------------------------------------------------------
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();
}

View File

@ -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