Comment # 1 on bug 139 from
FYI, the backend does *almost* the right thing.


        .globl  _D4test6Buffer6__initZ
        .section        .rodata
        .align 64
        .type   _D4test6Buffer6__initZ, @object
        .size   _D4test6Buffer6__initZ, 65536
_D4test6Buffer6__initZ:
        .zero   65536


It is able to correctly recognise that the initialiser is all zeros, and
reduces it to .zero 65536.  Unfortunately, because there *is* an initialiser in
the first place means that it puts it in .section .rodata, instead of
optimising for size and putting it in .bss

What we should be doing is checking if initializer_zerop, then undoing our
work.

This has a run-time cost (it would be nice to have a test for all zeros before
building and discarding trees) but for the size reduction, it would be worth
it.


You are receiving this mail because: