From 4d7432ebf1b4b81b00793ad4b7f5bb4403742a16 Mon Sep 17 00:00:00 2001 From: Jakob Stoklund Olesen Date: Fri, 10 Dec 2010 22:21:05 +0000 Subject: Use AllocationOrder in RegAllocGreedy, fix a bug in the hint calculation. llvm-svn: 121584 --- llvm/lib/CodeGen/AllocationOrder.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'llvm/lib/CodeGen/AllocationOrder.cpp') diff --git a/llvm/lib/CodeGen/AllocationOrder.cpp b/llvm/lib/CodeGen/AllocationOrder.cpp index 3f08439fac5..26d4cd4d753 100644 --- a/llvm/lib/CodeGen/AllocationOrder.cpp +++ b/llvm/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() { -- cgit v1.2.3