hanchenye-llvm-project/llvm/test/Transforms
Nadav Rotem bdc9ff4498 LoopVectorize: Implement partial loop unrolling when vectorization is not profitable.
This patch enables unrolling of loops when vectorization is legal but not profitable.
We add a new class InnerLoopUnroller, that extends InnerLoopVectorizer and replaces some of the vector-specific logic with scalars.

This patch does not introduce any runtime regressions and improves the following workloads:

SingleSource/Benchmarks/Shootout/matrix -22.64%
SingleSource/Benchmarks/Shootout-C++/matrix -13.06%
External/SPEC/CINT2006/464_h264ref/464_h264ref  -3.99%
SingleSource/Benchmarks/Adobe-C++/simple_types_constant_folding -1.95%

llvm-svn: 189281
2013-08-26 22:33:26 +00:00
..
ADCE [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
ArgumentPromotion [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
BBVectorize TBAA: remove !tbaa from testing cases when they are not needed. 2013-08-21 22:20:53 +00:00
BlockPlacement [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
BranchFolding
CodeExtractor [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
CodeGenPrepare [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
ConstProp Teach ConstantFolding about pointer address spaces 2013-08-20 21:20:04 +00:00
ConstantMerge [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
CorrelatedValuePropagation [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
DeadArgElim [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
DeadStoreElimination [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
DebugIR [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
EarlyCSE [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
FunctionAttrs [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
GCOVProfiling [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
GVN [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
GlobalDCE [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
GlobalOpt [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
IPConstantProp [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
IndVarSimplify [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
Inline [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
InstCombine Teach InstCombine about address spaces 2013-08-21 19:53:10 +00:00
InstSimplify [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
Internalize [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
JumpThreading [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
LCSSA [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
LICM [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
LoopDeletion [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
LoopIdiom [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
LoopRotate [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
LoopSimplify [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
LoopStrengthReduce [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
LoopUnroll [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
LoopUnswitch [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
LoopVectorize LoopVectorize: Implement partial loop unrolling when vectorization is not profitable. 2013-08-26 22:33:26 +00:00
LowerAtomic [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
LowerExpectIntrinsic [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
LowerInvoke [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
LowerSwitch [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
Mem2Reg [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
MemCpyOpt [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
MergeFunc [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
MetaRenamer [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
ObjCARC [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
PhaseOrdering [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
PruneEH [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
Reassociate [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
Reg2Mem [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
SCCP [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
SLPVectorizer/X86 Forgot to add slp threshold to test 2013-08-26 18:08:35 +00:00
SROA [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
ScalarRepl [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
SimplifyCFG [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
Sink [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
StripSymbols Filecheckize some tests. 2013-08-23 00:23:28 +00:00
StructurizeCFG [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
TailCallElim [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
TailDup [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00