https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113907

--- Comment #68 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #67)
> (In reply to Martin Jambor from comment #66)
> > Created attachment 57750 [details]
> > Patch comparing jump functions
> > 
> > I'm testing this patch.  (Not sure how to best check that it does not
> > inadvertently pessimize ICF too much, except for ICF testcases.)
> 
> Bet modify the patch slightly (for testing only), so instead of those 3
> return_false_with_msg it would just set some flag somewhere that the pair is
> not ICF optimizable, then after the early return false in
> sem_function::merge check that flag
> and log into some /tmp/ file using appending if the ICF merge would be done
> and the flag wasn't set, or if the ICF merge wouldn't be done (and in that
> case return false too), bootstrap/regtest with such patch, plus build a few
> other packages (firefox, libreoffice) and then get statistics from the log
> file on what percentage of ICF folding it now prevents.

To correct myself, basically return a tristate from the ICF comparisons,
instead of returning boolean this is the same vs. not return this is the same
including jump_functions vs. this is the same excluding jump_functions vs. this
is not the same,
put the first category into the same class but somehow connect two different
classes as weakly connected if they were the same before but aren't anymore. 
And then when trying to merge stuff first merge stuff in the same class + log
that, and then check if one could merge between the connected classes but fail
before actually merging it and log that too.

Reply via email to