[PATCH] MachineScheduler: Allow tracking of subregister lane masks.

Matthias Braun matze at braunis.de
Thu Apr 16 19:20:51 PDT 2015


Hi qcolombet, atrick, tstellarAMD,

Before this patch the machine scheduler was unable to reorder sequences like the following:
     %vreg42:sub0 = ...
     %vreg42:sub1 = ...
This patch series enables this. It is however disabled by default. Targets that benefit from this (probably R600) can enable it by change the "shouldTrackLaneMasks" flag in the SchedulingPolicy/Strategy.

This patch requires http://reviews.llvm.org/D9067 and http://reviews.llvm.org/D9068 to be applied first.

About the patch:

Tracking lanemasks allows the scheduler to differentiate between
different subregister defs and schedule them independently even when
they go into the same vreg.
For this to work we have to take care that the subregister defs count as
register pressure neutral except for the first one. We also have to attach the
reads-undef marker to the first subregister def and remove it from all
others.

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D9069

Files:
  include/llvm/CodeGen/MachineInstr.h
  include/llvm/CodeGen/MachineScheduler.h
  include/llvm/CodeGen/RegisterPressure.h
  include/llvm/CodeGen/ScheduleDAGInstrs.h
  lib/CodeGen/LiveIntervalAnalysis.cpp
  lib/CodeGen/MachineInstr.cpp
  lib/CodeGen/MachineScheduler.cpp
  lib/CodeGen/RegisterPressure.cpp
  lib/CodeGen/ScheduleDAGInstrs.cpp

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9069.23894.patch
Type: text/x-patch
Size: 15291 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150417/b53fef6b/attachment.bin>


More information about the llvm-commits mailing list