This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r242185 - in /branches/ARM/sve-branch/gcc: csel...
- From: rsandifo at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Fri, 11 Nov 2016 17:14:51 -0000
- Subject: r242185 - in /branches/ARM/sve-branch/gcc: csel...
Author: rsandifo
Date: Fri Nov 11 17:14:50 2016
New Revision: 242185
URL: https://gcc.gnu.org/viewcvs?rev=242185&root=gcc&view=rev
Log:
Turn HARD_REGNO_CALL_PART_CLOBBERED into a target hook
Later patches will change the size of a machine_mode from
a compile-time constant to a runtime invariant. Static
type checking forces target-independent code to treat the
modes as runtime invariants unless it has done the work to
prove that they're not. However, target-specific code can
continue to treat the modes as constant-sized, if that
assumption is correct for the target.
The main snag with this approach is that target-independent
code still uses target-specific macros. The best fix for
this would of course be to complete the transtion to using
target hooks instead. However, that's a lot of work,
especially since some of the macros are still used in
preprocessor conditions.
This patch instead adds a MACRO_MODE wrapper that can be
used around mode arguments to target-specific macros.
The first use case is in a partial conversion of
HARD_REGNO_CALL_PART_CLOBBERED to a target hook:
target-independent code now uses the hook, but ports still
define the macro. It would be good to convert the ports to
define the hook directly, but that's left as future work.
Modified:
branches/ARM/sve-branch/gcc/cselib.c
branches/ARM/sve-branch/gcc/doc/tm.texi
branches/ARM/sve-branch/gcc/doc/tm.texi.in
branches/ARM/sve-branch/gcc/ira-conflicts.c
branches/ARM/sve-branch/gcc/ira-costs.c
branches/ARM/sve-branch/gcc/lra-constraints.c
branches/ARM/sve-branch/gcc/lra-lives.c
branches/ARM/sve-branch/gcc/machmode.h
branches/ARM/sve-branch/gcc/regcprop.c
branches/ARM/sve-branch/gcc/reginfo.c
branches/ARM/sve-branch/gcc/regrename.c
branches/ARM/sve-branch/gcc/regs.h
branches/ARM/sve-branch/gcc/reload.c
branches/ARM/sve-branch/gcc/reload1.c
branches/ARM/sve-branch/gcc/sched-deps.c
branches/ARM/sve-branch/gcc/sel-sched.c
branches/ARM/sve-branch/gcc/target.def
branches/ARM/sve-branch/gcc/targhooks.c
branches/ARM/sve-branch/gcc/targhooks.h