/* 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.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- Contact: cacao@cacaojvm.org
-
- Authors: Christian Thalinger
-
- Changes:
-
- $Id: options.h 4396 2006-01-31 23:27:41Z twisti $
-
*/
#ifndef _OPTIONS_H
#define _OPTIONS_H
-
#include "config.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
#include "vm/types.h"
+#include "native/jni.hpp"
+
#include "vm/global.h"
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_liberalutf; /* Don't check overlong UTF-8 sequences */
+extern bool opt_verbosecall;
extern bool showmethods;
extern bool showconstantpool;
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;
+#endif
extern bool makeinitializations;
-extern bool getloadingtime;
-extern bool getcompilingtime;
-
+#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_PROFILING)
extern bool opt_prof;
extern bool opt_prof_bb;
+#endif
-#if defined(ENABLE_LSRA)
-extern bool opt_lsra;
+/* 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 ********************************************************/
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 ********************************************************/
-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 */