aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/VirtualFileSystem.cpp
diff options
context:
space:
mode:
authorJessica Paquette <jpaquette@apple.com>2019-09-13 20:25:58 +0000
committerJessica Paquette <jpaquette@apple.com>2019-09-13 20:25:58 +0000
commit727328ab63b20ac275626d793e870a6d0a33cda2 (patch)
tree8c7027b9683e4c5e4eeedd4d2fee6c70e9c181f8 /llvm/lib/Support/VirtualFileSystem.cpp
parentd158cf64d64b6b1882fd8f09e5d8619cb8529a5f (diff)
downloadllvm-727328ab63b20ac275626d793e870a6d0a33cda2.zip
llvm-727328ab63b20ac275626d793e870a6d0a33cda2.tar.gz
llvm-727328ab63b20ac275626d793e870a6d0a33cda2.tar.bz2
[AArch64][GlobalISel] Tail call memory intrinsics
Because memory intrinsics are handled differently than other calls, we need to check them for tail call eligiblity in the legalizer. This allows us to still inline them when it's beneficial to do so, but also tail call when possible. This adds simple tail calling support for when the intrinsic is followed by a return. It ports the attribute checks from `TargetLowering::isInTailCallPosition` into a similarly-named function in LegalizerHelper.cpp. The target-specific `isUsedByReturnOnly` hook is not ported here. Update tailcall-mem-intrinsics.ll to show that GlobalISel can now tail call memory intrinsics. Update legalize-memcpy-et-al.mir to have a case where we don't tail call. Differential Revision: https://reviews.llvm.org/D67566 llvm-svn: 371893
Diffstat (limited to 'llvm/lib/Support/VirtualFileSystem.cpp')
0 files changed, 0 insertions, 0 deletions