public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 0/6] ira: Fix performance regression in exchange2 [PR98782]
@ 2022-01-06 14:45 Richard Sandiford
  2022-01-06 14:46 ` [PATCH 1/6] ira: Add a ira_loop_border_costs class Richard Sandiford
                   ` (6 more replies)
  0 siblings, 7 replies; 24+ messages in thread
From: Richard Sandiford @ 2022-01-06 14:45 UTC (permalink / raw)
  To: gcc-patches

This series of patches recovers the exchange2 performance lost in the
GCC 11 timeframe (at least on aarch64 and Power9 -- thanks Pat for
testing the latter).

There are 6 patches, split into two groups of 3.  The first 3 are just
preparatory patches, although patch 2 does contain a minor bug fix.
The other 3 patches are the ones that together fix the regression.

I realise this is a bit invasive for stage 3.  However, the series is
fixing a large regression in an important benchmark and AFAIK there are
no known acceptable mitigations that we could apply instead.  I think
the series is also working with concepts that already exist in IRA:
it's really about tweaking the cost model used to control them.

We also still have at least 3 months (more realistically 4 months) of
testing before GCC 12 is released.  So perhaps one option would be to
apply any approved version of the series now, but with the understanding
that if there's significant fallout (more than a handful of small tweaks
or fixes), we would simply revert the patches rather than trying to
rework them in-situ.  The series is confined to IRA so reverting it
should be simple.  Would that be OK?

Each patch bootstrapped & regression-tested individually on
aarch64-linux-gnu.  Also tested as a series on aarch64_be-elf,
arm-linux-gnueabihf, powerpc64le-linux-gnu, and x86_64-linux-gnu.

Richard

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2022-01-11 12:49 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-06 14:45 [PATCH 0/6] ira: Fix performance regression in exchange2 [PR98782] Richard Sandiford
2022-01-06 14:46 ` [PATCH 1/6] ira: Add a ira_loop_border_costs class Richard Sandiford
2022-01-06 15:08   ` Jan Hubicka
2022-01-07 11:12     ` Richard Sandiford
2022-01-07 14:38   ` Vladimir Makarov
2022-01-06 14:46 ` [PATCH 2/6] ira: Add comments and fix move_spill_restore calculation Richard Sandiford
2022-01-07 14:39   ` Vladimir Makarov
2022-01-06 14:47 ` [PATCH 3/6] ira: Add ira_subloop_allocnos_can_differ_p Richard Sandiford
2022-01-07 14:40   ` Vladimir Makarov
2022-01-06 14:47 ` [PATCH 4/6] ira: Try to avoid propagating conflicts Richard Sandiford
2022-01-10 13:51   ` Vladimir Makarov
2022-01-10 14:49     ` Richard Sandiford
2022-01-06 14:48 ` [PATCH 5/6] ira: Consider modelling caller-save allocations as loop spills Richard Sandiford
2022-01-10 13:51   ` Vladimir Makarov
2022-01-11  4:21   ` Hans-Peter Nilsson
2022-01-11  8:38   ` Robin Dapp
2022-01-11  8:52     ` Richard Sandiford
2022-01-11 11:31       ` Robin Dapp
2022-01-11 12:43       ` Martin Liška
2022-01-11 12:47       ` Robin Dapp
2022-01-11 12:49         ` Richard Sandiford
2022-01-06 14:48 ` [PATCH 6/6] ira: Handle "soft" conflicts between cap and non-cap allocnos Richard Sandiford
2022-01-10 13:52   ` Vladimir Makarov
2022-01-07 14:38 ` [PATCH 0/6] ira: Fix performance regression in exchange2 [PR98782] Vladimir Makarov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).