RFR: 8274145: C2: Incorrect computation after JDK-8269752

Roland Westrelin roland at openjdk.java.net
Mon Sep 27 09:27:29 UTC 2021


The bug happens because an If node that follows a CountedLoop is
replaced by the CountedLoopEnd node of the main loop. Further
unrolling happens after the If is replaced which causes the condition
of the CountedLoopEnd node to change. This is made possible by
JDK-8269752. The fix I propose is to detect that corner case and
prevent the If to be replaced in that case.

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

Commit messages:
 - fix & test

Changes: https://git.openjdk.java.net/jdk/pull/5712/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5712&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8274145
  Stats: 149 lines in 3 files changed: 148 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5712.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5712/head:pull/5712

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


More information about the hotspot-compiler-dev mailing list