diff options
| author | Andrew Trick <atrick@apple.com> | 2012-05-17 18:35:05 +0000 |
|---|---|---|
| committer | Andrew Trick <atrick@apple.com> | 2012-05-17 18:35:05 +0000 |
| commit | 1c646ac68bf3f759b30ed0f725c2f7821876690d (patch) | |
| tree | 72f3033a14a6d36536c69f09bffd1c018cd8700e /llvm/lib | |
| parent | 463b2f1f04b158900f2f0ba5169af913a2f0edb0 (diff) | |
| download | bcm5719-llvm-1c646ac68bf3f759b30ed0f725c2f7821876690d.tar.gz bcm5719-llvm-1c646ac68bf3f759b30ed0f725c2f7821876690d.zip | |
regpressure: Fix getMaxUpwardPressureDelta.
llvm-svn: 157004
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/RegisterPressure.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/RegisterPressure.cpp b/llvm/lib/CodeGen/RegisterPressure.cpp index 53036c7b84d..fbd08cb575a 100644 --- a/llvm/lib/CodeGen/RegisterPressure.cpp +++ b/llvm/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); } } |

