Index: src/IceTargetLowering.h |
diff --git a/src/IceTargetLowering.h b/src/IceTargetLowering.h |
index 6e172a2952b444f0260e4c33b87224e3a9cb0983..e46399d311e6aa73ffc7d8e658c772df3b194b4a 100644 |
--- a/src/IceTargetLowering.h |
+++ b/src/IceTargetLowering.h |
@@ -39,7 +39,7 @@ class LoweringContext { |
LoweringContext &operator=(const LoweringContext &) = delete; |
public: |
- LoweringContext() : Node(NULL) {} |
+ LoweringContext() : Node(NULL), LastInserted(NULL) {} |
~LoweringContext() {} |
void init(CfgNode *Node); |
Inst *getNextInst() const { |
@@ -69,6 +69,7 @@ public: |
private: |
// Node is the argument to Inst::updateVars(). |
CfgNode *Node; |
+ Inst *LastInserted; |
// Cur points to the current instruction being considered. It is |
// guaranteed to point to a non-deleted instruction, or to be End. |
InstList::iterator Cur; |
@@ -88,7 +89,6 @@ private: |
void skipDeleted(InstList::iterator &I) const; |
void advanceForward(InstList::iterator &I) const; |
- void advanceBackward(InstList::iterator &I) const; |
}; |
class TargetLowering { |
@@ -145,8 +145,10 @@ public: |
// Returns a variable pre-colored to the specified physical |
// register. This is generally used to get very direct access to |
// the register such as in the prolog or epilog or for marking |
- // scratch registers as killed by a call. |
- virtual Variable *getPhysicalRegister(SizeT RegNum) = 0; |
+ // scratch registers as killed by a call. If a Type is not |
+ // provided, a target-specific default type is used. |
+ virtual Variable *getPhysicalRegister(SizeT RegNum, |
+ Type Ty = IceType_void) = 0; |
// Returns a printable name for the register. |
virtual IceString getRegName(SizeT RegNum, Type Ty) const = 0; |