Skip to content

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