Skip to content

Conversation

@jsikstro
Copy link
Member

@jsikstro jsikstro commented Jan 9, 2026

Hello,

The hierarchies in oopsHierarchy.hpp are not up to date with the actual class hierarchies in the implementation. I've refered to these a couple of times and stumble on the fact that they are not accurate.

I've tested that this builds locally.


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed (1 review required, with at least 1 Committer)

Issue

  • JDK-8374882: [lworld] Update hierarchies in oopsHierarchy.hpp (Enhancement - P4)

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/valhalla.git pull/1874/head:pull/1874
$ git checkout pull/1874

Update a local copy of the PR:
$ git checkout pull/1874
$ git pull https://git.openjdk.org/valhalla.git pull/1874/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 1874

View PR using the GUI difftool:
$ git pr show -t 1874

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/valhalla/pull/1874.diff

Using Webrev

Link to Webrev Comment

@bridgekeeper
Copy link

bridgekeeper bot commented Jan 9, 2026

👋 Welcome back jsikstro! A progress list of the required criteria for merging this PR into lworld will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

openjdk bot commented Jan 9, 2026

@jsikstro This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

After integration, the commit message for the final commit will be:

8374882: [lworld] Update hierarchies in oopsHierarchy.hpp

Reviewed-by: phubner, aboldtch, fparain

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 2 new commits pushed to the lworld branch:

  • 1ecc74b: 8374887: [lworld] Cleanup around vgetfield/vputfield for x86
  • ab311a7: 8374913: [lworld] UnProblemList three tests due to JDK-8372341

Please see this link for an up-to-date comparison between the source branch of this pull request and the lworld branch.
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@Arraying, @xmas92, @fparain) but any other Committer may sponsor as well.

➡️ To flag this PR as ready for integration with the above commit message, type /integrate in a new comment. (Afterwards, your sponsor types /sponsor in a new comment to perform the integration).

@openjdk openjdk bot added the rfr Pull request is ready for review label Jan 9, 2026
@mlbridge
Copy link

mlbridge bot commented Jan 9, 2026

Webrevs

Copy link
Member

@Arraying Arraying left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Long overdue, thanks for doing this. Makes it clear that the refArrayOopDesc is a bit special.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Jan 9, 2026
typedef class typeArrayOopDesc* typeArrayOop;
typedef class flatArrayOopDesc* flatArrayOop;
typedef class flatArrayOopDesc* flatArrayOop;
typedef class refArrayOopDesc* refArrayOop;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't refArrayOopDesc be aligned with flatArrayOopDesc?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think so:
class refArrayOopDesc : public arrayOopDesc {

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But :
class RefArrayKlass : public ObjArrayKlass
So there's an unconsistency here, refArrayOopDesc should be a subclass of objArrayOopDesc.

Copy link
Member Author

@jsikstro jsikstro Jan 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that it would be clearer to make refArrayOopDesc inherit from objArrayOopDesc. I'll run some tests to see if it's a simple "switch" to inherit from objArrayOopDesc instead. If it's a trivial change I can add it to this PR and change the hierarchy in oopsHierarchy.hpp, otherwise I suggest we should handle that in a follow-up.

@jsikstro
Copy link
Member Author

I've ran Oracle's tier 1-4, hotspot_valhalla and jdk_valhalla with refArrayOop inheriting from objArrayOop instead, which looks good. As it is a simple "switch", I'll go ahead and do that in this PR. I also made some spelling fixes to the description of refArrayOop.

Copy link
Member

@xmas92 xmas92 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm.

Copy link
Collaborator

@fparain fparain left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the re-parenting of refArrayOop.
Looks good to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready Pull request is ready to be integrated rfr Pull request is ready for review

Development

Successfully merging this pull request may close these issues.

4 participants