| Index: src/IceOperand.h
|
| diff --git a/src/IceOperand.h b/src/IceOperand.h
|
| index ea56b29f93269c31d2db3b584f7b16bc6d40dfaf..0addc883b41ed860d8c1c683b5bf956bc05cec40 100644
|
| --- a/src/IceOperand.h
|
| +++ b/src/IceOperand.h
|
| @@ -349,9 +349,9 @@ public:
|
| explicit RegWeight(uint32_t Weight) : Weight(Weight) {}
|
| RegWeight(const RegWeight &) = default;
|
| RegWeight &operator=(const RegWeight &) = default;
|
| - const static uint32_t Inf = ~0; /// Force regalloc to give a register
|
| - const static uint32_t Zero = 0; /// Force regalloc NOT to give a register
|
| - const static uint32_t Max = Inf - 1; /// Max natural weight.
|
| + constexpr static uint32_t Inf = ~0; /// Force regalloc to give a register
|
| + constexpr static uint32_t Zero = 0; /// Force regalloc NOT to give a register
|
| + constexpr static uint32_t Max = Inf - 1; /// Max natural weight.
|
| void addWeight(uint32_t Delta) {
|
| if (Delta == Inf)
|
| Weight = Inf;
|
| @@ -472,7 +472,7 @@ public:
|
| return "lv$" + getName(Func);
|
| }
|
|
|
| - static const int32_t NoRegister = -1;
|
| + static constexpr int32_t NoRegister = -1;
|
| bool hasReg() const { return getRegNum() != NoRegister; }
|
| int32_t getRegNum() const { return RegNum; }
|
| void setRegNum(int32_t NewRegNum) {
|
| @@ -507,11 +507,11 @@ public:
|
| return Live.endsBefore(Other->Live);
|
| }
|
| bool rangeOverlaps(const Variable *Other) const {
|
| - const bool UseTrimmed = true;
|
| + constexpr bool UseTrimmed = true;
|
| return Live.overlaps(Other->Live, UseTrimmed);
|
| }
|
| bool rangeOverlapsStart(const Variable *Other) const {
|
| - const bool UseTrimmed = true;
|
| + constexpr bool UseTrimmed = true;
|
| return Live.overlapsInst(Other->Live.getStart(), UseTrimmed);
|
| }
|
|
|
| @@ -519,8 +519,9 @@ public:
|
| /// primarily for syntactic correctness of textual assembly emission. Note
|
| /// that only basic information is copied, in particular not IsArgument,
|
| /// IsImplicitArgument, IgnoreLiveness, RegNumTmp, Live, LoVar, HiVar,
|
| - /// VarsReal.
|
| - Variable *asType(Type Ty);
|
| + /// VarsReal. If NewRegNum!=NoRegister, then that register assignment is made
|
| + /// instead of copying the existing assignment.
|
| + const Variable *asType(Type Ty, int32_t NewRegNum) const;
|
|
|
| void emit(const Cfg *Func) const override;
|
| using Operand::dump;
|
|
|