summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCAsmStreamer.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2014-05-15 20:11:28 +0000
committerReid Kleckner <reid@kleckner.net>2014-05-15 20:11:28 +0000
commitf0915aa0e661d931922dcca27e51973ddbfa55a9 (patch)
tree0ace5ecb4edb7e558ec809d2104601b35db46bdd /llvm/lib/MC/MCAsmStreamer.cpp
parent6c21716439042c49c007b6fc72562b5a2ba7319b (diff)
downloadbcm5719-llvm-f0915aa0e661d931922dcca27e51973ddbfa55a9.tar.gz
bcm5719-llvm-f0915aa0e661d931922dcca27e51973ddbfa55a9.zip
Teach the inliner how to preserve musttail invariants
The interesting case is what happens when you inline a musttail call through a musttail call site. In this case, we can't break perfect forwarding or allow any stack growth. Instead of merging control flow from the inlined return instruction after a musttail call into the body of the caller, leave the inlined return instruction in the caller so that the musttail call stays in the tail position. More work is required in http://reviews.llvm.org/D3630 to handle the case where the inlined function has dynamic allocas or byval arguments. Reviewers: chandlerc Differential Revision: http://reviews.llvm.org/D3491 llvm-svn: 208910
Diffstat (limited to 'llvm/lib/MC/MCAsmStreamer.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud