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