Disable box+brtrue optimization for LLVM for now.
authorZoltan Varga <vargaz@gmail.com>
Wed, 4 Aug 2010 23:24:58 +0000 (01:24 +0200)
committerZoltan Varga <vargaz@gmail.com>
Wed, 4 Aug 2010 23:25:20 +0000 (01:25 +0200)
mono/mini/method-to-ir.c

index 537480bee53afb7ed9bce8b97caf4a5e764c198d..aafd118efd3c2df0ff47ec111ff740a556bb64d1 100644 (file)
@@ -7963,7 +7963,9 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        if (target_type_is_incompatible (cfg, &klass->byval_arg, *sp))
                                UNVERIFIED;
                        /* frequent check in generic code: box (struct), brtrue */
-                       if (!mono_class_is_nullable (klass) &&
+
+                       // FIXME: LLVM can't handle the inconsistent bb linking
+                       if (!COMPILE_LLVM (cfg) && !mono_class_is_nullable (klass) &&
                                ip + 5 < end && ip_in_bb (cfg, bblock, ip + 5) && (ip [5] == CEE_BRTRUE || ip [5] == CEE_BRTRUE_S)) {
                                /*printf ("box-brtrue opt at 0x%04x in %s\n", real_offset, method->name);*/
                                ip += 5;