RFR: 8265132 : C2 compilation fails with assert "missing precedence edge" [v4]

Dean Long dlong at openjdk.java.net
Fri Jun 18 02:05:27 UTC 2021


On Fri, 18 Jun 2021 01:44:53 GMT, Jamsheed Mohammed C M <jcm at openjdk.org> wrote:

>> raise_LCA_above_marks checks and marks visited bits from LCA and  move upward. i am trying to be safe by clearing visited bits where we don't use calculated LCA. marking visited and not used cases only get impacted.
>> Only performance issue is explicit clearing logic i guess.
>> 
>> Inconsistency  is marking visited and not using the newly computed LCA. but yes inconsistency can never happen as all the cases are computed by this time. and new store interfering  the loads can seldom come. but i was trying to be safe.
>
> I will remove the logic. as it is not anticipated case.

> Only performance issue is explicit clearing logic i guess

The performance impact I had in mind was this short-circuit in raise_LCA_above_marks():

465      // Test and set the visited bit.
466      if (mid->raise_LCA_visited() == mark)  continue;  // already visited

If the visited mark is cleared, then raise_LCA_above_marks() needs to perform its work again.
Perhaps there is an assert that can guard against the inconsistency you were concerned about.

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

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


More information about the hotspot-compiler-dev mailing list