OLD | NEW |
1 //===- subzero/src/IceCfgNode.h - Control flow graph node -------*- C++ -*-===// | 1 //===- subzero/src/IceCfgNode.h - Control flow graph node -------*- C++ -*-===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This file declares the CfgNode class, which represents a single | 10 // This file declares the CfgNode class, which represents a single |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 // instruction and therefore needs an epilog. | 45 // instruction and therefore needs an epilog. |
46 void setHasReturn() { HasReturn = true; } | 46 void setHasReturn() { HasReturn = true; } |
47 bool getHasReturn() const { return HasReturn; } | 47 bool getHasReturn() const { return HasReturn; } |
48 | 48 |
49 // Access predecessor and successor edge lists. | 49 // Access predecessor and successor edge lists. |
50 const NodeList &getInEdges() const { return InEdges; } | 50 const NodeList &getInEdges() const { return InEdges; } |
51 const NodeList &getOutEdges() const { return OutEdges; } | 51 const NodeList &getOutEdges() const { return OutEdges; } |
52 | 52 |
53 // Manage the instruction list. | 53 // Manage the instruction list. |
54 InstList &getInsts() { return Insts; } | 54 InstList &getInsts() { return Insts; } |
| 55 PhiList &getPhis() { return Phis; } |
55 void appendInst(Inst *Inst); | 56 void appendInst(Inst *Inst); |
56 void renumberInstructions(); | 57 void renumberInstructions(); |
57 // Rough and generally conservative estimate of the number of | 58 // Rough and generally conservative estimate of the number of |
58 // instructions in the block. It is updated when an instruction is | 59 // instructions in the block. It is updated when an instruction is |
59 // added, but not when deleted. It is recomputed during | 60 // added, but not when deleted. It is recomputed during |
60 // renumberInstructions(). | 61 // renumberInstructions(). |
61 InstNumberT getInstCountEstimate() const { return InstCountEstimate; } | 62 InstNumberT getInstCountEstimate() const { return InstCountEstimate; } |
62 | 63 |
63 // Add a predecessor edge to the InEdges list for each of this | 64 // Add a predecessor edge to the InEdges list for each of this |
64 // node's successors. | 65 // node's successors. |
(...skipping 21 matching lines...) Expand all Loading... |
86 InstNumberT InstCountEstimate; // rough instruction count estimate | 87 InstNumberT InstCountEstimate; // rough instruction count estimate |
87 NodeList InEdges; // in no particular order | 88 NodeList InEdges; // in no particular order |
88 NodeList OutEdges; // in no particular order | 89 NodeList OutEdges; // in no particular order |
89 PhiList Phis; // unordered set of phi instructions | 90 PhiList Phis; // unordered set of phi instructions |
90 InstList Insts; // ordered list of non-phi instructions | 91 InstList Insts; // ordered list of non-phi instructions |
91 }; | 92 }; |
92 | 93 |
93 } // end of namespace Ice | 94 } // end of namespace Ice |
94 | 95 |
95 #endif // SUBZERO_SRC_ICECFGNODE_H | 96 #endif // SUBZERO_SRC_ICECFGNODE_H |
OLD | NEW |