org.jikesrvm.adaptive.util
Class AOSExternalOptions

java.lang.Object
  extended by org.jikesrvm.adaptive.util.AOSExternalOptions
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
AOSOptions

public class AOSExternalOptions
extends Object
implements Cloneable

Class to handle command-line arguments and options for the adaptive system.

Note: This file is mechanically generated from AOSOptions.template and MasterOptions.template

Note: Boolean options are defined in /home/dgrove/rvm-trunk/rvm/src-generated/options/BooleanOptions.aos.dat All other options are defined in /home/dgrove/rvm-trunk/rvm/src-generated/options/ValueOptions.aos.dat (value, enumeration, bitmask)


Field Summary
 boolean ADAPTIVE_INLINING
          Should we use adaptive feedback-directed inlining?
 boolean BACKGROUND_RECOMPILATION
          Should recompilation be done on a background thread or on next invocation?
 int BULK_COMPILATION_VERBOSITY
          Control amount of verbosity for bulk compilation (larger ==> more)
 byte CALL_GRAPH_LISTENER_TRIGGER
          What triggers us to take a method sample?
static byte CGL_CBS
           
static byte CGL_TIMER
           
 String COMPILATION_ADVICE_FILE_OUTPUT
          Name of advice file
 String COMPILER_ADVICE_FILE_INPUT
          File containing information about the methods to Opt compile
 String COMPILER_DNA_FILE_NAME
          Name of compiler DNA file (no name ==> use default DNA).
 int COUNTER_BASED_SAMPLE_INTERVAL
          What is the sample interval for counter-based sampling
 double DCG_DECAY_RATE
          What factor should we decay call graph edges hotness by
 int DCG_SAMPLE_SIZE
          After how many timer interrupts do we update the weights in the dynamic call graph?
 int DECAY_FREQUENCY
          After how many clock ticks should we decay
 boolean DISABLE_RECOMPILE_ALL_METHODS
          Disable the ability for an app to request all methods to be recompiled
 String DYNAMIC_CALL_FILE_INPUT
          File containing information about the hot call sites
 String DYNAMIC_CALL_FILE_OUTPUT
          Name of dynamic call graph file
 boolean EARLY_EXIT
          Should AOS exit when the controller clock reaches EARLY_EXIT_VALUE?
 int EARLY_EXIT_TIME
          Value of controller clock at which AOS should exit if EARLY_EXIT is true
 boolean ENABLE_ADVICE_GENERATION
          Do we need to generate advice files?
 boolean ENABLE_BULK_COMPILE
          Should the adaptive system be disabled, and methods given in the advice file compiled when BulkCompile.compileAllMethods() is called?
 boolean ENABLE_PRECOMPILE
          Should bulk compilation be triggered before the user thread is started?
 boolean ENABLE_RECOMPILATION
          Should the adaptive system recompile hot methods?
 int FINAL_REPORT_LEVEL
          Control amount of info reported on exit (larger ==> more)
 boolean GATHER_PROFILE_DATA
          Should profile data be gathered and reported at the end of the run?
 byte INITIAL_COMPILER
          Selection of initial compiler
 double INLINE_AI_HOT_CALLSITE_THRESHOLD
          What percentage of the total weight of the dcg demarcates warm/hot edges
 double INLINE_AI_SEED_MULTIPLIER
          Initial edge weight of call graph is set to AI_SEED_MULTIPLER * (1/AI_CONTROL_POINT)
 boolean INSERT_DEBUGGING_COUNTERS
          Enable easy insertion of (debugging) counters in opt recompiled code.
 boolean INSERT_INSTRUCTION_COUNTERS
          Insert counters on all instructions in opt recompiled code?
 boolean INSERT_METHOD_COUNTERS_OPT
          Insert intrusive method counters in opt recompiled code?
 boolean INSERT_YIELDPOINT_COUNTERS
          Insert instrumentation in opt recompiled code to count yieldpoints executed?
 int INVOCATION_COUNT_OPT_LEVEL
          Opt level for recompilation in invocation count based system
 int INVOCATION_COUNT_THRESHOLD
          Invocation count at which a baseline compiled method should be recompiled
static byte IRC_BASE
           
static byte IRC_OPT
           
 String LOGFILE_NAME
          Name of log file
 int LOGGING_LEVEL
          Control amount of event logging (larger ==> more)
 int MAX_OPT_LEVEL
          The maximum optimization level to enable.
 byte METHOD_LISTENER_TRIGGER
          What triggers us to take a method sample?
 int METHOD_SAMPLE_SIZE
          How many timer ticks of method samples to take before reporting method hotness to controller
static byte ML_CBS
           
static byte ML_TIMER
           
 String OFFLINE_INLINE_PLAN_NAME
          Name of offline inline plan to be read and used for inlining
 boolean OSR_PROMOTION
          Should AOS promote baseline-compiled methods to opt?
 byte RECOMPILATION_STRATEGY
          Selection of mechanism for identifying methods for optimizing recompilation
 boolean REPORT_INTERRUPT_STATS
          Report stats related to timer interrupts and AOS listeners on exit
static byte RS_COUNTERS
           
static byte RS_SAMPLING
           
 
Constructor Summary
AOSExternalOptions()
           
 
Method Summary
 boolean baseIRC()
          Is INITIAL_COMPILER set to IRC_BASE?
 boolean cgCBS()
          Is CALL_GRAPH_LISTENER_TRIGGER set to CGL_CBS?
 boolean cgTimer()
          Is CALL_GRAPH_LISTENER_TRIGGER set to CGL_TIMER?
 Object clone()
           
 boolean counters()
          Is RECOMPILATION_STRATEGY set to RS_COUNTERS?
 AOSExternalOptions dup()
           
private static void instancePrintHelpFooter(String prefix)
           
private static void instancePrintHelpHeader(String prefix)
           
private  boolean instanceProcessAsOption(String arg)
           
 boolean mlCBS()
          Is METHOD_LISTENER_TRIGGER set to ML_CBS?
 boolean mlTimer()
          Is METHOD_LISTENER_TRIGGER set to ML_TIMER?
 boolean optIRC()
          Is INITIAL_COMPILER set to IRC_OPT?
static void printHelp(String prefix)
          Print a short description of every option
 void printOptions()
          print a String value of this options object
private  void printOptionsHeader()
           
 boolean processAsOption(String prefix, String arg)
          Take a string (most likely a command-line argument) and try to proccess it as an option command.
 boolean sampling()
          Is RECOMPILATION_STRATEGY set to RS_SAMPLING?
 String toString()
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ENABLE_RECOMPILATION

public boolean ENABLE_RECOMPILATION
Should the adaptive system recompile hot methods?


ENABLE_ADVICE_GENERATION

public boolean ENABLE_ADVICE_GENERATION
Do we need to generate advice files?


ENABLE_BULK_COMPILE

public boolean ENABLE_BULK_COMPILE
Should the adaptive system be disabled, and methods given in the advice file compiled when BulkCompile.compileAllMethods() is called?


ENABLE_PRECOMPILE

public boolean ENABLE_PRECOMPILE
Should bulk compilation be triggered before the user thread is started?


GATHER_PROFILE_DATA

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


ADAPTIVE_INLINING

public boolean ADAPTIVE_INLINING
Should we use adaptive feedback-directed inlining?


EARLY_EXIT

public boolean EARLY_EXIT
Should AOS exit when the controller clock reaches EARLY_EXIT_VALUE?


OSR_PROMOTION

public boolean OSR_PROMOTION
Should AOS promote baseline-compiled methods to opt?


BACKGROUND_RECOMPILATION

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


INSERT_YIELDPOINT_COUNTERS

public boolean INSERT_YIELDPOINT_COUNTERS
Insert instrumentation in opt recompiled code to count yieldpoints executed?


INSERT_METHOD_COUNTERS_OPT

public boolean INSERT_METHOD_COUNTERS_OPT
Insert intrusive method counters in opt recompiled code?


INSERT_INSTRUCTION_COUNTERS

public boolean INSERT_INSTRUCTION_COUNTERS
Insert counters on all instructions in opt recompiled code?


INSERT_DEBUGGING_COUNTERS

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


REPORT_INTERRUPT_STATS

public boolean REPORT_INTERRUPT_STATS
Report stats related to timer interrupts and AOS listeners on exit


DISABLE_RECOMPILE_ALL_METHODS

public boolean DISABLE_RECOMPILE_ALL_METHODS
Disable the ability for an app to request all methods to be recompiled


METHOD_SAMPLE_SIZE

public int METHOD_SAMPLE_SIZE
How many timer ticks of method samples to take before reporting method hotness to controller


INITIAL_COMPILER

public byte INITIAL_COMPILER
Selection of initial compiler


RECOMPILATION_STRATEGY

public byte RECOMPILATION_STRATEGY
Selection of mechanism for identifying methods for optimizing recompilation


METHOD_LISTENER_TRIGGER

public byte METHOD_LISTENER_TRIGGER
What triggers us to take a method sample?


CALL_GRAPH_LISTENER_TRIGGER

public byte CALL_GRAPH_LISTENER_TRIGGER
What triggers us to take a method sample?


LOGFILE_NAME

public String LOGFILE_NAME
Name of log file


COMPILATION_ADVICE_FILE_OUTPUT

public String COMPILATION_ADVICE_FILE_OUTPUT
Name of advice file


DYNAMIC_CALL_FILE_OUTPUT

public String DYNAMIC_CALL_FILE_OUTPUT
Name of dynamic call graph file


COMPILER_DNA_FILE_NAME

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


COMPILER_ADVICE_FILE_INPUT

public String COMPILER_ADVICE_FILE_INPUT
File containing information about the methods to Opt compile


DYNAMIC_CALL_FILE_INPUT

public String DYNAMIC_CALL_FILE_INPUT
File containing information about the hot call sites


BULK_COMPILATION_VERBOSITY

public int BULK_COMPILATION_VERBOSITY
Control amount of verbosity for bulk compilation (larger ==> more)


LOGGING_LEVEL

public int LOGGING_LEVEL
Control amount of event logging (larger ==> more)


FINAL_REPORT_LEVEL

public int FINAL_REPORT_LEVEL
Control amount of info reported on exit (larger ==> more)


DECAY_FREQUENCY

public int DECAY_FREQUENCY
After how many clock ticks should we decay


DCG_DECAY_RATE

public double DCG_DECAY_RATE
What factor should we decay call graph edges hotness by


DCG_SAMPLE_SIZE

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


INLINE_AI_SEED_MULTIPLIER

public double INLINE_AI_SEED_MULTIPLIER
Initial edge weight of call graph is set to AI_SEED_MULTIPLER * (1/AI_CONTROL_POINT)


INLINE_AI_HOT_CALLSITE_THRESHOLD

public double INLINE_AI_HOT_CALLSITE_THRESHOLD
What percentage of the total weight of the dcg demarcates warm/hot edges


OFFLINE_INLINE_PLAN_NAME

public String OFFLINE_INLINE_PLAN_NAME
Name of offline inline plan to be read and used for inlining


EARLY_EXIT_TIME

public int EARLY_EXIT_TIME
Value of controller clock at which AOS should exit if EARLY_EXIT is true


INVOCATION_COUNT_THRESHOLD

public int INVOCATION_COUNT_THRESHOLD
Invocation count at which a baseline compiled method should be recompiled


INVOCATION_COUNT_OPT_LEVEL

public int INVOCATION_COUNT_OPT_LEVEL
Opt level for recompilation in invocation count based system


COUNTER_BASED_SAMPLE_INTERVAL

public int COUNTER_BASED_SAMPLE_INTERVAL
What is the sample interval for counter-based sampling


MAX_OPT_LEVEL

public int MAX_OPT_LEVEL
The maximum optimization level to enable.


IRC_BASE

public static final byte IRC_BASE
See Also:
Constant Field Values

IRC_OPT

public static final byte IRC_OPT
See Also:
Constant Field Values

RS_SAMPLING

public static final byte RS_SAMPLING
See Also:
Constant Field Values

RS_COUNTERS

public static final byte RS_COUNTERS
See Also:
Constant Field Values

ML_TIMER

public static final byte ML_TIMER
See Also:
Constant Field Values

ML_CBS

public static final byte ML_CBS
See Also:
Constant Field Values

CGL_TIMER

public static final byte CGL_TIMER
See Also:
Constant Field Values

CGL_CBS

public static final byte CGL_CBS
See Also:
Constant Field Values
Constructor Detail

AOSExternalOptions

public AOSExternalOptions()
Method Detail

printOptionsHeader

private void printOptionsHeader()

baseIRC

public final boolean baseIRC()
Is INITIAL_COMPILER set to IRC_BASE?


optIRC

public final boolean optIRC()
Is INITIAL_COMPILER set to IRC_OPT?


sampling

public final boolean sampling()
Is RECOMPILATION_STRATEGY set to RS_SAMPLING?


counters

public final boolean counters()
Is RECOMPILATION_STRATEGY set to RS_COUNTERS?


mlTimer

public final boolean mlTimer()
Is METHOD_LISTENER_TRIGGER set to ML_TIMER?


mlCBS

public final boolean mlCBS()
Is METHOD_LISTENER_TRIGGER set to ML_CBS?


cgTimer

public final boolean cgTimer()
Is CALL_GRAPH_LISTENER_TRIGGER set to CGL_TIMER?


cgCBS

public final boolean cgCBS()
Is CALL_GRAPH_LISTENER_TRIGGER set to CGL_CBS?


clone

public Object clone()
             throws CloneNotSupportedException
Overrides:
clone in class Object
Throws:
CloneNotSupportedException

dup

public AOSExternalOptions dup()

processAsOption

public boolean processAsOption(String prefix,
                               String arg)
Take a string (most likely a command-line argument) and try to proccess it as an option command. Return true if the string was understood, false otherwise.

Parameters:
prefix - a Sring to use as a command prefix when printing help.
arg - a String to try to process as an option command
Returns:
true if successful, false otherwise

printHelp

public static void printHelp(String prefix)
Print a short description of every option


toString

public String toString()
Overrides:
toString in class Object
Returns:
a String representing the options values

printOptions

public void printOptions()
print a String value of this options object


instanceProcessAsOption

private boolean instanceProcessAsOption(String arg)

instancePrintHelpHeader

private static void instancePrintHelpHeader(String prefix)

instancePrintHelpFooter

private static void instancePrintHelpFooter(String prefix)