compiler: beam_ssa_ss: Enforce cutoff for list literals #8162
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.
The alias analysis pass tracks the structure and aliasing status of values given as arguments and returned from functions. The information is kept in the graph provided by the beam_ssa_ss module and is built when the alias analysis processes instructions constructing terms. When a literal is given as an argument to a function, the graph is extended to have the same structure as if the literal was constructed programmatically.
To handle self-recursive functions which, for example builds a list, there is a cutoff which limits the depth to which the graph is constructed. This allows a fixpoint to be reached without implementing a solver for recurrence equations about the structure of the arguments, but also limits the size of the graph.
This patch corrects an omission in the beam_ssa_ss:merge_in_arg/4 function where the cutoff was not enforced for list literals.
Closes #8140