diff options
author | Andrew Trick <atrick@apple.com> | 2013-04-24 15:54:43 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2013-04-24 15:54:43 +0000 |
commit | 85a1d4cbc0e5bb86a314110fb6077409ea35c856 (patch) | |
tree | 612deae428f6becb8632067956f43dce08f9f516 /llvm/lib/Object/MachOObjectFile.cpp | |
parent | 608a698cdf34a4243d5901c393fae77713dd33c0 (diff) | |
download | llvm-85a1d4cbc0e5bb86a314110fb6077409ea35c856.zip llvm-85a1d4cbc0e5bb86a314110fb6077409ea35c856.tar.gz llvm-85a1d4cbc0e5bb86a314110fb6077409ea35c856.tar.bz2 |
MI Sched: eliminate local vreg copies.
For now, we just reschedule instructions that use the copied vregs and
let regalloc elliminate it. I would really like to eliminate the
copies on-the-fly during scheduling, but we need a complete
implementation of repairIntervalsInRange() first.
The general strategy is for the register coalescer to eliminate as
many global copies as possible and shrink live ranges to be
extended-basic-block local. The coalescer should not have to worry
about resolving local copies (e.g. it shouldn't attemp to reorder
instructions). The scheduler is a much better place to deal with local
interference. The coalescer side of this equation needs work.
llvm-svn: 180193
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions