Vladimir Makarov via Gcc-patches <gcc-patches@gcc.gnu.org> writes: > On 2022-05-29 23:05, Hongtao Liu wrote: >> On Fri, May 27, 2022 at 5:12 AM Vladimir Makarov via Gcc-patches >> <gcc-patches@gcc.gnu.org> wrote: >>> >>> On 2022-05-24 23:39, liuhongt wrote: >>>> Rigt now, mem_cost for separate mem alternative is 1 * frequency which >>>> is pretty small and caused the unnecessary SSE spill in the PR, I've tried >>>> to rework backend cost model, but RA still not happy with that(regress >>>> somewhere else). I think the root cause of this is cost for separate 'm' >>>> alternative cost is too small, especially considering that the mov cost >>>> of gpr are 2(default for REGISTER_MOVE_COST). So this patch increase >>>> mem_cost >>>> to 2*frequency, also increase 1 for reg_class cost when m alternative. >>>> >>>> >>>> Bootstrapped and regtested on x86_64-pc-linux-gnu{-m32,}. >>>> Ok for trunk? >>> Thank you for addressing this problem. And sorry I can not approve this >>> patch at least w/o your additional work on benchmarking this change. >>> >>> This code is very old. It is coming from older RA (former file >>> regclass.c) and existed practically since GCC day 1. People tried many >>> times to improve this code. The code also affects many targets. >> Yes, that's why I increased it as low as possible, so it won't regress >> #c6 in the PR. >>> I can approve this patch if you show that there is no regression at >>> least on x86-64 on some credible benchmark, e.g. SPEC2006 or SPEC2017. >>> >> I've tested the patch for SPEC2017 with both -march=cascadelake >> -Ofast -flto and -O2 -mtune=generic. >> No obvious regression is observed, the binaries are all different from >> before, so I looked at 2 of them, the difference mainly comes from >> different choices of registers(xmm13 -> xmm12). >> Ok for trunk then? > > OK. > > Thank you for checking SPEC2017. > > I hope it will not create troubles for other targets.
Can we hold off for a bit? Like Alexander says, there seem to be some inconsistencies in the target patterns, so I think we should first rule out any changes being needed there. Thanks, Richard