This page describes the command line for the experimental java compiler, the java launcher and HotSpot for the support of value types in the valhalla project.
Minimal Value Types flags:
javac
Flag | Description |
---|---|
-Xlint:values | Lint category for warnings associated to bad usage of value capable classes - examples:
|
java
Flag | Description |
---|---|
-Djava.lang.invoke.MethodHandle.DUMP_CLASS_FILES | Boolean value, default value is `false` into a directory named DUMP_CLASS_FILES under the current directory. |
-Dvalhalla.enableValueLambdaForms | Boolean value, default value is `true` and value-type specific byte code will be generated. |
-Dvalhalla.dumpProxyClasses | Boolean value, default value is `false` If true, dumps MVT lambda forms. |
-Dvalhalla.enablePoolPatches | Boolean value, default value is `false` will generate byte code with constant pool patching where appropriate. |
HotSpot
Flag | Description |
---|---|
-XX:EnableMVT | Boolean value, default value is `false` If true enable support for minimal value types with a value capable class and an associated derived value type. |
-XVerify:none | Disable verification. Verification is not yet supported. |
-XX:ValueArrayFlatten | Boolean value, default value is `true` Flatten arrays of values, if possible |
-XX:ValueArrayElemMaxFlatSize | Integer value, default is -1 Max size for flattening an array of values, < 0 means no limit |
-XX:ValueArrayElemMaxFlatOops | Integer value, default is 4 Max number of embedded object references in value type to flatten in an array, < 0 means no limit |
-XX:ValueTypePassFieldsAsArgs | Non-product: Boolean value, default value is `true` Pass each value type field as an argument to a method call instead of a value type reference |
-XX:ValueTypeReturnedAsFields | Non-product: Boolean value, default value is `true` Return value type fields instead of a value type reference |
-XX:ValueArrayAtomicAccess | Boolean value, default value is `false` Enable atomic access to values in an array |
-XX:-UseTLAB | To see heap allocations which do not use optimized Thread Local Allocation Buffers |
-XX:+PrintEliminateAllocations | Non-product builds: Print out when allocations are eliminated |
-XX:+PrintEscapeAnalysis | Non-product builds: Print results of escape analysis (e.g. if you believe boxing was not eliminated) |