This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU: Split SILowerControlFlow into two pieces
ClosedPublic

Authored by arsenm on Aug 17 2016, 7:28 PM.

Details

Reviewers
tstellarAMD
Summary

Do most of the lowering in a pre-RA pass. Keep the skip jump
insertion late, plus a few other things that require more
work to move out.

One concern I have is now there may be COPY instructions
which do not have the necessary implicit exec uses
f they will be lowered to v_mov_b32.

This has a positive effect on SGPR usage in shader-db: https://ghostbin.com/paste/rvn5x

Diff Detail

Event Timeline

arsenm updated this revision to Diff 68475.Aug 17 2016, 7:28 PM
arsenm retitled this revision from to AMDGPU: Split SILowerControlFlow into two pieces.
arsenm updated this object.
arsenm added a reviewer: tstellarAMD.
arsenm added a subscriber: llvm-commits.
arsenm updated this revision to Diff 68628.Aug 18 2016, 3:55 PM

Fix not running SILowerControlFlow at -O0. Test will be included separately since there are still correctness issues

tstellarAMD accepted this revision.Aug 22 2016, 11:41 AM
tstellarAMD edited edge metadata.

LGTM.

This revision is now accepted and ready to land.Aug 22 2016, 11:41 AM
arsenm closed this revision.Aug 22 2016, 12:42 PM

r279464