[jdk17] RFR: 8269820: C2 PhaseIdealLoop::do_unroll get wrong opaque node [v2]

Hui Shi hshi at openjdk.java.net
Mon Jul 5 01:31:33 UTC 2021


> In PhaseIdealLoop::is_canonical_loop_entry check, opaque node can be at either input of compare node, after is_canonical_loop_entry check, opaq node is getting only from compare node's in(2). This might get wrong oqaque node and cause crash/assertion.  Detailed crash and analysis is in JBS.
> 
> Fix: Adding method PhaseIdealLoop::get_opaque_from_cmp, getting opaque node from cmp node's either input.
> 
> Test: Linux X64 tier1/2/3 release/fastdebug no regression.
> 
> After this fix, BoolNode::Ideal might remove its code forbidding swapping compare node's input node order when second one is opaque1 node.

Hui Shi has updated the pull request incrementally with one additional commit since the last revision:

  Fix more places assumption opaque at second input of compare nodes

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

Changes:
  - all: https://git.openjdk.java.net/jdk17/pull/208/files
  - new: https://git.openjdk.java.net/jdk17/pull/208/files/946984e9..a85fba61

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk17&pr=208&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk17&pr=208&range=00-01

  Stats: 8 lines in 1 file changed: 2 ins; 0 del; 6 mod
  Patch: https://git.openjdk.java.net/jdk17/pull/208.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk17 pull/208/head:pull/208

PR: https://git.openjdk.java.net/jdk17/pull/208


More information about the hotspot-compiler-dev mailing list