diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-12-10 22:21:05 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-12-10 22:21:05 +0000 |
commit | dd479e9769eceee9fcc34e2173376024f3aa3c5f (patch) | |
tree | 99988dcf70c6728ff334f08d80a3136df05550c8 /lib/CodeGen/AllocationOrder.cpp | |
parent | 746fa17d59000be7f642a0b6c5223f29c5e10f00 (diff) |
Use AllocationOrder in RegAllocGreedy, fix a bug in the hint calculation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121584 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AllocationOrder.cpp')
-rw-r--r-- | lib/CodeGen/AllocationOrder.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/CodeGen/AllocationOrder.cpp b/lib/CodeGen/AllocationOrder.cpp index 3f08439fac..26d4cd4d75 100644 --- a/lib/CodeGen/AllocationOrder.cpp +++ b/lib/CodeGen/AllocationOrder.cpp @@ -36,6 +36,10 @@ AllocationOrder::AllocationOrder(unsigned VirtReg, if (Hint && TargetRegisterInfo::isVirtualRegister(Hint)) Hint = VRM.getPhys(Hint); + // The remaining allocation order may depend on the hint. + tie(Begin, End) = VRM.getTargetRegInfo() + .getAllocationOrder(RC, HintPair.first, Hint, VRM.getMachineFunction()); + // Target-dependent hints require resolution. if (HintPair.first) Hint = VRM.getTargetRegInfo().ResolveRegAllocHint(HintPair.first, Hint, @@ -45,10 +49,6 @@ AllocationOrder::AllocationOrder(unsigned VirtReg, if (Hint && (!TargetRegisterInfo::isPhysicalRegister(Hint) || !RC->contains(Hint) || ReservedRegs.test(Hint))) Hint = 0; - - // The remaining allocation order may also depend on the hint. - tie(Begin, End) = VRM.getTargetRegInfo() - .getAllocationOrder(RC, HintPair.first, Hint, VRM.getMachineFunction()); } unsigned AllocationOrder::next() { |