llvm-6502/lib/Transforms
Reid Kleckner 998c1e0c20 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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208910 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-15 20:11:28 +00:00
..
Hello [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:55:47 +00:00
InstCombine Reverting r208848, reason: build failure: sanitizer-x86_64-linux-bootstrap/builds/3399 2014-05-15 08:22:55 +00:00
Instrumentation [asan] Fix compiler warnings. 2014-05-14 10:56:19 +00:00
IPO GlobalValue: Assert symbols with local linkage have default visibility 2014-05-07 23:00:22 +00:00
ObjCARC [C++] Use 'nullptr'. 2014-04-28 04:05:08 +00:00
Scalar Fix typos 2014-05-15 01:52:21 +00:00
Utils Teach the inliner how to preserve musttail invariants 2014-05-15 20:11:28 +00:00
Vectorize SLPVectorizer: Instead of just performing CSE on dead blocks ignore them completely. 2014-05-11 10:28:58 +00:00
CMakeLists.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
LLVMBuild.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
Makefile Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00