| Index: src/IceOperand.cpp
|
| diff --git a/src/IceOperand.cpp b/src/IceOperand.cpp
|
| index 213318594e65ccf2d3a0dc085f13bd5be037e781..870ca175523ad20fc4ea9fb28b47b7a0526d6c5a 100644
|
| --- a/src/IceOperand.cpp
|
| +++ b/src/IceOperand.cpp
|
| @@ -24,6 +24,10 @@
|
|
|
| namespace Ice {
|
|
|
| +void Constant::initShouldBePooled() {
|
| + ShouldBePooled = TargetLowering::shouldBePooled(this);
|
| +}
|
| +
|
| bool operator==(const RelocatableTuple &A, const RelocatableTuple &B) {
|
| // A and B are the same if:
|
| // (1) they have the same name; and
|
| @@ -187,21 +191,22 @@ void LiveRange::trim(InstNumberT Lower) {
|
| ++TrimmedBegin;
|
| }
|
|
|
| -IceString Variable::getName(const Cfg *Func) const {
|
| - if (Func && NameIndex >= 0)
|
| - return Func->getIdentifierName(NameIndex);
|
| - return "__" + std::to_string(getIndex());
|
| +std::string Variable::getName(const Cfg *Func) const {
|
| + if (Func == nullptr)
|
| + return "__" + std::to_string(getIndex());
|
| + return Name.toString();
|
| }
|
|
|
| -const Variable *Variable::asType(Type Ty, RegNumT NewRegNum) const {
|
| +const Variable *Variable::asType(const Cfg *Func, Type Ty,
|
| + RegNumT NewRegNum) const {
|
| // Note: This returns a Variable, even if the "this" object is a subclass of
|
| // Variable.
|
| if (!BuildDefs::dump() || getType() == Ty)
|
| return this;
|
| static constexpr SizeT One = 1;
|
| Variable *V = new (CfgLocalAllocator<Variable>().allocate(One))
|
| - Variable(kVariable, Ty, Number);
|
| - V->NameIndex = NameIndex;
|
| + Variable(Func, kVariable, Ty, Number);
|
| + V->Name = Name;
|
| V->RegNum = NewRegNum.hasValue() ? NewRegNum : RegNum;
|
| V->StackOffset = StackOffset;
|
| return V;
|
| @@ -605,10 +610,11 @@ Ostream &operator<<(Ostream &Str, const RegWeight &W) {
|
| // =========== Immediate Randomization and Pooling routines ==============
|
| // Specialization of the template member function for ConstantInteger32
|
| // TODO(stichnot): try to move this specialization into a target-specific file.
|
| -template <>
|
| -bool ConstantInteger32::shouldBeRandomizedOrPooled(const GlobalContext *Ctx) {
|
| - uint32_t Threshold = Ctx->getFlags().getRandomizeAndPoolImmediatesThreshold();
|
| - if (Ctx->getFlags().getRandomizeAndPoolImmediatesOption() == RPI_None)
|
| +template <> bool ConstantInteger32::shouldBeRandomizedOrPooled() const {
|
| + uint32_t Threshold =
|
| + GlobalContext::getFlags().getRandomizeAndPoolImmediatesThreshold();
|
| + if (GlobalContext::getFlags().getRandomizeAndPoolImmediatesOption() ==
|
| + RPI_None)
|
| return false;
|
| if (getType() != IceType_i32 && getType() != IceType_i16 &&
|
| getType() != IceType_i8)
|
|
|