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

Stepan Dyatkovskiy stpworld at narod.ru
Mon Mar 25 09:24:46 PDT 2013


Hello
OK, thank you for remarks, guys. I'll work more on this issue. Hope I'll 
make some new proposals soon.

-Stepan.

Renato Golin wrote:
> On 25 March 2013 08:32, Stepan Dyatkovskiy <stpworld at narod.ru
> <mailto:stpworld at narod.ru>> wrote:
>
>     Hello, please find patch in attachment for 15293 issue.
>     I just added case when whole structure may be stored in GPR regs.
>
>
> Hi Stepan,
>
> The matter is slightly more complex than that. Front-ends lower
> structure byval calls casting to arrays because there was no support for
> structure byval in the ARM back-end. I haven't followed the story for a
> long time, it might be supported by now, but I wouldn't trust on it
> without reassurance.
>
> Implementing small structures into registers looks that simple, but that
> will get a lot more complex when structures are slightly bigger, or more
> complex, or of a variable size, and lowering that in the front end
> (especially when dealing with C++) is not trivial.
>
> I'd say that, if you want to implement structure byval, let's do it
> full, or make your front-end cast to an array (like we did back then).
>
>     I also wonder: what was real purpose of assertion:
>     "assert(size >= excess && "expected larger existing stack
>     allocation");" ?
>
>
> I think that's a safeguard because structure byval is not implemented,
> so that it gets passed in the stack, but I could be wrong.
>
> cheers,
> --renato




More information about the llvm-commits mailing list