aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/format/c23-scanf-1.c
diff options
context:
space:
mode:
authorArtemiy Volkov <artemiyv@acm.org>2025-09-06 15:06:36 -0600
committerJeff Law <jlaw@ventanamicro.com>2025-09-06 15:07:27 -0600
commit41b0c7a674e87074fdc8088479cb93f6fe1e070f (patch)
treee5fa08f17781a2eae62ebba1d828c34bb5e171f7 /gcc/testsuite/gcc.dg/format/c23-scanf-1.c
parent044d828724cb0169ee7721ae208297c2b8d5a8fd (diff)
downloadgcc-master.zip
gcc-master.tar.gz
gcc-master.tar.bz2
gcc: introduce the dep_fusion passHEADtrunkmaster
Presently, the scheduler code only considers consecutive instructions for macro-op fusion (see sched-deps.cc::sched_macro_fuse_insns () for details). This patch introduces the new dep_fusion pass, which is intended to uncover more fusion opportunities by reordering eligible instructions to form fusible pairs (based solely on the value of the TARGET_SCHED_MACRO_FUSION_PAIR_P hook). This is achieved by using the RTL-SSA framework, and only the single-use instructions are considered for the first instruction of a pair. Aside from reordering instructions, this pass also sets the SCHED_GROUP flag for the second instruction so that following passes can implement special handling of the fused pairs. For instance, RA and regrename should make use of this information to preserve single-output property for some of such pairs. Accordingly, in passes.def, this patch adds two invocations of the new pass: just before IRA and just before regrename. The new pass is enabled at -O2+ and -Os. gcc/ChangeLog: * Makefile.in (OBJS): Add dep-fusion.o. * common.opt (fdep-fusion): Add option. * dep-fusion.cc: New pass. * doc/invoke.texi: Document it. * opts.cc (default_options_table): Enable it at -O2+ and -Os. * passes.def: Insert two instances of dep_fusion. * tree-pass.h (make_pass_dep_fusion): Declare new function.
Diffstat (limited to 'gcc/testsuite/gcc.dg/format/c23-scanf-1.c')
0 files changed, 0 insertions, 0 deletions