GC bridge: Include non-bridged objects in the exported object graph
authorAndi McClure <andi.mcclure@xamarin.com>
Fri, 19 Aug 2016 20:07:22 +0000 (16:07 -0400)
committerAndi McClure <andi.mcclure@xamarin.com>
Fri, 19 Aug 2016 20:07:22 +0000 (16:07 -0400)
commitdb60c62ff99186297b40cf36708233c3d3bc56bc
tree635ed10d073c0748fadca36edf6a96ae567832e7
parentca48b5e9e228e0eaeae877b27d60313d87487d82
GC bridge: Include non-bridged objects in the exported object graph

Introduces a mechanism for non-bridged SCCs which lay between bridged
SCCs in the SCC forest to be reported to the bridge client. In this
version, such non-bridged SCCs are always reported. The result is that
most GCs get a little slower but GCs in which the "double fan" shape
appears (many bridged objects link to one C# object which links to
many bridged objects) become massively faster.

Because before clients were allowed to assume exported SCCs were
always bridged, SGEN_BRIDGE_VERSION has been incremented.
docs/sources/mono-api-gc.html
mono/metadata/sgen-bridge.h
mono/metadata/sgen-tarjan-bridge.c