* src/vm/jit/verify/generate.pl: Further changes for the type inferer.
[cacao.git] / src / vm / rt-timing.h
index 23b499f697a3502c016f20a9066b027e47558304..432f656ee8b103d8edd2946bebcd214798438f62 100644 (file)
 #ifndef _RT_TIMING_H
 #define _RT_TIMING_H
 
+#include "config.h"
+
 #if defined(ENABLE_RT_TIMING)
 
-#include "config.h"
 #include "vm/types.h"
 
 #include <time.h>
 #define RT_TIMING_TIME_DIFF(a,b,index) \
        rt_timing_time_diff(&(a),&(b),(index));
 
-#define RT_TIMING_JIT_CHECKS     0
-#define RT_TIMING_JIT_PARSE      1
-#define RT_TIMING_JIT_STACK      2
-#define RT_TIMING_JIT_TYPECHECK  3
-#define RT_TIMING_JIT_LOOP       4
-#define RT_TIMING_JIT_IFCONV     5
-#define RT_TIMING_JIT_ALLOC      6
-#define RT_TIMING_JIT_RPLPOINTS  7
-#define RT_TIMING_JIT_CODEGEN    8
-#define RT_TIMING_JIT_TOTAL      9
-
-#define RT_TIMING_LINK_RESOLVE   10
-#define RT_TIMING_LINK_C_VFTBL   11
-#define RT_TIMING_LINK_ABSTRACT  12
-#define RT_TIMING_LINK_C_IFTBL   13
-#define RT_TIMING_LINK_F_VFTBL   14
-#define RT_TIMING_LINK_OFFSETS   15
-#define RT_TIMING_LINK_F_IFTBL   16
-#define RT_TIMING_LINK_FINALIZER 17
-#define RT_TIMING_LINK_EXCEPTS   18
-#define RT_TIMING_LINK_SUBCLASS  19
-#define RT_TIMING_LINK_TOTAL     20
-
-#define RT_TIMING_LOAD_CHECKS    21
-#define RT_TIMING_LOAD_NDPOOL    22
-#define RT_TIMING_LOAD_CPOOL     23
-#define RT_TIMING_LOAD_SETUP     24
-#define RT_TIMING_LOAD_FIELDS    25
-#define RT_TIMING_LOAD_METHODS   26
-#define RT_TIMING_LOAD_CLASSREFS 27
-#define RT_TIMING_LOAD_DESCS     28
-#define RT_TIMING_LOAD_SETREFS   29
-#define RT_TIMING_LOAD_PARSEFDS  30
-#define RT_TIMING_LOAD_PARSEMDS  31
-#define RT_TIMING_LOAD_PARSECP   32
-#define RT_TIMING_LOAD_VERIFY    33
-#define RT_TIMING_LOAD_ATTRS     34
-#define RT_TIMING_LOAD_TOTAL     35
-
-#define RT_TIMING_N              36
+#define RT_TIMING_JIT_CHECKS       0
+#define RT_TIMING_JIT_PARSE        1
+#define RT_TIMING_JIT_STACK        2
+#define RT_TIMING_JIT_TYPECHECK    3
+#define RT_TIMING_JIT_LOOP         4
+#define RT_TIMING_JIT_IFCONV       5
+#define RT_TIMING_JIT_ALLOC        6
+#define RT_TIMING_JIT_RPLPOINTS    7
+#define RT_TIMING_JIT_CODEGEN      8
+#define RT_TIMING_JIT_TOTAL        9
+
+#define RT_TIMING_LINK_RESOLVE     10
+#define RT_TIMING_LINK_C_VFTBL     11
+#define RT_TIMING_LINK_ABSTRACT    12
+#define RT_TIMING_LINK_C_IFTBL     13
+#define RT_TIMING_LINK_F_VFTBL     14
+#define RT_TIMING_LINK_OFFSETS     15
+#define RT_TIMING_LINK_F_IFTBL     16
+#define RT_TIMING_LINK_FINALIZER   17
+#define RT_TIMING_LINK_EXCEPTS     18
+#define RT_TIMING_LINK_SUBCLASS    19
+#define RT_TIMING_LINK_TOTAL       20
+
+#define RT_TIMING_LOAD_CHECKS      21
+#define RT_TIMING_LOAD_NDPOOL      22
+#define RT_TIMING_LOAD_CPOOL       23
+#define RT_TIMING_LOAD_SETUP       24
+#define RT_TIMING_LOAD_FIELDS      25
+#define RT_TIMING_LOAD_METHODS     26
+#define RT_TIMING_LOAD_CLASSREFS   27
+#define RT_TIMING_LOAD_DESCS       28
+#define RT_TIMING_LOAD_SETREFS     29
+#define RT_TIMING_LOAD_PARSEFDS    30
+#define RT_TIMING_LOAD_PARSEMDS    31
+#define RT_TIMING_LOAD_PARSECP     32
+#define RT_TIMING_LOAD_VERIFY      33
+#define RT_TIMING_LOAD_ATTRS       34
+#define RT_TIMING_LOAD_TOTAL       35
+
+#define RT_TIMING_LOAD_BOOT_LOOKUP 36
+#define RT_TIMING_LOAD_BOOT_ARRAY  37
+#define RT_TIMING_LOAD_BOOT_SUCK   38
+#define RT_TIMING_LOAD_BOOT_LOAD   39
+#define RT_TIMING_LOAD_BOOT_CACHE  40
+#define RT_TIMING_LOAD_BOOT_TOTAL  41
+
+#define RT_TIMING_LOAD_CL_LOOKUP   42
+#define RT_TIMING_LOAD_CL_PREPARE  43
+#define RT_TIMING_LOAD_CL_JAVA     44
+#define RT_TIMING_LOAD_CL_CACHE    45
+
+#define RT_TIMING_NEW_OBJECT       46
+#define RT_TIMING_NEW_ARRAY        47
+
+#define RT_TIMING_N                48
 
 void rt_timing_gettime(struct timespec *ts);
 
 void rt_timing_time_diff(struct timespec *a,struct timespec *b,int index);
 
+long rt_timing_diff_usec(struct timespec *a,struct timespec *b);
+
 void rt_timing_print_time_stats(FILE *file);
 
 #else /* !defined(ENABLE_RT_TIMING) */