[PATCH] D101510: Do not merge memcpy if the first source is a parameter of coroutine function

Reid Kleckner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 29 11:54:22 PDT 2021


rnk added a comment.

I don't think this is a reasonable fix. We can't just go around dropping special cases for coroutines in every transform. There are other ways to sink loads from byval memory across a suspend point. I know you are offering this as a quick fix and intend to do a proper fix later, but I don't think it's the right tradeoff of expedience to tech debt for the overall LLVM project.

There must be some logic in memoryssa or our alias analysis code that believes that byval arguments are immutable. Is it not just a matter of moving the special case to the analysis? Have the analysis check if the argument's parent function is a coroutine?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D101510



More information about the llvm-commits mailing list