| Index: src/IceOperand.h
|
| diff --git a/src/IceOperand.h b/src/IceOperand.h
|
| index cbe0095805e16d5d049bf993942016c707d3344f..669ab6b93ff269232e6ecf56a69ea6bca30f88b8 100644
|
| --- a/src/IceOperand.h
|
| +++ b/src/IceOperand.h
|
| @@ -387,6 +387,9 @@ public:
|
| bool getIsImplicitArg() const { return IsImplicitArgument; }
|
| void setIsImplicitArg(bool Val = true) { IsImplicitArgument = Val; }
|
|
|
| + void setIgnoreLiveness() { IgnoreLiveness = true; }
|
| + bool getIgnoreLiveness() const { return IgnoreLiveness; }
|
| +
|
| int32_t getStackOffset() const { return StackOffset; }
|
| void setStackOffset(int32_t Offset) { StackOffset = Offset; }
|
|
|
| @@ -451,8 +454,9 @@ public:
|
| protected:
|
| Variable(OperandKind K, Type Ty, SizeT Index, const IceString &Name)
|
| : Operand(K, Ty), Number(Index), Name(Name), IsArgument(false),
|
| - IsImplicitArgument(false), StackOffset(0), RegNum(NoRegister),
|
| - RegNumTmp(NoRegister), Weight(1), LoVar(NULL), HiVar(NULL) {
|
| + IsImplicitArgument(false), IgnoreLiveness(false), StackOffset(0),
|
| + RegNum(NoRegister), RegNumTmp(NoRegister), Weight(1), LoVar(NULL),
|
| + HiVar(NULL) {
|
| Vars = VarsReal;
|
| Vars[0] = this;
|
| NumVars = 1;
|
| @@ -464,6 +468,10 @@ protected:
|
| IceString Name;
|
| bool IsArgument;
|
| bool IsImplicitArgument;
|
| + // IgnoreLiveness means that the variable should be ignored when
|
| + // constructing and validating live ranges. This is usually
|
| + // reserved for the stack pointer.
|
| + bool IgnoreLiveness;
|
| // StackOffset is the canonical location on stack (only if
|
| // RegNum==NoRegister || IsArgument).
|
| int32_t StackOffset;
|
|
|