review request (L): 6984311 JSR 292 needs optional bootstrap method parameters
john.r.rose at Oracle.com
Thu Oct 28 11:40:05 PDT 2010
6984311: JSR 292 needs optional bootstrap method parameters
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.)
More information about the mlvm-dev