[PATCH] D105370: [GlobalISel] Mark memcpy/memmove/memset as thisreturn

Amara Emerson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 2 14:04:39 PDT 2021


aemerson added a comment.

In D105370#2856111 <https://reviews.llvm.org/D105370#2856111>, @paquette wrote:

> SDAG doesn't seem to mark the call as returned with the same example. Is this a new optimization?
>
> https://clang.godbolt.org/z/K49z51zoo
>
> IIRC `thisreturn` comes up as a result of the `returned` attribute in IR, right? Should the frontend be marking memory functions as `returned` instead? (I guess that we'd need a patch like this either way...?)

Godbolt is using c++ by default so we need to `extern C` the source: https://clang.godbolt.org/z/594M46vYs

But it seems the difference is that SDAG can tail call it while GISel doesn't.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D105370



More information about the llvm-commits mailing list