svn path=/trunk/mono/; revision=63943
authorZoltan Varga <vargaz@gmail.com>
Thu, 17 Aug 2006 20:49:25 +0000 (20:49 -0000)
committerZoltan Varga <vargaz@gmail.com>
Thu, 17 Aug 2006 20:49:25 +0000 (20:49 -0000)
mono/mini/ChangeLog
mono/mini/aot-compiler.c

index 0a428627654e0f8c1602902ad1626846771d6697..5c1c51d28fcd742217db35a7de6bb5be9f72d0af 100644 (file)
@@ -1,5 +1,7 @@
 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
 
+       * aot-compiler.c: Fix computation of GOT slot statistics.
+       
        * aot-compiler.c aot-runtime.c: Implement sharing of GOT slots for classes/fields.
        Also remove support for not PIC AOT.
 
index 9ef79830001d4e4a78435f954ec78bb9cc9db975..4be7a1c220560ec18512fd770d75a9abe822c116 100644 (file)
@@ -491,6 +491,9 @@ get_got_offset (MonoAotCompile *acfg, MonoJumpInfo *ji)
        res = acfg->got_offset;
        acfg->got_offset ++;
 
+       acfg->stats.got_slots ++;
+       acfg->stats.got_slot_types [ji->type] ++;
+
        return res;
 }
 
@@ -893,9 +896,6 @@ emit_method_info (MonoAotCompile *acfg, MonoCompile *cfg)
                /* Only the type is needed */
                *p = patch_info->type;
                p++;
-
-               acfg->stats.got_slots ++;
-               acfg->stats.got_slot_types [patch_info->type] ++;
        }
 
        /*
@@ -1268,8 +1268,6 @@ mono_aot_parse_options (const char *aot_options, MonoAotOptions *opts)
        }
 }
 
-/* FIXME: Move this to mini.c */
-
 static void
 compile_method (MonoAotCompile *acfg, int index)
 {
@@ -1837,6 +1835,11 @@ emit_got_info (MonoAotCompile *acfg)
         * - optimize offsets table.
         * - reduce number of exported symbols.
         * - emit info for a klass only once.
+        * - determine when a method uses a GOT slot which is guaranteed to be already 
+        *   initialized.
+        * - clean up and document the code.
+        * - use String.Empty in class libs.
+        * - type_from_handle.
         */
 
        /* Encode info required to decode shared GOT entries */