X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvm%2Foptions.h;h=cdd2bd1940f2aa0b648aca586e6700a5a68df011;hb=bf8499ab68df87c6f744cfdb76850bbf21171be4;hp=373c613acfcc4c8fb2bc3701cd032fdfca9affa7;hpb=89edac55f3fccce6557be55196c4f9c7d62a9660;p=cacao.git diff --git a/src/vm/options.h b/src/vm/options.h index 373c613ac..cdd2bd194 100644 --- a/src/vm/options.h +++ b/src/vm/options.h @@ -1,9 +1,7 @@ /* src/vm/options.h - define global options extern - Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel, - C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring, - E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, - J. Wenninger, Institut f. Computersprachen - TU Wien + Copyright (C) 1996-2005, 2006, 2007, 2008 + CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO This file is part of CACAO. @@ -22,25 +20,24 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - Contact: cacao@cacaojvm.org - - Authors: Christian Thalinger - - Changes: - - $Id: options.h 4942 2006-05-23 08:42:46Z twisti $ - */ #ifndef _OPTIONS_H #define _OPTIONS_H - #include "config.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#include + #include "vm/types.h" -#include "native/jni.h" +#include "native/jni.hpp" + #include "vm/global.h" @@ -56,9 +53,19 @@ typedef struct opt_struct opt_struct; struct opt_struct { - char *name; - bool arg; - int value; + const char *name; + bool arg; + int value; +}; + + +typedef struct option_t option_t; + +struct option_t { + const char *name; + int value; + int type; + const char *doc; }; @@ -67,6 +74,8 @@ struct opt_struct { extern s4 opt_index; extern char *opt_arg; +extern bool opt_foo; + extern bool opt_jit; extern bool opt_intrp; @@ -78,42 +87,28 @@ extern s4 opt_heapstartsize; extern s4 opt_stacksize; extern bool opt_verbose; -extern bool compileall; +extern bool opt_debugcolor; extern bool loadverbose; /* Print debug messages during loading */ -extern bool linkverbose; extern bool initverbose; /* Log class initialization */ extern bool opt_verboseclass; extern bool opt_verbosegc; extern bool opt_verbosejni; extern bool opt_verbosecall; -extern bool opt_verboseexception; extern bool showmethods; extern bool showconstantpool; extern bool showutf; -extern char *opt_method; -extern char *opt_signature; - extern bool compileverbose; extern bool showstack; + extern bool opt_showdisassemble; extern bool opt_showddatasegment; extern bool opt_showintermediate; -extern bool opt_showexceptionstubs; -extern bool opt_shownativestub; - -extern bool useinlining; -extern bool inlinevirtuals; -extern bool inlineexceptions; -extern bool inlineparamopt; -extern bool inlineoutsiders; extern bool checkbounds; -extern bool checknull; -extern bool opt_noieee; extern bool checksync; #if defined(ENABLE_LOOP) extern bool opt_loops; @@ -129,11 +124,11 @@ extern bool opt_getcompilingtime; #if defined(ENABLE_VERIFIER) extern bool opt_verify; #endif -extern bool opt_eager; +#if defined(ENABLE_PROFILING) extern bool opt_prof; extern bool opt_prof_bb; - +#endif /* optimization options *******************************************************/ @@ -141,10 +136,13 @@ extern bool opt_prof_bb; extern bool opt_ifconv; #endif -#if defined(ENABLE_LSRA) +#if defined(ENABLE_LSRA) || defined(ENABLE_SSA) extern bool opt_lsra; #endif - +#if defined(ENABLE_SSA) +extern bool opt_ssa_dce; /* enable dead code elemination */ +extern bool opt_ssa_cp; /* enable copy propagation */ +#endif /* interpreter options ********************************************************/ @@ -157,11 +155,117 @@ extern s4 opt_static_supers; extern bool vm_debug; #endif +/* debug output filtering options *********************************************/ + +#if defined(ENABLE_DEBUG_FILTER) +extern const char *opt_filter_verbosecall_include; +extern const char *opt_filter_verbosecall_exclude; +extern const char *opt_filter_show_method; +#endif + + +/* -XX options ****************************************************************/ + +/* NOTE: For better readability keep these alpha-sorted. */ + +/* Options which must always be available (production options in + HotSpot). */ + +extern int64_t opt_MaxDirectMemorySize; +extern int opt_MaxPermSize; +extern int opt_PermSize; +extern int opt_ThreadStackSize; + +/* Debugging options which can be turned off. */ + +extern bool opt_AlwaysEmitLongBranches; +extern bool opt_AlwaysMmapFirstPage; +extern int opt_CompileAll; +extern char* opt_CompileMethod; +extern char* opt_CompileSignature; +extern int opt_DebugExceptions; +extern int opt_DebugFinalizer; +extern int opt_DebugLocalReferences; +extern int opt_DebugLocks; +extern int opt_DebugPatcher; +extern int opt_DebugPackage; +extern int opt_DebugProperties; +extern int opt_DebugStackFrameInfo; +extern int opt_DebugStackTrace; +extern int opt_DebugThreads; +#if defined(ENABLE_DISASSEMBLER) +extern int opt_DisassembleStubs; +#endif +#if defined(ENABLE_OPAGENT) +extern int opt_EnableOpagent; +#endif +#if defined(ENABLE_GC_CACAO) +extern int opt_GCDebugRootSet; +extern int opt_GCStress; +#endif +#if defined(ENABLE_INLINING) +extern int opt_Inline; +#if defined(ENABLE_INLINING_DEBUG) || !defined(NDEBUG) +extern int opt_InlineAll; +extern int opt_InlineCount; +extern int opt_InlineMaxSize; +extern int opt_InlineMinSize; +#endif +#endif +extern int opt_PrintConfig; +extern int opt_PrintWarnings; +extern int opt_ProfileGCMemoryUsage; +extern int opt_ProfileMemoryUsage; +extern FILE *opt_ProfileMemoryUsageGNUPlot; +extern int opt_RegallocSpillAll; +#if defined(ENABLE_REPLACEMENT) +extern int opt_TestReplacement; +#endif +extern int opt_TraceBuiltinCalls; +extern int opt_TraceCompilerCalls; +extern int opt_TraceExceptions; +extern int opt_TraceHPI; +#if defined(ENABLE_INLINING) && !defined(NDEBUG) +extern int opt_TraceInlining; +#endif +extern int opt_TraceJavaCalls; +extern bool opt_TraceJMMCalls; +extern int opt_TraceJNICalls; +extern int opt_TraceJVMCalls; +extern int opt_TraceJVMCallsVerbose; +#if defined(ENABLE_JVMTI) +extern int opt_TraceJVMTICalls; +#endif +extern int opt_TraceLinkClass; +#if defined(ENABLE_REPLACEMENT) +extern int opt_TraceReplacement; +#endif +extern int opt_TraceSubsystemInitialization; +extern int opt_TraceTraps; + /* function prototypes ********************************************************/ -s4 options_get(opt_struct *opts, JavaVMInitArgs *vm_args); -JavaVMInitArgs *options_prepare(int argc, char **argv); +int options_get(opt_struct *opts, JavaVMInitArgs *vm_args); +void options_xx(JavaVMInitArgs *vm_args); + + +/* debug **********************************************************************/ + +#if !defined(NDEBUG) +# define TRACESUBSYSTEMINITIALIZATION(text) \ + do { \ + if (opt_TraceSubsystemInitialization) { \ + log_println("[Initializing subsystem: %s]", text); \ + } \ + } while (0) +#else +# define TRACESUBSYSTEMINITIALIZATION(text) +#endif + +#ifdef __cplusplus +} +#endif #endif /* _OPTIONS_H */