[PATCH] D14969: MachineScheduler: Allow independent scheduling of sub register defs
Matthias Braun via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 24 14:13:37 PST 2015
MatzeB created this revision.
MatzeB added a reviewer: atrick.
MatzeB added subscribers: llvm-commits, qcolombet, escha, tstellarAMD.
MatzeB set the repository for this revision to rL LLVM.
If the TrackLaneMasks policy/strategy is enabled the MachineScheduler
will build a schedule graph where definitions of independent
subregisters are no longer serialised.
Implementation comments:
- Without lane mask tracking a sub register def also counts as a use
(except for the first one with the read-undef flag set), with lane
mask tracking enabled this is no longer the case.
- Pressure Diffs where previously maintained per definition of a
vreg with the help of the SSA information contained in the
LiveIntervals. With lanemask tracking enabled we cannot do this
anymore and instead change the pressure diffs for all uses of the vreg
as it becomes live/dead. For this changed style to work correctly we
ignore uses of instructions that define the same register again: They
won't affect register pressure.
- With lanemask tracking we remove all read-undef flags from
sub register defs when building the graph and re-add them later when
all vreg lanes have become dead.
Repository:
rL LLVM
http://reviews.llvm.org/D14969
Files:
include/llvm/CodeGen/MachineScheduler.h
include/llvm/CodeGen/RegisterPressure.h
lib/CodeGen/MachineScheduler.cpp
lib/CodeGen/RegisterPressure.cpp
lib/CodeGen/ScheduleDAGInstrs.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14969.41086.patch
Type: text/x-patch
Size: 20941 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151124/9edd7dbe/attachment.bin>
More information about the llvm-commits
mailing list