Revert "[jit] Optimize ldloc+ldfld operations for valuetypes, so they don't require...
authorZoltan Varga <vargaz@gmail.com>
Tue, 4 Jul 2017 14:08:27 +0000 (10:08 -0400)
committerZoltan Varga <vargaz@gmail.com>
Tue, 4 Jul 2017 14:08:27 +0000 (10:08 -0400)
This reverts commit 025ee6399bfa229fedee3c2b8527cd9d1b9886e7.

Revert this as it seems to break the f# build.

mono/mini/method-to-ir.c

index b1c04c5d3e55d7e49aac244b001981a83fa7e27e..9b602e10a6903e327d437aa218f6a97c46e9e118 100644 (file)
@@ -7829,12 +7829,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        CHECK_STACK_OVF (1);
                        n = ip [1];
                        CHECK_LOCAL (n);
-                       if ((ip [2] == CEE_LDFLD) && ip_in_bb (cfg, cfg->cbb, ip + 2) && header->locals [n]->type == MONO_TYPE_VALUETYPE) {
-                               /* Avoid loading a struct just to load one of its fields */
-                               EMIT_NEW_LOCLOADA (cfg, ins, n);
-                       } else {
-                               EMIT_NEW_LOCLOAD (cfg, ins, n);
-                       }
+                       EMIT_NEW_LOCLOAD (cfg, ins, n);
                        *sp++ = ins;
                        ip += 2;
                        break;
@@ -12289,12 +12284,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                CHECK_OPSIZE (4);
                                n = read16 (ip + 2);
                                CHECK_LOCAL (n);
-                               if ((ip [4] == CEE_LDFLD) && ip_in_bb (cfg, cfg->cbb, ip + 4) && header->locals [n]->type == MONO_TYPE_VALUETYPE) {
-                                       /* Avoid loading a struct just to load one of its fields */
-                                       EMIT_NEW_LOCLOADA (cfg, ins, n);
-                               } else {
-                                       EMIT_NEW_LOCLOAD (cfg, ins, n);
-                               }
+                               EMIT_NEW_LOCLOAD (cfg, ins, n);
                                *sp++ = ins;
                                ip += 4;
                                break;