diff options
author | Tom de Vries <tom@codesourcery.com> | 2014-06-20 18:28:12 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2014-06-20 18:28:12 +0000 |
commit | 73b3e61bca04df93fcba001702c469deeed6a06d (patch) | |
tree | e0f9f44bb935fb127d731ec2456988bcbd942062 | |
parent | 676d89dd0f84823db929854671bf45573aa30b01 (diff) | |
download | gcc-73b3e61bca04df93fcba001702c469deeed6a06d.zip gcc-73b3e61bca04df93fcba001702c469deeed6a06d.tar.gz gcc-73b3e61bca04df93fcba001702c469deeed6a06d.tar.bz2 |
Update definition of call_fusage_contains_non_callee_clobbers
2014-06-20 Tom de Vries <tom@codesourcery.com>
* target.def (call_fusage_contains_non_callee_clobbers): Update
definition.
* doc/tm.texi: Regenerate.
From-SVN: r211852
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/doc/tm.texi | 16 | ||||
-rw-r--r-- | gcc/target.def | 20 |
3 files changed, 24 insertions, 18 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9aaab6e..3141ec9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-06-20 Tom de Vries <tom@codesourcery.com> + + * target.def (call_fusage_contains_non_callee_clobbers): Update + definition. + * doc/tm.texi: Regenerate. + 2014-06-20 Yury Gribov <y.gribov@samsung.com> Max Ostapenko <m.ostapenko@partner.samsung.com> diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index c272630..45281ae 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -4884,14 +4884,14 @@ Whether this target supports splitting the stack when the options described in @ @cindex miscellaneous register hooks @deftypevr {Target Hook} bool TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS -set to true if all the calls in the current function contain clobbers in -CALL_INSN_FUNCTION_USAGE for the registers that are clobbered by the call -rather than by the callee, and are not already set or clobbered in the call -pattern. Examples of such registers are registers used in PLTs and stubs, -and temporary registers used in the call instruction but not present in the -rtl pattern. Another way to formulate it is the registers not present in the -rtl pattern that are clobbered by the call assuming the callee does not -clobber any register. The default version of this hook is set to false. +Set to true if each call that binds to a local definition explicitly +clobbers or sets all non-fixed registers modified by performing the call. +That is, by the call pattern itself, or by code that might be inserted by the +linker (e.g. stubs, veneers, branch islands), but not including those +modifiable by the callee. The affected registers may be mentioned explicitly +in the call pattern, or included as clobbers in CALL_INSN_FUNCTION_USAGE. +The default version of this hook is set to false. The purpose of this hook +is to enable the fuse-caller-save optimization. @end deftypevr @node Varargs diff --git a/gcc/target.def b/gcc/target.def index e455211..ee250e6 100644 --- a/gcc/target.def +++ b/gcc/target.def @@ -5128,18 +5128,18 @@ FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and the PIC_OFFSET_TABLE_REGNUM.", hook_void_bitmap) /* Targets should define this target hook to mark that non-callee clobbers are - present in CALL_INSN_FUNCTION_USAGE for all the calls in the current - function. */ + present in CALL_INSN_FUNCTION_USAGE for all the calls that bind to a local + definition. */ DEFHOOKPOD (call_fusage_contains_non_callee_clobbers, - "set to true if all the calls in the current function contain clobbers in\n\ -CALL_INSN_FUNCTION_USAGE for the registers that are clobbered by the call\n\ -rather than by the callee, and are not already set or clobbered in the call\n\ -pattern. Examples of such registers are registers used in PLTs and stubs,\n\ -and temporary registers used in the call instruction but not present in the\n\ -rtl pattern. Another way to formulate it is the registers not present in the\n\ -rtl pattern that are clobbered by the call assuming the callee does not\n\ -clobber any register. The default version of this hook is set to false.", + "Set to true if each call that binds to a local definition explicitly\n\ +clobbers or sets all non-fixed registers modified by performing the call.\n\ +That is, by the call pattern itself, or by code that might be inserted by the\n\ +linker (e.g. stubs, veneers, branch islands), but not including those\n\ +modifiable by the callee. The affected registers may be mentioned explicitly\n\ +in the call pattern, or included as clobbers in CALL_INSN_FUNCTION_USAGE.\n\ +The default version of this hook is set to false. The purpose of this hook\n\ +is to enable the fuse-caller-save optimization.", bool, false) |