RFR: 8330388: Remove invokedynamic cache index encoding
Matias Saavedra Silva
matsaave at openjdk.org
Tue Apr 23 15:05:33 UTC 2024
On Wed, 17 Apr 2024 22:48:16 GMT, Dean Long <dlong at openjdk.org> wrote:
>> Before [JDK-8307190](https://bugs.openjdk.org/browse/JDK-8307190), [JDK-8309673](https://bugs.openjdk.org/browse/JDK-8309673), and [JDK-8301995](https://bugs.openjdk.org/browse/JDK-8301995), invokedynamic operands needed to be rewritten to encoded values to better distinguish indy entries from other cp cache entries. The above changes now distinguish between entries with `to_cp_index()` using the bytecode, which is now propagated by the callers.
>>
>> The encoding flips the bits of the index so the encoded index is always negative, leading to access errors if there is no matching decode call. These calls are removed with some methods adjusted to distinguish between indices with the bytecode. Verified with tier 1-5 tests. The changes show no issues when tested against libgraal.
>
> Did you consider minimizing changes by leaving decode_invokedynamic_index/encode_invokedynamic_index calls in place, but having the implementations not change the value?
Thanks for the reviews @dean-long @gilles-duboscq @coleenp and @plummercj!
-------------
PR Comment: https://git.openjdk.org/jdk/pull/18819#issuecomment-2072603376
More information about the hotspot-dev
mailing list