From: Vladimir N. Makarov Date: Thu, 28 Sep 2023 15:53:51 +0000 (-0400) Subject: Revert "[RA]: Improve cost calculation of pseudos with equivalences" X-Git-Tag: basepoints/gcc-15~5827 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8552dcd8e4448c02fe230662093756b75dd94399;p=thirdparty%2Fgcc.git Revert "[RA]: Improve cost calculation of pseudos with equivalences" This reverts commit 3c834d85f2ec42c60995c2b678196a06cb744959. Although the patch improves x86-64 specfp2007, it also results in performance and code size regression on different targets and new GCC testsuite failures on tests expecting a specific output. --- diff --git a/gcc/ira-costs.cc b/gcc/ira-costs.cc index 8c93ace5094a..d9e700e89473 100644 --- a/gcc/ira-costs.cc +++ b/gcc/ira-costs.cc @@ -1947,8 +1947,15 @@ find_costs_and_classes (FILE *dump_file) } if (i >= first_moveable_pseudo && i < last_moveable_pseudo) i_mem_cost = 0; - else - i_mem_cost -= equiv_savings; + else if (equiv_savings < 0) + i_mem_cost = -equiv_savings; + else if (equiv_savings > 0) + { + i_mem_cost = 0; + for (k = cost_classes_ptr->num - 1; k >= 0; k--) + i_costs[k] += equiv_savings; + } + best_cost = (1 << (HOST_BITS_PER_INT - 2)) - 1; best = ALL_REGS; alt_class = NO_REGS;