MI-Sched: schedule physreg copies.
authorAndrew Trick <atrick@apple.com>
Sat, 13 Apr 2013 06:07:40 +0000 (06:07 +0000)
committerAndrew Trick <atrick@apple.com>
Sat, 13 Apr 2013 06:07:40 +0000 (06:07 +0000)
commit4392f0f407fe4e2a9ec53b2560a1cbf86357c190
tree3f0a3d60f170fe2f7b4db91811d42c4ab533439c
parentc706dc7ae7b50920b863af47634078482de75b26
MI-Sched: schedule physreg copies.

The register allocator expects minimal physreg live ranges. Schedule
physreg copies accordingly. This is slightly tricky when they occur in
the middle of the scheduling region. For now, this is handled by
rescheduling the copy when its associated instruction is
scheduled. Eventually we may instead bundle them, but only if we can
preserve the bundles as parallel copies during regalloc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179449 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/MachineScheduler.h
include/llvm/CodeGen/ScheduleDAG.h
lib/CodeGen/MachineScheduler.cpp
lib/CodeGen/ScheduleDAGInstrs.cpp
test/CodeGen/X86/misched-copy.ll [new file with mode: 0644]