[Bug target/114591] [12/13/14/15 Regression] register allocators introduce an extra load operation since gcc-12
liuhongt at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Mar 24 03:02:17 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114591
--- Comment #18 from Hongtao Liu <liuhongt at gcc dot gnu.org> ---
(In reply to Hongtao Liu from comment #16)
> >
> > 4952 /* See if a MEM has already been loaded with a widening operation;
> > 4953 if it has, we can use a subreg of that. Many CISC machines
> > 4954 also have such operations, but this is only likely to be
> > 4955 beneficial on these machines. */
>
> Oh, it's pre_reload cse_insn, not postreload gcse
Current postreload gcse is supposed to handle inter-block redundant loads, but
for testcase in the PR, the redundancy it's inside the same block
------cut from postreload-gcse.cc -------------
46/* The following code implements gcse after reload, the purpose of this
47 pass is to cleanup redundant loads generated by reload and other
48 optimizations that come after gcse. It searches for simple inter-block
49 redundancies and tries to eliminate them by adding moves and loads
50 in cold places.
------cut end ------------------------------
More information about the Gcc-bugs
mailing list