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.


On 10/06/2017 03:46 PM, Wilco Dijkstra wrote:
> 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,

Hi.

Yes, 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...

Let me return to that in next stage1. Can you please provide more details about
how it affects AArach64 target?

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

Will prepare that.

Thank you,
Martin

> 
> Wilco
> 


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