aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2014-06-20 18:28:12 +0000
committerTom de Vries <vries@gcc.gnu.org>2014-06-20 18:28:12 +0000
commit73b3e61bca04df93fcba001702c469deeed6a06d (patch)
treee0f9f44bb935fb127d731ec2456988bcbd942062
parent676d89dd0f84823db929854671bf45573aa30b01 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/doc/tm.texi16
-rw-r--r--gcc/target.def20
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)