[code-reflection] RFR: Aggregated work on Verifier and BytecodeLift deconstruction
Adam Sotona
asotona at openjdk.org
Wed Nov 6 12:25:05 UTC 2024
On Fri, 18 Oct 2024 10:06:38 GMT, Adam Sotona <asotona at openjdk.org> wrote:
> This PR is aggregated continuation of work on `Verifier` #247 and new simplified and deconstructed implementation of `BytecodeLift`.
>
> Work on `Verifier` revealed bugs in `BytecodeLift`.
> Fixing of the bugs adds more complexity to already very complex `BytecodeLift`.
> The goal of this PR is to deconstruct `BytecodeLift` to its bare bones and re-introduce a kind of bytecode dialect:
> - `UnresolvedType.Ref` and `UnresolvedType.Int` represent references and int with all its possible sub-types
> - `SlotOp` is an intermediate model of local variables
> - `SlotToVarTransformer` transforms `SlotOp` to `CoreOp.VarOp`
> - `UnresolvedTypesTransformer` transforms `UnresolvedType.Ref` and `UnresolvedType.Int` to `JavaType`.
This is not final state of the `BytecodeLift` conversion nor `Verifier` implementation.
`TestSmallCorpus` actually pass first round without errors, however second round indicates verification errors related to exception regions on the lifted model (Verifier newly checks exception region stack of the model).
Please review proposed changes.
Thanks,
Adam
TestSmallCorpus just reached 3rd round 100% stability, with no exceptions and no verification errors.
I highly recommend to switch to this decomposed model of BytecodeLift as a new base for the follow-up work.
Thanks,
Adam
-------------
PR Comment: https://git.openjdk.org/babylon/pull/258#issuecomment-2450165187
PR Comment: https://git.openjdk.org/babylon/pull/258#issuecomment-2451451615
More information about the babylon-dev
mailing list