[PATCH] D79589: [WIP] syndicate code generation between dynamic alloca and static alloca during stack clash probing

Jonas Paulsson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 11 07:29:19 PDT 2020


jonpa added a comment.

In D79589#2029266 <https://reviews.llvm.org/D79589#2029266>, @serge-sans-paille wrote:

> In D79589#2025581 <https://reviews.llvm.org/D79589#2025581>, @jonpa wrote:
>
> > I think this was actually @uweigands suggestion, but for now we are going to first try to make sure that the prologue is as fast as possible and not combine the reg/imm case. But it will be interesting to know if you can get the prologue code equally fast this way...
>
>
> Yeah, that's my goal, having both equally fast.
>
> > I also wonder if the X86 backend is adding the live-in list entries on the new MBBs in inlineStackProbe(). I discovered that I had to call recomputeLiveIns() on the new blocks (SystemZ patch is updated, so you can see what I mean there...)
>
> Indeed, I manually added the LiveIn for the `testMBB`, I'm surprised you need to recompute them instead of just adding the extra registers by hand.


All the callee-saved registers are added as live-in on the entry block, of which most are saved (and killed) immediately on SystemZ. The function argument registers however are also live-in and as well live past the stack-probing loop. I found it most convenient to make those argument registers in particular live-in after the probing by recomputing the liveness...


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79589/new/

https://reviews.llvm.org/D79589





More information about the llvm-commits mailing list