+//===-- InterferenceGraph.h - Interference graph for register coloring -*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file was developed by the LLVM research group and is distributed under
+// the University of Illinois Open Source License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
/* Title: InterferenceGraph.h -*- C++ -*-
Author: Ruchira Sasanka
Date: July 20, 01
setCurDegreeOfIGNodes() before pushing IGNodes on to stack for coloring.
*/
+#ifndef INTERFERENCEGRAPH_H
+#define INTERFERENCEGRAPH_H
-#ifndef INTERFERENCE_GRAPH_H
-#define INTERFERENCE_GRAPH_H
-
+#include <vector>
-#include "llvm/CodeGen/IGNode.h"
-
-typedef std::vector <IGNode *> IGNodeListType;
+namespace llvm {
+class LiveRange;
+class RegClass;
+class IGNode;
class InterferenceGraph {
char **IG; // a poiner to the interference graph
unsigned int Size; // size of a side of the IG
RegClass *const RegCl; // RegCl contains this IG
- IGNodeListType IGNodeList; // a list of all IGNodes in a reg class
+ std::vector<IGNode *> IGNodeList; // a list of all IGNodes in a reg class
public:
// the matrix is not yet created by the constructor. Call createGraph()
void mergeIGNodesOfLRs(const LiveRange *LR1, LiveRange *LR2);
- IGNodeListType &getIGNodeList() { return IGNodeList; }
- const IGNodeListType &getIGNodeList() const { return IGNodeList; }
+ std::vector<IGNode *> &getIGNodeList() { return IGNodeList; }
+ const std::vector<IGNode *> &getIGNodeList() const { return IGNodeList; }
void setCurDegreeOfIGNodes();
void printIGNodeList() const;
};
+} // End llvm namespace
+
#endif