From b56cb729bddaf738f266ad80a01a70e37d746f06 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 26 Oct 2004 05:29:18 +0000 Subject: [PATCH] Reduce usage of MRegisterInfo::getRegClass llvm-svn: 17238 --- llvm/lib/CodeGen/LiveIntervalAnalysis.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp index c3a15fcc198a..713f2f892d5d 100644 --- a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/llvm/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