Revert "[jit] Remove the partial sharing enabling code, its always enabled now."
authorZoltan Varga <vargaz@gmail.com>
Thu, 3 Dec 2015 16:30:15 +0000 (11:30 -0500)
committerZoltan Varga <vargaz@gmail.com>
Thu, 3 Dec 2015 16:30:15 +0000 (11:30 -0500)
This reverts commit a8cdc818c838cc6e98a9589caeb50fae8b4a49b5.

Revert this as it breaks tests.

mono/mini/aot-compiler.c
mono/mini/mini-generic-sharing.c
mono/mini/mini-runtime.c
mono/mini/mini.h

index e48fbac9e48701c2a17258e8d5e5a0338aff949e..e32a875d2ac945d6a64bd4a57fd8d5b6e80e991b 100644 (file)
@@ -9749,6 +9749,9 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
 
        acfg->method_index = 1;
 
+       if (mono_aot_mode_is_full (&acfg->aot_opts))
+               mono_set_partial_sharing_supported (TRUE);
+
        res = collect_methods (acfg);
        if (!res)
                return 1;
index 0b6ca90306e4ae41df88923ab7d327a41766a048..69de50e4be0c04d2b40a9681314f33f0755acbea 100644 (file)
@@ -14,6 +14,9 @@
 #include <mono/utils/mono-counters.h>
 
 #include "mini.h"
+
+#define ALLOW_PARTIAL_SHARING TRUE
+//#define ALLOW_PARTIAL_SHARING FALSE
  
 #if 0
 #define DEBUG(...) __VA_ARGS__
@@ -30,10 +33,19 @@ static int num_templates_bytes;
 static int num_oti_allocted;
 static int num_oti_bytes;
 
+static gboolean partial_supported = TRUE;
+
 static inline gboolean
 partial_sharing_supported (void)
 {
-       return TRUE;
+       if (!ALLOW_PARTIAL_SHARING)
+               return FALSE;
+       /* Enable this when AOT compiling or running in full-aot mode */
+       if (mono_aot_only)
+               return TRUE;
+       if (partial_supported)
+               return TRUE;
+       return FALSE;
 }
 
 static int
@@ -2367,6 +2379,12 @@ mono_set_generic_sharing_vt_supported (gboolean supported)
        gsharedvt_supported = supported;
 }
 
+void
+mono_set_partial_sharing_supported (gboolean supported)
+{
+       partial_supported = supported;
+}
+
 /*
  * mono_class_generic_sharing_enabled:
  * @class: a class
index 693c151e406b6e36c3e80cc56aa05bce8b1eeb07..9a8dcd5535907dcdc1d194d74c6400ceed644bd4 100644 (file)
@@ -2773,7 +2773,7 @@ mini_parse_debug_options (void)
                else if (!strcmp (arg, "debug-domain-unload"))
                        mono_enable_debug_domain_unload (TRUE);
                else if (!strcmp (arg, "partial-sharing"))
-                       ;
+                       mono_set_partial_sharing_supported (TRUE);
                else if (!strcmp (arg, "align-small-structs"))
                        mono_align_small_structs = TRUE;
                else if (!strcmp (arg, "native-debugger-break"))
index 720d1acf14878300a4b6bd2c802d76ca64efb415..04ddd34a0b82d54b73ba577e339d4e7331c8a26f 100644 (file)
@@ -2812,6 +2812,9 @@ mono_set_generic_sharing_supported (gboolean supported);
 void
 mono_set_generic_sharing_vt_supported (gboolean supported);
 
+void
+mono_set_partial_sharing_supported (gboolean supported);
+
 gboolean
 mono_class_generic_sharing_enabled (MonoClass *klass);