On Tue, Jul 31, 2018 at 12:25 PM, H.J. Lu <hjl.to...@gmail.com> wrote: > On Mon, Jul 30, 2018 at 6:16 AM, Richard Biener <rguent...@suse.de> wrote: >> On Fri, 27 Jul 2018, Richard Earnshaw wrote: >> >>> >>> This patch defines a new intrinsic function >>> __builtin_speculation_safe_value. A generic default implementation is >>> defined which will attempt to use the backend pattern >>> "speculation_safe_barrier". If this pattern is not defined, or if it >>> is not available, then the compiler will emit a warning, but >>> compilation will continue. >>> >>> Note that the test spec-barrier-1.c will currently fail on all >>> targets. This is deliberate, the failure will go away when >>> appropriate action is taken for each target backend. >> >> OK. >> >> Thanks, >> Richard. >> >>> gcc: >>> * builtin-types.def (BT_FN_PTR_PTR_VAR): New function type. >>> (BT_FN_I1_I1_VAR, BT_FN_I2_I2_VAR, BT_FN_I4_I4_VAR): Likewise. >>> (BT_FN_I8_I8_VAR, BT_FN_I16_I16_VAR): Likewise. >>> * builtin-attrs.def (ATTR_NOVOPS_NOTHROW_LEAF_LIST): New attribute >>> list. >>> * builtins.def (BUILT_IN_SPECULATION_SAFE_VALUE_N): New builtin. >>> (BUILT_IN_SPECULATION_SAFE_VALUE_PTR): New internal builtin. >>> (BUILT_IN_SPECULATION_SAFE_VALUE_1): Likewise. >>> (BUILT_IN_SPECULATION_SAFE_VALUE_2): Likewise. >>> (BUILT_IN_SPECULATION_SAFE_VALUE_4): Likewise. >>> (BUILT_IN_SPECULATION_SAFE_VALUE_8): Likewise. >>> (BUILT_IN_SPECULATION_SAFE_VALUE_16): Likewise. >>> * builtins.c (expand_speculation_safe_value): New function. >>> (expand_builtin): Call it. >>> * doc/cpp.texi: Document predefine __HAVE_SPECULATION_SAFE_VALUE. >>> * doc/extend.texi: Document __builtin_speculation_safe_value. >>> * doc/md.texi: Document "speculation_barrier" pattern. >>> * doc/tm.texi.in: Pull in TARGET_SPECULATION_SAFE_VALUE and >>> TARGET_HAVE_SPECULATION_SAFE_VALUE. >>> * doc/tm.texi: Regenerated. >>> * target.def (have_speculation_safe_value, speculation_safe_value): >>> New >>> hooks. >>> * targhooks.c (default_have_speculation_safe_value): New function. >>> (default_speculation_safe_value): New function. >>> * targhooks.h (default_have_speculation_safe_value): Add prototype. >>> (default_speculation_safe_value): Add prototype. >>> > > I got > > ../../src-trunk/gcc/targhooks.c: In function ‘bool > default_have_speculation_safe_value(bool)’: > ../../src-trunk/gcc/targhooks.c:2319:43: error: unused parameter > ‘active’ [-Werror=unused-parameter] > default_have_speculation_safe_value (bool active) > ~~~~~^~~~~~
Me too. Committed this patch as obvious. Ian 2018-07-31 Ian Lance Taylor <i...@golang.org> * targhooks.c (default_have_speculation_safe_value): Add ATTRIBUTE_UNUSED.
Index: gcc/targhooks.c =================================================================== --- gcc/targhooks.c (revision 263179) +++ gcc/targhooks.c (working copy) @@ -2316,7 +2316,7 @@ default_preferred_else_value (unsigned, /* Default implementation of TARGET_HAVE_SPECULATION_SAFE_VALUE. */ bool -default_have_speculation_safe_value (bool active) +default_have_speculation_safe_value (bool active ATTRIBUTE_UNUSED) { #ifdef HAVE_speculation_barrier return active ? HAVE_speculation_barrier : true;