Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For example, to run class foo with source code in file foo.java:

No Format

% javac foo.java
% rvm foo

The general syntax is

No Format

rvm [rvm options...] class [args...]

You may choose from a myriad of options for the rvm command-line. Options fall into two categories: standard and non-standard. Non-standard options are preceded by "-X:".

...

Option

Description

ic_max_target_size

Static inlining heuristic: Upper bound on callee size

ic_max_inline_depth

Static inlining heuristic: Upper bound on depth of inlining

ic_max_always_inline_target_size

Static inlining heuristic: Always inline callees of this size or smaller

ic_massive_method_size

Static inlining heuristic: If root method is already this big, then only inline trivial methods

ai_max_target_size

Adaptive inlining heuristic: Upper bound on callee size

ai_min_callsite_fraction

Adaptive inlining heuristc: Minimum fraction of callsite distribution for guarded inlining of a callee

edge_count_input_file

Input file of edge counter profile data

inlining_guard

Selection of guard mechanism for inlined virtual calls that cannot be statically bound

fp_mode

Selection of strictness level for floating point computations

exclude

Exclude methods from being opt compiled

unroll_log

Unroll loops. Duplicates the loop body 2^n times.

cond_move_cutoff

How many extra instructions will we insert in order to remove a conditional branch?

load_elimination_rounds

How many rounds of redundant load elimination will we attempt?

alloc_advice_sites

Read allocation advice attributes for all classes from this file

frequency_strategy

How to compute block and edge frequencies?

spill_cost_estimate

Selection of spilling heuristic

infrequent_threshold

Cumulative threshold which defines the set of infrequent basic blocks

cbs_hotness

Threshold at which a conditional branch is considered to be skewed

ir_print_level

Only print IR compiled above this level

...

Option

Description

enable_recompilation 

Should the adaptive system recompile hot methods?

enable_advice_generation

Do we need to generate advice file?

enable_precompile

Should the adaptive system precompile all methods given in the advice file before the user thread is started?

enable_replay_compile

Should the adaptive system use the pseudo-adaptive system that solely relies on the advice file?

gather_profile_data

Should profile data be gathered and reported at the end of the run?

adaptive_inlining

Should we use adaptive feedback-directed inlining?

early_exit

Should AOS exit when the controller clock reaches early_exit_value?

osr_promotion

Should AOS promote baseline-compiled methods to opt?

background_recompilation

Should recompilation be done on a background thread or on next invocation?

insert_yieldpoint_counters

Insert instrumentation in opt recompiled code to count yieldpoints executed?

insert_method_counters_opt

Insert intrusive method counters in opt recompiled code?

insert_instruction_counters

Insert counters on all instructions in opt recompiled code?

insert_debugging_counters

Enable easy insertion of (debugging) counters in opt recompiled code.

report_interrupt_stats

Report stats related to timer interrupts and AOS listeners on exit.

disable_recompile_all_methods

Disable the ability for an app to request all methods to be recompiled.

...

Option

Description

method_sample_size

How many timer ticks of method samples to take before reporting method hotness to controller.

initial_compiler

Selection of initial compiler.

recompilation_strategy

Selection of mechanism for identifying methods for optimizing recompilation.

method_listener_trigger

What triggers us to take a method sample?

call_graph_listener_trigger

What triggers us to take a method sample?

logfile_name 

Name of log file.

compilation_advice_file_output

Name of advice file.

dynamic_call_file_output

Name of dynamic call graph file.

compiler_dna_file

Name of compiler DNA file (no name ==> use default DNA).  Discussed in a comment at the head of VM_CompilerDNA.java.

compiler_advice_file_input

File containing information about the methods to Opt compile.

dynamic_call_file_input

File containing information about the hot call sites.

logging_level

Control amount of event logging (larger ==> more).

final_report_level

Control amount of info reported on exit (larger ==> more).

decay_frequency

After how many clock ticks should we decay.

dcg_decay_rate

What factor should we decay call graph edges hotness by.

dcg_sample_size

After how many timer interrupts do we update the weights in the dynamic call graph?

ai_seed_multiplier

Initial edge weight of call graph is set to ai_seed_multiplier * (1/ai_control_point).

offline_inline_plan_name

Name of offline inline plan to be read and used for inlining.

early_exit_time

Value of controller clock at which AOS should exit if early_exit is true.

invocation_count_threshold

Invocation count at which a baseline compiled method should be recompiled.

invocation_count_opt_level

Opt level for recompilation in invocation count based system.

counter_based_sample_interval

What is the sample interval for counter-based sampling.

ai_hot_callsite_threshold

What percentage of the total weight of the dcg demarcates warm/hot edges.

max_opt_level

The maximum optimization level to enable.

Virtual Machine Non-Standard Command-Line Options

Boolean Options

Option

Description

measureCompilation

Time all compilations and report on exit.

measureCompilationPhases

Time all compilation sub-phases and report on exit.

stackTraceFull

Stack traces to consist of VM and application frames.

stackTraceAtExit

Dump a stack trace (via VM.syswrite) upon exit.

verboseTraceClassLoading

More detailed tracing then -verbose:class.

errorsFatal

Exit when non-fatal errors are detected; used for regression testing.

...

Option

Description

maxSystemTroubleRecursionDepth

If we get deeper than this in one of the System Trouble functions, try to die.

interruptQuantum

Timer interrupt scheduling quantum in ms.

schedulingMultiplier

Scheduling quantum = interruptQuantum * schedulingMultiplier.

traceThreadScheduling

Trace actions taken by thread scheduling.

verboseStackTracePeriod

Trace every nth time a stack trace is created.

edgeCounterFile

Input file of edge counter profile data.

CBSCallSamplesPerTick

How many CBS call samples (Prologue/Epilogue) should we take per time tick.

CBSCallSampleStride

Stride between each CBS call sample (Prologue/Epilogue) within a sampling window.

CBSMethodSamplesPerTick

How many CBS method samples (any yieldpoint) should we take per time tick.

CBSMethodSampleStride

Stride between each CBS method sample (any yieldpoint) within a sampling window.

countThreadTransitions

Count, and report, the number of thread state transitions. This works better on IA32 than on PPC at the moment.

forceOneCPU

Force all threads to run on one CPU. The argument specifies which CPU (starting from 0).

 

Running Jikes RVM with valgrind

...

To run a Jikes RVM build with valgrind, use the -wrap flag to invoke valgrind, eg

Code Blocknoformat

rvm -wrap "path/to/valgrind --smc-check=all <valgrind-options>" <jikesrvm-options> ...

this will insert the invocation of valgrind at the appropriate place for it to operate on Jikes RVM proper rather than a wrapper script. 

...