correct exception handler range checks
[cacao.git] / statistics.c
index 8507c65d5b91c7ed41feb8c57a8e0941246c2199..9ce305fdb8d2d87bedfe01d3ded7a1cfa011b87e 100644 (file)
@@ -27,7 +27,7 @@
 
    Authors: Christian Thalinger
 
-   $Id: statistics.c 1408 2004-08-17 12:43:17Z twisti $
+   $Id: statistics.c 1438 2004-11-05 09:52:49Z twisti $
 
 */
 
@@ -37,6 +37,7 @@
 #include "global.h"
 #include "statistics.h"
 #include "toolbox/logging.h"
+#include "options.h"
 
 
 /* global variables */
@@ -51,10 +52,19 @@ static s8 compilingstarttime = 0;
 static s8 compilingstoptime = 0;
 static s4 compilingtime_recursion = 0;
 
+s4 memoryusage = 0;
+s4 maxmemusage = 0;
+s4 maxdumpsize = 0;
+
+s4 globalallocateddumpsize = 0;
+s4 globaluseddumpsize = 0;
+
 int count_class_infos = 0;              /* variables for measurements         */
 int count_const_pool_len = 0;
 int count_vftbl_len = 0;
 int count_all_methods = 0;
+int count_methods_marked_used = 0;  /* RTA */
+
 int count_vmcode_len = 0;
 int count_extable_len = 0;
 int count_class_loads = 0;
@@ -283,6 +293,10 @@ void print_stats()
        log_text(logtext);
        sprintf(logtext, "Number of compiled Methods: %d", count_methods);
        log_text(logtext);
+        if (opt_rt) {
+         sprintf(logtext, "Number of Methods marked Used: %d", count_methods_marked_used);
+         log_text(logtext);
+         }
        sprintf(logtext, "Number of max basic blocks per method: %d", count_max_basic_blocks);
        log_text(logtext);
        sprintf(logtext, "Number of compiled basic blocks: %d", count_basic_blocks);
@@ -440,6 +454,28 @@ void print_stats()
 }
 
 
+/* mem_usagelog ****************************************************************
+
+   prints some memory related infos
+
+*******************************************************************************/
+
+void mem_usagelog(bool givewarnings)
+{
+       if ((memoryusage != 0) && givewarnings) {
+               dolog("Allocated memory not returned: %d", (s4) memoryusage);
+       }
+
+       if ((globalallocateddumpsize != 0) && givewarnings) {
+               dolog("Dump memory not returned: %d", (s4) globalallocateddumpsize);
+       }
+
+       dolog("Random/Dump - max. memory usage: %dkB/%dkB", 
+                 (s4) ((maxmemusage + 1023) / 1024),
+                 (s4) ((maxdumpsize + 1023) / 1024));
+}
+
+
 /*
  * These are local overrides for various environment variables in Emacs.
  * Please do not remove this and leave it at the end of the file, where