[code-reflection] RFR: New model store implementation [v2]

Adam Sotona asotona at openjdk.org
Mon Nov 3 20:24:11 UTC 2025


> This PR adds an alternative code model storage implementation.
> 
> With the new implementation compiler attaches a code-model attribute to the synthesized helper method. The method then returns the model by `invokedynamic` of a bootstrap method that reads and materializes the attribute at runtime.
> 
> The new implementation can be selected by setting the compiler option `codeModelStorageOption` to `"CODE_MODEL_ATTRIBUTE"`.
> 
> Please review.
> 
> Thanks,
> Adam

Adam Sotona has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 16 additional commits since the last revision:

 - Merge branch 'code-reflection' into new-model-store
 - added javadoc
   
 - switched default CodeModelStorageOption back to CODE_BUILDER
   
 - added javadoc
   
 - caching vs. non-caching callsite construction
   
 - synth method body refactored to use indy call
   
 - reducing API surface
   
 - reducing API surface
   
 - annotations refactored to the synthetic methods
   
 - class file footprint optimizations
   
 - ... and 6 more: https://git.openjdk.org/babylon/compare/dc5f36d8...8ab47cd0

-------------

Changes:
  - all: https://git.openjdk.org/babylon/pull/654/files
  - new: https://git.openjdk.org/babylon/pull/654/files/b2be1ee3..8ab47cd0

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=babylon&pr=654&range=01
 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=654&range=00-01

  Stats: 437927 lines in 6687 files changed: 292416 ins; 100588 del; 44923 mod
  Patch: https://git.openjdk.org/babylon/pull/654.diff
  Fetch: git fetch https://git.openjdk.org/babylon.git pull/654/head:pull/654

PR: https://git.openjdk.org/babylon/pull/654


More information about the babylon-dev mailing list