This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Implement smart multiple switch expansion algorithms.


Martin Liska wrote:

> There are some numbers for cc1plus:
>
> $ bloaty ./objdir2/gcc/cc1plus -- ./objdir/gcc/cc1plus
>     VM SIZE                      FILE SIZE
>   +3.8% +1.11Mi TOTAL          +1.03Mi  +0.5%

> insn-attrtab.o:
>     VM SIZE                          FILE SIZE
>   +214%  +682Ki .rodata             +682Ki  +214%
>  -50.1% -63.3Ki .text              -63.3Ki -50.1%

So is that a 3.8% codesize increase or decrease? If an increase,
I can't see how replacing 63KB of instructions with 682KB of data
is a good tradeoff... There should be an accurate calculation
of the density, taking the switch table width into account (really small
tables can use 1-byte offsets, large tables are typically forced to
use 4-byte offsets). This may need new target callbacks - I changed
PARAM_CASE_VALUES_THRESHOLD on AArch64 to get smaller
code and better performance since the current density calculations
are hardcoded and quite wrong for big tables...

Also what is the codesize difference on SPEC2006/2017? I don't see
any mention of performance impact either...

Wilco

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]