[code-reflection] RFR: Bytecode round 9 [v20]
Paul Sandoz
psandoz at openjdk.org
Fri Aug 2 20:14:42 UTC 2024
On Fri, 2 Aug 2024 16:04:13 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:
>
> SlotSSA modified to avoid adding block parameters to catch blocks
src/java.base/share/classes/java/lang/reflect/code/bytecode/SlotSSA.java line 303:
> 301: * @param joinPoints the join points to clean.
> 302: */
> 303: public static void removeCatchBlocksFromJoinPoints(Body body, Map<Block, Set<Integer>> joinPoints) {
An alternative is to remove them from the dominance frontier map?
-------------
PR Review Comment: https://git.openjdk.org/babylon/pull/192#discussion_r1702278398
More information about the babylon-dev
mailing list