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:
Flag | Description | |
---|---|---|
javac | ||
-Xlint:values | Lint category for warnings associated to bad usage of value capable classes - examples:
| |
java | ||
-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 | ||
-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) |