Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CIR][LowerToLLVM][CXXABI] Fix basic block ordering issue. #676

Merged
merged 2 commits into from
Jun 10, 2024

Conversation

ghehg
Copy link
Collaborator

@ghehg ghehg commented Jun 10, 2024

When loweringPrepare cg.var_arg for AArch64, we create multiple basic blocks, but didn't really get ordering of the blocks in the blocklist of the parent region right. That is, we didn't make sure the last of the block list is the naturally last block (exit) of the region. This PR fixes this problem.

If we don't fix this problem, FlattenCFGPass will fail verification because CIRScopeOpFlattening in this pass is onlyy expecting to see cir.yield op in the last block of the region's block list.

@bcardosolopes bcardosolopes changed the title [CIR][LowerToLLVM][CXXABI]fix basic block ordering issue. [CIR][LowerToLLVM][CXXABI] Fix basic block ordering issue. Jun 10, 2024
Copy link
Member

@bcardosolopes bcardosolopes left a comment

Choose a reason for hiding this comment

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

Awesome, LGTM

@bcardosolopes bcardosolopes merged commit 1c0064b into llvm:main Jun 10, 2024
7 checks passed
bruteforceboy pushed a commit to bruteforceboy/clangir that referenced this pull request Oct 2, 2024
When loweringPrepare cg.var_arg for AArch64, we create multiple basic
blocks, but didn't really get ordering of the blocks in the blocklist of
the parent region right. That is, we didn't make sure the last of the
block list is the naturally last block (exit) of the region. This PR
fixes this problem.

If we don't fix this problem, FlattenCFGPass will fail verification
because CIRScopeOpFlattening in this pass is onlyy expecting to see
cir.yield op in the last block of the region's block list.
Hugobros3 pushed a commit to shady-gang/clangir that referenced this pull request Oct 2, 2024
When loweringPrepare cg.var_arg for AArch64, we create multiple basic
blocks, but didn't really get ordering of the blocks in the blocklist of
the parent region right. That is, we didn't make sure the last of the
block list is the naturally last block (exit) of the region. This PR
fixes this problem.

If we don't fix this problem, FlattenCFGPass will fail verification
because CIRScopeOpFlattening in this pass is onlyy expecting to see
cir.yield op in the last block of the region's block list.
smeenai pushed a commit to smeenai/clangir that referenced this pull request Oct 9, 2024
When loweringPrepare cg.var_arg for AArch64, we create multiple basic
blocks, but didn't really get ordering of the blocks in the blocklist of
the parent region right. That is, we didn't make sure the last of the
block list is the naturally last block (exit) of the region. This PR
fixes this problem.

If we don't fix this problem, FlattenCFGPass will fail verification
because CIRScopeOpFlattening in this pass is onlyy expecting to see
cir.yield op in the last block of the region's block list.
keryell pushed a commit to keryell/clangir that referenced this pull request Oct 19, 2024
When loweringPrepare cg.var_arg for AArch64, we create multiple basic
blocks, but didn't really get ordering of the blocks in the blocklist of
the parent region right. That is, we didn't make sure the last of the
block list is the naturally last block (exit) of the region. This PR
fixes this problem.

If we don't fix this problem, FlattenCFGPass will fail verification
because CIRScopeOpFlattening in this pass is onlyy expecting to see
cir.yield op in the last block of the region's block list.
lanza pushed a commit that referenced this pull request Nov 5, 2024
When loweringPrepare cg.var_arg for AArch64, we create multiple basic
blocks, but didn't really get ordering of the blocks in the blocklist of
the parent region right. That is, we didn't make sure the last of the
block list is the naturally last block (exit) of the region. This PR
fixes this problem.

If we don't fix this problem, FlattenCFGPass will fail verification
because CIRScopeOpFlattening in this pass is onlyy expecting to see
cir.yield op in the last block of the region's block list.
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