[PATCH] D54142: [ARM] Cortex-M4 schedule

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 6 02:46:38 PST 2018


dmgreen created this revision.
dmgreen added reviewers: javed.absar, fhahn, john.brawn, t.p.northover.
Herald added subscribers: chrib, kristof.beyls.

This patch adds a simple Cortex-M4 schedule, renaming the existing M3
schedule to M4 and filling in the latencies as-per the Cortex-M4 TRM:
https://developer.arm.com/docs/ddi0439/latest

Most of these are 1, with the important exception being loads taking 2
cycles. A few others are also higher, but I don't believe they make a
large difference. I've repurposed the M3 schedule as the latencies are
mostly the same between the two cores, with the M4 having more FP and
DSP instructions. We also turn on MISched and UseAA for the cores that
now use this.

It also adds some schedule Write's to various instruction to make things
simpler.


https://reviews.llvm.org/D54142

Files:
  lib/Target/ARM/ARM.td
  lib/Target/ARM/ARMInstrThumb.td
  lib/Target/ARM/ARMInstrThumb2.td
  lib/Target/ARM/ARMSchedule.td
  lib/Target/ARM/ARMScheduleM3.td
  lib/Target/ARM/ARMScheduleM4.td
  test/CodeGen/ARM/aapcs-hfa-code.ll
  test/CodeGen/ARM/useaa.ll
  test/CodeGen/Thumb2/ifcvt-no-branch-predictor.ll
  test/CodeGen/Thumb2/m4-sched-ldr.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D54142.172722.patch
Type: text/x-patch
Size: 28243 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181106/6b061dee/attachment.bin>


More information about the llvm-commits mailing list