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)
commite833e1cd6eeb722edbb5c5f316fbca16abd384c9
tree66678682e05b7164c4b9770c298946ee7648c502
parent52b8387fd1755ab578daa7185199e8979d525fae
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.

llvm-svn: 179449
llvm/include/llvm/CodeGen/MachineScheduler.h
llvm/include/llvm/CodeGen/ScheduleDAG.h
llvm/lib/CodeGen/MachineScheduler.cpp
llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
llvm/test/CodeGen/X86/misched-copy.ll [new file with mode: 0644]