RFR: 8281811: assert(_base == Tuple) failed: Not a Tuple after JDK-8280799 [v3]

Roland Westrelin roland at openjdk.java.net
Mon Feb 28 12:42:28 UTC 2022


> The crash occurs because a Shenandoah barrier is expanded between the
> Start node and its control projection. One of the test cases I added
> also shows the same failure with a barrier expansion between a MemBar
> and its control projection. The barrier is expanded at the control
> that PhaseIdealLoop assigns to it.
> 
> This code:
> https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/loopnode.cpp#L5756
> I added back with JDK-8280799 is what's causing the incorrect
> placement of the barrier.
> 
> The fix I propose is to skip that logic if the loop opts pass is for
> barrier expansion as there's no range check elimination then.

Roland Westrelin has updated the pull request incrementally with one additional commit since the last revision:

  merge error

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/7494/files
  - new: https://git.openjdk.java.net/jdk/pull/7494/files/3af1c2ae..29e53f66

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=7494&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=7494&range=01-02

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

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


More information about the hotspot-compiler-dev mailing list