/* src/vm/options.c - contains global options
- Copyright (C) 1996-2005, 2006, 2007, 2008
+ Copyright (C) 1996-2005, 2006, 2007, 2008, 2010
CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* Debugging options which can be turned off. */
bool opt_AlwaysEmitLongBranches = false;
+bool opt_AlwaysMmapFirstPage = false;
int opt_CompileAll = 0;
char* opt_CompileMethod = NULL;
char* opt_CompileSignature = NULL;
#if defined(ENABLE_REPLACEMENT)
int opt_TestReplacement = 0;
#endif
+int opt_TraceBuiltinCalls = 0;
int opt_TraceCompilerCalls = 0;
int opt_TraceExceptions = 0;
int opt_TraceHPI = 0;
int opt_TraceInlining = 0;
#endif
int opt_TraceJavaCalls = 0;
+bool opt_TraceJMMCalls = false;
int opt_TraceJNICalls = 0;
int opt_TraceJVMCalls = 0;
int opt_TraceJVMCallsVerbose = 0;
+#if defined(ENABLE_JVMTI)
+int opt_TraceJVMTICalls = 0;
+#endif
int opt_TraceLinkClass = 0;
#if defined(ENABLE_REPLACEMENT)
int opt_TraceReplacement = 0;
/* Debugging options which can be turned off. */
OPT_AlwaysEmitLongBranches,
+ OPT_AlwaysMmapFirstPage,
OPT_CompileAll,
OPT_CompileMethod,
OPT_CompileSignature,
OPT_ProfileMemoryUsageGNUPlot,
OPT_RegallocSpillAll,
OPT_TestReplacement,
+ OPT_TraceBuiltinCalls,
OPT_TraceCompilerCalls,
OPT_TraceExceptions,
OPT_TraceHPI,
OPT_TraceInlining,
OPT_TraceJavaCalls,
+ OPT_TraceJMMCalls,
OPT_TraceJNICalls,
OPT_TraceJVMCalls,
OPT_TraceJVMCallsVerbose,
+ OPT_TraceJVMTICalls,
OPT_TraceLinkClass,
OPT_TraceReplacement,
OPT_TraceSubsystemInitialization,
/* Debugging options which can be turned off. */
{ "AlwaysEmitLongBranches", OPT_AlwaysEmitLongBranches, OPT_TYPE_BOOLEAN, "Always emit long-branches." },
+ { "AlwaysMmapFirstPage", OPT_AlwaysMmapFirstPage, OPT_TYPE_BOOLEAN, "Always mmap memory page at address 0x0." },
{ "CompileAll", OPT_CompileAll, OPT_TYPE_BOOLEAN, "compile all methods, no execution" },
{ "CompileMethod", OPT_CompileMethod, OPT_TYPE_VALUE, "compile only a specific method" },
{ "CompileSignature", OPT_CompileSignature, OPT_TYPE_VALUE, "specify signature for a specific method" },
#if defined(ENABLE_REPLACEMENT)
{ "TestReplacement", OPT_TestReplacement, OPT_TYPE_BOOLEAN, "activate all replacement points during code generation" },
#endif
+ { "TraceBuiltinCalls", OPT_TraceBuiltinCalls, OPT_TYPE_BOOLEAN, "trace calls to VM builtin functions" },
{ "TraceCompilerCalls", OPT_TraceCompilerCalls, OPT_TYPE_BOOLEAN, "trace JIT compiler calls" },
{ "TraceExceptions", OPT_TraceExceptions, OPT_TYPE_BOOLEAN, "trace Exception throwing" },
{ "TraceHPI", OPT_TraceHPI, OPT_TYPE_BOOLEAN, "Trace Host Porting Interface (HPI)" },
#if !defined(ENABLE_VMLOG)
{ "TraceJavaCalls", OPT_TraceJavaCalls, OPT_TYPE_BOOLEAN, "trace Java method calls" },
#endif
+ { "TraceJMMCalls", OPT_TraceJMMCalls, OPT_TYPE_BOOLEAN, "trace JMM method calls" },
{ "TraceJNICalls", OPT_TraceJNICalls, OPT_TYPE_BOOLEAN, "trace JNI method calls" },
{ "TraceJVMCalls", OPT_TraceJVMCalls, OPT_TYPE_BOOLEAN, "trace JVM method calls but omit very frequent ones" },
{ "TraceJVMCallsVerbose", OPT_TraceJVMCallsVerbose, OPT_TYPE_BOOLEAN, "trace all JVM method calls" },
+#if defined(ENABLE_JVMTI)
+ { "TraceJVMTICalls", OPT_TraceJVMTICalls, OPT_TYPE_BOOLEAN, "trace JVMTI method calls" },
+#endif
{ "TraceLinkClass", OPT_TraceLinkClass, OPT_TYPE_BOOLEAN, "trace class linking" },
#if defined(ENABLE_REPLACEMENT)
{ "TraceReplacement", OPT_TraceReplacement, OPT_TYPE_VALUE, "trace on-stack replacement with the given verbosity level (default: 1)" },
opt_AlwaysEmitLongBranches = enable;
break;
+ case OPT_AlwaysMmapFirstPage:
+ opt_AlwaysMmapFirstPage = enable;
+ break;
+
case OPT_CompileAll:
opt_CompileAll = enable;
opt_run = false;
file = fopen(filename, "w");
if (file == NULL)
-#warning Use below method instead!
+ /* FIXME Use below method instead! */
//os::abort_errno("options_xx: fopen failed");
vm_abort("options_xx: fopen failed");
break;
#endif
+ case OPT_TraceBuiltinCalls:
+ opt_TraceBuiltinCalls = enable;
+ break;
+
case OPT_TraceCompilerCalls:
opt_TraceCompilerCalls = enable;
break;
opt_TraceJavaCalls = enable;
break;
+ case OPT_TraceJMMCalls:
+ opt_TraceJMMCalls = enable;
+ break;
+
case OPT_TraceJNICalls:
opt_TraceJNICalls = enable;
break;
opt_TraceJVMCallsVerbose = enable;
break;
+#if defined(ENABLE_JVMTI)
+ case OPT_TraceJVMTICalls:
+ opt_TraceJVMTICalls = enable;
+ break;
+#endif
+
case OPT_TraceLinkClass:
opt_TraceLinkClass = enable;
break;