aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/VirtRegRewriter.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2009-11-14 03:42:17 +0000
committerEvan Cheng <evan.cheng@apple.com>2009-11-14 03:42:17 +0000
commitfae3e923452b85e72b2c03dd6eacc063f59d81b1 (patch)
treede568e1d845536244f6625a40721d7b3243b8b92 /lib/CodeGen/VirtRegRewriter.cpp
parentd57cdd5683ea926e489067364fb7ffe5fd5d35ee (diff)
downloadexternal_llvm-fae3e923452b85e72b2c03dd6eacc063f59d81b1.tar.gz
external_llvm-fae3e923452b85e72b2c03dd6eacc063f59d81b1.tar.bz2
external_llvm-fae3e923452b85e72b2c03dd6eacc063f59d81b1.zip
Added getSubRegIndex(A,B) that returns subreg index of A to B. Use it to replace broken code in VirtRegRewriter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88753 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/VirtRegRewriter.cpp')
-rw-r--r--lib/CodeGen/VirtRegRewriter.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/lib/CodeGen/VirtRegRewriter.cpp b/lib/CodeGen/VirtRegRewriter.cpp
index a70cdaf09e..ec0abd137d 100644
--- a/lib/CodeGen/VirtRegRewriter.cpp
+++ b/lib/CodeGen/VirtRegRewriter.cpp
@@ -841,11 +841,8 @@ unsigned ReuseInfo::GetRegForReload(const TargetRegisterClass *RC,
"A reuse cannot be a virtual register");
if (PRRU != RealPhysRegUsed) {
// What was the sub-register index?
- unsigned SubReg;
- for (SubIdx = 1; (SubReg = TRI->getSubReg(PRRU, SubIdx)); SubIdx++)
- if (SubReg == RealPhysRegUsed)
- break;
- assert(SubReg == RealPhysRegUsed &&
+ SubIdx = TRI->getSubRegIndex(PRRU, RealPhysRegUsed);
+ assert(SubIdx &&
"Operand physreg is not a sub-register of PhysRegUsed");
}