- Add TargetInstrInfo::getOperandLatency() to compute operand latencies. This
authorEvan Cheng <evan.cheng@apple.com>
Wed, 6 Oct 2010 06:27:31 +0000 (06:27 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 6 Oct 2010 06:27:31 +0000 (06:27 +0000)
commita0792de66c8364d47b0a688c7f408efb7b10f31b
tree74720b528520e7d3702afc6ed850dc6a6e1ce99e
parent7f5124829ffcf75f598b024ec40cc83753eb72d4
- Add TargetInstrInfo::getOperandLatency() to compute operand latencies. This
  allow target to correctly compute latency for cases where static scheduling
  itineraries isn't sufficient. e.g. variable_ops instructions such as
  ARM::ldm.
  This also allows target without scheduling itineraries to compute operand
  latencies. e.g. X86 can return (approximated) latencies for high latency
  instructions such as division.
- Compute operand latencies for those defined by load multiple instructions,
  e.g. ldm and those used by store multiple instructions, e.g. stm.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115755 91177308-0d34-0410-b5e6-96231b3b80d8
15 files changed:
include/llvm/Target/TargetInstrInfo.h
lib/CodeGen/ScheduleDAGInstrs.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
lib/Target/ARM/ARMBaseInstrInfo.cpp
lib/Target/ARM/ARMBaseInstrInfo.h
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrThumb.td
lib/Target/ARM/ARMInstrThumb2.td
lib/Target/ARM/ARMSchedule.td
lib/Target/ARM/ARMScheduleA8.td
lib/Target/ARM/ARMScheduleA9.td
lib/Target/ARM/ARMScheduleV6.td
lib/Target/TargetInstrInfo.cpp
test/CodeGen/ARM/arguments.ll
test/CodeGen/ARM/select.ll