Inspired by
@rictic.com and Google's perennial problems with massive Protobufs causing binary bloat, my next DCE experiment is going to be tracking "pure" setters, and eliminating them if fields are never read.
This should allow eliminating generated deserialization code that's never used.
Working on my WASM-first language during some downtime today. Just added dead-code elimination.
export let main = () => 42;
now compiles to:
(module
(type (func (result i32)))
(export "main" (func 0))
(func (type 0) (result i32)
i32.const 42
)
)
I think this is as small as possible!