GC bridge: Only export non-bridged objects when it's helpful
authorAndi McClure <andi.mcclure@xamarin.com>
Fri, 19 Aug 2016 20:12:45 +0000 (16:12 -0400)
committerAndi McClure <andi.mcclure@xamarin.com>
Fri, 19 Aug 2016 20:12:45 +0000 (16:12 -0400)
commitc972ad051ac5c925fe8bca981634c03cfc3a6958
treee40f5a36d9dc70a638ad1e2626672ec722ef0669
parentdb60c62ff99186297b40cf36708233c3d3bc56bc
GC bridge: Only export non-bridged objects when it's helpful

Augments each tarjan-bridge SCC ("color") with a count of how many
SCCs are pointing to it. The mechanism for exporting non-bridged SCCs
uses this count to only export those SCCs where the "double fan"
scenario appears to be occurring. In testing this eliminates the
performance overhead imposed by the previous commit.

Also renamed/moved some variable declarations because namespace bugs
were creeping in.
mono/metadata/sgen-tarjan-bridge.c