diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-12-14 07:54:05 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-12-14 07:54:05 +0000 |
commit | 4c306ae0c2a202669c398f49d95fd6bda8ed70da (patch) | |
tree | 1fed1592cee345b447b7c0c925d9233eb0ef9033 /llvm/lib/CodeGen/MachineFunction.cpp | |
parent | b8817b9b6e48ce6a0847bd67c6d01dffeb0e8cb5 (diff) | |
download | llvm-4c306ae0c2a202669c398f49d95fd6bda8ed70da.zip llvm-4c306ae0c2a202669c398f49d95fd6bda8ed70da.tar.gz llvm-4c306ae0c2a202669c398f49d95fd6bda8ed70da.tar.bz2 |
Fix a long-standing spiller bug:
If a spillslot value is available in a register, and there is a noop copy that
targets that register, the spiller correctly decide not to invalidate the
spillslot register.
However, even though the noop copy does not clobbers the value. It does start a
new intersecting live range. That means the spillslot register is available for
use but should not be reused for a two-address instruction modref operand which
would clobber the new live range.
When we remove the noop copy, update the available information by clearing the
canClobber bit.
llvm-svn: 32576
Diffstat (limited to 'llvm/lib/CodeGen/MachineFunction.cpp')
0 files changed, 0 insertions, 0 deletions