Request for reviews (L): 6340864: Implement vectorization optimizations in hotspot-server
Vladimir Kozlov
vladimir.kozlov at oracle.com
Thu Jul 26 18:17:10 PDT 2012
I updated webrev:
http://cr.openjdk.java.net/~kvn/6340864/webrev.01
Added new regression tests.
Removed mach nodes for vector logical right shift for short[] because it
produces incorrect java results for signed shorts. Java code converts a short
value into integer with sign extension, shift integer value and then store low
16 bits.
Fixed narrowed type propagation for vector elements: determine a narrow type of
arithmetic operations by propagating the type of memory operations (stores).
Don't use narrow type from IGVN because it could be more narrow than actual
type: AndI(LoadI(), 0xFF) gives incorrect Byte velt_type for AndI result. Byte
velt type will be correct only if it is used by a byte store operation:
StoreB(AndI(LoadI(), 0xFF)).
Thanks,
Vladimir
Vladimir Kozlov wrote:
> http://cr.openjdk.java.net/~kvn/6340864/webrev
>
> 6340864: Implement vectorization optimizations in hotspot-server
>
> Added asm encoding and mach nodes for vector arithmetic instructions on
> x86.
> Added new emit_*_arith() helper methods to simplify code for asm encoding.
> Added few missing parts in superword code which already supports vector
> arithmetic (added code for vector MulI and URShiftI).
>
> Note: these changes did not implement vectorization to get a sum of
> array's elements as bug's description asked - it needs more work.
>
> Tested with compiler and java/lang regression tests, CTW and also
> provided vector arithmetic tests. I am converting those tests into
> compiler regression tests which will be included into these changes.
>
> Thanks,
> Vladimir
More information about the hotspot-compiler-dev
mailing list