Fix PR15293: ARM codegen ice - expected larger existing stack allocation

Manman Ren mren at apple.com
Mon Apr 1 10:28:45 PDT 2013


On Mar 30, 2013, at 12:36 AM, Stepan Dyatkovskiy wrote:

> Hi,
> 
>>> [code]
>>> target triple = "arm--linux-gnueabihf"
>>> define void @t(i32 %a, %struct.s* byval %s, ...) nounwind {
>>> define void @caller() {
>>>  call void (i32, %struct.s*, ...)* @t(i32 0, %struct.s* @v, i32 777);
>>>  ret void
>>> }
>>> [/code]
> Full example is attached as test5.ll.
> 
> As prototype for case when two byval structs are used maybe something like this:
> %struct.s = type { i32 } ; May be some packed structure
> define void @t(i32 %a, %struct.s* byval %s1, %struct.s* byval %s2, ...)
> 
> I wrote very-very draft concept patch. I still have some issues in LowerFormalArguments part. The draft is attached also. I'll also try to reduce number of new methods in CCState.

Thanks for working on this.
Are you replacing FirstByValReg with ByValRegs? It seems that both co-exist in your patch.

Manman

> 
> -Stepan.
> <test5.ll><pr15293-very-draft.patch>




More information about the llvm-commits mailing list