llvm-6502/lib/Transforms/Scalar
Chandler Carruth b67c9a5b02 Fix a somewhat surprising miscompile where code relying on an ABI
alignment could lose it due to the alloca type moving down to a much
smaller alignment guarantee.

Now SROA will actively compute a proper alignment, factoring the target
data, any explicit alignment, and the offset within the struct. This
will in some cases lower the alignment requirements, but when we lower
them below those of the type, we drop the alignment entirely to give
freedom to the code generator to align it however is convenient.

Thanks to Duncan for the lovely test case that pinned this down. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164891 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29 10:41:21 +00:00
..
ADCE.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
BasicBlockPlacement.cpp Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
CMakeLists.txt Introduce a new SROA implementation. 2012-09-14 09:22:59 +00:00
CodeGenPrepare.cpp Do not delete BBs if their addresses are taken. rdar://12396696 2012-09-28 23:58:57 +00:00
ConstantProp.cpp Last bit of TargetLibraryInfo propagation. Also fixed a case for TargetData 2011-12-01 21:29:16 +00:00
CorrelatedValuePropagation.cpp CorrelatedPropagation: BasicBlock::removePredecessor can simplify PHI nodes. If the it's the condition of a SwitchInst, reload it. 2012-09-28 10:42:50 +00:00
DCE.cpp Make MemoryBuiltins aware of TargetLibraryInfo. 2012-08-29 15:32:21 +00:00
DeadStoreElimination.cpp Don't forget that strcpy and friends return a pointer to the destination, so 2012-09-25 01:55:59 +00:00
EarlyCSE.cpp Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments. 2012-09-15 17:09:36 +00:00
GlobalMerge.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
GVN.cpp Release build: guard dump functions with 2012-09-12 05:06:18 +00:00
IndVarSimplify.cpp Make MemoryBuiltins aware of TargetLibraryInfo. 2012-08-29 15:32:21 +00:00
JumpThreading.cpp Make MemoryBuiltins aware of TargetLibraryInfo. 2012-08-29 15:32:21 +00:00
LICM.cpp LICM may hoist an instruction with undefined behavior above a trap. 2012-09-04 10:25:04 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
LoopDeletion.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
LoopIdiomRecognize.cpp LoopIdiom: Give up when the loop is not in canonical form. 2012-09-21 17:27:23 +00:00
LoopInstSimplify.cpp Make MemoryBuiltins aware of TargetLibraryInfo. 2012-08-29 15:32:21 +00:00
LoopRotation.cpp LoopRotation: Make the brute force DomTree update more brute force. 2012-09-02 11:57:22 +00:00
LoopStrengthReduce.cpp LSR critical edge splitting fix for PR13756. 2012-09-18 17:51:33 +00:00
LoopUnrollPass.cpp Remove the `hasFnAttr' method from Function. 2012-09-26 21:48:26 +00:00
LoopUnswitch.cpp Remove the `hasFnAttr' method from Function. 2012-09-26 21:48:26 +00:00
LowerAtomic.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
Makefile make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00
MemCpyOptimizer.cpp MemCpyOpt: When forming a memset from stores also take GEP constexprs into account. 2012-09-13 16:29:49 +00:00
ObjCARC.cpp Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-18 02:01:41 +00:00
Reassociate.cpp Stop reassociate from looking through expressions of arbitrary complexity. This 2012-07-26 09:26:40 +00:00
Reg2Mem.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
Scalar.cpp Introduce a new SROA implementation. 2012-09-14 09:22:59 +00:00
ScalarReplAggregates.cpp Port the global copy optimization from the SROA pass to InstCombine. 2012-08-21 08:39:44 +00:00
SCCP.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
SimplifyCFGPass.cpp Update function names to conform to guidelines. 2012-09-06 00:59:08 +00:00
SimplifyLibCalls.cpp SimplifyLibCalls: Give all safely-shrinkable libcalls the same treatment. 2012-08-22 19:39:15 +00:00
Sink.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
SROA.cpp Fix a somewhat surprising miscompile where code relying on an ABI 2012-09-29 10:41:21 +00:00
TailRecursionElimination.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00