Skip to content

[GR-64675] Introduce TypeFlow.flowState #11966

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

Merged
merged 2 commits into from
Aug 13, 2025

Conversation

graalvmbot
Copy link
Collaborator

This PR merges three TypeFlow volatile integer fields isEnabled,isSaturated, and predicateTriggered into a single flowState field. It saves 8B per flow instance and we allocate millions of flows when building bigger images, so we can expect reduction in terms of tens of MB. Not a groundbreaking improvement, but relatively simple to implement. Apart from footprint reduction, this change also helps to more explicitly capture the possible state transitions each flow may go through.

This PR also includes a refactoring that caches PointstoOptions.TrackAccessChain and PointstoOptions.ParsingContextMaxDepth in AnalysisPolicy, which are currently queried inside every AnalysisMethod constructor (and AnalysisField constructor for TrackAccessChain).

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Aug 13, 2025
@graalvmbot graalvmbot merged commit a35b05c into master Aug 13, 2025
12 of 13 checks passed
@graalvmbot graalvmbot deleted the d-kozak/GR-64675/static-analysis-opt branch August 13, 2025 22:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OCA Verified All contributors have signed the Oracle Contributor Agreement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants