[13] RFR (S): 8225106: C2: Parse::clinit_deopt asserts when holder klass is in error state

Doerr, Martin martin.doerr at sap.com
Mon Jun 3 14:50:55 UTC 2019


Hi Vladimir,

thanks for addressing this issue so quickly.

The new assertions look correct to me. Would "initializion_not_started" be a better name?

I'd rather use Unimplemented() in MacroAssembler::clinit_barrier when both labels are provided, because this case is not used and doesn't look very useful. But you can keep what you have if you prefer that.

I think the "assert(VM_Version::supports_fast_class_init_checks(), ..." are pointless in platform files. Would you like to keep them?

Thanks for improving the test. Seems like you currently expect a wrong exception:
Execution failed: `main' threw exception: java.lang.AssertionError: INIT_FAILURE: unexpected exception thrown: expected java.lang.NoClassDefFoundError, caught java.lang.AssertionError

Also thank you for looking at my PPC64 and s390 implementations. I'll rebase and update them after this change is pushed.

Best regards,
Martin


> -----Original Message-----
> From: Vladimir Ivanov <vladimir.x.ivanov at oracle.com>
> Sent: Freitag, 31. Mai 2019 22:15
> To: hotspot compiler <hotspot-compiler-dev at openjdk.java.net>
> Cc: Doerr, Martin <martin.doerr at sap.com>
> Subject: [13] RFR (S): 8225106: C2: Parse::clinit_deopt asserts when holder
> klass is in error state
> 
> http://cr.openjdk.java.net/~vlivanov/8225106/webrev.00/
> https://bugs.openjdk.java.net/browse/JDK-8225106
> 
> Some asserts introduced as part of JDK-8223213 [1] don't take into
> account the case when the class which participates in class
> intialization barrier is in error state (class initialization failed
> with an exception).
> 
> Proposed fix adjusts the asserts, plus slightly improves handling of
> cases when classes in error state are encountered.
> 
> Testing: hs-precheckin-comp, tier1-4
> 
> Best regards,
> Vladimir Ivanov
> 
> [1] https://bugs.openjdk.java.net/browse/JDK-8223213


More information about the hotspot-compiler-dev mailing list