diff options
author | Nicolai Haehnle <nhaehnle@gmail.com> | 2016-04-14 17:42:29 +0000 |
---|---|---|
committer | Nicolai Haehnle <nhaehnle@gmail.com> | 2016-04-14 17:42:29 +0000 |
commit | 723b73b4eb70d4015bb32ec94c6a782608c5112b (patch) | |
tree | 038e319a27be7448a4f713142f8a10204adf3128 /lldb/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py | |
parent | 19f0f5177da807ca4e65f6f81e110929201cd3de (diff) | |
download | bcm5719-llvm-723b73b4eb70d4015bb32ec94c6a782608c5112b.tar.gz bcm5719-llvm-723b73b4eb70d4015bb32ec94c6a782608c5112b.zip |
AMDGPU: Remove SIFixSGPRLiveRanges pass
Summary:
This pass is unnecessary and overly conservative. It was motivated by
situations like
def %vreg0:SGPR_32
...
if-block:
..
def %vreg1:SGPR_32
...
else-block:
...
use %vreg0:SGPR_32
...
and similar situations with uses after the non-uniform control flow, where
we are not allowed to assign %vreg0 and %vreg1 to the same physical register,
even though in the original, thread/workitem-based CFG, it looks like the
live ranges of these registers do not overlap.
However, by the time register allocation runs, we have moved to a wave-based
CFG that accurately represents the fact that the wave may run through both
the if- and the else-block. So the live ranges of %vreg0 and %vreg1 already
overlap even without the SIFixSGPRLiveRanges pass.
In addition to proving this change correct, I have tested it with Piglit
and a small number of other tests.
Reviewers: arsenm, tstellarAMD
Subscribers: MatzeB, arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D19041
llvm-svn: 266345
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py')
0 files changed, 0 insertions, 0 deletions