mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-27 14:32:21 +00:00
[MachineLICM] Small cleanup: Constify and rangeify.
NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234018 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8fea4abae0
commit
efa23ae2a9
@ -214,7 +214,8 @@ namespace {
|
||||
/// CanCauseHighRegPressure - Visit BBs from header to current BB,
|
||||
/// check if hoisting an instruction of the given cost matrix can cause high
|
||||
/// register pressure.
|
||||
bool CanCauseHighRegPressure(DenseMap<unsigned, int> &Cost, bool Cheap);
|
||||
bool CanCauseHighRegPressure(const DenseMap<unsigned, int> &Cost,
|
||||
bool Cheap);
|
||||
|
||||
/// UpdateBackTraceRegPressure - Traverse the back trace from header to
|
||||
/// the current block and update their register pressures to reflect the
|
||||
@ -1125,27 +1126,23 @@ bool MachineLICM::IsCheapInstruction(MachineInstr &MI) const {
|
||||
/// CanCauseHighRegPressure - Visit BBs from header to current BB, check
|
||||
/// if hoisting an instruction of the given cost matrix can cause high
|
||||
/// register pressure.
|
||||
bool MachineLICM::CanCauseHighRegPressure(DenseMap<unsigned, int> &Cost,
|
||||
bool MachineLICM::CanCauseHighRegPressure(const DenseMap<unsigned, int>& Cost,
|
||||
bool CheapInstr) {
|
||||
for (DenseMap<unsigned, int>::iterator CI = Cost.begin(), CE = Cost.end();
|
||||
CI != CE; ++CI) {
|
||||
if (CI->second <= 0)
|
||||
for (const auto &ClassAndCost : Cost) {
|
||||
if (ClassAndCost.second <= 0)
|
||||
continue;
|
||||
|
||||
unsigned RCId = CI->first;
|
||||
unsigned Limit = RegLimit[RCId];
|
||||
int Cost = CI->second;
|
||||
unsigned Class = ClassAndCost.first;
|
||||
int Limit = RegLimit[Class];
|
||||
|
||||
// Don't hoist cheap instructions if they would increase register pressure,
|
||||
// even if we're under the limit.
|
||||
if (CheapInstr && !HoistCheapInsts)
|
||||
return true;
|
||||
|
||||
for (unsigned i = BackTrace.size(); i != 0; --i) {
|
||||
SmallVectorImpl<unsigned> &RP = BackTrace[i-1];
|
||||
if (RP[RCId] + Cost >= Limit)
|
||||
for (const auto &RP : BackTrace)
|
||||
if (static_cast<int>(RP[Class]) + ClassAndCost.second >= Limit)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user