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