RFR(S): 8080976: Unexpected AIOOB thrown from 1.9.0-ea-b64 on (regression)

Berg, Michael C michael.c.berg at intel.com
Thu May 28 17:18:34 UTC 2015


Roland I would add a condition so that we save a step, and a comment or two:

              bool ok = false;
              for (unsigned j = 1; j < def_node->req(); j++) {
                Node* in = def_node->in(j);
                if (in == phi) {
                  ok = true;
                  break;
                }
              }

              // do nothing if we did not match the initial criteria
              if (ok == false) {
                continue;
              }

              // The result of the reduction must not be used in the loop
              for (DUIterator_Fast imax, i = def_node->fast_outs(imax); i < imax && ok; i++) {
                Node* u = def_node->fast_out(i);
                if (has_ctrl(u) && !loop->is_member(get_loop(get_ctrl(u)))) {
                  continue;
                }
                if (u == phi) {
                  continue;
                }
                ok = false;
              }

              // iff the uses conform
              if (ok) {
                def_node->add_flag(Node::Flag_is_reduction);
              }

I checked the resultant code for the bug, as is the case for the change in the webrev, the reduction is no longer emitted.  I also checked the relevant micros and verified the desired behavior is still present.

Regards,
-Michael

-----Original Message-----
From: Berg, Michael C 
Sent: Thursday, May 28, 2015 9:43 AM
To: 'Vladimir Kozlov'; hotspot-compiler-dev at openjdk.java.net
Subject: RE: RFR(S): 8080976: Unexpected AIOOB thrown from 1.9.0-ea-b64 on (regression)

I will also review the change, thx, it will be just a bit.

-----Original Message-----
From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Vladimir Kozlov
Sent: Thursday, May 28, 2015 9:33 AM
To: hotspot-compiler-dev at openjdk.java.net
Subject: Re: RFR(S): 8080976: Unexpected AIOOB thrown from 1.9.0-ea-b64 on (regression)

Looks good. Thank you for fixing this.

Vladimir

On 5/28/15 6:55 AM, Roland Westrelin wrote:
> http://cr.openjdk.java.net/~roland/8080976/webrev.00/
>
> A loop where the result of the reduction is used in the loop shouldn’t be vectorized.
>
> Roland.
>


More information about the hotspot-compiler-dev mailing list