This is an archive of the discontinued LLVM Phabricator instance.

LivePhysRegs: Fix live-outs of return block.
ClosedPublic

Authored by MatzeB on Sep 25 2015, 3:10 PM.

Details

Summary

The live-out set computed for the return block is currently missing the callee saved registers (the non-pristine ones to be exact).

This only affects the liveness computed for instructions inside the
function epilogue which currently none of the LivePhysRegs users in llvm
cares about, so this is just a drive-by fix without a testcase.

Diff Detail

Repository
rL LLVM

Event Timeline

MatzeB updated this revision to Diff 35770.Sep 25 2015, 3:10 PM
MatzeB retitled this revision from to LivePhysRegs: Fix live-outs of return block..
MatzeB updated this object.
MatzeB added a reviewer: qcolombet.
MatzeB set the repository for this revision to rL LLVM.
MatzeB added a subscriber: llvm-commits.
hfinkel accepted this revision.Sep 25 2015, 4:30 PM
hfinkel added a reviewer: hfinkel.
hfinkel added a subscriber: hfinkel.

LGTM.

Indeed, the only current users of this are in ARM/ARMLoadStoreOptimizer.cpp and ARM/Thumb1FrameLowering.cpp, but looking at the way that ARMLoadStoreOpt::findFreeReg and ARMLoadStoreOpt::moveLiveRegsBefore work, it seems that this fix will prevent a problem should shrink-wrapping be enabled.

This revision is now accepted and ready to land.Sep 25 2015, 4:30 PM
This revision was automatically updated to reflect the committed changes.