https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117123
Davide Italiano <dccitaliano at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pheeck at gcc dot gnu.org, | |rguenth at gcc dot gnu.org --- Comment #2 from Davide Italiano <dccitaliano at gmail dot com> --- This points to: commit cd794c3961017703a4d2ca0e854ea23b3d4b6373 Author: Filip Kastl <fka...@suse.cz> Date: Thu Dec 14 11:29:31 2023 +0100 A new copy propagation and PHI elimination pass This patch adds the strongly-connected copy propagation (SCCOPY) pass. It is a lightweight GIMPLE copy propagation pass that also removes some redundant PHI statements. It handles degenerate PHIs, e.g.: _5 = PHI <_1>; _6 = PHI <_6, _6, _1, _1>; _7 = PHI <16, _7>; // Replaces occurences of _5 and _6 by _1 and _7 by 16 It also handles more complicated situations, e.g.: _8 = PHI <_9, _10>; _9 = PHI <_8, _10>; _10 = PHI <_8, _9, _1>; // Replaces occurences of _8, _9 and _10 by _1 gcc/ChangeLog: * Makefile.in: Added sccopy pass. * passes.def: Added sccopy pass before LTO streaming and before RTL expansion. * tree-pass.h (make_pass_sccopy): Added sccopy pass. * gimple-ssa-sccopy.cc: New file. gcc/testsuite/ChangeLog: * gcc.dg/sccopy-1.c: New test. Signed-off-by: Filip Kastl <fka...@suse.cz> gcc/Makefile.in | 1 + gcc/gimple-ssa-sccopy.cc | 680 ++++++++++++++++++++++++++++++++++++++++ gcc/passes.def | 2 + gcc/testsuite/gcc.dg/sccopy-1.c | 78 +++++ gcc/tree-pass.h | 1 + 5 files changed, 762 insertions(+) create mode 100644 gcc/gimple-ssa-sccopy.cc create mode 100644 gcc/testsuite/gcc.dg/sccopy-1.c bisect found first bad commit