[code-reflection] RFR: Remove bytecode dialect [v14]
Paul Sandoz
psandoz at openjdk.org
Fri Feb 9 17:04:03 UTC 2024
On Fri, 9 Feb 2024 13:42:22 GMT, Adam Sotona <asotona at openjdk.org> wrote:
>> This patch re-implements `BytecodeLift` to lift from bytecode directly to the core dialect
>> and removes `BytecodeInstructionOps` with the bytecode dialect.
>>
>> Implementation is complete up to the point of passing all current tests.
>>
>> Please review.
>>
>> Thanks,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional commit since the last revision:
>
> Reverted some locals-related changes
Ok, it's just complicated :-) And i don't fully comprehend all those complexities. I am surprised that the stack map is no longer used. I thought that would be necessary to determine the number of block parameters and therefore the number of arguments to pop off the stack when branching.
Could there be other values placed the on stack before the branching is encountered and popped off after the branches join? If so clearing the stack is too aggressive, and its likely we need to fork the stack on branches (possibly like locals), in the knowledge that at join point the stack will be consistent (as validated by the stack map)?
Yes, you need to maintain your own mapping of code elements when building, as we cannot query what is currently being built.
I expect it will take a number of iterations to get this right. So feel free to integrate when you are comfortable and iterate further with subsequent PRs.
-------------
PR Comment: https://git.openjdk.org/babylon/pull/16#issuecomment-1936276375
More information about the babylon-dev
mailing list