• 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

  • -Xlint:values
    Lint 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

  • -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.dumpProxyClasses
    Boolean 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

  • -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.
  • -XX:ValueTypePassFieldsAsArgs
    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
    Boolean value, default value is `true`
    Return value type fields instead of a value type reference
  • -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:ValueArrayAtomicAccess
    Boolean value, default value is `false`
    Enable atomic access to values in an array

To determine if there are unwanted allocations (boxing) see the flags:

  -XX:-UseTLAB
  -XX:+PrintEliminateAllocations
  -XX:+PrintEscapeAnalysis

 

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": 167, "requestCorrelationId": "9ce14d4fa03376d2"}