RFR: 8247912: Make narrowOop a scoped enum [v3]
Kim Barrett
kbarrett at openjdk.java.net
Wed Sep 30 18:35:00 UTC 2020
> Please review this change to the type narrowOop from a typedef for juint to a
> scoped enum with uint32_t as the representation type. This provides stronger
> type checking when using this type.
>
> For the most part this was fairly straightforward, and the patch size is
> relatively small. The implementation of some existing CompressedOops
> "primitives" required adjustment. An explicit conversion to narrowOop was
> added, with casts change to use it. There were a few places that were type
> punning and needed explicit conversions,, mostly in platform-specific assembly
> support.
>
> There are a couple of lingering problems.
>
> Relocation::pd_set_data_value in relocInfo_ppc.cpp is treating a narrowKlass
> as a narrowOop. I adjusted the code to accommodate the narrowOop change, but
> this probably ought to be done differently.
>
> There are a couple of `(narrowOop)` casts remaining in s390.ad. I'm not sure
> whether these can be safely converted to CompressedOops::narrow_oop_cast.
>
> There might still be some casts from narrowOop to an integral type. Those are
> hard to find in our cast-happy code base.
>
> Testing:
> tier1-6 for Oracle supported platforms.
> Build fastdebug linux-ppc64le and linux-s390x.
Kim Barrett has updated the pull request incrementally with one additional commit since the last revision:
stefank review
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/273/files
- new: https://git.openjdk.java.net/jdk/pull/273/files/e36f7895..0fba2ef1
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=273&range=02
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=273&range=01-02
Stats: 39 lines in 8 files changed: 17 ins; 12 del; 10 mod
Patch: https://git.openjdk.java.net/jdk/pull/273.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/273/head:pull/273
PR: https://git.openjdk.java.net/jdk/pull/273
More information about the shenandoah-dev
mailing list