[PATCH] D96869: [AMDGPU] Fix saving fp and bp

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 3 17:42:04 PST 2021


arsenm added a comment.

In D96869#2601792 <https://reviews.llvm.org/D96869#2601792>, @critson wrote:

> In D96869#2600444 <https://reviews.llvm.org/D96869#2600444>, @sebastian-ne wrote:
>
>> In D96869#2600088 <https://reviews.llvm.org/D96869#2600088>, @arsenm wrote:
>>
>>>> 1. `exec != 0` in the function prolog and epilog?
>>>
>>> Yes (at least for the prolog). Allowing functions to kill exec and return is an open question. We have to assume a call to an arbitrary function will have any of the problematic cases that can't run with exec=0.
>>
>> Thanks. I’ll leave it as it is then, because we are not sure about the epilog.
>
> If the only way lanes can be killed is llvm.amdgcn.kill (or demote) then epilog will never be reached with EXEC=0 as kill now immediately terminates a shader if all lanes are dead (or helpers).  Are there other mechanisms that reduce EXEC? Inline ASM?

Inline asm theoretically could, but we don't even attempt to handle exec modifications on it. We could also just define the ABI to make that an invalid use


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D96869



More information about the llvm-commits mailing list