[PATCH] D12193: [mips][p5600] Added P5600 processor and initial scheduler.

Daniel Sanders via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 20 06:05:44 PDT 2015


dsanders created this revision.
dsanders added subscribers: vkalintiris, atrick, llvm-commits.
dsanders added a dependency: D12190: [mips][sched] Added class for WSBH.

The P5600 is an out-of-order, superscalar implementation of the MIPS32R5
architecture.

The scheduler has a few missing details (see the 'Tricky Instructions'
section and some quirks of the P5600 are deliberately omitted due to
implementation difficulty and low chance of significant benefit (e.g. the
predicate on P5600WriteEitherALU). However, testing on SingleSource is
showing significant performance benefits on some apps (seven in the 10-30%
range) and only one significant regression (12%) when
-pre-RA-sched=linearize is given. Without -pre-RA-sched=linearize the
results are more variable. Some do even better (up to 55% improvement) but
increased numbers of copies are slowing others down (up to 12%).

Overall, the scheduler as it currently stands is a 2.4% win with
-pre-RA-sched=linearize and a 2.7% win without -pre-RA-sched=linearize.
I'm sure we can improve on this further.

For completeness, the FPGA this was tested on shows some failures with and
without the P5600 scheduler. These appear to be scheduling related since
the two test runs have fairly different sets of failing tests even after
accounting for other factors (e.g. spurious connection failures) however
it's not P5600 specific since we also get some for the generic scheduler.

Depends on D12190

http://reviews.llvm.org/D12193

Files:
  lib/Target/Mips/Mips.td
  lib/Target/Mips/MipsSchedule.td
  lib/Target/Mips/MipsScheduleP5600.td
  lib/Target/Mips/MipsSubtarget.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12193.32689.patch
Type: text/x-patch
Size: 16777 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150820/54a812d9/attachment.bin>


More information about the llvm-commits mailing list