Request for reviews (XS): 7192964: assert(false) failed: bad AD file

Krystal Mo krystal.mo at oracle.com
Tue Aug 21 13:20:30 PDT 2012


Hi Vladimir,

Looks good to me. Some minor comments below:

superword.cpp, line 1058,

It wasn't immediately obvious to me why

in_bb(p0->in(2))

makes the shift's count a loop variant.
Let's see if my understanding is correct: It relies on the fact that 
SuperWord::_bb is the entire loop body and there's no control flow in 
it, so that, if a value is produced outside this basic block, it must be 
loop invariant.

I'm okay with the change as-is, but it'd be better is this kind of usage 
is factored out into a helper function with comments.

P.S. (Not directly related to this change)
Reading through the code, there are two occurrences of a typo in 
vectornode.cpp, line 183 and 185, "invarient" -> invariant. Could that 
be fixed as well?

Regards,
Kris

On 08/22/2012 02:29 AM, Vladimir Kozlov wrote:
> http://cr.openjdk.java.net/~kvn/7192964/webrev
>
> 7192964: assert(false) failed: bad AD file
>
> Shifts with loop variant counts "a[i]=1<<b[i];" should not be 
> vectorized since hw does not support it.
>
> Thanks,
> Vladimir

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120822/377973b3/attachment.html 


More information about the hotspot-compiler-dev mailing list