RegisterPressure: Hide non-const iterators of PressureDiff
It is too easy to accidentally violate the ordering requirements when modifying the PressureDiff entries through iterators. llvm-svn: 250590
This commit is contained in:
parent
7f47272cda
commit
96e411b90c
|
|
@ -125,11 +125,13 @@ class PressureDiff {
|
||||||
enum { MaxPSets = 16 };
|
enum { MaxPSets = 16 };
|
||||||
|
|
||||||
PressureChange PressureChanges[MaxPSets];
|
PressureChange PressureChanges[MaxPSets];
|
||||||
public:
|
|
||||||
typedef PressureChange* iterator;
|
typedef PressureChange* iterator;
|
||||||
|
iterator nonconst_begin() { return &PressureChanges[0]; }
|
||||||
|
iterator nonconst_end() { return &PressureChanges[MaxPSets]; }
|
||||||
|
|
||||||
|
public:
|
||||||
typedef const PressureChange* const_iterator;
|
typedef const PressureChange* const_iterator;
|
||||||
iterator begin() { return &PressureChanges[0]; }
|
|
||||||
iterator end() { return &PressureChanges[MaxPSets]; }
|
|
||||||
const_iterator begin() const { return &PressureChanges[0]; }
|
const_iterator begin() const { return &PressureChanges[0]; }
|
||||||
const_iterator end() const { return &PressureChanges[MaxPSets]; }
|
const_iterator end() const { return &PressureChanges[MaxPSets]; }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -389,7 +389,7 @@ void PressureDiff::addPressureChange(unsigned RegUnit, bool IsDec,
|
||||||
int Weight = IsDec ? -PSetI.getWeight() : PSetI.getWeight();
|
int Weight = IsDec ? -PSetI.getWeight() : PSetI.getWeight();
|
||||||
for (; PSetI.isValid(); ++PSetI) {
|
for (; PSetI.isValid(); ++PSetI) {
|
||||||
// Find an existing entry in the pressure diff for this PSet.
|
// Find an existing entry in the pressure diff for this PSet.
|
||||||
PressureDiff::iterator I = begin(), E = end();
|
PressureDiff::iterator I = nonconst_begin(), E = nonconst_end();
|
||||||
for (; I != E && I->isValid(); ++I) {
|
for (; I != E && I->isValid(); ++I) {
|
||||||
if (I->getPSet() >= *PSetI)
|
if (I->getPSet() >= *PSetI)
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue