[llvm] Allow phi instructions where some incoming nodes are not defined because they...
[mono.git] / mono / mini / linear-scan.c
index 4be9f982e5eba95e346f9c0a38b5f79fd25c8ce2..d778ab5fc73f700a880ab4f65618a59172e62a66 100644 (file)
@@ -10,6 +10,8 @@
 #include "mini.h"
 #include <mono/metadata/debug-helpers.h>
 
+#ifndef DISABLE_JIT
+
 static void mono_linear_scan2 (MonoCompile *cfg, GList *vars, GList *regs, regmask_t *used_mask);
 
 GList *
@@ -78,7 +80,7 @@ mono_linear_scan (MonoCompile *cfg, GList *vars, GList *regs, regmask_t *used_ma
        regmask_t used_regs = 0;
        gboolean cost_driven;
 
-       if (vars && (((MonoMethodVar*)vars->data)->interval != NULL)) {
+       if (!cfg->disable_reuse_registers && vars && (((MonoMethodVar*)vars->data)->interval != NULL)) {
                mono_linear_scan2 (cfg, vars, regs, used_mask);
                return;
        }
@@ -220,7 +222,7 @@ mono_linear_scan (MonoCompile *cfg, GList *vars, GList *regs, regmask_t *used_ma
                }
        }
 
-       mono_jit_stats.regvars += n_regvars;
+       cfg->stat_n_regvars = n_regvars;
 
        /* Compute used regs */
        used_regs = 0;
@@ -491,7 +493,7 @@ mono_linear_scan2 (MonoCompile *cfg, GList *vars, GList *regs, regmask_t *used_m
                }
        }
 
-       mono_jit_stats.regvars += n_regvars;
+       cfg->stat_n_regvars = n_regvars;
 
        /* Compute used regs */
        used_regs = 0;
@@ -507,3 +509,5 @@ mono_linear_scan2 (MonoCompile *cfg, GList *vars, GList *regs, regmask_t *used_m
        g_list_free (active);
        g_list_free (inactive);
 }
+
+#endif /* #ifndef DISABLE_JIT */