X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fvm%2Foptions.h;h=9a232a0246c54060e1784cb4e49baa6dc38a9620;hb=d49d251c352567947240985b0e31d5c25fe14338;hp=dae59d7b7e99380d486e2a05b6dd77914b4805b0;hpb=3fc99bd7ecce85612c28bb62cc13e4fe262052ed;p=cacao.git diff --git a/src/vm/options.h b/src/vm/options.h index dae59d7b7..9a232a024 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 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. @@ -19,16 +17,8 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. - - Contact: cacao@complang.tuwien.ac.at - - Authors: Christian Thalinger - - Changes: - - $Id: options.h 3969 2005-12-21 00:07:23Z twisti $ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ @@ -36,10 +26,18 @@ #ifndef _OPTIONS_H #define _OPTIONS_H - #include "config.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#include + #include "vm/types.h" +#include "native/jni.hpp" + #include "vm/global.h" @@ -55,39 +53,49 @@ 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; }; /* global variables ***********************************************************/ -extern s4 opt_ind; +extern s4 opt_index; extern char *opt_arg; +extern bool opt_foo; + extern bool opt_jit; extern bool opt_intrp; +extern bool opt_jar; +extern bool opt_run; + +extern s4 opt_heapmaxsize; +extern s4 opt_heapstartsize; extern s4 opt_stacksize; + extern bool opt_verbose; -extern bool compileall; -extern bool runverbose; -extern bool opt_verboseexception; +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_rt; -extern bool opt_xta; -extern bool opt_vta; - -extern bool opt_liberalutf; /* Don't check overlong UTF-8 sequences */ +extern bool opt_verbosecall; extern bool showmethods; extern bool showconstantpool; @@ -95,58 +103,164 @@ extern bool showutf; 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; - -/*#undef INAFTERMAIN*/ /*use to inline system methods before main is called*/ -#define INAFTERMAIN T /*use to turn off inlining before main called */ -extern bool useinliningm; -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; +#endif extern bool makeinitializations; -extern bool getloadingtime; -extern bool getcompilingtime; - -extern int has_ext_instr_set; - +#if defined(ENABLE_STATISTICS) extern bool opt_stat; +extern bool opt_getloadingtime; +extern bool opt_getcompilingtime; +#endif +#if defined(ENABLE_VERIFIER) extern bool opt_verify; -extern bool opt_eager; +#endif -#if defined(ENABLE_LSRA) -extern bool opt_lsra; +#if defined(ENABLE_PROFILING) +extern bool opt_prof; +extern bool opt_prof_bb; +#endif + +/* optimization options *******************************************************/ + +#if defined(ENABLE_IFCONV) +extern bool opt_ifconv; #endif +#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 ********************************************************/ #if defined(ENABLE_INTRP) extern bool opt_no_dynamic; extern bool opt_no_replication; +extern bool opt_no_quicksuper; 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 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 int opt_TraceJNICalls; +extern int opt_TraceJVMCalls; +extern int opt_TraceJVMCallsVerbose; +extern int opt_TraceLinkClass; +#if defined(ENABLE_REPLACEMENT) +extern int opt_TraceReplacement; +#endif +extern int opt_TraceSubsystemInitialization; +extern int opt_TraceTraps; + /* function prototypes ********************************************************/ -int get_opt(int argc, char **argv, opt_struct *opts); +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 */