From b54ec26b355157c76b29b12388d49816eaf57da1 Mon Sep 17 00:00:00 2001 From: Andrew Trick Date: Thu, 17 May 2012 18:35:05 +0000 Subject: [PATCH] regpressure: Fix getMaxUpwardPressureDelta. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157004 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/RegisterPressure.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/CodeGen/RegisterPressure.cpp b/lib/CodeGen/RegisterPressure.cpp index 53036c7b84d..fbd08cb575a 100644 --- a/lib/CodeGen/RegisterPressure.cpp +++ b/lib/CodeGen/RegisterPressure.cpp @@ -629,13 +629,17 @@ getMaxUpwardPressureDelta(const MachineInstr *MI, RegPressureDelta &Delta) { // Generate liveness for uses. for (unsigned i = 0, e = PhysRegOpers.Uses.size(); i < e; ++i) { unsigned Reg = PhysRegOpers.Uses[i]; - if (!hasRegAlias(Reg, LivePhysRegs, TRI)) { + if (!hasRegAlias(Reg, LivePhysRegs, TRI) + && (findRegAlias(Reg, PhysRegOpers.Defs, TRI) + == PhysRegOpers.Defs.end())) { increasePhysRegPressure(Reg); } } for (unsigned i = 0, e = VirtRegOpers.Uses.size(); i < e; ++i) { unsigned Reg = VirtRegOpers.Uses[i]; - if (!LiveVirtRegs.count(Reg)) { + if (!LiveVirtRegs.count(Reg) + && (std::find(VirtRegOpers.Defs.begin(), VirtRegOpers.Defs.end(), Reg) + != VirtRegOpers.Defs.end())) { increaseVirtRegPressure(Reg); } } -- 2.34.1