[mini] do decomposition of typechecks later in the compilation pipeline
authorBernhard Urban <bernhard.urban@xamarin.com>
Thu, 2 Jun 2016 22:23:49 +0000 (15:23 -0700)
committerBernhard Urban <bernhard.urban@xamarin.com>
Thu, 9 Jun 2016 20:32:36 +0000 (13:32 -0700)
mono/mini/mini.c

index f78475a1da3f23533ae10ee8171f8aaccf773698..61b43b0f2fde6912350235016971071c5f419600 100644 (file)
@@ -3515,11 +3515,6 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFl
                mono_cfg_dump_ir (cfg, "mono_insert_nop_in_empty_bb");
        }
 
-       MONO_TIME_TRACK (mono_jit_stats.jit_decompose_typechecks, mono_decompose_typechecks (cfg));
-       if (cfg->gdump_ctx != NULL)
-               mono_insert_nop_in_empty_bb (cfg);
-       mono_cfg_dump_ir (cfg, "decompose_typechecks");
-
        if (i < 0) {
                if (try_generic_shared && cfg->exception_type == MONO_EXCEPTION_GENERIC_SHARING_FAILED) {
                        if (compile_aot) {
@@ -3598,6 +3593,11 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFl
                mono_cfg_dump_ir (cfg, "local_cprop");
        }
 
+       MONO_TIME_TRACK (mono_jit_stats.jit_decompose_typechecks, mono_decompose_typechecks (cfg));
+       if (cfg->gdump_ctx != NULL)
+               mono_insert_nop_in_empty_bb (cfg);
+       mono_cfg_dump_ir (cfg, "decompose_typechecks");
+
        /*
         * Should be done after cprop which can do strength reduction on
         * some of these ops, after propagating immediates.