llvm-6502/lib/Transforms/Scalar
Chandler Carruth c1c37734ad [SROA] The original refactoring inspired by the addrspace patch in
D1764, which in turn set off the other refactorings to make
'getSliceAlign()' a sensible thing.

There are two possible inputs to the required alignment of a memory
transfer intrinsic: the alignment constraints of the source and the
destination. If we are *only* introducing a (potentially new) offset
onto one side of the transfer, we don't need to consider the alignment
constraints of the other side. Use this to simplify the logic feeding
into alignment computation for unsplit transfers.

Also, hoist the clamp of the magical zero alignment for these intrinsics
to the more customary one alignment early. This lets several other
conditions melt away.

No functionality changed. There is a further improvement this exposes
which *will* change functionality, but that's arriving in a separate
patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202232 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-26 05:33:36 +00:00
..
ADCE.cpp Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
CMakeLists.txt [CodeGenPrepare] Move CodeGenPrepare into lib/CodeGen. 2014-02-22 00:07:45 +00:00
ConstantHoisting.cpp Fix typos 2014-02-25 04:21:15 +00:00
ConstantProp.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
CorrelatedValuePropagation.cpp Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
DCE.cpp Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
DeadStoreElimination.cpp Factor out calls to AA.getDataLayout(). 2014-02-25 15:52:19 +00:00
EarlyCSE.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
FlattenCFGPass.cpp Factor FlattenCFG out from SimplifyCFG 2013-08-06 02:43:45 +00:00
GlobalMerge.cpp Rename many DataLayout variables from TD to DL. 2014-02-21 00:06:31 +00:00
GVN.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
IndVarSimplify.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
JumpThreading.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
LICM.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
LLVMBuild.txt Add proper dependencies to LLVMBuild.txt in llvm/lib. 2013-12-10 05:39:34 +00:00
LoopDeletion.cpp Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
LoopIdiomRecognize.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
LoopInstSimplify.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
LoopRerollPass.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
LoopRotation.cpp Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
LoopStrengthReduce.cpp Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
LoopUnrollPass.cpp Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
LoopUnswitch.cpp Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
LowerAtomic.cpp Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
Makefile
MemCpyOptimizer.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
PartiallyInlineLibCalls.cpp Turn MipsOptimizeMathLibCalls into a target-independent scalar transform 2013-08-23 10:27:02 +00:00
Reassociate.cpp [reassociate] Switch two std::sort calls into std::stable_sort calls as 2014-02-25 21:54:50 +00:00
Reg2Mem.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
SampleProfile.cpp Include <cctype> for isdigit(). 2014-02-22 06:34:10 +00:00
Scalar.cpp [CodeGenPrepare] Move CodeGenPrepare into lib/CodeGen. 2014-02-22 00:07:45 +00:00
Scalarizer.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
ScalarReplAggregates.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
SCCP.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
SimplifyCFGPass.cpp Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
Sink.cpp [PM] Split DominatorTree into a concrete analysis result object which 2014-01-13 13:07:17 +00:00
SROA.cpp [SROA] The original refactoring inspired by the addrspace patch in 2014-02-26 05:33:36 +00:00
StructurizeCFG.cpp cleanup: scc_iterator consumers should use isAtEnd 2014-02-04 19:19:07 +00:00
TailRecursionElimination.cpp Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00