Index: src/IceOperand.h |
diff --git a/src/IceOperand.h b/src/IceOperand.h |
index 3b92dfb0ca9e91ddf273572f9263f8d3667dce7e..7562382858d8117fe6f052c77ada8b68a25951df 100644 |
--- a/src/IceOperand.h |
+++ b/src/IceOperand.h |
@@ -87,7 +87,6 @@ public: |
protected: |
Operand(OperandKind Kind, Type Ty) |
: Ty(Ty), Kind(Kind), NumVars(0), Vars(NULL) {} |
- Operand(Operand &&O) = default; |
const Type Ty; |
const OperandKind Kind; |
@@ -362,8 +361,9 @@ public: |
private: |
typedef std::pair<InstNumberT, InstNumberT> RangeElementType; |
- // Assume a common case of 2 or fewer segments per live range. |
- typedef llvm::SmallVector<RangeElementType, 2> RangeType; |
+ // RangeType is arena-allocated from the Cfg's allocator. |
+ typedef std::vector<RangeElementType, CfgLocalAllocator<RangeElementType>> |
+ RangeType; |
RangeType Range; |
RegWeight Weight; |
// TrimmedBegin is an optimization for the overlaps() computation. |
@@ -385,7 +385,6 @@ Ostream &operator<<(Ostream &Str, const LiveRange &L); |
class Variable : public Operand { |
Variable(const Variable &) = delete; |
Variable &operator=(const Variable &) = delete; |
- Variable(Variable &&V) = default; |
public: |
static Variable *create(Cfg *Func, Type Ty, SizeT Index) { |
@@ -466,9 +465,9 @@ public: |
// Creates a temporary copy of the variable with a different type. |
// Used primarily for syntactic correctness of textual assembly |
// emission. Note that only basic information is copied, in |
- // particular not DefInst, IsArgument, Weight, LoVar, HiVar, |
- // VarsReal. |
- Variable asType(Type Ty); |
+ // particular not IsArgument, IsImplicitArgument, IgnoreLiveness, |
+ // RegNumTmp, Weight, Live, LoVar, HiVar, VarsReal. |
+ Variable *asType(Type Ty); |
void emit(const Cfg *Func) const override; |
using Operand::dump; |
@@ -479,9 +478,6 @@ public: |
return Kind >= kVariable && Kind <= kVariable_Num; |
} |
- // The destructor is public because of the asType() method. |
- ~Variable() override {} |
- |
protected: |
Variable(OperandKind K, Type Ty, SizeT Index) |
: Operand(K, Ty), Number(Index), NameIndex(Cfg::IdentifierIndexInvalid), |
@@ -492,6 +488,7 @@ protected: |
Vars[0] = this; |
NumVars = 1; |
} |
+ ~Variable() override {} |
// Number is unique across all variables, and is used as a |
// (bit)vector index for liveness analysis. |
const SizeT Number; |