CompileCommand help text

Nils Eliasson nils.eliasson at
Tue Nov 25 09:34:42 UTC 2014


I am updating the help text for CompileCommand and would appreciate some 

Nils Eliasson

Use a monospacced font.

CompileCommand allows some control over the compiler. The basic
form of all commands is a command followed by the name of the method.

The compile commands are:
   break,<pattern>       - add break in compiler and in C2 generated code
   print,<pattern>       - print assembly for method
   exclude,<pattern>     - don't compile or inline this method
   inline,<pattern>      - force inline this method
   dontinline,<pattern>  - prevent inlining of this method
   compileonly,<pattern> - exclude all methods except this one
   log,<pattern>         - log this compilation
   option,<pattern>,<option type>,<option name>,<value>
                         - set value of custom option
   option,<pattern>,<bool option name>
                         - short hand for setting boolean option
   quiet                 - silence the compile command output
   help                  - print this text

The preferred pattern for referencing a method is:

For backwards compatibility this form is also allowed:

The signature can be separated by an optional whitespace or comma:
   "package/Class.method ()"
   "package.Class::method ()"

The class identifier and method can can be used together with leading or
trailing *'s for a small amount of wildcarding.

Several CompileCommands can be used on the same command line.
-XX:CompileCommand=exclude,"java/*.*" -XX:CompileCommand=log,"java*.*"

The CompileCommands can also be loaded from a file with the flag
-XX:CompileCommandFile=<file>. Use the same format but without the
commandline flag.

Some commands have conflicting behavior. Currently they have a
undefined behavior when used together.

More information about the hotspot-compiler-dev mailing list