-
Enhancement
-
Resolution: Unresolved
-
P4
-
24
-
None
In order to compare specially coded methods compared to simple loops, we should add a looping base case. As we foresee better and better C2/Graal performance, the loop ones could hopefully improve over time. Also, some tests could be improved by adding more comments.
test/micro/org/openjdk/bench/java/lang/foreign/LoopOverPollutedBuffer.java
test/micro/org/openjdk/bench/java/lang/foreign/LoopOverPollutedSegments.java
-> load / store / reduction --- why are they named "polluted"?
test/micro/org/openjdk/bench/java/lang/foreign/LoopOverRandom.java
-> some form of gather loop, but with an non-inlined call --- why?
test/micro/org/openjdk/bench/java/lang/foreign/LoopOverSlice.java
-> with some wrappers, do Element::get on each - what do you expect here, could that be optimized away completely (empty loop)?
test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentZeroUnsafe.java
-> fill (unsafe and MemorySegment) -- why not normal loop for auto-vectorizer?
test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkCopy.java
-> copy -- why no loop version?
test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkFill.java
- fill -- has loop version
test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkHash.java
- polynomial reduction -- has loop version
test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkMismatch.java
- mismatch (cmp 2 segments) -- why no loop version? - would be nice to test if-conversion
test/micro/org/openjdk/bench/java/lang/foreign/LoopOverPollutedBuffer.java
test/micro/org/openjdk/bench/java/lang/foreign/LoopOverPollutedSegments.java
-> load / store / reduction --- why are they named "polluted"?
test/micro/org/openjdk/bench/java/lang/foreign/LoopOverRandom.java
-> some form of gather loop, but with an non-inlined call --- why?
test/micro/org/openjdk/bench/java/lang/foreign/LoopOverSlice.java
-> with some wrappers, do Element::get on each - what do you expect here, could that be optimized away completely (empty loop)?
test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentZeroUnsafe.java
-> fill (unsafe and MemorySegment) -- why not normal loop for auto-vectorizer?
test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkCopy.java
-> copy -- why no loop version?
test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkFill.java
- fill -- has loop version
test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkHash.java
- polynomial reduction -- has loop version
test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkMismatch.java
- mismatch (cmp 2 segments) -- why no loop version? - would be nice to test if-conversion