On Wed, Oct 5, 2011 at 14:20, Mike Stump <mikest...@comcast.net> wrote:
> On Oct 5, 2011, at 6:18 AM, Diego Novillo wrote:
>> I think we need to find a solution for this situation.
>
> The solution Apple found and implemented is a __nodebug__ attribute, as can 
> be seen in Apple's gcc.
>
> We use it like so:
>
> #define __always_inline__ __always_inline__, __nodebug__
> #undef __always_inline__
>
> in headers like mmintrn.h:
>
> __STATIC_INLINE void __attribute__((__always_inline__))
> /* APPLE LOCAL end radar 5618945 */
> _mm_empty (void)
> {
>  __builtin_ia32_emms ();
> }

Ah, nice.  Though, one of the things I am liking more and more about
the blacklist solution is that it (a) does not need any modifications
to the source code, and (b) it works with no-inline functions as well.

This gives total control to the developer.  I would blacklist a bunch
of functions I never care to go into, for instance.  Others may choose
to blacklist a different set.  And you can change that from debug
session to the next.

I agree with Jakub that artificial functions should be blacklisted
automatically, however.

Richi, Jakub, if the blacklist solution was implemented in GCC would
you agree with promoting these macros into inline functions?  This is
orthogonal to http://sourceware.org/bugzilla/show_bug.cgi?id=13263, of
course.


Thanks.  Diego.

Reply via email to