aboutsummaryrefslogtreecommitdiff
path: root/gcc/target.def
diff options
context:
space:
mode:
authorJames Greenhalgh <james.greenhalgh@arm.com>2016-11-23 17:14:07 +0000
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>2016-11-23 17:14:07 +0000
commit42e02b207fdf71f09020eef2bba3e25f5f57a946 (patch)
treec7ee3fc4890a00af4ef7dfacfa95f70282c9cdd3 /gcc/target.def
parentaecc521b46ac451c0547d8693bfcfabfb3832401 (diff)
downloadgcc-42e02b207fdf71f09020eef2bba3e25f5f57a946.zip
gcc-42e02b207fdf71f09020eef2bba3e25f5f57a946.tar.gz
gcc-42e02b207fdf71f09020eef2bba3e25f5f57a946.tar.bz2
[Patch 1/17] Add a new target hook for describing excess precision intentions
gcc/ * target.def (excess_precision): New hook. * target.h (flt_eval_method): New. (excess_precision_type): Likewise. * targhooks.c (default_excess_precision): New. * targhooks.h (default_excess_precision): New. * doc/tm.texi.in (TARGET_C_EXCESS_PRECISION): New. * doc/tm.texi: Regenerate. From-SVN: r242771
Diffstat (limited to 'gcc/target.def')
-rw-r--r--gcc/target.def17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/target.def b/gcc/target.def
index c24b4cf..efcc336 100644
--- a/gcc/target.def
+++ b/gcc/target.def
@@ -5464,6 +5464,23 @@ DEFHOOK_UNDOC
machine_mode, (char c),
default_mode_for_suffix)
+DEFHOOK
+(excess_precision,
+ "Return a value, with the same meaning as @code{FLT_EVAL_METHOD} C that\
+ describes which excess precision should be applied. @var{type} is\
+ either @code{EXCESS_PRECISION_TYPE_IMPLICIT},\
+ @code{EXCESS_PRECISION_TYPE_FAST}, or\
+ @code{EXCESS_PRECISION_TYPE_STANDARD}. For\
+ @code{EXCESS_PRECISION_TYPE_IMPLICIT}, the target should return which\
+ precision and range operations will be implictly evaluated in regardless\
+ of the excess precision explicitly added. For\
+ @code{EXCESS_PRECISION_TYPE_STANDARD} and\
+ @code{EXCESS_PRECISION_TYPE_FAST}, the target should return the\
+ explicit excess precision that should be added depending on the\
+ value set for @option{-fexcess-precision=@r{[}standard@r{|}fast@r{]}}.",
+ enum flt_eval_method, (enum excess_precision_type type),
+ default_excess_precision)
+
HOOK_VECTOR_END (c)
/* Functions specific to the C++ frontend. */