diff options
author | Matthias Braun <matze@braunis.de> | 2016-01-20 00:23:32 +0000 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2016-01-20 00:23:32 +0000 |
commit | d4f6409dffb5ce446a1fc58f53a31d7c1cf948d9 (patch) | |
tree | d0aea73c59769995728676aee356eeaeabd4e16b /lldb/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py | |
parent | 5d458617aa8180fb850e471cf17ba0dd01363143 (diff) | |
download | bcm5719-llvm-d4f6409dffb5ce446a1fc58f53a31d7c1cf948d9.tar.gz bcm5719-llvm-d4f6409dffb5ce446a1fc58f53a31d7c1cf948d9.zip |
MachineScheduler: Allow independent scheduling of sub register defs
Note that this is disabled by default and still requires a patch to
handleMove() which is not upstreamed yet.
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.
Differential Revision: http://reviews.llvm.org/D14969
llvm-svn: 258259
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py')
0 files changed, 0 insertions, 0 deletions