* ICMD_CHECKASIZE, ICMD_CHECKEXCEPTION: Removed.
[cacao.git] / src / vm / statistics.h
index 70e2bb6ed7d66174a290684e28b8d3c083c6397e..2575fb822c2e9691940056e3ea0d7e69e53ca40d 100644 (file)
@@ -1,10 +1,9 @@
-/* statistics.h - exports global varables for statistics
+/* src/vm/statistics.h - exports global varables for statistics
 
-   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 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.
 
@@ -27,7 +26,7 @@
 
    Authors: Christian Thalinger
 
-   $Id: statistics.h 1416 2004-10-19 12:07:18Z carolyn $
+   $Id: statistics.h 2424 2005-04-30 13:45:06Z jowenn $
 
 */
 
 #define _STATISTICS_H
 
 
-#include "global.h"
+#include "vm/global.h"
+                               /* in_  inline statistics */
 
+#define IN_MAX 9
+#define IN_UNIQUEVIRT           0x0000 
+#define IN_UNIQUE_INTERFACE     0x0001
+#define IN_OUTSIDERS            0x0004
+#define IN_MAXDEPTH            0x0008
+#define IN_MAXCODE              0x0010
+#define IN_JCODELENGTH          0x0020
+#define IN_EXCEPTION            0x0040
+#define IN_NOT_UNIQUE_VIRT      0x0080
+#define IN_NOT_UNIQUE_INTERFACE 0x0100
 
-/* global variables */
+#define N_UNIQUEVIRT            0
+#define N_UNIQUE_INTERFACE      1
+#define N_OUTSIDERS             2
+#define N_MAXDEPTH             3       
+#define N_MAXCODE               4 
+#define N_JCODELENGTH           5 
+#define N_EXCEPTION            6 
+#define N_NOT_UNIQUE_VIRT       7 
+#define N_NOT_UNIQUE_INTERFACE  8 
+
+
+
+/* global variables ***********************************************************/
+
+extern s4 memoryusage;
+extern s4 maxmemusage;
+extern s4 maxdumpsize;
+
+extern s4 globalallocateddumpsize;
+extern s4 globaluseddumpsize;
 
 extern int count_class_infos;           /* variables for measurements         */
 extern int count_const_pool_len;
+extern int count_classref_len;
+extern int count_parsed_desc_len;
 extern int count_vftbl_len;
 extern int count_all_methods;
 extern int count_methods_marked_used;  /*RTA*/
@@ -55,9 +86,26 @@ extern int count_utf_len;               /* size of utf hash                   */
 extern int count_utf_new;
 extern int count_utf_new_found;
 
+extern int count_locals_conflicts;
+extern int count_locals_spilled;
+extern int count_locals_register;
+extern int count_ss_spilled;
+extern int count_ss_register;
+extern int count_methods_allocated_by_lsra;
+extern int count_mem_move_bb;
+extern int count_interface_size;
+extern int count_argument_mem_ss;
+extern int count_argument_reg_ss;
+extern int count_method_in_register;
+extern int count_mov_reg_reg;
+extern int count_mov_mem_reg;
+extern int count_mov_reg_mem;
+extern int count_mov_mem_mem;
+
 extern int count_jit_calls;
 extern int count_methods;
 extern int count_spills;
+extern int count_spills_read;
 extern int count_pcmd_activ;
 extern int count_pcmd_drop;
 extern int count_pcmd_zero;
@@ -99,9 +147,30 @@ extern int *count_method_bb_distribution;
 extern int *count_block_size_distribution;
 extern int *count_store_length;
 extern int *count_store_depth;
+                                /* in_  inline statistics */
+extern int count_in;
+extern int count_in_uniqVirt;
+extern int count_in_uniqIntf;
+extern int count_in_rejected;
+extern int count_in_rejected_mult;
+extern int count_in_outsiders;
+extern int count_in_uniqueVirt_not_inlined;
+extern int count_in_uniqueInterface_not_inlined;
+extern int count_in_maxDepth;
+extern int count_in_maxMethods;
+
+extern u2 count_in_not   [512];
+
+/* instruction scheduler statistics *******************************************/
 
+extern s4 count_schedule_basic_blocks;
+extern s4 count_schedule_nodes;
+extern s4 count_schedule_leaders;
+extern s4 count_schedule_max_leaders;
+extern s4 count_schedule_critical_path;
 
-/* function prototypes */
+
+/* function prototypes ********************************************************/
 
 s8 getcputime();
 
@@ -113,6 +182,27 @@ void compilingtime_stop();
 void print_times();
 void print_stats();
 
+void mem_usagelog(bool givewarnings);
+
+
+void nativeinvokation();
+void compiledinvokation();
+void jnicallXmethodnvokation();
+void jniinvokation();
+
+
+#if defined(STATISTICS)
+#define STATS(x) \
+       { \
+               if (opt_stat) \
+                       x \
+       }
+#else
+#define STATS(x)
+#endif
+
+
 #endif /* _STATISTICS_H */