EXTRACT_SUBREG coalescing support. The coalescer now treats EXTRACT_SUBREG like
authorEvan Cheng <evan.cheng@apple.com>
Fri, 12 Oct 2007 08:50:34 +0000 (08:50 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 12 Oct 2007 08:50:34 +0000 (08:50 +0000)
commit32dfbeada7292167bb488f36a71a5a6a519ddaff
tree31e4a518a9a2e6d39858b20921f868948a28ec0b
parent10136e7c7f599a559917e04f04e6dfbf025e451b
EXTRACT_SUBREG coalescing support. The coalescer now treats EXTRACT_SUBREG like
(almost) a register copy. However, it always coalesced to the register of the
RHS (the super-register). All uses of the result of a EXTRACT_SUBREG are sub-
register uses which adds subtle complications to load folding, spiller rewrite,
etc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42899 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
include/llvm/CodeGen/LiveInterval.h
include/llvm/CodeGen/LiveIntervalAnalysis.h
include/llvm/CodeGen/MachineInstr.h
include/llvm/CodeGen/SSARegMap.h
include/llvm/CodeGen/SimpleRegisterCoalescing.h
lib/CodeGen/LiveInterval.cpp
lib/CodeGen/LiveIntervalAnalysis.cpp
lib/CodeGen/MachineInstr.cpp
lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
lib/CodeGen/SimpleRegisterCoalescing.cpp
lib/CodeGen/VirtRegMap.cpp