From: Zoltan Varga Date: Thu, 5 Dec 2019 15:02:43 +0000 (+0100) Subject: [llvm] Avoid decomposing OP_STOREV_MEMBASE early for types which contains no referenc... X-Git-Tag: submit/tizen/20210909.063632~10331^2~5^2~124 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=39ec9fa23c6088197271542c958100d3d0fba631;p=platform%2Fupstream%2Fdotnet%2Fruntime.git [llvm] Avoid decomposing OP_STOREV_MEMBASE early for types which contains no references. (mono/mono#18041) Commit migrated from https://github.com/mono/mono/commit/e67673fac85d13882256893d1b61c08ca0fc13c6 --- diff --git a/src/mono/mono/mini/decompose.c b/src/mono/mono/mini/decompose.c index 8df6634..a448e21 100644 --- a/src/mono/mono/mini/decompose.c +++ b/src/mono/mono/mini/decompose.c @@ -1273,7 +1273,9 @@ mono_decompose_vtype_opts (MonoCompile *cfg) case OP_STOREV_MEMBASE: { src_var = get_vreg_to_inst (cfg, ins->sreg1); - if (COMPILE_LLVM (cfg) && !mini_is_gsharedvt_klass (ins->klass) && !cfg->gen_write_barriers) + mono_class_init_sizes (ins->klass); + + if (COMPILE_LLVM (cfg) && !mini_is_gsharedvt_klass (ins->klass) && !(cfg->gen_write_barriers && m_class_has_references (ins->klass))) break; if (!src_var) {