[code-reflection] RFR: Bytecode round 9 [v32]
Adam Sotona
asotona at openjdk.org
Fri Aug 9 09:03:46 UTC 2024
On Fri, 9 Aug 2024 08:52:16 GMT, Adam Sotona <asotona at openjdk.org> wrote:
>> Bytecode round 9 contains following improvements:
>> - `String` (and non-`String`) concats are lifted to `CoreOp.ConcatOp`
>> - `LocalsTypeMapper` is fixed to use instruction index as a key (instead of the instruction identity)
>> - `LocalsTypeMapper` newly calculates types of uninitialized stack map frame entries and provides that info to `BytecodeLift`
>> - `BytecodeLift` is fixed to handle deep stacks correctly while branching + tests added
>> - Oboslete `BytecodeGenerator::conversion` method is replaced by direct call of `CodeBuilder::conversion`
>> - LocalTypeMapper performs iterative correction of int stack map frame entries to support byte, boolean, short and char types
>>
>> `TestSmallCorpus` is not experiencing any first-lift exceptions after the above changes, however we cannot yet say that all the lifted models are correct.
>>
>> Please review.
>>
>> Thanks,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional commit since the last revision:
>
> Updated TestSmallCorpus
Bytecode round 9 reached its goals, `TestSmallCorpus::testDoubleRoundtripStability` indicates:
- no first and second lift exceptions
- no first and second generation exceptions
- no verification errors in any of the generated code (except "Illegal call to internal method")
- ~92% roundtrip stability (>59900 out of ~65000 java.base methods are stable)
-------------
PR Comment: https://git.openjdk.org/babylon/pull/192#issuecomment-2277488811
More information about the babylon-dev
mailing list