Skip to content

Inliner: Fix LoopMerge when inline into loop header of multi block loop#801

Merged
dneto0 merged 1 commit intoKhronosGroup:masterfrom
dneto0:issue-800
Sep 5, 2017
Merged

Inliner: Fix LoopMerge when inline into loop header of multi block loop#801
dneto0 merged 1 commit intoKhronosGroup:masterfrom
dneto0:issue-800

Conversation

@dneto0
Copy link
Copy Markdown
Collaborator

@dneto0 dneto0 commented Sep 2, 2017

This adapts the fix for the single-block loop. Split the loop like
before. But when we move the OpLoopMerge back to the loop header,
redirect the continue target only when the original loop was a single
block loop.

Fixes #800

@dneto0
Copy link
Copy Markdown
Collaborator Author

dneto0 commented Sep 2, 2017

Another review request for @greg-lunarg.
This generalizes the single-block-loop fix from before.

Copy link
Copy Markdown
Contributor

@greg-lunarg greg-lunarg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

This adapts the fix for the single-block loop.  Split the loop like
before.  But when we move the OpLoopMerge back to the loop header,
redirect the continue target only when the original loop was a single
block loop.

Fixes KhronosGroup#800
@dneto0
Copy link
Copy Markdown
Collaborator Author

dneto0 commented Sep 5, 2017

Rebased and added CHANGES entry.

@dneto0 dneto0 merged commit 25ddfec into KhronosGroup:master Sep 5, 2017
@dneto0 dneto0 deleted the issue-800 branch September 8, 2017 13:17
dneto0 pushed a commit to dneto0/SPIRV-Tools that referenced this pull request Sep 14, 2024
This does not appear to be standard practice. The results of these
checks would only change if the compiler itself changes, so checking
it on everyrun is unnecessary.

Fixes KhronosGroup#773
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

inliner: fails to move OpLoopMerge to top of loop when inlining multi-block function into loop header

2 participants