llvm-6502/lib/Transforms/IPO
Hal Finkel 5a5ebb7f9f When the inliner merges allocas, it must keep the larger alignment
For safety, the inliner cannot decrease the allignment on an alloca when
merging it with another.

I've included two variants of the test case for this: one with DataLayout
available, and one without. When DataLayout is not available, if only one of
the allocas uses the default alignment (getAlignment() == 0), then they cannot
be safely merged.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186425 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-16 17:10:55 +00:00
..
ArgumentPromotion.cpp Use the AttributeSet instead of AttributeWithIndex. 2013-01-27 01:57:28 +00:00
BarrierNoopPass.cpp Introduce a BarrierNoop pass, a hack designed to allow *some* control 2012-10-18 08:05:46 +00:00
CMakeLists.txt Introduce a BarrierNoop pass, a hack designed to allow *some* control 2012-10-18 08:05:46 +00:00
ConstantMerge.cpp Fix const merging when an alias of a const is llvm.used. 2013-05-06 01:48:55 +00:00
DeadArgumentElimination.cpp DeadArgumentElimination: keep return value on functions that have a live argument with the 'returned' attribute (rather than generate invalid IR); however, if both can be eliminated, both will be 2013-06-30 20:26:21 +00:00
ExtractGV.cpp Check isDiscardableIfUnused, rather than hasLocalLinkage, when bumping 2013-03-04 22:40:44 +00:00
FunctionAttrs.cpp Fix annotation of unlink. Should fix builder. 2013-07-06 00:59:28 +00:00
GlobalDCE.cpp GlobalDCE: Fix an oversight in my last commit that could lead to crashes. 2013-04-13 16:11:14 +00:00
GlobalOpt.cpp Fix comment 2013-07-08 23:57:07 +00:00
InlineAlways.cpp Make the inline cost a proper analysis pass. This remains essentially 2013-01-21 11:39:18 +00:00
Inliner.cpp When the inliner merges allocas, it must keep the larger alignment 2013-07-16 17:10:55 +00:00
InlineSimple.cpp Make the inline cost a proper analysis pass. This remains essentially 2013-01-21 11:39:18 +00:00
Internalize.cpp added ability to dynamically change the ExportList of an already 2013-01-25 19:41:03 +00:00
IPConstantPropagation.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
IPO.cpp This patch breaks up Wrap.h so that it does not have to include all of 2013-05-01 20:59:00 +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
LoopExtractor.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Makefile
MergeFunctions.cpp MergeFunc: Make pointer and integer types generate the same hash. 2013-04-19 23:06:44 +00:00
PartialInlining.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
PassManagerBuilder.cpp Add a flag to defer vectorization into a phase after the inliner and its 2013-06-24 07:21:47 +00:00
PruneEH.cpp PruneEH: Only merge attribute sets when used. No functionality change. 2013-06-15 10:55:39 +00:00
StripDeadPrototypes.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
StripSymbols.cpp Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-04 01:31:24 +00:00