[lworld] Clean up compiler test cases
Ioi Lam
ioi.lam at oracle.com
Thu Jul 19 05:16:40 UTC 2018
I found that 7 valhalla tests for the compiler[1] have many very
long @run command-lines [2].
The reason for having these @run cases is to test with different VM
options. However, it's very difficult to maintain, especially when they
are copied several times and are subsequently modified independently.
I wrote a script to analyze the options [3]. If no one objects, I will
refactor these tests to replace these @run lines with something more
manageable.
Thanks
- Ioi
---
[1]
http://hg.openjdk.java.net/valhalla/valhalla/file/39a2d3a3b101/test/hotspot/jtreg/compiler/valhalla/valuetypes
[2] An example of the complicated @run lines:
* @run main/othervm/timeout=120 -Xbootclasspath/a:. -ea
-XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions
* -XX:+UnlockExperimentalVMOptions -XX:+WhiteBoxAPI
-XX:+AlwaysIncrementalInline
* -XX:+EnableValhalla -XX:+ValueTypePassFieldsAsArgs
-XX:+ValueTypeReturnedAsFields -XX:+ValueArrayFlatten
* -XX:ValueFieldMaxFlatSize=-1
-XX:ValueArrayElemMaxFlatSize=-1 -XX:ValueArrayElemMaxFlatOops=-1
* compiler.valhalla.valuetypes.TestLWorld
* @run main/othervm/timeout=120 -Xbootclasspath/a:. -ea
-XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions
* -XX:+UnlockExperimentalVMOptions -XX:+WhiteBoxAPI
-XX:-UseCompressedOops -XX:-UseOptoBiasInlining
* -XX:+EnableValhalla -XX:-ValueTypePassFieldsAsArgs
-XX:-ValueTypeReturnedAsFields -XX:+ValueArrayFlatten
* -XX:ValueFieldMaxFlatSize=-1
-XX:ValueArrayElemMaxFlatSize=-1 -XX:ValueArrayElemMaxFlatOops=-1
* compiler.valhalla.valuetypes.TestLWorld
* @run main/othervm/timeout=120 -Xbootclasspath/a:. -ea
-XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions
* -XX:+UnlockExperimentalVMOptions -XX:+WhiteBoxAPI
-XX:-UseCompressedOops -XX:-UseBiasedLocking
* -XX:+EnableValhalla -XX:+ValueTypePassFieldsAsArgs
-XX:+ValueTypeReturnedAsFields -XX:-ValueArrayFlatten
* -XX:ValueFieldMaxFlatSize=0
-XX:ValueArrayElemMaxFlatSize=0 -XX:ValueArrayElemMaxFlatOops=0
* -DVerifyIR=false
compiler.valhalla.valuetypes.TestLWorld
* @run main/othervm/timeout=120 -Xbootclasspath/a:. -ea
-XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions
* -XX:+UnlockExperimentalVMOptions -XX:+WhiteBoxAPI
-XX:+AlwaysIncrementalInline -XX:-UseBiasedLocking
* -XX:+EnableValhalla -XX:-ValueTypePassFieldsAsArgs
-XX:-ValueTypeReturnedAsFields -XX:+ValueArrayFlatten
* -XX:ValueFieldMaxFlatSize=0
-XX:ValueArrayElemMaxFlatSize=0 -XX:ValueArrayElemMaxFlatOops=0
* -XX:-MonomorphicArrayCheck
* -DVerifyIR=false
compiler.valhalla.valuetypes.TestLWorld
* @run main/othervm/timeout=120 -Xbootclasspath/a:. -ea
-XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions
* -XX:+UnlockExperimentalVMOptions -XX:+WhiteBoxAPI
* -XX:+EnableValhalla -XX:+ValueTypePassFieldsAsArgs
-XX:-ValueTypeReturnedAsFields -XX:+ValueArrayFlatten
* -XX:ValueFieldMaxFlatSize=0
-XX:ValueArrayElemMaxFlatSize=-1 -XX:ValueArrayElemMaxFlatOops=-1
* -XX:-MonomorphicArrayCheck
* -DVerifyIR=false
compiler.valhalla.valuetypes.TestLWorld
[3] Output of my script:
Common to all 5 runs in all files:
-XX:+UnlockDiagnosticVMOptions
-XX:+UnlockExperimentalVMOptions
-XX:+WhiteBoxAPI
-XX:+EnableValhalla
-XX:+IgnoreUnrecognizedVMOptions
-ea -Xbootclasspath/a:.
---- test 1 ---
Common Options: -XX:+AlwaysIncrementalInline
-XX:+ValueTypeReturnedAsFields
-XX:ValueArrayElemMaxFlatSize=-1
-XX:ValueFieldMaxFlatSize=-1
-XX:+ValueArrayFlatten
-XX:ValueArrayElemMaxFlatOops=-1
-XX:+ValueTypePassFieldsAsArgs
File-specific options:
TestArrays.java:
TestLWorld.java:
TestMethodHandles.java:
TestCallingConvention.java:
TestOnStackReplacement.java:
TestIntrinsics.java:
TestBasicFunctionality.java:
---- test 2 ---
Common Options: -XX:ValueFieldMaxFlatSize=-1
-XX:+ValueArrayFlatten
-XX:ValueArrayElemMaxFlatOops=-1
-XX:-UseCompressedOops
-XX:-ValueTypePassFieldsAsArgs
-XX:-ValueTypeReturnedAsFields
-XX:ValueArrayElemMaxFlatSize=-1
File-specific options:
TestArrays.java:
TestLWorld.java: -XX:-UseOptoBiasInlining
TestMethodHandles.java:
TestCallingConvention.java: -XX:ValueTypesBufferMaxMemory=0
TestOnStackReplacement.java:
TestIntrinsics.java:
TestBasicFunctionality.java:
---- test 3 ---
Common Options: -XX:ValueArrayElemMaxFlatSize=0
-XX:ValueFieldMaxFlatSize=0
-XX:+ValueTypeReturnedAsFields
-DVerifyIR=false
-XX:ValueArrayElemMaxFlatOops=0
-XX:-ValueArrayFlatten
-XX:-UseCompressedOops
-XX:+ValueTypePassFieldsAsArgs
File-specific options:
TestArrays.java:
TestLWorld.java: -XX:-UseBiasedLocking
TestMethodHandles.java:
TestCallingConvention.java:
TestOnStackReplacement.java:
TestIntrinsics.java:
TestBasicFunctionality.java:
---- test 4 ---
Common Options: -DVerifyIR=false
-XX:ValueArrayElemMaxFlatSize=0
-XX:ValueFieldMaxFlatSize=0
-XX:ValueArrayElemMaxFlatOops=0
-XX:-ValueTypePassFieldsAsArgs
-XX:+AlwaysIncrementalInline
-XX:-ValueTypeReturnedAsFields
File-specific options:
TestArrays.java: -XX:-MonomorphicArrayCheck
-XX:+ValueArrayFlatten
TestLWorld.java: -XX:-UseBiasedLocking
-XX:-MonomorphicArrayCheck
-XX:+ValueArrayFlatten
TestMethodHandles.java: -XX:-ValueArrayFlatten
TestCallingConvention.java: -XX:-ValueArrayFlatten
TestOnStackReplacement.java: -XX:-ValueArrayFlatten
TestIntrinsics.java: -XX:-MonomorphicArrayCheck
-XX:+ValueArrayFlatten
TestBasicFunctionality.java: -XX:-ValueArrayFlatten
---- test 5 ---
Common Options: -XX:ValueArrayElemMaxFlatOops=-1
-XX:+ValueTypePassFieldsAsArgs
-XX:ValueFieldMaxFlatSize=0
-XX:-ValueTypeReturnedAsFields
-DVerifyIR=false
-XX:ValueArrayElemMaxFlatSize=-1
-XX:+ValueArrayFlatten
File-specific options:
TestArrays.java: -XX:-MonomorphicArrayCheck
TestLWorld.java: -XX:-MonomorphicArrayCheck
TestMethodHandles.java:
TestCallingConvention.java:
TestOnStackReplacement.java:
TestIntrinsics.java: -XX:-MonomorphicArrayCheck
TestBasicFunctionality.java:
More information about the valhalla-dev
mailing list