| #include "llvm/CodeGen/IGNode.h" |
| |
| |
| IGNode::IGNode(LiveRange *const PLR, unsigned int Ind): Index(Ind), |
| ParentLR(PLR) |
| { |
| OnStack = false; |
| CurDegree = -1 ; |
| ParentLR->setUserIGNode( this ); |
| } |
| |
| |
| |
| void IGNode::pushOnStack() // sets on to stack and |
| { // reduce the degree of neighbors |
| OnStack = true; |
| unsigned int neighs = AdjList.size(); |
| |
| for(unsigned int i=0; i < neighs; i++) (AdjList[i])->decCurDegree(); |
| } |
| |
| |
| void IGNode::delAdjIGNode(const IGNode *const Node) { |
| vector <IGNode *>::iterator It = AdjList.begin(); |
| |
| // find Node |
| for( ; It != AdjList.end() && (*It != Node); It++ ) ; |
| assert( It != AdjList.end() ); // the node must be there |
| |
| AdjList.erase( It ); |
| } |