This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU/SI: Fix a mis-compilation of multi-level breaks
ClosedPublic

Authored by nhaehnle on Apr 11 2016, 8:59 AM.

Details

Summary

Under certain circumstances, multi-level breaks (or what is understood by
the control flow passes as such) could be miscompiled in a way that causes
infinite loops, by emitting incorrect control flow intrinsics.

This fixes a hang in
dEQP-GLES3.functional.shaders.loops.while_dynamic_iterations.conditional_continue_vertex

Diff Detail

Event Timeline

nhaehnle updated this revision to Diff 53252.Apr 11 2016, 8:59 AM
nhaehnle retitled this revision from to AMDGPU/SI: Fix a mis-compilation of multi-level breaks.
nhaehnle updated this object.
nhaehnle added reviewers: arsenm, tstellarAMD.
nhaehnle added a subscriber: llvm-commits.
tstellarAMD accepted this revision.Apr 11 2016, 9:31 AM
tstellarAMD edited edge metadata.

LGTM.

This revision is now accepted and ready to land.Apr 11 2016, 9:31 AM
This revision was automatically updated to reflect the committed changes.