[llvm-commits] [llvm] r72894 - in /llvm/trunk: include/llvm/Attributes.h include/llvm/Target/TargetOptions.h lib/AsmParser/LLLexer.cpp lib/AsmParser/LLParser.cpp lib/AsmParser/LLToken.h lib/Target/PowerPC/PPCRegisterInfo.cpp lib/Target/TargetMachine.cpp lib/Target/X86/X86RegisterInfo.cpp lib/VMCore/Attributes.cpp test/CodeGen/X86/red-zone2.ll tools/llc/llc.cpp

Nick Lewycky nicholas at mxc.ca
Tue Jun 9 22:24:53 PDT 2009


Okay, that all sounds reasonable. It'd be nice if llvm-gcc didn't add 
then 'noredzone' attribute when I didn't explicitly ask for noredzone. 
That would reduce bitcode size and memory usage by a tiny amount.

You *really should* commit a change to LangRef in the same commit as a 
change to the language, even if that means you have to do more work 
overall to update the text for each stage.

Nick

Devang Patel wrote:
> 
> On Jun 7, 2009, at 11:05 AM, Nick Lewycky wrote:
> 
>> This attribute needs an entry in LangRef. Please add one.
> 
> Yes. I am going to add one or two additional attributes. I'll document 
> all of them together.
>>
>>
>> Also, I'm now getting "noredzone" notes on all my functions all the 
>> time when building x86-32 Linux. I suppose that's technically true but 
>> do we really need this everywhere?
> 
> llvm-gcc sets this when -mno-red-zone is set by GCC's target machinery.
> 
>>
>>
>> Why disable the redzone anyways? Isn't it an ABI feature?
> 
> GCC man page says,
> 
>        -mno-red-zone
>            Do not use a so called red zone for x86-64 code.  The red 
> zone is
>            mandated by the x86-64 ABI, it is a 128-byte area beyond the
>            location of the stack pointer that will not be modified by 
> signal
>            or interrupt handlers and therefore can be used for temporary 
> data
>            without adjusting the stack pointer.  The flag -mno-red-zone
>            disables this red zone.
> 
> 
>>
>>
>> Nick
> -
> Devang
> 




More information about the llvm-commits mailing list