6984311: JSR 292 needs optional bootstrap method parameters

http://cr.openjdk.java.net/~jrose/6984311/webrev.02/

This is a rework of an earlier review request.  (The subject line mentioned bug 
6981777.)

The changes are (1) the structure of the CONSTANT_MethodApply node is merged 
into the CONSTANT_InvokeDynamic node, and (2) the extra-argument structure is 
N-ary, not binary.

Both of these changes reduce the number of constant pool nodes, relative to the 
binary MethodApply version.

(Motivation:  This change will support injection of additional metadata 
parameters at dynamic call sites.  A key use is for Java closures, where the 
additional metadata parameter is a closure body method.  There are many other 
language-specific uses for such metadata.  Previously, such metadata had to be 
mangled into the name, or coded into a unique per-call-site bootstrap method.  
Both of those older workarounds are significantly more costly in complexity, 
class file size, and constant pool entry count.)

-- John
_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to