| OLD | NEW |
| 1 //===- subzero/src/IceTargetLowering.h - Lowering interface -----*- C++ -*-===// | 1 //===- subzero/src/IceTargetLowering.h - Lowering interface -----*- 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 TargetLowering and LoweringContext | 10 // This file declares the TargetLowering and LoweringContext |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 // Lowers a list of "parallel" assignment instructions representing | 146 // Lowers a list of "parallel" assignment instructions representing |
| 147 // a topological sort of the Phi instructions. | 147 // a topological sort of the Phi instructions. |
| 148 virtual void lowerPhiAssignments(CfgNode *Node, | 148 virtual void lowerPhiAssignments(CfgNode *Node, |
| 149 const AssignList &Assignments) = 0; | 149 const AssignList &Assignments) = 0; |
| 150 // Tries to do branch optimization on a single instruction. Returns | 150 // Tries to do branch optimization on a single instruction. Returns |
| 151 // true if some optimization was done. | 151 // true if some optimization was done. |
| 152 virtual bool doBranchOpt(Inst * /*I*/, const CfgNode * /*NextNode*/) { | 152 virtual bool doBranchOpt(Inst * /*I*/, const CfgNode * /*NextNode*/) { |
| 153 return false; | 153 return false; |
| 154 } | 154 } |
| 155 | 155 |
| 156 virtual SizeT getNumRegisters() const = 0; |
| 156 // Returns a variable pre-colored to the specified physical | 157 // Returns a variable pre-colored to the specified physical |
| 157 // register. This is generally used to get very direct access to | 158 // register. This is generally used to get very direct access to |
| 158 // the register such as in the prolog or epilog or for marking | 159 // the register such as in the prolog or epilog or for marking |
| 159 // scratch registers as killed by a call. If a Type is not | 160 // scratch registers as killed by a call. If a Type is not |
| 160 // provided, a target-specific default type is used. | 161 // provided, a target-specific default type is used. |
| 161 virtual Variable *getPhysicalRegister(SizeT RegNum, | 162 virtual Variable *getPhysicalRegister(SizeT RegNum, |
| 162 Type Ty = IceType_void) = 0; | 163 Type Ty = IceType_void) = 0; |
| 163 // Returns a printable name for the register. | 164 // Returns a printable name for the register. |
| 164 virtual IceString getRegName(SizeT RegNum, Type Ty) const = 0; | 165 virtual IceString getRegName(SizeT RegNum, Type Ty) const = 0; |
| 165 | 166 |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 virtual void lower(const VariableDeclaration &Var) = 0; | 269 virtual void lower(const VariableDeclaration &Var) = 0; |
| 269 | 270 |
| 270 protected: | 271 protected: |
| 271 TargetGlobalInitLowering(GlobalContext *Ctx) : Ctx(Ctx) {} | 272 TargetGlobalInitLowering(GlobalContext *Ctx) : Ctx(Ctx) {} |
| 272 GlobalContext *Ctx; | 273 GlobalContext *Ctx; |
| 273 }; | 274 }; |
| 274 | 275 |
| 275 } // end of namespace Ice | 276 } // end of namespace Ice |
| 276 | 277 |
| 277 #endif // SUBZERO_SRC_ICETARGETLOWERING_H | 278 #endif // SUBZERO_SRC_ICETARGETLOWERING_H |
| OLD | NEW |