aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-range-cache.cc
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2023-11-11 17:28:58 +0000
committerRichard Sandiford <richard.sandiford@arm.com>2023-11-11 17:28:58 +0000
commit29d3e1892ebec8abce784077d1f1a3e21d763218 (patch)
tree1af3eb0dee38cebde16257775b58d33cace18489 /gcc/gimple-range-cache.cc
parent4b803fbf839439b1deca660e32d5ced211111dfa (diff)
downloadgcc-29d3e1892ebec8abce784077d1f1a3e21d763218.zip
gcc-29d3e1892ebec8abce784077d1f1a3e21d763218.tar.gz
gcc-29d3e1892ebec8abce784077d1f1a3e21d763218.tar.bz2
mode-switching: Pass set of live registers to the needed hook
The emit hook already takes the set of live hard registers as input. This patch passes it to the needed hook too. SME uses this to optimise the mode choice based on whether state is live or dead. The main caller already had access to the required info, but the special handling of return values did not. gcc/ * target.def (mode_switching.needed): Add a regs_live parameter. * doc/tm.texi: Regenerate. * config/epiphany/epiphany-protos.h (epiphany_mode_needed): Update accordingly. * config/epiphany/epiphany.cc (epiphany_mode_needed): Likewise. * config/epiphany/mode-switch-use.cc (insert_uses): Likewise. * config/i386/i386.cc (ix86_mode_needed): Likewise. * config/riscv/riscv.cc (riscv_mode_needed): Likewise. * config/sh/sh.cc (sh_mode_needed): Likewise. * mode-switching.cc (optimize_mode_switching): Likewise. (create_pre_exit): Likewise, using the DF simulate functions to calculate the required information.
Diffstat (limited to 'gcc/gimple-range-cache.cc')
0 files changed, 0 insertions, 0 deletions