This PR exploits the observation that in many of the cases where we call `methodType.invokerType()` we immediately translate it into a `Name[]` where the only effect is to create an array with an additional leading `BasicType.L_TYPE` argument. Only in a subset of cases will a corresponding `invokerType()` be created later to bind the MH to an invoker.
Providing methods to bypass the creationg of such transient, intermediary `MethodType` creation avoids excessive allocations and adding types to the MT interning table that quickly become stale. Number of executed bytecode on a trivial HelloLambda application drops locally from ~517k to ~505k. ------------- Commit messages: - Avoid calling MT.invokerType() when creating LambdaForms Changes: https://git.openjdk.org/jdk/pull/21035/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=21035&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8340280 Stats: 53 lines in 6 files changed: 19 ins; 11 del; 23 mod Patch: https://git.openjdk.org/jdk/pull/21035.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/21035/head:pull/21035 PR: https://git.openjdk.org/jdk/pull/21035