On Mon, 27 Mar 2023 16:43:17 GMT, Adam Sotona <asot...@openjdk.org> wrote:

>> java.base java.lang.reflect.ProxyGenerator uses ASM to generate proxy 
>> classes and this patch converts it to use Classfile API.
>> 
>> Please review.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapGenerator performance improvements

Keep-alive.

I believe the changes to cache ClassDesc symbol in ClassEntry and avoid 
re-computing hash in Utf8Entry can be in a separate patch delivered before the 
current migration patch.

For the StackMapGenerator changes, I don't agree with replacing `TOP_TYPE` with 
`null`: currently, top type is `0, null, 0`, which can be the default null 
instance after valhalla drops (so filling array will no longer be required at 
that point). Using `null` makes the code less readable and maintainable as well.

I also question the design to move away from `MethodTypeDesc`: `ofDescriptor` 
is expensive, but we can check the slots of a method type with a 
`MethodTypeDesc` easily than tokenizing and skipping the raw descriptor string, 
like 

var slots = type.parameterCount()
for (var param : type.parameterList()) // when parameterList is optimized
    if (param.isPrimitive() && (param.descriptorString.charAt(0) == 'D' || 
param.descriptorString.charAt(0) == 'J')) slots++;


Same for processing invoke instructions: if we can reuse the `MethodTypeDesc` 
at `invokeInstruction` call sites, we don't need an ad-hoc type computation 
either.

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

PR Comment: https://git.openjdk.org/jdk/pull/10991#issuecomment-1520993443

Reply via email to