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

Abstract interpretation based analysis #578

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

Abstract interpretation based analysis #578

wants to merge 57 commits into from

Conversation

yamaguchi1024
Copy link
Member

@yamaguchi1024 yamaguchi1024 commented Feb 7, 2024

(this comment is outdated. needs update)

This PR:

  • src/exo/dataflow.py implements abstract interpretation based scalar propagation
  • Convert all the checks to use DataflowIR based 1) control values 2) abstract values. I still rely on stmts_effs and PostEnv to extract effects from LoopIR, but I don't use them for propagating values.
  • Only actual configuration states value sensitive analysis is Check_DeleteConfigWrite. Other checks can actually be strickter, by being value-insensitive. For instance, reordering Config.Load = 1.0 ; Config.Load = 1.0 is invalid, but deleting one of the configurations should be valid.

What I hope to do after merging this PR:

  • performance improvement
    • Integrate DataflowIR into LoopIR. DataflowIR is similar to LoopIR so it won't be too much of a hussle
    • Iterate on the Cursor not the tree
    • Cache abstract values on LoopIR
    • Merge controls into the abstract values (integrate ScalarPropagation with GetControlPredicates)
  • Precision improvement
    • Support loop-over-arrays

@yamaguchi1024 yamaguchi1024 marked this pull request as draft February 7, 2024 17:35
@codecov-commenter
Copy link

codecov-commenter commented Feb 7, 2024

Codecov Report

Attention: Patch coverage is 97.31622% with 23 lines in your changes missing coverage. Please review.

Project coverage is 88.45%. Comparing base (0cf7e19) to head (dd00c56).

Files Patch % Lines
src/exo/dataflow.py 96.23% 19 Missing ⚠️
src/exo/dataflow_pprint.py 97.24% 3 Missing ⚠️
tests/test_dataflow.py 98.66% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #578      +/-   ##
==========================================
+ Coverage   87.74%   88.45%   +0.71%     
==========================================
  Files          84       87       +3     
  Lines       20658    21256     +598     
==========================================
+ Hits        18126    18802     +676     
+ Misses       2532     2454      -78     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@yamaguchi1024 yamaguchi1024 marked this pull request as ready for review July 23, 2024 20:24
@yamaguchi1024 yamaguchi1024 changed the title [draft] abstract interpretation Abstract interpretation based analysis Jul 23, 2024
@yamaguchi1024 yamaguchi1024 force-pushed the aenv branch 4 times, most recently from 71490bb to 9a2fecd Compare August 17, 2024 23:47
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