[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Re: RFR: 8301995: Move invokedynamic resolution information out of ConstantPoolCacheEntry [v16]
From:       Matias Saavedra Silva <matsaave () openjdk ! org>
Date:       2023-03-31 15:36:59
Message-ID: PK0dGClZcMANUuw8bqVG7CvOhWTWYsytbJZSH7eI8t4=.e1274720-c236-4076-bae4-e074b80a4145 () github ! com
[Download RAW message or body]

On Tue, 28 Mar 2023 19:50:36 GMT, Matias Saavedra Silva <matsaave@openjdk.org> wrote:

> > The current structure used to store the resolution information for invokedynamic, \
> > ConstantPoolCacheEntry, is difficult to interpret due to its ambigious fields f1 \
> > and f2. This structure can hold information for fields, methods, and \
> > invokedynamics and each of its fields can hold different types of values \
> > depending on the entry.  
> > This enhancement proposes a new structure to exclusively contain invokedynamic \
> > information in a manner that is easy to interpret and easy to extend.  Resolved \
> > invokedynamic entries will be stored in an array in the constant pool cache and \
> > the operand of the invokedynamic bytecode will be rewritten to be the index into \
> > this array. 
> > Any areas that previously accessed invokedynamic data from ConstantPoolCacheEntry \
> > will be replaced with accesses to this new array and structure. Verified with \
> > tier1-9 tests. 
> > The PPC port was provided by @reinrich, RISCV was provided by @DingliZhang and \
> > @zifeihan, and S390x by @offamitkumar. 
> > This change supports the following platforms: x86, aarch64, PPC, RISCV, and S390x
> 
> Matias Saavedra Silva has updated the pull request incrementally with one \
> additional commit since the last revision: 
> s390x NULL to nullptr

> This obviously breaks arm, since its implementation is missing. I opened \
> https://bugs.openjdk.org/browse/JDK-8305387 to track this. This is unfortunate \
> since it holds work on arm in other areas, in my case for #10907. 
> > This change supports the following platforms: x86, aarch64, PPC, RISCV, and S390x
> 
> I wonder about the explicit exclusion of arm. Every other CPU seems to be taken \
> care of, even those Oracle does not maintain. Just curious, was there a special \
> reason for excluding arm?

There is no special reason ARM32 was excluded other than the fact no porter has \
picked it up yet. Fortunately I was able to get in contact with porters for the other \
platforms, but nobody took on the ARM port until now. Thank you for opening the \
issue!

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

PR Comment: https://git.openjdk.org/jdk/pull/12778#issuecomment-1492144686


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic