Skip to content

Optimistic Data-Flow Analysis Framework for Graal IR#13447

Draft
00asdf wants to merge 1 commit intooracle:masterfrom
00asdf:caigner/dfanalysis
Draft

Optimistic Data-Flow Analysis Framework for Graal IR#13447
00asdf wants to merge 1 commit intooracle:masterfrom
00asdf:caigner/dfanalysis

Conversation

@00asdf
Copy link
Copy Markdown

@00asdf 00asdf commented Apr 30, 2026

Summary

This pull request adds a framework for optimistic data-flow analysis in Graal IR.
Furthermore, three additional mid-tier phases are provided, a Lazy Sparse Conditional Constant Propagation phase (LSCCP paper), a Full Stamp Analysis phase, and a Pentagonal Analysis Phase (Pentagons paper). All of these phases perform their respective analysis on the Graal IR graph and then replace nodes found to be constant. Unreachable branches are subsequently removed using the canonicalizer. By default, only the LSCCP phase is enabled.

Related Issues

  • TODO

Testing

This PR features a host of tests, which either check for capabilities of the three analyses, or which cover specific problems with the framework experienced throughout development.
As a demo of how to use the framework, an additional test implementing an analysis, checking if an integer value is divisible by 10. This test is extensively commented to show how to implement an analysis without needing to go into detail on the inner workings of the framework.

Documentation

  • TODO

Contributor Checklist

  • I have read the contribution guide.
  • I have the right to contribute the submitted material under the project terms.
  • I have updated tests and documentation where appropriate.
  • If I used a coding assistant, I remain responsible for the entire contribution and have reviewed it accordingly.

@oracle-contributor-agreement
Copy link
Copy Markdown

Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (OCA).
The following contributors of this PR have not signed the OCA:

To sign the OCA, please create an Oracle account and sign the OCA in Oracle's Contributor Agreement Application.

When signing the OCA, please provide your GitHub username. After signing the OCA and getting an OCA approval from Oracle, this PR will be automatically updated.

If you are an Oracle employee, please make sure that you are a member of the main Oracle GitHub organization, and your membership in this organization is public.

@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Required At least one contributor does not have an approved Oracle Contributor Agreement. label Apr 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Required At least one contributor does not have an approved Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant