llvm-6502/lib/Transforms/Scalar
Saleem Abdulrasool 586cf3d88d Transforms: reapply SVN r219899
This restores the commit from SVN r219899 with an additional change to ensure
that the CodeGen is correct for the case that was identified as being incorrect
(originally PR7272).

In the case that during inlining we need to synthesize a value on the stack
(i.e. for passing a value byval), then any function involving that alloca must
be stripped of its tailness as the restriction that it does not access the
parent's stack no longer holds.  Unfortunately, a single alloca can cause a
rippling effect through out the inlining as the value may be aliased or may be
mutated through an escaped external call.  As such, we simply track if an alloca
has been introduced in the frame during inlining, and strip any tail calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220811 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-28 18:27:37 +00:00
..
ADCE.cpp
AlignmentFromAssumptions.cpp
CMakeLists.txt
ConstantHoisting.cpp
ConstantProp.cpp
CorrelatedValuePropagation.cpp
DCE.cpp
DeadStoreElimination.cpp [DSE] Remove no-data-layout-only type-based overlap checking 2014-10-17 11:56:00 +00:00
EarlyCSE.cpp
FlattenCFGPass.cpp
GVN.cpp
IndVarSimplify.cpp
JumpThreading.cpp Revert "Teach the load analysis to allow finding available values which require" (r220277) 2014-10-21 23:49:52 +00:00
LICM.cpp Introduce enum values for previously defined metadata types. (NFC) 2014-10-21 00:13:20 +00:00
LLVMBuild.txt
LoadCombine.cpp
LoopDeletion.cpp
LoopIdiomRecognize.cpp
LoopInstSimplify.cpp
LoopRerollPass.cpp Reformat partially, where I touched for whitespace changes. 2014-10-28 11:54:52 +00:00
LoopRotation.cpp
LoopStrengthReduce.cpp LSR: Minor cleanup after Daniel's patch. 2014-10-25 19:59:30 +00:00
LoopUnrollPass.cpp
LoopUnswitch.cpp
LowerAtomic.cpp
Makefile
MemCpyOptimizer.cpp Allow call-slop optzn for destinations with a suitable dereferenceable attribute 2014-10-16 19:43:08 +00:00
MergedLoadStoreMotion.cpp
PartiallyInlineLibCalls.cpp
Reassociate.cpp
Reg2Mem.cpp
SampleProfile.cpp Make getDISubprogram(const Function *F) available in LLVM 2014-10-23 23:46:28 +00:00
Scalar.cpp
Scalarizer.cpp Fixing the build failure due to compiler warnings and unnecessary disambiguation. 2014-10-15 23:11:35 +00:00
ScalarReplAggregates.cpp
SCCP.cpp
SeparateConstOffsetFromGEP.cpp [SeparateConstOffsetFromGEP] Fixed a bug related to unsigned modulo 2014-10-25 18:34:03 +00:00
SimplifyCFGPass.cpp
Sink.cpp
SROA.cpp [SROA] Change how SROA does vector-based promotion of allocas to handle 2014-10-18 00:44:02 +00:00
StructurizeCFG.cpp
TailRecursionElimination.cpp Transforms: reapply SVN r219899 2014-10-28 18:27:37 +00:00