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

[CGCilk] Fix code generation of normal cleanup destination slot aroun… #289

Merged

Conversation

neboat
Copy link
Collaborator

@neboat neboat commented Nov 22, 2024

…d unassociated taskframes.

This PR fixes issue #287. In that issue, multiple normal cleanup destination slots were getting created for the unassociated taskframe. But the uses of those different slots were not connected to manage normal cleanups. It seems that clang's codegen does not easily support associating multiple such slots for normal cleanups.

This change makes unassociated taskframes use a preexisting normal cleanup slot allocated outside of the taskframe. Although this isn't ideal, in case the taskframe ends up outlined into a new function, it is semantically correct, because an unassociated taskframe executes serially with respect to their parent.

@VoxSciurorum
Copy link
Contributor

This works for me. There is a typo in the test case, CHECK-NECT instead of CHECK-NEXT.

@neboat neboat force-pushed the dev/18.x-cilkscope-try-normal-cleanup branch from 90abedc to de3ac80 Compare November 22, 2024 19:44
@neboat
Copy link
Collaborator Author

neboat commented Nov 22, 2024

Ah, good catch! That typo should be fixed in the latest version.

@neboat neboat merged commit a3f980d into OpenCilk:dev/18.x Nov 23, 2024
4 checks passed
@neboat neboat deleted the dev/18.x-cilkscope-try-normal-cleanup branch November 23, 2024 00:17
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