OLD | NEW |
1 //===- subzero/src/IceOperand.h - High-level operands -----------*- C++ -*-===// | 1 //===- subzero/src/IceOperand.h - High-level operands -----------*- 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 Operand class and its target-independent | 10 // This file declares the Operand class and its target-independent |
(...skipping 28 matching lines...) Expand all Loading... |
39 kConstFloat, | 39 kConstFloat, |
40 kConstDouble, | 40 kConstDouble, |
41 kConstRelocatable, | 41 kConstRelocatable, |
42 kConstUndef, | 42 kConstUndef, |
43 kConst_Target, // leave space for target-specific constant kinds | 43 kConst_Target, // leave space for target-specific constant kinds |
44 kConst_Num = kConst_Target + MaxTargetKinds, | 44 kConst_Num = kConst_Target + MaxTargetKinds, |
45 kVariable, | 45 kVariable, |
46 kVariable_Target, // leave space for target-specific variable kinds | 46 kVariable_Target, // leave space for target-specific variable kinds |
47 kVariable_Num = kVariable_Target + MaxTargetKinds, | 47 kVariable_Num = kVariable_Target + MaxTargetKinds, |
48 // Target-specific operand classes use kTarget as the starting | 48 // Target-specific operand classes use kTarget as the starting |
49 // point for their Kind enum space. | 49 // point for their Kind enum space. Note that the value-spaces are shared |
| 50 // across targets. To avoid confusion over the definition of shared |
| 51 // values, an object specific to one target should never be passed |
| 52 // to a different target. |
50 kTarget | 53 kTarget |
51 }; | 54 }; |
52 OperandKind getKind() const { return Kind; } | 55 OperandKind getKind() const { return Kind; } |
53 Type getType() const { return Ty; } | 56 Type getType() const { return Ty; } |
54 | 57 |
55 // Every Operand keeps an array of the Variables referenced in | 58 // Every Operand keeps an array of the Variables referenced in |
56 // the operand. This is so that the liveness operations can get | 59 // the operand. This is so that the liveness operations can get |
57 // quick access to the variables of interest, without having to dig | 60 // quick access to the variables of interest, without having to dig |
58 // so far into the operand. | 61 // so far into the operand. |
59 SizeT getNumVars() const { return NumVars; } | 62 SizeT getNumVars() const { return NumVars; } |
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
628 private: | 631 private: |
629 const Cfg *Func; | 632 const Cfg *Func; |
630 MetadataKind Kind; | 633 MetadataKind Kind; |
631 std::vector<VariableTracking> Metadata; | 634 std::vector<VariableTracking> Metadata; |
632 const static InstDefList NoDefinitions; | 635 const static InstDefList NoDefinitions; |
633 }; | 636 }; |
634 | 637 |
635 } // end of namespace Ice | 638 } // end of namespace Ice |
636 | 639 |
637 #endif // SUBZERO_SRC_ICEOPERAND_H | 640 #endif // SUBZERO_SRC_ICEOPERAND_H |
OLD | NEW |