mark build::cfg::start_new_block as inline(never) #41015
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
LLVM has a bug - PR32488 - where it fails to deduplicate allocas in some
circumstances. The function
start_new_block
has allocas totalling 1216bytes, and when LLVM inlines several copies of that function into
the recursive function
expr::into
, that function's stack space usagegoes into tens of kiBs, causing stack overflows.
Mark
start_new_block
as inline(never) to keep it from being inlined,getting stack usage under control.
Fixes #40493.
Fixes #40573.
r? @eddyb