]> granicus.if.org Git - llvm/commit
Merging r233410:
authorTom Stellard <thomas.stellard@amd.com>
Wed, 29 Apr 2015 00:41:55 +0000 (00:41 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Wed, 29 Apr 2015 00:41:55 +0000 (00:41 +0000)
commit70c7566915e3d7af222183d27ae06e5e150b7cfe
tree31d0afab4da2b896aeaf52901c145c73b75975fe
parent09eef44756b97c4b3d06e1e4de781ad8cdeeae39
Merging r233410:

------------------------------------------------------------------------
r233410 | ahmed.bougacha | 2015-03-27 16:35:49 -0400 (Fri, 27 Mar 2015) | 10 lines

[CodeGen] Don't attempt a tail-call with a non-forwarded explicit sret.

Tailcalls are only OK with forwarded sret pointers. With explicit sret,
one approximation is to check that the pointer isn't an Instruction, as
in that case it might point into some local memory (alloca). That's not
OK with tailcalls.

Explicit sret counterpart to r233409.
Differential Revison: http://reviews.llvm.org/D8510

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_36@236067 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
test/CodeGen/AArch64/tailcall-explicit-sret.ll [new file with mode: 0644]