Commit Graph

4 Commits

Author SHA1 Message Date
John McCall bf851fa4dd Model the stack allocation effects of {add,remove}TaskLocalValue.
The biggest complexity here is dealing with the improper nesting of the
allocation for the argument, and I'm not very proud of the solution I found,
but for a one-off builtin, I think it'll work.
2026-03-20 00:21:40 -04:00
John McCall 9aa0cb4e4f Make the cancellation and priority-ecscalation builtins respect stack nesting.
You can see in the patch that I obviously wrote this to include the
task-local builtins, but unfortunately they don't work for this because
they don't actually have a use/def relationship. That will need to be
follow-up work.

Includes a test that the defer special case applies to the priority
escalation builtin.
2026-03-13 19:40:20 -04:00
John McCall baaefaff98 Model the async let builtins as participating in the stack discipline.
This interacts with my previous commits to ensure that we mark other
allocation operations as non-nested when we would otherwise need to move
the finishAsyncLet operation.
2026-03-06 03:14:46 -05:00
John McCall a3c4f35c02 Add some abstractions for working with stack alloc/dealloc instructions.
NFC. Should make it easier to be exhaustive about these things.
2026-03-06 03:14:46 -05:00