2007-09-20 Mark Probst <mark.probst@gmail.com>
authorMark Probst <mark.probst@gmail.com>
Thu, 20 Sep 2007 15:36:56 +0000 (15:36 -0000)
committerMark Probst <mark.probst@gmail.com>
Thu, 20 Sep 2007 15:36:56 +0000 (15:36 -0000)
commit2a27c1094d9d61d8d5750140003db0ac6995d5c0
tree04fd0b7ac453151318a1bd2b5f9a92be1590d725
parentc47a172034dd7e98cfc3088d4f5123ff7f0efd80
2007-09-20  Mark Probst  <mark.probst@gmail.com>

* mini.c: First generics sharing implementation.  Can only share
in very simple cases.  If sharing doesn't work it falls back to
dedicated compilation.

* mini.h: Flag in MonoCompile to specify whether generic
compilation is shared.  Flags enum for marking which generic inst
of a context is used.  Prototypes for helper functions.

* generic-sharing.c: Helper functions for generic method sharing.

* optflags-def.h: Optimization flag (gshared) for enabling generic
method sharing added.

* Makefile.am: generic-sharing.c added.

2007-09-20  Mark Probst  <mark.probst@gmail.com>

* domain-internals.h: New flag in MonoJitInfo which marks shared
generic methods.  New hash table (shared_generics_hash) in
MonoDomain to keep track of shared generic methods.  Prototypes
for functions to register and lookup shared generic methods.

* domain.c: Support for registering and looking up shared generic
methods via a hash table (shared_generics_hash) in MonoDomain.

* class-internals.h: New exception to signal failure of shared
compilation of a generic method.  New counters for generics
sharing in MonoStats.

2007-09-20  Mark Probst  <mark.probst@gmail.com>

* generics-sharing.2.cs: added

* Makefile.am: added generics-sharing.2.cs

svn path=/trunk/mono/; revision=86066
13 files changed:
mono/metadata/ChangeLog
mono/metadata/class-internals.h
mono/metadata/domain-internals.h
mono/metadata/domain.c
mono/mini/ChangeLog
mono/mini/Makefile.am
mono/mini/generic-sharing.c [new file with mode: 0644]
mono/mini/mini.c
mono/mini/mini.h
mono/mini/optflags-def.h
mono/tests/ChangeLog
mono/tests/Makefile.am
mono/tests/generics-sharing.2.cs [new file with mode: 0644]