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]

Re: PATCH: __nodebug__ attribute for use on SSE intrinsic wrappers



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



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