Better compression of unicode table in common/text/unicode_data.cpp
Lots of space is wasted because all entries use 4 byte code point values. Code point ranges in [0, 256) and [256, 65536) can use a different layout.
Note that the source file is generated by a python script (which should also be migrated to cog)
Wrapper around absl::flat_hash_set(/table) for maps and sets of Id keys (e.g. InstId). All of those Id types are simple wrappers around integers (usually u32), but their template instantiations seem to be distinct. By creating a wrapper type that is a simple map of integers we could save some code, although probably not that much because the value the value types would still be distinct.
Look into the code size of fmt:: symbols
Tools like Bloaty are useful when working on this.
Unicode tables are a bit smaller now. General categories are longer stored, we only have information about XID_Start (+ Continue) and Whitespace. Tables are still not compressed in any way.
Possible opportunities for saving some code size:
Id
keys (e.g.InstId
). All of those Id types are simple wrappers around integers (usually u32), but their template instantiations seem to be distinct. By creating a wrapper type that is a simple map of integers we could save some code, although probably not that much because the value the value types would still be distinct.fmt::
symbolsTools like Bloaty are useful when working on this.