[PATCH] D104007: [BasicAA] Properly mark that coroutine suspension may modify parameters

Xun Li via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 10 21:29:07 PDT 2021


lxfind added a comment.

In D104007#2812383 <https://reviews.llvm.org/D104007#2812383>, @efriedma wrote:

> This doesn't seem right.  A byval argument is essentially a local variable.  We should treat it the same way as we would an alloca.  If it's live across the first suspend point, it should become part of the coroutine frame.

It will become part of the coroutine frame, by copying it through memcpy. That's actually what's the first memcpy for in the test case.
But the parameter pointer itself will still die during a coroutine suspension. Because of that I would say the parameter pointer is different from an alloca pointer, because during a coroutine suspension, allocas won't change.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D104007



More information about the llvm-commits mailing list