| Index: src/IceClFlags.h
|
| diff --git a/src/IceClFlags.h b/src/IceClFlags.h
|
| index d89186c886e3502746686a6ddad6707664b4ed44..ee650c40cbd96937017f98b8c948e48823133a6a 100644
|
| --- a/src/IceClFlags.h
|
| +++ b/src/IceClFlags.h
|
| @@ -28,6 +28,8 @@ class ClFlags {
|
| ClFlags &operator=(const ClFlags &) = delete;
|
|
|
| public:
|
| + using StringVector = std::vector<IceString>;
|
| +
|
| /// User defined constructor.
|
| ClFlags() { resetClFlags(*this); }
|
|
|
| @@ -115,6 +117,16 @@ public:
|
| /// Set ClFlags::EnableBlockProfile to a new value
|
| void setEnableBlockProfile(bool NewValue) { EnableBlockProfile = NewValue; }
|
|
|
| + /// Get the restricted list of registers to use, for corresponding register
|
| + /// classes, in register allocation.
|
| + const StringVector &getUseRestrictedRegisters() const {
|
| + return UseRestrictedRegisters;
|
| + }
|
| + void clearUseRestrictedRegisters() { UseRestrictedRegisters.clear(); }
|
| + void setUseRestrictedRegisters(const StringVector &Registers) {
|
| + UseRestrictedRegisters = Registers;
|
| + }
|
| +
|
| /// Get the value of ClFlags::ForceMemIntrinOpt
|
| bool getForceMemIntrinOpt() const { return ForceMemIntrinOpt; }
|
| /// Set ClFlags::ForceMemIntrinOpt to a new value
|
| @@ -186,6 +198,13 @@ public:
|
| /// Set ClFlags::UseNonsfi to a new value
|
| void setUseNonsfi(bool NewValue) { UseNonsfi = NewValue; }
|
|
|
| + /// Get the list of registers exluded in register allocation.
|
| + const StringVector &getExcludedRegisters() const { return ExcludedRegisters; }
|
| + void clearExcludedRegisters() { ExcludedRegisters.clear(); }
|
| + void setExcludedRegisters(const StringVector &Registers) {
|
| + ExcludedRegisters = Registers;
|
| + }
|
| +
|
| /// Get the value of ClFlags::UseSandboxing
|
| bool getUseSandboxing() const { return UseSandboxing; }
|
| /// Set ClFlags::UseSandboxing to a new value
|
| @@ -390,6 +409,8 @@ private:
|
| bool DumpStats;
|
| /// see anonymous_namespace{IceClFlags.cpp}::EnableBlockProfile
|
| bool EnableBlockProfile;
|
| + /// see anonymous_namespace{IceClFlags.cpp}::ExcludedRegisters;
|
| + StringVector ExcludedRegisters;
|
| /// see anonymous_namespace{IceClFlags.cpp}::ForceMemIntrinOpt
|
| bool ForceMemIntrinOpt;
|
| /// see anonymous_namespace{IceClFlags.cpp}::FunctionSections
|
| @@ -422,6 +443,8 @@ private:
|
| bool TimeEachFunction;
|
| /// see anonymous_namespace{IceClFlags.cpp}::UseNonsfi
|
| bool UseNonsfi;
|
| + /// see anonymous_namespace{IceClFlags.cpp}::UseRegistrictedRegisters;
|
| + StringVector UseRestrictedRegisters;
|
| /// see anonymous_namespace{IceClFlags.cpp}::UseSandboxing
|
| bool UseSandboxing;
|
| /// see anonymous_namespace{IceClFlags.cpp}::OLevel
|
|
|