On Tue, Jul 14, 2015 at 11:45 AM, Eric Anholt <e...@anholt.net> wrote: > These are really useful hints to the compiler in the absence of link-time > optimization, and I'm going to use them in VC4. > > I've made the const attribute be ATTRIBUTE_CONST unlike other function > attributes, because we have other things in the tree #defining CONST for > their own unrelated purposes. > --- > configure.ac | 2 ++ > src/util/macros.h | 20 ++++++++++++++++++++ > 2 files changed, 22 insertions(+) > > diff --git a/configure.ac b/configure.ac > index bdfd134..38ad398 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -210,6 +210,8 @@ AX_GCC_FUNC_ATTRIBUTE([format]) > AX_GCC_FUNC_ATTRIBUTE([malloc]) > AX_GCC_FUNC_ATTRIBUTE([packed]) > AX_GCC_FUNC_ATTRIBUTE([unused]) > +AX_GCC_FUNC_ATTRIBUTE([const]) > +AX_GCC_FUNC_ATTRIBUTE([pure]) > AX_GCC_FUNC_ATTRIBUTE([warn_unused_result]) > > AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes) > diff --git a/src/util/macros.h b/src/util/macros.h > index 66698e7..4d16183 100644 > --- a/src/util/macros.h > +++ b/src/util/macros.h > @@ -130,6 +130,26 @@ do { \ > #define PACKED > #endif > > +/* Attribute pure is used for functions that have no effects other than their > + * return value. As a result, calls to it can be dead code eliminated. > + */ > +#ifdef HAVE_FUNC_ATTRIBUTE_PURE > +#define PURE __attribute__((__pure__)) > +#else > +#define PURE > +#endif > + > +/* Attribute const is used for functions that have no effects other than > their > + * return value, and only rely on the argument values to compute the return > + * value. As a result, calls to it can be CSEed. Note that using memory > + * pointed to by the arguments is not allowed for const functions. > + */ > +#ifdef HAVE_FUNC_ATTRIBUTE_CONST > +#define ATTRIBUTE_CONST __attribute__((__const__)) > +#else > +#define ATTRIBUTE_CONST > +#endif > + > #ifdef __cplusplus > /** > * Macro function that evaluates to true if T is a trivially > -- > 2.1.4
Both of these hunks are alphabetized. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev