Request for reviews (L): 6340864: Implement vectorization optimizations in hotspot-server
vladimir.kozlov at oracle.com
Thu Jul 26 18:17:10 PDT 2012
I updated webrev:
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
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:
Vladimir Kozlov wrote:
> 6340864: Implement vectorization optimizations in hotspot-server
> Added asm encoding and mach nodes for vector arithmetic instructions on
> 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.
More information about the hotspot-compiler-dev