[lworld] RFR: 8242210: [lworld] TestCallingConvention::test36 spuriously fails

Tobias Hartmann thartmann at openjdk.java.net
Tue Apr 7 16:22:54 UTC 2020

- G1 pre- and post-barriers used when (un-)packing arguments for the calling convention can call into the runtime which
  screws up argument registers. Save all registers until JDK-8232094 is fixed in mainline (it's the slow path anyway).
- SignatureStream::as_value_klass triggers a SystemDictionary lookup which acquires the ProtectionDomainSet_lock. When
  used from fieldDescriptor::print_on_for when some debug printing flags are enabled, this conflicts with the tty_lock.
  We should simply use get_value_field_klass instead. Also, we should handle null as a vale for non-flattened fields.
  TraceDeoptimization needs to handle re-allocation of the inline type return value.

I've also added a new StressCC option to the ValueTypeTest suite to randomly restrict some compilation to C1 and
thereby stress test the calling convention.


Commit messages:
 - 8242210: [lworld] TestCallingConvention::test36 spuriously fails

Changes: https://git.openjdk.java.net/valhalla/pull/13/files
 Webrev: https://webrevs.openjdk.java.net/valhalla/13/webrev.00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8242210
  Stats: 130 lines in 10 files changed: 26 ins; 52 del; 52 mod
  Patch: https://git.openjdk.java.net/valhalla/pull/13.diff
  Fetch: git fetch https://git.openjdk.java.net/valhalla pull/13/head:pull/13

PR: https://git.openjdk.java.net/valhalla/pull/13

More information about the valhalla-dev mailing list