* src/vm/options.h, src/vm/method.c, src/vm/jit/inline/inline.c,
[cacao.git] / src / vm / options.h
index b4cf895f63969cc5469453acd9d5b1bd804c020d..983083c8934cc67cf2d8cb3888cd2c6cf2124afe 100644 (file)
@@ -1,10 +1,9 @@
-/* options.h - define global options extern
+/* src/vm/options.h - define global options extern
 
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-   Institut f. Computersprachen, TU Wien
-   R. Grafl, A. Krall, C. Kruegel, C. Oates, R. Obermaisser, M. Probst,
-   S. Ring, E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich,
-   J. Wenninger
+   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
 
    This file is part of CACAO.
 
 
    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.
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.
 
-   Contact: cacao@complang.tuwien.ac.at
+   Contact: cacao@cacaojvm.org
 
    Authors: Christian Thalinger
 
-   $Id: options.h 1546 2004-11-18 12:25:04Z twisti $
+   Changes:
+
+   $Id: options.h 7228 2007-01-19 01:13:48Z edwin $
 
 */
 
 #define _OPTIONS_H
 
 
-#include "global.h"
+#include "config.h"
+#include "vm/types.h"
+
+#include "native/jni.h"
+#include "vm/global.h"
 
 
 /* reserved option numbers ****************************************************/
 
+/* define these negative since the other options are an enum */
+
 #define OPT_DONE       -1
-#define OPT_ERROR       0
-#define OPT_IGNORE      1
+#define OPT_ERROR      -2
+#define OPT_IGNORE     -3
 
 
 typedef struct opt_struct opt_struct;
@@ -57,67 +64,120 @@ struct opt_struct {
 
 /* global variables ***********************************************************/
 
+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 opt_debugcolor;
 extern bool compileall;
-extern bool runverbose;
-extern bool verboseexception;
-extern bool collectverbose;
 
 extern bool loadverbose;         /* Print debug messages during loading */
 extern bool linkverbose;
 extern bool initverbose;         /* Log class initialization */ 
 
-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_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 showdisassemble;
-extern bool showddatasegment;
-extern bool showintermediate;
-
-#define INAFTERMAIN T
-extern bool useinliningm;
-extern bool useinlining;
-extern bool inlinevirtuals;
-extern bool inlineexceptions;
-extern bool inlineparamopt;
-extern bool inlineoutsiders;
+
+extern bool opt_showdisassemble;
+extern bool opt_shownops;
+extern bool opt_showddatasegment;
+extern bool opt_showintermediate;
+extern bool opt_showexceptionstubs;
+extern bool opt_shownativestub;
 
 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 s8 loadingtime;
-
-extern bool getcompilingtime;
-extern s8 compilingtime;
-
-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;
+#endif
 extern bool opt_eager;
 
-extern int opt_ind;
-extern char *opt_arg;
+#if defined(ENABLE_PROFILING)
+extern bool opt_prof;
+extern bool opt_prof_bb;
+#endif
+
+/* inlining options ***********************************************************/
+
+#if defined(ENABLE_INLINING)
+extern bool opt_inlining;
+#if defined(ENABLE_INLINING_DEBUG) || !defined(NDEBUG)
+extern s4 opt_replace_verbose;
+extern s4 opt_inline_debug_min_size;
+extern s4 opt_inline_debug_max_size;
+extern s4 opt_inline_debug_end_counter;
+extern bool opt_inline_debug_all;
+#endif /* defined(ENABLE_INLINING_DEBUG) || !defined(NDEBUG) */
+#if !defined(NDEBUG)
+extern bool opt_inline_debug_log;
+#endif /* !defined(NDEBUG) */
+#endif /* defined(ENABLE_INLINING) */
+
+
+/* optimization options *******************************************************/
+
+#if defined(ENABLE_IFCONV)
+extern bool opt_ifconv;
+#endif
+
+#if defined(ENABLE_LSRA) || defined(ENABLE_SSA)
+extern bool opt_lsra;
+#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
 
 
 /* function prototypes ********************************************************/
 
-int get_opt(int argc, char **argv, opt_struct *opts);
+s4 options_get(opt_struct *opts, JavaVMInitArgs *vm_args);
 
 #endif /* _OPTIONS_H */