[11u] RFR: 8261812: C2 compilation fails with assert(!had_error) failed: bad dominance

Doerr, Martin martin.doerr at sap.com
Wed Apr 21 09:40:25 UTC 2021


Hi Götz,

thanks for the review!

Best regards,
Martin


From: Lindenmaier, Goetz <goetz.lindenmaier at sap.com>
Sent: Mittwoch, 21. April 2021 11:17
To: Doerr, Martin <martin.doerr at sap.com>; jdk-updates-dev at openjdk.java.net; 'hotspot-compiler-dev at openjdk.java.net' <hotspot-compiler-dev at openjdk.java.net>
Cc: Langer, Christoph <christoph.langer at sap.com>
Subject: RE: [11u] RFR: 8261812: C2 compilation fails with assert(!had_error) failed: bad dominance

Hi Martin,

I had a look at the change. Looks good.
Especially the code in macro.cpp is correctly adapted.

Best regards
  Goetz

From: Doerr, Martin <martin.doerr at sap.com<mailto:martin.doerr at sap.com>>
Sent: Monday, April 19, 2021 4:32 PM
To: jdk-updates-dev at openjdk.java.net<mailto:jdk-updates-dev at openjdk.java.net>; 'hotspot-compiler-dev at openjdk.java.net' <hotspot-compiler-dev at openjdk.java.net<mailto:hotspot-compiler-dev at openjdk.java.net>>
Cc: Lindenmaier, Goetz <goetz.lindenmaier at sap.com<mailto:goetz.lindenmaier at sap.com>>; Langer, Christoph <christoph.langer at sap.com<mailto:christoph.langer at sap.com>>
Subject: [11u] RFR: 8261812: C2 compilation fails with assert(!had_error) failed: bad dominance

Hi,

JDK-8261812 is backported to 11.0.12-oracle. I'd like to backport it for parity.
It doesn't apply cleanly.

Bug:
https://bugs.openjdk.java.net/browse/JDK-8261812

Original change:
https://git.openjdk.java.net/jdk/commit/2c0507ec

Resolution steps:
compile.hpp:
-  push_thru_add(PhaseGVN* phase, Node* z, const TypeInteger* tz, const TypeInteger*& rx, const TypeInteger*& ry,
-                BasicType bt);
+  static bool push_thru_add(PhaseGVN* phase, Node* z, const TypeInteger* tz, const TypeInteger*& rx, const TypeInteger*& ry,
+                            BasicType bt);
This cleanup is not applicable. Skipped.

macro.cpp:
+        if (is_subword_type(ft)) {
+          n = Compile::narrow_value(ft, n, phi_type, &_igvn, true);
+        }
The surrounding code is different in 11u because of GC related changes. I had to adapt it.

11u backport:
http://cr.openjdk.java.net/~mdoerr/8261812_C2_assert_11u/webrev.00/

Please review.

Best regards,
Martin



More information about the hotspot-compiler-dev mailing list