PATCH: __nodebug__ attribute for use on SSE intrinsic wrappers

Stuart Hastings stuart@apple.com
Fri Jul 29 19:34:00 GMT 2005


On Jul 29, 2005, at 11:49 AM, Daniel Berlin wrote:

> On Fri, 2005-07-29 at 11:26 -0700, Devang Patel wrote:
>
>> On Jul 29, 2005, at 11:19 AM, Daniel Jacobowitz wrote:
>>
>>
>>>>> The tool needs to know what functions to ignore.
>>>>>
>>>>> If you want that information to propogate from the source code,  
>>>>> you
>>>>> should do it by adding some annotation to the debug info which  
>>>>> says
>>>>> that the inline function is uninteresting, rather than removing
>>>>> debug
>>>>> info.  This way, tools _can_ step into the function if they are
>>>>> asked
>>>>> to by the user.
>>>>>
>>>>>
>>>>
>>>> And one way to annotate and propagate this info is to use special
>>>> attribute. Any other alternative ?
>>>>
>>>>
>>>
>>> Yes.  My point is that the attribute should ADD to the debug  
>>> info, not
>>> SUBTRACT.
>>>
>>
>> So, you are OK with an idea of having new special attribute and
>> decorating intrinsics headers. Right ?
>>
>
> Nobody has (or should have) a problem with decorating functions with
> attributes.
>
> Most of libgfortran, for example, should be decorated with the pointer
> no capture attribute when it is submitted.
>
> However, simply saying "don't produce debug info for this" is not the
> right way to go about this in a world where your debug info can easily
> tell you whether the called function is compiler made or not.

But it's not a function!

It's a /vector instruction/.  The function-call-esque syntax we've  
saddled them with is just a distraction.  No vector coder I know  
asked for this syntax.  I suppose a more natural syntax for SSE would  
be "vector operators": imagine something like "v+", "v*", etc.

Simply saying this

> is not the right way to go about this in a world where your debug  
> info can easily
> tell you whether the called function is compiler made or not.

is /ducking the issue/.  GCC inflicted these wrapper functions on our  
Developers, and GCC can be part of the solution.  It's a sad day when  
C macros are /more debuggable/ than the alternative.

Howabout we pick the name of this functionality ("artificial",  
"intrinsic", "voodoo", "bogus", whatever :-) and apply it to the SSE  
headers today; the initial STABS implementation can turn off debug  
info, and DWARF can "Do The Right Thing," eventually.

Would you prefer rewriting the SSE intrinsics as macros?  As  
distasteful as this sounds, it would be /better/ for folks writing  
SSE, and such a "fix" would satisfy our vector coders today.

stuart




More information about the Gcc-patches mailing list