aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/RegAlloc/IGNode.cpp
diff options
context:
space:
mode:
authorRuchira Sasanka <sasanka@students.uiuc.edu>2001-09-14 21:18:34 +0000
committerRuchira Sasanka <sasanka@students.uiuc.edu>2001-09-14 21:18:34 +0000
commit8e6047920dbf22a1edcbd98e65a8bc57a56c0e17 (patch)
tree9d89ad66ac0f1071f081416269c2c58f7af13ba9 /lib/CodeGen/RegAlloc/IGNode.cpp
parent94d86e9677c863a10741b888177085fe2d48d50c (diff)
*** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@580 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/RegAlloc/IGNode.cpp')
-rw-r--r--lib/CodeGen/RegAlloc/IGNode.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/CodeGen/RegAlloc/IGNode.cpp b/lib/CodeGen/RegAlloc/IGNode.cpp
new file mode 100644
index 0000000000..0e8a124cd3
--- /dev/null
+++ b/lib/CodeGen/RegAlloc/IGNode.cpp
@@ -0,0 +1,31 @@
+#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 );
+}