diff options
author | Chris Lattner <sabre@nondot.org> | 2004-10-26 05:29:18 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-10-26 05:29:18 +0000 |
commit | ad3c74fc9b52b652859807580c8e40b67394d689 (patch) | |
tree | 2c99a31ed6db6069c416f98469b8127f98bf37f5 /lib | |
parent | 4a0de07e7814c19e82f51fc785564381f234490c (diff) |
Reduce usage of MRegisterInfo::getRegClass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17238 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/LiveIntervalAnalysis.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp index c3a15fcc19..713f2f892d 100644 --- a/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/lib/CodeGen/LiveIntervalAnalysis.cpp @@ -658,15 +658,16 @@ void LiveIntervals::joinIntervals() { /// classes. The registers may be either phys or virt regs. bool LiveIntervals::differingRegisterClasses(unsigned RegA, unsigned RegB) const { - const TargetRegisterClass *RegClass; // Get the register classes for the first reg. - if (MRegisterInfo::isVirtualRegister(RegA)) - RegClass = mf_->getSSARegMap()->getRegClass(RegA); - else - RegClass = mri_->getRegClass(RegA); + if (MRegisterInfo::isPhysicalRegister(RegA)) { + assert(MRegisterInfo::isVirtualRegister(RegB) && + "Shouldn't consider two physregs!"); + return !mf_->getSSARegMap()->getRegClass(RegB)->contains(RegA); + } // Compare against the regclass for the second reg. + const TargetRegisterClass *RegClass = mf_->getSSARegMap()->getRegClass(RegA); if (MRegisterInfo::isVirtualRegister(RegB)) return RegClass != mf_->getSSARegMap()->getRegClass(RegB); else |