This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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 (fjahanian@apple.com)

ChangeLog:


2005-07-29 Fariborz Jahanian <fjahanian@apple.com>


        * 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
        struct inline_data.
        (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.

Attachment: fsf-patch-nodebug-attr.txt
Description: Text document

Attachment: i386-nodebug-attr.c
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]