[llvm-commits] [llvm-gcc-4.2] r108206 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Eric Christopher
echristo at apple.com
Mon Jul 12 17:41:42 PDT 2010
On Jul 12, 2010, at 5:21 PM, Jim Grosbach wrote:
>
> On Jul 12, 2010, at 5:17 PM, Eric Christopher wrote:
>
>>
>> On Jul 12, 2010, at 5:02 PM, Jim Grosbach wrote:
>>
>>> The diagnostic needs to be a bit broader than this, actually. It's not just the variable sized allocation that can't be dynamically aligned, but any declaration in the same function. That is, a function which has variable sized stack objects cannot also contain stack objects which require dynamic stack realignment.
>>
>> I'm not entirely convinced. The original aim would have been to put the code in c-common.c so that when we handle user requested alignment we make the check on the stack size, but without including a lot of llvm bits into c-common.c it's not possible (unless we make the assumption that the gcc/config/arm backend has the right stack alignment :)
>>
>> That said I should definitely add a quick check for DECL_USER_ALIGN to make sure that the user set it and not something else somewhere.
>>
>> A quick change to say "requested alignment..." would probably help as well.
>>
>> Unless I'm missing what you're trying to say (which is altogether possible).
>>
>
> A function can either:
> a) contain a variable sized stack-based object, or
> b) require dynamic stack realignment.
>
> If it tries to do both, an error diagnostic should be generated.
>
> This is target, specific, also. It's true, as far as I know, for all targets currently, but that's not guaranteed to always be the case.
*listens to logic* *pounds head on desk*
I see what you mean now.
Ugh.
-eric
More information about the llvm-commits
mailing list