[cfe-dev] naked attribute
rkotler at mips.com
Fri May 3 10:15:40 PDT 2013
On 05/03/2013 09:43 AM, Hal Finkel wrote:
> ----- Original Message -----
>> From: "reed kotler" <rkotler at mips.com>
>> To: "Rafael Espíndola" <rafael.espindola at gmail.com>
>> Cc: cfe-dev at cs.uiuc.edu
>> Sent: Friday, May 3, 2013 11:32:36 AM
>> Subject: Re: [cfe-dev] naked attribute
>> On 05/03/2013 04:57 AM, Rafael Espíndola wrote:
>>>> Gah! No, I see the warning now. Blasted black-and-white
>>>> Sorry about all the confusion I've caused.
>>> I did the same :-(
>>> Cool, of the support architectures on clang so far we have
>>> x86-64: warn (except for windows)
>>> x86: warn (except for windows)
>>> arm: produce a function ending in unreachable (can someone
>>> if that is the case for thumb too?)
>>> arm64: warn
>> Just when things seemed simple....
> FWIW, I think that we should support naked functions on all targets, regardless of what gcc does. They are incredibly convenient for doing OS/embedded development. Is there a downside?
I agree. At least in the clang/llvm mode where we don't care about
strict compatibility with gcc.
For the serious embedded programmer, this is a life saver and helpful
>> With gcc, the mips target does not support, as I understand it, this
>> because the Mips maintainer does not like this attribute, in general,
>> not specifically for Mips.
>> I would like to see this option available for Mips, even if it meant
>> having a command line option, -allow-naked so that strict gcc
>> compatibility is preserved. There could be benign "naked" attributes
>> some functions in a C programs being compiled for Mips that are now
>> being ignored and suddenly we allow it and that code breaks; maybe
>> in subtle cases because the program is not saving and restoring
>> saved registers for example.
>> I have reopened this discussion on the gcc developers list and there
>> a lot of interest in it. Anyone from llvm/clang can follow it there.
>> There is another orthogonal discussion, with various opposing
>> taking place in Mips/Imagination on this.
>> For the sake of the greater community of Mips target users, which is
>> beyond whatever opinions gcc has or Mips has internally, I think this
>> important option should be allowed in some form. Others in gcc land
>> agree with me on this have good experience using it for the Arm
>> It's not needed all the time but when you need, you can't easily do
>> without it.
>> For one, you can include whatever little actual assembly code you
>> for your app in the C/C++ code. This is particularly important for
>> embedded targets.
>> My immediate interest in this is that I'm generating stubs for
>> things in the Mips llvm/compiler and I wanted exactly the semantics
>> the naked attribute for those stubs; though I could invent my own
>> attribute to use internally in the compiler.
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
More information about the cfe-dev