[PATCH][MIPS] PR target/77510 Reduce size of MIPS core automaton

Jeff Law law@redhat.com
Tue Nov 17 01:40:36 GMT 2020

On 11/15/20 2:12 PM, Maciej W. Rozycki wrote:
> On Tue, 10 Nov 2020, Jeff Law via Gcc-patches wrote:
>>>>> This patch reduce reservation of model do not more than 10 cycles. The
>>>>> memory of genautomata down to 1GB.
>>>> How bad is the memory consumption before this change?
>>> almost 2.4GB.
>>> see bugzilla comment #4.
>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77510#c4
>> Thanks Paul, I didn't realize it was your patch until reviewing the BZ.
>> Given you've done as much on the MIPS in the last several years as
>> anyone and it's originally your patch, I think we should go forward with
>> it as long as you don't have any concerns.
>  I have a few concerns about this change, not because I find it wrong to 
> have the reservations artificially shortened, but that, as Paul Koning has 
> also observed, the model recorded in the DFA won't match reality anymore, 
> and then that pipeline information we currently have recorded in the 
> machine description will no longer be as easily accessible as it is now.
>  What I think we need to do here is to keep the individual reservations 
> intact and instead have a setting defined for the machine description 
> syntax to let each GCC target cap them all as needed globally, by default 
> not at all.
>  This way we'll retain the original DFAs and won't need to be concerned 
> about any newly added ones.  And we'll have the setting in a single place, 
> easy to tweak if needed.  And all targets could benefit, either existing 
> or any new ones, as I imagine the MIPS one not to be particularly unique 
> in this respect.
MIPS is definitely not alone.  I'm pretty sure we throttled a couple
other targets for exactly the same reasons at some point.

Paul -- you might consider reaching out to Vladimir Makarov as he might
have some suggestions for how to wire that into building the DFA modelin
genattrtab.c and Richard Sandiford can probably guide you on the basics
of wiring up the new contants in terms of parsing the .md file in the
gen* programs.


More information about the Gcc-patches mailing list