[llvm-commits] CVS: llvm/lib/CodeGen/RegAllocLinearScan.cpp LiveIntervals.cpp
Alkis Evlogimenos
alkis at cs.uiuc.edu
Sat Jan 31 19:28:01 PST 2004
Changes in directory llvm/lib/CodeGen:
RegAllocLinearScan.cpp updated: 1.34 -> 1.35
LiveIntervals.cpp updated: 1.38 -> 1.39
---
Log message:
Use MRegisterInfo::isPhysicalRegister and
MRegisterInfo::isVirtualRegister.
---
Diffs of the changes: (+33 -33)
Index: llvm/lib/CodeGen/RegAllocLinearScan.cpp
diff -u llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.34 llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.35
--- llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.34 Thu Jan 22 17:08:44 2004
+++ llvm/lib/CodeGen/RegAllocLinearScan.cpp Sat Jan 31 19:27:01 2004
@@ -177,7 +177,7 @@
for (; i != e; ++i) {
std::cerr << "\t\t" << **i << " -> ";
unsigned reg = (*i)->reg;
- if (reg >= MRegisterInfo::FirstVirtualRegister) {
+ if (MRegisterInfo::isVirtualRegister(reg)) {
Virt2PhysMap::const_iterator it = v2pMap_.find(reg);
reg = (it == v2pMap_.end() ? 0 : it->second);
}
@@ -267,7 +267,7 @@
processInactiveIntervals(cur);
// if this register is fixed we are done
- if (cur->reg < MRegisterInfo::FirstVirtualRegister) {
+ if (MRegisterInfo::isPhysicalRegister(cur->reg)) {
markPhysRegNotFree(cur->reg);
active_.push_back(cur);
}
@@ -282,7 +282,7 @@
for (IntervalPtrs::const_iterator i = inactive_.begin(),
e = inactive_.end(); i != e; ++i) {
unsigned reg = (*i)->reg;
- if (reg >= MRegisterInfo::FirstVirtualRegister)
+ if (MRegisterInfo::isVirtualRegister(reg))
reg = v2pMap_[reg];
if (cur->overlaps(**i)) {
@@ -294,7 +294,7 @@
// mark the register as not free
for (IntervalPtrs::const_iterator i = fixed_.begin(),
e = fixed_.end(); i != e; ++i) {
- assert((*i)->reg < MRegisterInfo::FirstVirtualRegister &&
+ assert(MRegisterInfo::isPhysicalRegister((*i)->reg) &&
"virtual register interval in fixed set?");
if (cur->overlaps(**i))
markPhysRegNotFree((*i)->reg);
@@ -320,7 +320,7 @@
for (IntervalPtrs::iterator i = active_.begin(); i != active_.end(); ++i) {
unsigned reg = (*i)->reg;
DEBUG(std::cerr << "\t\tinterval " << **i << " expired\n");
- if (reg >= MRegisterInfo::FirstVirtualRegister) {
+ if (MRegisterInfo::isVirtualRegister(reg)) {
reg = v2pMap_[reg];
}
markPhysRegFree(reg);
@@ -339,17 +339,17 @@
unsigned reg = i->first;
unsigned rep = li_->rep(reg);
- assert((rep < MRegisterInfo::FirstVirtualRegister ||
+ assert((MRegisterInfo::isPhysicalRegister(rep) ||
v2pMap_.find(rep) != v2pMap_.end() ||
v2ssMap_.find(rep) != v2ssMap_.end()) &&
"representative register is not allocated!");
- assert(reg >= MRegisterInfo::FirstVirtualRegister &&
+ assert(MRegisterInfo::isVirtualRegister(reg) &&
v2pMap_.find(reg) == v2pMap_.end() &&
v2ssMap_.find(reg) == v2ssMap_.end() &&
"coalesced register is already allocated!");
- if (rep < MRegisterInfo::FirstVirtualRegister) {
+ if (MRegisterInfo::isPhysicalRegister(rep)) {
v2pMap_.insert(std::make_pair(reg, rep));
}
else {
@@ -400,11 +400,11 @@
unsigned srcReg, dstReg;
if (tii.isMoveInstr(**currentInstr_, srcReg, dstReg) &&
- ((srcReg < MRegisterInfo::FirstVirtualRegister &&
- dstReg < MRegisterInfo::FirstVirtualRegister &&
+ ((MRegisterInfo::isPhysicalRegister(srcReg) &&
+ MRegisterInfo::isPhysicalRegister(dstReg) &&
srcReg == dstReg) ||
- (srcReg >= MRegisterInfo::FirstVirtualRegister &&
- dstReg >= MRegisterInfo::FirstVirtualRegister &&
+ (MRegisterInfo::isVirtualRegister(srcReg) &&
+ MRegisterInfo::isVirtualRegister(dstReg) &&
v2ssMap_[srcReg] == v2ssMap_[dstReg]))) {
delete *currentInstr_;
currentInstr_ = currentMbb_->erase(currentInstr_);
@@ -412,7 +412,7 @@
DEBUG(std::cerr << "\t\tdeleting instruction\n");
continue;
}
-
+
DEBUG(std::cerr << "\t\tloading temporarily used operands to "
"registers:\n");
for (unsigned i = 0, e = (*currentInstr_)->getNumOperands();
@@ -489,7 +489,7 @@
for (LiveIntervals::Intervals::const_iterator i = li.begin(), e = li.end();
i != e; ++i) {
- if (i->reg < MRegisterInfo::FirstVirtualRegister)
+ if (MRegisterInfo::isPhysicalRegister(i->reg))
fixed_.push_back(&*i);
else
unhandled_.push_back(&*i);
@@ -504,7 +504,7 @@
// remove expired intervals
if ((*i)->expiredAt(cur->start())) {
DEBUG(std::cerr << "\t\tinterval " << **i << " expired\n");
- if (reg >= MRegisterInfo::FirstVirtualRegister) {
+ if (MRegisterInfo::isVirtualRegister(reg)) {
reg = v2pMap_[reg];
}
markPhysRegFree(reg);
@@ -514,7 +514,7 @@
// move inactive intervals to inactive list
else if (!(*i)->liveAt(cur->start())) {
DEBUG(std::cerr << "\t\t\tinterval " << **i << " inactive\n");
- if (reg >= MRegisterInfo::FirstVirtualRegister) {
+ if (MRegisterInfo::isVirtualRegister(reg)) {
reg = v2pMap_[reg];
}
markPhysRegFree(reg);
@@ -544,7 +544,7 @@
// move re-activated intervals in active list
else if ((*i)->liveAt(cur->start())) {
DEBUG(std::cerr << "\t\t\tinterval " << **i << " active\n");
- if (reg >= MRegisterInfo::FirstVirtualRegister) {
+ if (MRegisterInfo::isVirtualRegister(reg)) {
reg = v2pMap_[reg];
}
markPhysRegNotFree(reg);
@@ -585,7 +585,7 @@
for (IntervalPtrs::const_iterator i = active_.begin(), e = active_.end();
i != e; ++i) {
unsigned reg = (*i)->reg;
- if (reg >= MRegisterInfo::FirstVirtualRegister) {
+ if (MRegisterInfo::isVirtualRegister(reg)) {
reg = v2pMap_[reg];
}
updateWeight(regWeight, reg, (*i)->weight);
@@ -600,7 +600,7 @@
continue;
unsigned reg = (*i)->reg;
- if (reg >= MRegisterInfo::FirstVirtualRegister) {
+ if (MRegisterInfo::isVirtualRegister(reg)) {
reg = v2pMap_[reg];
}
updateWeight(regWeight, reg, (*i)->weight);
@@ -614,7 +614,7 @@
if (!cur->overlaps(**i))
continue;
- assert((*i)->reg < MRegisterInfo::FirstVirtualRegister &&
+ assert(MRegisterInfo::isPhysicalRegister((*i)->reg) &&
"virtual register interval in fixed set?");
updateWeight(regWeight, (*i)->reg, (*i)->weight);
for (const unsigned* as = mri_->getAliasSet((*i)->reg); *as; ++as)
@@ -650,7 +650,7 @@
for (IntervalPtrs::iterator i = active_.begin();
i != active_.end(); ) {
unsigned reg = (*i)->reg;
- if (reg >= MRegisterInfo::FirstVirtualRegister &&
+ if (MRegisterInfo::isVirtualRegister(reg) &&
toSpill.find(v2pMap_[reg]) != toSpill.end() &&
cur->overlaps(**i)) {
spilled.push_back(v2pMap_[reg]);
@@ -665,7 +665,7 @@
for (IntervalPtrs::iterator i = inactive_.begin();
i != inactive_.end(); ) {
unsigned reg = (*i)->reg;
- if (reg >= MRegisterInfo::FirstVirtualRegister &&
+ if (MRegisterInfo::isVirtualRegister(reg) &&
toSpill.find(v2pMap_[reg]) != toSpill.end() &&
cur->overlaps(**i)) {
DEBUG(std::cerr << "\t\t\t\tspilling : " << **i << '\n');
Index: llvm/lib/CodeGen/LiveIntervals.cpp
diff -u llvm/lib/CodeGen/LiveIntervals.cpp:1.38 llvm/lib/CodeGen/LiveIntervals.cpp:1.39
--- llvm/lib/CodeGen/LiveIntervals.cpp:1.38 Sat Jan 31 17:48:47 2004
+++ llvm/lib/CodeGen/LiveIntervals.cpp Sat Jan 31 19:27:01 2004
@@ -139,7 +139,7 @@
void LiveIntervals::printRegName(unsigned reg) const
{
- if (reg < MRegisterInfo::FirstVirtualRegister)
+ if (MRegisterInfo::isPhysicalRegister(reg))
std::cerr << mri_->getName(reg);
else
std::cerr << '%' << reg;
@@ -257,7 +257,7 @@
MachineBasicBlock::iterator mi,
unsigned reg)
{
- if (reg < MRegisterInfo::FirstVirtualRegister) {
+ if (MRegisterInfo::isPhysicalRegister(reg)) {
if (lv_->getAllocatablePhysicalRegisters()[reg]) {
handlePhysicalRegisterDef(mbb, mi, reg);
for (const unsigned* as = mri_->getAliasSet(reg); *as; ++as)
@@ -349,9 +349,9 @@
unsigned srcReg, dstReg;
if (tii.isMoveInstr(*mi, srcReg, dstReg) &&
- (srcReg >= MRegisterInfo::FirstVirtualRegister ||
+ (MRegisterInfo::isVirtualRegister(srcReg) ||
lv_->getAllocatablePhysicalRegisters()[srcReg]) &&
- (dstReg >= MRegisterInfo::FirstVirtualRegister ||
+ (MRegisterInfo::isVirtualRegister(dstReg) ||
lv_->getAllocatablePhysicalRegisters()[dstReg])) {
// get representative registers
@@ -371,9 +371,9 @@
Intervals::iterator dstInt = r2iDst->second;
// src is a physical register
- if (srcInt->reg < MRegisterInfo::FirstVirtualRegister) {
+ if (MRegisterInfo::isPhysicalRegister(srcInt->reg)) {
if (dstInt->reg == srcInt->reg ||
- (dstInt->reg >= MRegisterInfo::FirstVirtualRegister &&
+ (MRegisterInfo::isVirtualRegister(dstInt->reg) &&
!srcInt->overlaps(*dstInt) &&
!overlapsAliases(*srcInt, *dstInt))) {
srcInt->join(*dstInt);
@@ -383,9 +383,9 @@
}
}
// dst is a physical register
- else if (dstInt->reg < MRegisterInfo::FirstVirtualRegister) {
+ else if (MRegisterInfo::isPhysicalRegister(dstInt->reg)) {
if (srcInt->reg == dstInt->reg ||
- (srcInt->reg >= MRegisterInfo::FirstVirtualRegister &&
+ (MRegisterInfo::isVirtualRegister(srcInt->reg) &&
!dstInt->overlaps(*srcInt) &&
!overlapsAliases(*dstInt, *srcInt))) {
dstInt->join(*srcInt);
@@ -424,7 +424,7 @@
bool LiveIntervals::overlapsAliases(const Interval& lhs,
const Interval& rhs) const
{
- assert(lhs.reg < MRegisterInfo::FirstVirtualRegister &&
+ assert(MRegisterInfo::isPhysicalRegister(lhs.reg) &&
"first interval must describe a physical register");
for (const unsigned* as = mri_->getAliasSet(lhs.reg); *as; ++as) {
@@ -439,7 +439,7 @@
LiveIntervals::Interval::Interval(unsigned r)
: reg(r),
- weight((r < MRegisterInfo::FirstVirtualRegister ?
+ weight((MRegisterInfo::isPhysicalRegister(r) ?
std::numeric_limits<float>::max() : 0.0F))
{
@@ -546,7 +546,7 @@
cur = mergeRangesForward(cur);
cur = mergeRangesBackward(cur);
}
- if (reg >= MRegisterInfo::FirstVirtualRegister)
+ if (MRegisterInfo::isVirtualRegister(reg))
weight += other.weight;
DEBUG(std::cerr << "\t\t\t\tafter merging: " << *this << '\n');
More information about the llvm-commits
mailing list