llvm/lib/Transforms/Scalar
Chandler Carruth 99a54942ae Teach the rewriting of memcpy calls to support subvector copies.
This also cleans up a bit of the memcpy call rewriting by sinking some
irrelevant code further down and making the call-emitting code a bit
more concrete.

Previously, memcpy of a subvector would actually miscompile (!!!) the
copy into a single vector element copy. I have no idea how this ever
worked. =/ This is the memcpy half of PR14478 which we probably weren't
noticing previously because it didn't actually assert.

The rewrite relies on the newly refactored insert- and extractVector
functions to do the heavy lifting, and those are the same as used for
loads and stores which makes the test coverage a bit more meaningful
here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170338 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-17 14:51:24 +00:00
..
ADCE.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
BasicBlockPlacement.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
CMakeLists.txt Introduce a new SROA implementation. 2012-09-14 09:22:59 +00:00
CodeGenPrepare.cpp Revert EVT->MVT changes, r169836-169851, due to buildbot failures. 2012-12-11 11:14:33 +00:00
ConstantProp.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
CorrelatedValuePropagation.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
DCE.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
DeadStoreElimination.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
EarlyCSE.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
GlobalMerge.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
GVN.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
IndVarSimplify.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
JumpThreading.cpp Teach the jump threading optimization to stop scanning the basic block when calculating the cost after passing the threshold. 2012-12-03 17:34:44 +00:00
LICM.cpp Add 'using' declarations to suppress -Woverloaded-virtual warnings. 2012-12-04 05:41:27 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
LoopDeletion.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
LoopIdiomRecognize.cpp - Re-enable population count loop idiom recognization 2012-12-09 03:12:46 +00:00
LoopInstSimplify.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
LoopRotation.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
LoopStrengthReduce.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
LoopUnrollPass.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
LoopUnswitch.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +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 Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
ObjCARC.cpp s/AttrListPtr/AttributeSet/g to better label what this class is going to be in the near future. 2012-12-07 23:16:57 +00:00
Reassociate.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
Reg2Mem.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
Scalar.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
ScalarReplAggregates.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
SCCP.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
SimplifyCFGPass.cpp Optimize tree walking in markAliveBlocks. 2012-12-17 14:28:00 +00:00
SimplifyLibCalls.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
Sink.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
SROA.cpp Teach the rewriting of memcpy calls to support subvector copies. 2012-12-17 14:51:24 +00:00
TailRecursionElimination.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00