[wasm] Trim down size of dotnet.wasm (#39549)
authorVlad Brezae <brezaevlad@gmail.com>
Sat, 18 Jul 2020 21:40:04 +0000 (00:40 +0300)
committerGitHub <noreply@github.com>
Sat, 18 Jul 2020 21:40:04 +0000 (00:40 +0300)
commitb613cbe051234c4e55e32d0dcd198fb3e7974567
tree8707f0140e62eecca61c5de48f4f13a7b679141f
parent62f2588a57852270750f4fa2d8928ef66100cf1d
[wasm] Trim down size of dotnet.wasm (#39549)

* [interp] Use constant for concurrent collection in progress

Saves 4k on wasm.

* [sgen] Use constant for concurrent sweep

Saves 0.5k on wasm

* [sgen] Remove code from threadpool when not using concurrent mode

Saves 2.5k on wasm

* [sgen] Avoid keeping some callbacks alive

Saves 0.5k on wasm

* [sgen] Avoid registering callback if not used

* [sgen] Add option to remove binary protocol from build

Saves 5k on wasm

* [sgen] Add option to disable togglerefs

Saves 1k on wasm

* [sgen] We never need to wait for sweep if serial

Saves 0.5k on wasm

* [sgen] Disable also canaries if debug helpers are disabled

Saves 1k on wasm

* [sgen] Disable also pinning_stats if debug features are disabled

Saves 2k on wasm

* [sgen] Disable also gchandle stats if debug is disabled

Saves 1k on wasm

* [sgen] Disable also sgen logging if debugging is disabled

Saves 6k on wasm

* [runtime] Disable log messages if assert messages is disabled

This is mainly beneficial do to very common calls of g_error.

Saves 35k on wasm
18 files changed:
src/mono/configure.ac
src/mono/mono.proj
src/mono/mono/eglib/glib.h
src/mono/mono/eglib/goutput.c
src/mono/mono/metadata/sgen-toggleref.c
src/mono/mono/sgen/sgen-client.h
src/mono/mono/sgen/sgen-conf.h
src/mono/mono/sgen/sgen-gc.c
src/mono/mono/sgen/sgen-gc.h
src/mono/mono/sgen/sgen-gchandles.c
src/mono/mono/sgen/sgen-marksweep.c
src/mono/mono/sgen/sgen-pinning-stats.c
src/mono/mono/sgen/sgen-pinning.h
src/mono/mono/sgen/sgen-protocol.c
src/mono/mono/sgen/sgen-protocol.h
src/mono/mono/sgen/sgen-thread-pool.c
src/mono/mono/sgen/sgen-workers.c
src/mono/mono/sgen/sgen-workers.h