[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