eh frame debug size improvement
Richard Henderson
rth@cygnus.com
Wed Oct 15 02:33:00 GMT 1997
With the following minimal patch, I get a 5 to 6 fold reduction in
.eh_frame on i686. It is beginning to approach acceptible.
I have one idea to get things a bit smaller using only the tools
at hand: we need one CFA instruction to describe something akin
to m68k movem, in which a bit mask of registers is saved at
consecutive locations. The fact that x86 has no such insn is
irrelevant. If the prologue is in one block (some relaxation of
the rule is possible), then we can consider all of the CFA insns
to occur at the same point. This is important considering the
rather large penalty we incur with the current tools by moving
the CFA loc.
Judging from the sparc port, which does effectively this via its
window_save CFA op, we can potentially get another 2 fold reduction.
Unfortunately, the only way to get beyond this is adding smarts
to gnu ld to combine CIE's from across object files, and to recode
CFA instruction blocks now that the absolute distances are known.
r~
More information about the Gcc
mailing list