RFR: 8264271: Avoid creating non_oop_word oops [v3]

Stefan Karlsson stefank at openjdk.java.net
Tue Mar 30 07:44:40 UTC 2021


> Some parts of the JVM puts an marker to show that a location does not contain a valid oop. The code that handles this typically look like this:
> 
> oop* p = ...
> if (*p != Universe::non_oop_word())
> 
> This means that sometimes the *p will create an oop that contains the non_oop_word. This makes it problematic to add stricter oop verification. I propose that we add a new function that checks the value of locations without converting it to an oop. 
> 
> (Note: I'm testing the new dependent pull Skara feature with this PR. It builds depends on the pr/3214 branch)

Stefan Karlsson has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 10 commits:

 - Merge remote-tracking branch 'origin/master' into 8264271_avoid_creating_non_oop_word_oops
 - Merge branch '8264268_dervied_pointer_types' into 8264271_avoid_creating_non_oop_word_oops
 - Remove unused value_fn parameter
 - star alignment cleanup
 - Merge remote-tracking branch 'origin/master' into 8264268_dervied_pointer_types
 - Add static assert
 - Cleanups
 - derived_pointer enum class
 - 8264271: Avoid creating non_oop_word oops
 - 8264268: Don't use oop types for derived pointers

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

Changes: https://git.openjdk.java.net/jdk/pull/3215/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3215&range=02
  Stats: 58 lines in 7 files changed: 38 ins; 10 del; 10 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3215.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3215/head:pull/3215

PR: https://git.openjdk.java.net/jdk/pull/3215


More information about the hotspot-dev mailing list