Optimistic Data-Flow Analysis Framework for Graal IR#13447
Draft
00asdf wants to merge 1 commit intooracle:masterfrom
Draft
Optimistic Data-Flow Analysis Framework for Graal IR#1344700asdf wants to merge 1 commit intooracle:masterfrom
00asdf wants to merge 1 commit intooracle:masterfrom
Conversation
|
Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
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
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
Contributor Checklist