• Home
    • View
    • Login
    This page
    • Normal
    • Export PDF
    • Page Information

    Loading...
  1. Dashboard
  2. Undefined Space
  3. Valhalla
  4. Minimal Value Types Command line Options

Minimal Value Types Command line Options

  • Created by Paul Sandoz, last modified by Karen Kinnear on Aug 08, 2017

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

FlagDescription
-Xlint:valuesLint category for warnings associated to bad usage of value capable classes - examples:
  • VCC not final
  • VCC cannot 'extend' another class
  • overrides of 'bad' Object methods (such as wait/notify)
  • illegal modifiers on VCC such as 'synchronized'
  • non-final instance fields in VCC
  • cannot assign 'null' to variable of VCC type

java

FlagDescription
-Djava.lang.invoke.MethodHandle.DUMP_CLASS_FILES

Boolean value, default value is `false`
If true dump class files generated for lambda forms and derived value types

into a directory named DUMP_CLASS_FILES under the current directory.

-Dvalhalla.enableValueLambdaForms

Boolean value, default value is `true`
If true then lambda forms with value types in their signature will use the Q type __Value

and value-type specific byte code will be generated.

-Dvalhalla.dumpProxyClassesBoolean value, default value is `false`
If true, dumps MVT lambda forms.
-Dvalhalla.enablePoolPatches

Boolean value, default value is `false`
If true and if "valhalla.enableValueLambdaForms" is true then lambda forms with value types in their signature

will generate byte code with constant pool patching where appropriate.

HotSpot

FlagDescription
-XX:EnableMVTBoolean 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:noneDisable verification. Verification is not yet supported.
-XX:ValueArrayFlattenBoolean value, default value is `true`
Flatten arrays of values, if possible
-XX:ValueArrayElemMaxFlatSizeInteger value, default is -1
Max size for flattening an array of values, < 0 means no limit
-XX:ValueArrayElemMaxFlatOopsInteger value, default is 4
Max number of embedded object references in value type to flatten in an array, < 0 means no limit 
-XX:ValueTypePassFieldsAsArgsNon-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:ValueTypeReturnedAsFieldsNon-product: Boolean value, default value is `true`
Return value type fields instead of a value type reference
-XX:ValueArrayAtomicAccessBoolean value, default value is `false`
Enable atomic access to values in an array
 -XX:-UseTLABTo see heap allocations which do not use optimized Thread Local Allocation Buffers
  -XX:+PrintEliminateAllocationsNon-product builds: Print out when allocations are eliminated
  -XX:+PrintEscapeAnalysisNon-product builds: Print results of escape analysis (e.g. if you believe boxing was not eliminated)


 



 

Overview
Content Tools
ThemeBuilder
  • No labels

Terms of Use
• License: GPLv2
• Privacy • Trademarks • Contact Us

Powered by a free Atlassian Confluence Open Source Project License granted to https://www.atlassian.com/software/views/opensource-community-additional-license-offer. Evaluate Confluence today.

  • Kolekti ThemeBuilder Powered by Atlassian Confluence 8.5.21
  • Kolekti ThemeBuilder printed.by.atlassian.confluence
  • Report a bug
  • Atlassian News
Atlassian
Kolekti ThemeBuilder EngineAtlassian Confluence
{"serverDuration": 140, "requestCorrelationId": "5b78dd287f2b27d2"}