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

WIP: Extend dataflow analysis to handle reachability #1672

Draft
wants to merge 208 commits into
base: main
Choose a base branch
from

Conversation

acl-cqc
Copy link
Contributor

@acl-cqc acl-cqc commented Nov 20, 2024

TODO:

  • Tests!
  • panic returns Bottom everywhere
  • Populating inputs to a toplevel function needs to mark the FuncDefn as reachable
  • What about panic or TailLoop's whose result isn't used - can containing DFG terminate? Suggests "DFG Output-node-inputs are not propagated to DFG-outputs if ANY node in the DFG has a Bottom output"

* DFContext reinstate fn hugr(), drop AsRef requirement (fixes StackOverflow)
* test_tail_loop_iterates_twice: use tail_loop_builder_exts, fix from #1332(?)
* Fix only-one-DataflowContext asserts using Arc::ptr_eq
@acl-cqc acl-cqc changed the base branch from main to acl/const_fold2 November 20, 2024 14:33
@hugrbot
Copy link
Collaborator

hugrbot commented Nov 20, 2024

Hey there and thank you for opening this pull request! 👋

We require pull request titles to follow the Conventional Commits specification
and it looks like your proposed title needs to be adjusted.

Your title should look like this. The scope field is optional.

<type>(<scope>): <description>

If the PR includes a breaking change, mark it with an exclamation mark:

<type>!: <description>

and include a "BREAKING CHANGE:" footer in the body of the pull request.

Details:

Unknown release type "WIP" found in pull request title "WIP: Extend dataflow analysis to handle reachability". 

Available types:
 - feat
 - fix
 - docs
 - style
 - refactor
 - perf
 - test
 - ci
 - chore
 - revert

github-merge-queue bot pushed a commit that referenced this pull request Dec 4, 2024
Forwards analysis only, but parametrized over the abstract domain, hence
intended to support various applications including constant folding and
potentially devirtualization, intergraph-edge-insertion, etc.

Much complexity is to do with "native" (irrespective of the underlying
domain) treatment of Sum types necessary for proper understanding of
control flow (e.g. conditionals, loops, CFGs).

Generalization of reachability left to #1672 .
Base automatically changed from acl/const_fold2 to main December 4, 2024 11:32
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.

2 participants