[ARM] Cortex-M4 schedule additions
commit74e5ba1186f4c3e541347e197165cc191aea8879
authorDavid Green <david.green@arm.com>
Sun, 29 Sep 2019 08:38:48 +0000 (29 08:38 +0000)
committerDavid Green <david.green@arm.com>
Sun, 29 Sep 2019 08:38:48 +0000 (29 08:38 +0000)
treee6cf268c478aa5892b00f30f6bf24d71ee7eb228
parentcf27c2ca1de12d632cff21f9682a5614f80b526c
[ARM] Cortex-M4 schedule additions

This is an attempt to fill in some of the missing instructions from the
Cortex-M4 schedule, and make it easier to do the same for other ARM cpus.

- Some instructions are marked as hasNoSchedulingInfo as they are pseudos or
  otherwise do not require scheduling info
- A lot of features have been marked not supported
- Some WriteRes's have been added for cvt instructions.
- Some extra instruction latencies have been added, notably by relaxing the
  regex for dsp instruction to catch more cases, and some fp instructions.

This goes a long way to get the CompleteModel working for this CPU. It does not
go far enough as to get all scheduling info for all output operands correct.

Differential Revision: https://reviews.llvm.org/D67957

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@373163 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMInstrFormats.td
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrThumb2.td
lib/Target/ARM/ARMInstrVFP.td
lib/Target/ARM/ARMScheduleM4.td
test/CodeGen/ARM/ParallelDSP/complex_dot_prod.ll
test/CodeGen/ARM/ParallelDSP/multi-use-loads.ll
test/CodeGen/ARM/ParallelDSP/unroll-n-jam-smlad.ll