From: Zoltan Varga Date: Thu, 1 Nov 2012 20:01:18 +0000 (+0100) Subject: Disable LLVM for gsharedvt methods. X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=23ffff1d901af5fb204bdc596a88beccfccc3302;p=mono.git Disable LLVM for gsharedvt methods. --- diff --git a/mono/mini/mini-llvm.c b/mono/mini/mini-llvm.c index ba19a35dc1b..d1379642dec 100644 --- a/mono/mini/mini-llvm.c +++ b/mono/mini/mini-llvm.c @@ -3370,6 +3370,12 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb) break; } + if (mini_is_gsharedvt_klass (cfg, klass)) { + // FIXME: + LLVM_FAILURE (ctx, "gsharedvt"); + break; + } + switch (ins->opcode) { case OP_STOREV_MEMBASE: if (cfg->gen_write_barriers && klass->has_references && ins->inst_destbasereg != cfg->frame_reg) { diff --git a/mono/mini/mini.c b/mono/mini/mini.c index 349bea7c8b5..3706759f2e7 100644 --- a/mono/mini/mini.c +++ b/mono/mini/mini.c @@ -4568,6 +4568,8 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, gbool } cfg->gsharedvt = TRUE; + // FIXME: + cfg->disable_llvm = TRUE; } if (cfg->generic_sharing_context) { @@ -4709,6 +4711,10 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, gbool if (cfg->verbose_level > 0) { char *method_name; + + method_name = mono_method_full_name (method, TRUE); + g_print ("converting %s%s%smethod %s\n", COMPILE_LLVM (cfg) ? "llvm " : "", cfg->gsharedvt ? "gsharedvt " : "", (cfg->generic_sharing_context && !cfg->gsharedvt) ? "gshared " : "", method_name); + /* if (COMPILE_LLVM (cfg)) g_print ("converting llvm method %s\n", method_name = mono_method_full_name (method, TRUE)); else if (cfg->gsharedvt) @@ -4717,6 +4723,7 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, gbool g_print ("converting shared method %s\n", method_name = mono_method_full_name (method_to_compile, TRUE)); else g_print ("converting method %s\n", method_name = mono_method_full_name (method, TRUE)); + */ g_free (method_name); }