> Hi, > > the patch below fixes various issues in function > update_specialized_profile. The main is removal of the assert which > is bogus in the case of recursive cloning. The division of > unexplained counts is guesswork, which then leads to updates of counts > of recursive edges, which then can be redirected to the new clone and > their count subtracted from the count and there simply may not be > enough left in the count of the original node - especially when we > clone a lot because of using --param ipa-cp-eval-threshold=1. > > The other issue was omission to drop the count of the original node to > ipa count. And when calculating the remainder, we should use > lenient_count_portion_handling to account for partial train runs. > Finally, the patch adds dumping of the original count which I think > is useful. > > Profiled-LTO-bootstrapped on its own and also normally bootstrapped and > tested together with the subsequent patch on an x86_64-linux. OK for > master and the 12 branch - assuming it is also affected? > > Thanks, > > Martin > > > gcc/ChangeLog: > > 2023-02-17 Martin Jambor <mjam...@suse.cz> > > PR ipa/107925 > * ipa-cp.cc (update_specialized_profile): Drop orig_node_count to > ipa count, remove assert, lenient_count_portion_handling, dump > also orig_node_count.
OK, thanks! Honza