summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MacroFusion.cpp
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2018-08-14 17:35:35 +0000
committerReid Kleckner <rnk@google.com>2018-08-14 17:35:35 +0000
commita7a21e64cbecca29e89747bd98b85792a7539d25 (patch)
tree2c1b8cd8f3f65369c58b4e3a19e7699c4fac1371 /llvm/lib/CodeGen/MacroFusion.cpp
parent599b2d122fd17b8468454dfe052ceca4fcedba63 (diff)
downloadbcm5719-llvm-a7a21e64cbecca29e89747bd98b85792a7539d25.tar.gz
bcm5719-llvm-a7a21e64cbecca29e89747bd98b85792a7539d25.zip
Merging r339636:
------------------------------------------------------------------------ r339636 | rnk | 2018-08-13 18:24:35 -0700 (Mon, 13 Aug 2018) | 17 lines [BasicAA] Don't assume tail calls with byval don't alias allocas Summary: Calls marked 'tail' cannot read or write allocas from the current frame because the current frame might be destroyed by the time they run. However, a tail call may use an alloca with byval. Calling with byval copies the contents of the alloca into argument registers or stack slots, so there is no lifetime issue. Tail calls never modify allocas, so we can return just ModRefInfo::Ref. Fixes PR38466, a longstanding bug. Reviewers: hfinkel, nlewycky, gbiv, george.burgess.iv Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D50679 ------------------------------------------------------------------------ llvm-svn: 339698
Diffstat (limited to 'llvm/lib/CodeGen/MacroFusion.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud