This change adds the ability for lld to remove LEB padding from
code section. This effectively shrinks the size of the resulting binary
in proportion to the number of code relocations.
Since there will be a performance cost this is currently only active
for -O2. Some toolchains may instead want to perform this compression
as a post linker step (for example running a binary through binaryen will
automatically compress these values).
I imagine we might want to make this the default in the future and
force people to opt out with -O0.
I think 0 should be default. For example, if you don't pass -O to gcc or clang, they emit a non-optimized code.