From: Zoltan Varga Date: Tue, 4 Jul 2017 14:08:27 +0000 (-0400) Subject: Revert "[jit] Optimize ldloc+ldfld operations for valuetypes, so they don't require... X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=mono.git;a=commitdiff_plain;h=ddb061f776fb56844d98b5ef11cd0aa2cde46e5d Revert "[jit] Optimize ldloc+ldfld operations for valuetypes, so they don't require making a copy of the valuetype. Hopefully fixes #56452. (#5166)" This reverts commit 025ee6399bfa229fedee3c2b8527cd9d1b9886e7. Revert this as it seems to break the f# build. --- diff --git a/mono/mini/method-to-ir.c b/mono/mini/method-to-ir.c index b1c04c5d3e5..9b602e10a69 100644 --- a/mono/mini/method-to-ir.c +++ b/mono/mini/method-to-ir.c @@ -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;