Build mono runtime under none desktop Windows API family, adjustments and cleanup.
[mono.git] / mono / mini / graph.c
index f77efd9b779650045873bea4342e8ab522ad0b3b..95e1fff2bb42a59abeb32870870b8c718163494f 100644 (file)
@@ -6,6 +6,12 @@
  *
  * (C) 2003 Ximian, Inc.
  */
+
+#include <config.h>
+#include <mono/utils/mono-compiler.h>
+
+#ifndef DISABLE_JIT
+
 #include <string.h>
 #include <mono/metadata/debug-helpers.h>
 
@@ -15,7 +21,7 @@ static char *
 convert_name (const char *str)
 {
        int i, j, len = strlen (str);
-       char *res = g_malloc (len * 2);
+       char *res = (char *)g_malloc (len * 2);
 
        j = 0;
        for (i = 0; i < len; i++) {
@@ -149,6 +155,8 @@ mono_draw_cfg (MonoCompile *cfg, FILE *fp)
        fprintf (fp, "}\n");
 }
 
+#if 0
+
 static void
 mono_print_label (FILE *fp, MonoInst *tree) {
        int arity;
@@ -188,15 +196,15 @@ mono_print_label (FILE *fp, MonoInst *tree) {
                mono_print_label (fp, tree->inst_newa_len);
                break;
        case OP_CALL:
-       case OP_CALLVIRT:
+       case OP_CALL_MEMBASE:
        case OP_FCALL:
-       case OP_FCALLVIRT:
+       case OP_FCALL_MEMBASE:
        case OP_LCALL:
-       case OP_LCALLVIRT:
+       case OP_LCALL_MEMBASE:
        case OP_VCALL:
-       case OP_VCALLVIRT:
+       case OP_VCALL_MEMBASE:
        case OP_VOIDCALL:
-       case OP_VOIDCALLVIRT: {
+       case OP_VOIDCALL_MEMBASE: {
                MonoCallInst *call = (MonoCallInst*)tree;
                if (call->method) {
                        if (mono_method_signature (call->method)->hasthis && tree->inst_left) {
@@ -217,8 +225,6 @@ mono_print_label (FILE *fp, MonoInst *tree) {
                fprintf (fp, ")]");
                break;
        }
-       case OP_RENAME:
-       case OP_RETARG:
        case OP_NOP:
        case OP_JMP:
        case OP_BREAK:
@@ -229,28 +235,11 @@ mono_print_label (FILE *fp, MonoInst *tree) {
        case OP_SWITCH:
        case CEE_ISINST:
        case CEE_CASTCLASS:
-       case OP_OUTARG:
        case OP_CALL_REG:
        case OP_FCALL_REG:
        case OP_LCALL_REG:
        case OP_VCALL_REG:
        case OP_VOIDCALL_REG:
-       case OP_TRAMPCALL_VTABLE:
-       case OP_CALL_RGCTX:
-       case OP_FCALL_RGCTX:
-       case OP_VOIDCALL_RGCTX:
-       case OP_LCALL_RGCTX:
-       case OP_VCALL_RGCTX:
-       case OP_CALL_REG_RGCTX:
-       case OP_FCALL_REG_RGCTX:
-       case OP_VOIDCALL_REG_RGCTX:
-       case OP_LCALL_REG_RGCTX:
-       case OP_VCALL_REG_RGCTX:
-       case OP_CALLVIRT_IMT:
-       case OP_VOIDCALLVIRT_IMT:
-       case OP_FCALLVIRT_IMT:
-       case OP_LCALLVIRT_IMT:
-       case OP_VCALLVIRT_IMT:
                mono_print_label (fp, tree->inst_left);
                break;
        case CEE_BNE_UN:
@@ -279,6 +268,8 @@ mono_print_label (FILE *fp, MonoInst *tree) {
                fprintf (fp, ")");
 }
 
+#endif
+
 static void
 mono_draw_code_cfg (MonoCompile *cfg, FILE *fp)
 {
@@ -306,7 +297,7 @@ mono_draw_code_cfg (MonoCompile *cfg, FILE *fp)
                fprintf (fp, "BB%d [%sshape=record,labeljust=l,label=\"{BB%d|", bb->block_num, color, bb->block_num);
                        
                MONO_BB_FOR_EACH_INS (bb, inst) {
-                       mono_print_label (fp, inst);
+                       //mono_print_label (fp, inst);
                        fprintf (fp, "\\n");                    
                }
 
@@ -324,6 +315,7 @@ mono_draw_graph (MonoCompile *cfg, MonoGraphOptions draw_options)
        char *com;
        const char *fn;
        FILE *fp;
+       int _i G_GNUC_UNUSED;
 
        fn = "/tmp/minidtree.graph";
        fp = fopen (fn, "w+");
@@ -345,9 +337,19 @@ mono_draw_graph (MonoCompile *cfg, MonoGraphOptions draw_options)
 
        fclose (fp);
 
+#ifdef HAVE_SYSTEM
        //com = g_strdup_printf ("dot %s -Tpng -o %s.png; eog %s.png", fn, fn, fn);
        com = g_strdup_printf ("dot %s -Tps -o %s.ps;gv %s.ps", fn, fn, fn);
-       system (com);
+       _i = system (com);
        g_free (com);
+#else
+       g_assert_not_reached ();
+#endif
 }
 
+#else /* !DISABLE_JIT */
+
+MONO_EMPTY_SOURCE_FILE (graph);
+
+#endif /* !DISABLE_JIT */
+