Skip to content

Conversation

@lhames
Copy link
Contributor

@lhames lhames commented Oct 15, 2025

This reverts commit 3b5842c.

The intent of the original commit was to begin enabling asynchronous alloation actions (calls attached to JIT'd memory initialization and deinitialization). The asynchronous allocation actions scheme was fleshed-out in a development branch, but ran into an issue: Functions implementing actions are allowed to live in JIT'd code (e.g. in the ORC runtime), but we can't genally rely on tail-call elimination kicking in. This resulting in dealloc actions returning via stack frames that had been deallocated, triggering segfaults.

It's possible that there are other approaches that would allow asynchronous allocation actions to work, but they're not on the critical path for JIT improvements so for now we'll just revert.

This reverts commit 3b5842c.

The intent of the original commit was to begin enabling asynchronous alloation
actions (calls attached to JIT'd memory initialization and deinitialization).
The asynchronous allocation actions scheme was fleshed-out in a development
branch, but ran into an issue: Functions implementing actions are allowed to
live in JIT'd code (e.g. in the ORC runtime), but we can't genally rely on
tail-call elimination kicking in. This resulting in dealloc actions returning
via stack frames that had been deallocated, triggering segfaults.

It's possible that there are other approaches that would allow asynchronous
allocation actions to work, but they're not on the critical path for JIT
improvements so for now we'll just revert.
@lhames lhames merged commit 8b60c05 into llvm:main Oct 15, 2025
11 checks passed
@lhames lhames deleted the no-async-alloc-actions branch October 15, 2025 01:21
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.

1 participant