Skip to content

nilness: bound generated state machine analysis#1728

Open
zbarsky-openai wants to merge 1 commit into
dominikh:masterfrom
zbarsky-openai:nilness-generated-state-machines
Open

nilness: bound generated state machine analysis#1728
zbarsky-openai wants to merge 1 commit into
dominikh:masterfrom
zbarsky-openai:nilness-generated-state-machines

Conversation

@zbarsky-openai

Copy link
Copy Markdown

Dense nilness dataflow can spend more than 263 seconds analyzing one generated go-json encoder, even after the source carries the standard generated-file marker. The observed case was the vm_color_indent nogo action in a focused downstream build; the full invocation was interrupted after 286 seconds.

For functions with more than 1,000 IR blocks, check that the function belongs to a generated file before using the existing conservative unknown-return bailout. All handwritten functions and smaller generated functions retain their current nilness analysis. The new focused regression test constructs the large generated state machine at runtime instead of committing a large fixture.

This is intentionally separate from the recover fix in #1726.

Dense nilness dataflow can spend more than 263 seconds analyzing a
single generated go-json state machine. Return the existing
conservative unknown-result facts only for generated functions with
more than 1,000 IR blocks; leave handwritten functions and smaller
generated functions unchanged.

Construct the oversized generated state machine in a focused test
instead of committing a large fixture.
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