RFR: 8263709: Cleanup THREAD/TRAPS/CHECK usage in JRT_ENTRY routines [v5]

David Holmes dholmes at openjdk.java.net
Thu Apr 15 02:20:09 UTC 2021


> The existing JRT_ENTRY (and related) macros require the function to which they are applied to declare a parameter "JavaThread* thread" which represents the current thread. These functions are all implicitly "traps" functions as they can result in exceptions, but they are not declared with TRAPS because the only caller of these functions is the runtime itself (via call_VM) and no callers need to be aware to use CHECK; further they need a JavaThread. So the macro declares the THREAD variable for use with other exception-producing functions and assigns it from "thread".
> 
> The majority of this change replaces the parameter name "thread" with "current" so that it is clear that we are always dealing with the current thread. This affects the entry functions as well as the functions called therefrom.
> 
> We can then also replace the use of "THREAD" with "current", in contexts that are not related to exception processing.
> 
> Some methods called by entry functions were declared to have both a "thread" parameter and a "TRAPS" parameter - with nothing to tell you these are always the same, current, thread. So the "thread" parameter is removed and replaced with a local variable "current" obtained from THREAD->as_Java_thread().
> 
> Some missing CHECK_ uses were added.
> 
> Testing:
>   - tiers 1-3
> 
> Thanks,
> David

David Holmes has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains ten additional commits since the last revision:

 - Merge branch 'master' into jrt_entry_v2
 - Fix style nit for kvn
 - Merge branch 'master' into jrt_entry_v2
 - Fix search&replace mistake
 - Fix minor nits reported by @coleenp and @hseigel
 - @coleenp review comment - Avoid manifesting JavaThread::current() when it can be passed in
 - Added in missed JRT_BLOCK_ENTRY methods in AOT-related jvmci/compilerRuntime.cpp
 - Fixed CHECK on return statement.
 - 8263709: Cleanup THREAD/TRAPS/CHECK usage in JRT_ENTRY routines

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/3394/files
  - new: https://git.openjdk.java.net/jdk/pull/3394/files/9cfc43c2..166c7fe5

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3394&range=04
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3394&range=03-04

  Stats: 17123 lines in 917 files changed: 10458 ins; 5286 del; 1379 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3394.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3394/head:pull/3394

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


More information about the hotspot-compiler-dev mailing list