[code-reflection] RFR: Aggregated work on Verifier and BytecodeLift deconstruction [v4]

Adam Sotona asotona at openjdk.org
Wed Nov 6 20:09:25 UTC 2024


> 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`.

Adam Sotona has updated the pull request incrementally with one additional commit since the last revision:

  Types resolution logic moved from UnresolvedType to UnresolvedTypesTransformer

-------------

Changes:
  - all: https://git.openjdk.org/babylon/pull/258/files
  - new: https://git.openjdk.org/babylon/pull/258/files/05c258eb..4b3a239e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=babylon&pr=258&range=03
 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=258&range=02-03

  Stats: 225 lines in 2 files changed: 69 ins; 113 del; 43 mod
  Patch: https://git.openjdk.org/babylon/pull/258.diff
  Fetch: git fetch https://git.openjdk.org/babylon.git pull/258/head:pull/258

PR: https://git.openjdk.org/babylon/pull/258


More information about the babylon-dev mailing list