We should add an assert before record_method_not_compilable so that we can catch the bugs in debug build, but still handle it gracefully in production builds.
One example is
4163 85 b 4 Test::test (32 bytes) COMPILE SKIPPED: malformed control flow (retry at different tier)
But things like "malformed control flow" should be fixed. In this case, we have an IfNode that has only one output Projection.
- relates to
-
JDK-8304328 C2 Bailout "failed spill-split-recycle sanity check" reveals hidden issue with RA
- Open
-
JDK-8288981 C2: Fix issues with skeleton predicates
- In Progress
-
JDK-8304532 Add asserts before C1 BAILOUT
- Open
-
JDK-8305185 C2 failed "assert(false) failed: Can't determine return type."
- Open
-
JDK-8308392 [Umbrella] C2: assert(false) failed: malformed control flow
- Open
-
JDK-8328078 C2 compilation bailout with "too many D-U pinch points"
- Open
-
JDK-8303466 C2: failed: malformed control flow. Limit type made precise with MaxL/MinL
- Resolved
-
JDK-8306933 C2: "assert(false) failed: infinite loop" failure
- Resolved
-
JDK-8306997 C2: "malformed control flow" assert due to missing safepoint on backedge with a switch
- Resolved
-
JDK-8307131 C2: assert(false) failed: malformed control flow
- Resolved
-
JDK-8309353 [lworld] C2 compilations fails with assert(false) failed: type flow analysis failed for OSR compilation
- Resolved
-
JDK-8325095 C2: bailout message broken: ResourceArea allocated string used after free
- Resolved
-
JDK-8313241 Temporarily disable "malformed control flow" assert to reduce noise
- Closed
-
JDK-8312096 C2: assert(false) failed: type flow analysis failed for OSR compilation
- Closed
-
JDK-8324743 C2 can't compile method with nested locks
- Open
-
JDK-8332632 Redundant assert "compiler should always document failure: %s" with possible UB
- Open