Skip to content

[AIEX] OuterLoopPipeliner Bug fix 2#1073

Closed
F-Stuckmann wants to merge 2 commits into
olp-fix1from
olp-fix2
Closed

[AIEX] OuterLoopPipeliner Bug fix 2#1073
F-Stuckmann wants to merge 2 commits into
olp-fix1from
olp-fix2

Conversation

@F-Stuckmann

Copy link
Copy Markdown
Collaborator

PHI node crash fix.

Pins the pre-fix crash: when the exit block is reached directly by the latch
and shares an LCSSA phi with the preheader-bypass edge, deleting the original
latch asserts on the missing phi entry.
When the exit block is reached directly by the latch and shares an LCSSA phi
with the preheader-bypass edge, add a clone-latch incoming instead of
renaming the original-latch entry, leaving it for removeFromCFG to drop
cleanly. Converts the shared-exit test to the pipelined output.
; RUN: -o - %s 2>&1 | FileCheck %s

; BASELINE (pre-fix): the outer loop's exit block is shared between the
; preheader-bypass edge (entry -> exit) and the loop back-edge, so the live-out

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

That's the exit edge, not the back edge?

@martien-de-jong martien-de-jong left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Nice and clean. Local repair at each separate stage. The highway to software reuse.

@F-Stuckmann

Copy link
Copy Markdown
Collaborator Author

I am splitting the OLP refactor into NFC parts that reimplement the bugs and the fixes on top of the refactor. that will be clearer to review.

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.

2 participants