On 4/4/23 21:29, Jeff Law wrote:


On 4/3/23 23:13, liuhongt via Gcc-patches wrote:
There's a potential performance issue when backend returns some
unreasonable value for the mode which can be never be allocate with
reg class.

Bootstrapped and regtested on x86_64-pc-linux-gnu{-m32,}.
Ok for trunk(or GCC14 stage1)?

gcc/ChangeLog:

    PR rtl-optimization/109351
    * ira.cc (setup_class_subset_and_memory_move_costs): Check
    hard_regno_mode_ok before setting lowest memory move cost for
    the mode with different reg classes.
Not a regression *and* changing register allocation.  This seems like it should defer to gcc-14.

Yes, I am agree.  It should wait for gcc-14, especially when we are close to the release. Also the testing x86-64 is not enough for such changes (although I tried ppc64le and did not find any problem).

Cost related patches for RA frequently result in new testsuite failures on some targets.  Even if the change seems obvious and expected to improve the generated code.

Target dependent code sometimes defines correctly the costs only for some possible cases and making less dependent from this pitfall is good.  So I think the patch moves us to the right direction.

The patch is ok for me to commit it to the trunk after the gcc-13 release and if arm64 testing shows no GCC testsuite regression.

Thank you for working on this issue.


Reply via email to