[code-reflection] Integrated: Make downcall method handles for ORT API functions static
    Maurizio Cimadamore 
    mcimadamore at openjdk.org
       
    Tue Feb 18 19:28:19 UTC 2025
    
    
  
This PR tweaks the method handles in `OnnxRuntime` to be static and final.
The trick is to use a so called "virtual" downcall handle -- a downcall handle that takes its input address as an extra parameter.
Then, we can just adapt such a method handle to fetch the target function address from the incoming `runtimeAddress` parameter.
This way, all the method handles modelling functions in the ORT API can be made static, which unlocks better C2 optimizations.
Clients of such method handles have to be tweaked to pass in the additional leading `runtimeAddress` parameter.
-------------
Commit messages:
 - Move back the `handle` helper method to minimize diffs
 - Add missing leading parameters
 - Add commments
 - Make ORT downcall handles static
Changes: https://git.openjdk.org/babylon/pull/322/files
  Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=322&range=00
  Stats: 72 lines in 1 file changed: 28 ins; 15 del; 29 mod
  Patch: https://git.openjdk.org/babylon/pull/322.diff
  Fetch: git fetch https://git.openjdk.org/babylon.git pull/322/head:pull/322
PR: https://git.openjdk.org/babylon/pull/322
    
    
More information about the babylon-dev
mailing list