RFR: 8264360: Loop strip mining verification fails with "should be on the backedge"

Tobias Hartmann thartmann at openjdk.java.net
Tue Mar 30 06:13:55 UTC 2021


On Mon, 29 Mar 2021 15:53:33 GMT, Roland Westrelin <roland at openjdk.org> wrote:

> The assert checks that loads that are found as uses of a loop back
> edge have the back edge as control input. In this case, because that
> code is executed during final graph reshaping (CastPPs are in the
> process of being eliminated and memory operations inherit their
> control inputs as precedence edges), the edge between a load and the
> back edge is a precedence edge. Relaxing the assert is all that is
> required.

The fix looks good to me but you might want to clean up the test a bit before pushing (I've added some comments).

test/hotspot/jtreg/compiler/loopstripmining/TestLoadOnBackedgeWithPrec.java line 43:

> 41:     int c ;
> 42:     a[] i =   {
> 43:         new a()};

Whitespaces and newline should be removed.

test/hotspot/jtreg/compiler/loopstripmining/TestLoadOnBackedgeWithPrec.java line 46:

> 44:     float j() {
> 45:         a k = new a();
> 46:         float l = 5     ;

Whitespaces before `;` should be removed.

test/hotspot/jtreg/compiler/loopstripmining/TestLoadOnBackedgeWithPrec.java line 60:

> 58:                     new a(), new a(), new a(),
> 59:                     new a(), new a(), new a()};
> 60:                 c = i[0].g   + k.g;

Whitespaces before `+` should be removed.

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

Marked as reviewed by thartmann (Reviewer).

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


More information about the hotspot-compiler-dev mailing list