Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data flow: Support hidden parameter/return nodes in subpaths predicate #6824

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

@hvitved
Copy link
Contributor

@hvitved hvitved commented Oct 6, 2021

It is not uncommon to have hidden return nodes. For example, languages that add a single unified return node that joins all syntactic return nodes (to reduce fan-in), probably want to hide such synthetic return nodes. However, the subpaths predicate does not work with hidden return nodes.

This PR lifts that restriction, and instead chooses any predecessor(s) of the hidden return node hidden as the ret node in subpaths. ret must not be hidden, and it must be possible to reach hidden from ret by only going through hidden nodes.

Although probably less realistic to happen in practice, a similar logic is implemented for hidden parameters.

Finally, the subpaths predicate now filters away tuples where either arg or out is hidden.

@hvitved hvitved requested review from as code owners Oct 6, 2021
@hvitved hvitved marked this pull request as draft Oct 6, 2021
@hvitved hvitved marked this pull request as ready for review Oct 7, 2021
@hvitved hvitved force-pushed the dataflow/subpath-hidden branch 3 times, most recently from d9f896e to 9e4fea8 Oct 14, 2021
@hvitved hvitved force-pushed the dataflow/subpath-hidden branch from 9e4fea8 to 9c95104 Oct 20, 2021
@hvitved hvitved force-pushed the dataflow/subpath-hidden branch from 9c95104 to 30f0ce4 Oct 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants