This is the mail archive of the
mailing list for the GCC project.
PATCH: __nodebug__ attribute for use on SSE intrinsic wrappers
- From: Fariborz Jahanian <fjahanian at apple dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 29 Jul 2005 09:23:35 -0700
- Subject: PATCH: __nodebug__ attribute for use on SSE intrinsic wrappers
The existing GCC SSE implementation defines the Intel(tm) SSE
intrinsics in four header files. Almost every SSE intrinsic is
defined as a trivial function that wraps a GCC "__builtin_xxxxxx()"
where the builtins appear to be functions, but expand to a particular
SSE instruction. When the inliner inlines the intrinsic call, the
debug info includes a reference to the wrapper functions in the GCC
header files, and stepping through a loop of SSE becomes a trial as
GDB repeatedly drag one's attention to the wrapper functions. Apple
developers, have requested that GDB does not step into implementation
of wrapper functions and step over them. This patch is adaptation of
an old Pinksi/Devang patch which Devang brought to my attention
(thank you to both). The patch introduces a new __nodebug__ attribute
attached to all SSE intrinsic declarations, with the desired
behavior. Is this something that FSF would like to have as
contribution. Preferences on debugging issues varies from site to
site, so I am note sure on this.
- fariborz (email@example.com)
2005-07-29 Fariborz Jahanian <firstname.lastname@example.org>
* c-common.c (c_common_att): New entry added for "nodebug".
(handle_nodebug_attribute): New function.
* tree-inline.c (call_location_p, call_location): New fields in
(copy_body_r): Set new location of copied tree, if available.
(expand_call_inline): If callee's '__nodebug__' attribute is
set, use caller's input_location for copied trees.
* config/i386/emmintrin.h: All intrinsic functions have
"__nodebug__" Added to their declarations.
* config/i386/mmintrin.h: Ditto.
* config/i386/pmmintrin.h: Ditto.
* config/i386/xmmintrin.h: Ditto.
Description: Text document
Description: Binary data