[llvm-dev] Nested ADJCALLSTACK UP/DOWN allowed?

Chris Lattner via llvm-dev llvm-dev at lists.llvm.org
Wed Oct 24 11:33:30 PDT 2018


On Oct 21, 2018, at 8:49 AM, Tim Neumann via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> I once again ran into an issue / assertion while playing around with
> the experimental LLVM AVR backend. This time, however I'm not sure if
> the issue is with LLVM in general or with the AVR backend. I believe
> that where the issue is boils down to the following question (which I
> don't know / couldn't find the answer to):
> 
> *Are nested `ADJCALLSTACK` `UP`/`DOWN` instructions allowed / supposed
> to be supported? i.e. is `down/down/up/up` supposed to be a valid
> sequence of instructions or only `down/up/down/up`?*

It has been a very long time since I’ve worked on this area, but back in the day, the answer was “no” this was not supported or intended to be supported.  Call sequences were supposed to be linearized w.r.t. each other, at least before regalloc.

The implementation may have evolved though.

-Chris



More information about the llvm-dev mailing list