1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/lib/Transforms/Scalar
Haicheng Wu 5302d65f58 [LIR] Add support for structs and hand unrolled loops
This is a recommit of r258620 which causes PR26293.

The original message:

Now LIR can turn following codes into memset:

typedef struct foo {
  int a;
  int b;
} foo_t;

void bar(foo_t *f, unsigned n) {
  for (unsigned i = 0; i < n; ++i) {
    f[i].a = 0;
    f[i].b = 0;
  }
}

void test(foo_t *f, unsigned n) {
  for (unsigned i = 0; i < n; i += 2) {
    f[i] = 0;
    f[i+1] = 0;
  }
}

llvm-svn: 258777
2016-01-26 02:27:47 +00:00
..
ADCE.cpp
AlignmentFromAssumptions.cpp [SCEV] Add and use SCEVConstant::getAPInt; NFCI 2015-12-17 20:28:46 +00:00
BDCE.cpp
CMakeLists.txt
ConstantHoisting.cpp
ConstantProp.cpp
CorrelatedValuePropagation.cpp [AttributeSet] Overload AttributeSet::addAttribute to reduce compile 2015-12-02 06:58:49 +00:00
DCE.cpp
DeadStoreElimination.cpp Revert r255247, r255265, and r255286 due to serious compile-time regressions. 2015-12-11 18:39:41 +00:00
EarlyCSE.cpp [EarlyCSE] DSE of atomic unordered stores 2015-12-17 18:50:50 +00:00
FlattenCFGPass.cpp
Float2Int.cpp [Float2Int] Don't operate on vector instructions 2015-12-09 21:08:18 +00:00
GVN.cpp [GVN] Rearrange code to make local vs non-local cases more obvious [NFCI] 2016-01-25 23:37:53 +00:00
InductiveRangeCheckElimination.cpp
IndVarSimplify.cpp [IndVars] Fix PR25576 2016-01-17 18:12:52 +00:00
JumpThreading.cpp [opaque pointer types] [NFC] FindAvailableLoadedValue: take LoadInst instead of just the pointer. 2016-01-22 01:51:51 +00:00
LICM.cpp move return variable declarations down to where they are actually used; NFCI 2016-01-13 23:01:57 +00:00
LLVMBuild.txt
LoadCombine.cpp
LoopDeletion.cpp LoopInfo: Simplify ownership of Loop objects 2016-01-08 19:08:53 +00:00
LoopDistribute.cpp LPM: Stop threading Pass * through all of the loop utility APIs. NFC 2015-12-15 19:40:57 +00:00
LoopIdiomRecognize.cpp [LIR] Add support for structs and hand unrolled loops 2016-01-26 02:27:47 +00:00
LoopInstSimplify.cpp
LoopInterchange.cpp LPM: Stop threading Pass * through all of the loop utility APIs. NFC 2015-12-15 19:40:57 +00:00
LoopLoadElimination.cpp [SCEV] Add and use SCEVConstant::getAPInt; NFCI 2015-12-17 20:28:46 +00:00
LoopRerollPass.cpp Enable loopreroll to rerool loop with pointer induction variable. 2016-01-25 19:43:45 +00:00
LoopRotation.cpp LoopRotate: Convert the methods of LoopRotate to utility functions. NFC 2015-12-14 23:22:48 +00:00
LoopStrengthReduce.cpp [SCEV] Add and use SCEVConstant::getAPInt; NFCI 2015-12-17 20:28:46 +00:00
LoopUnrollPass.cpp LoopUnroll: Move the actual unrolling logic to a standalone function. NFC 2016-01-12 05:21:37 +00:00
LoopUnswitch.cpp
LowerAtomic.cpp
LowerExpectIntrinsic.cpp
Makefile
MemCpyOptimizer.cpp Fix PR26051: Memcpy optimization should introduce a call to memcpy before the store destination position 2016-01-06 23:50:22 +00:00
MergedLoadStoreMotion.cpp
NaryReassociate.cpp [opaque pointer types] [NFC] GEP: replace get(Pointer)ElementType uses with get{Source,Result}ElementType. 2016-01-19 17:28:00 +00:00
PartiallyInlineLibCalls.cpp
PlaceSafepoints.cpp [PlaceSafepoints] Introduce a -spp-no-statepoints flag 2016-01-22 21:02:55 +00:00
Reassociate.cpp Instructions to be redone only if from the same BB 2016-01-07 23:22:55 +00:00
Reg2Mem.cpp
RewriteStatepointsForGC.cpp [RS4GC] Use OB_deopt instead of "deopt" 2016-01-22 19:20:40 +00:00
Scalar.cpp
Scalarizer.cpp
ScalarReplAggregates.cpp [opaque pointer types] [NFC] DataLayout::getIndexedOffset: take source element type instead of pointer type and rename to getIndexedOffsetInType. 2016-01-22 03:08:27 +00:00
SCCP.cpp Fix build bot breakage 2016-01-24 16:46:53 +00:00
SeparateConstOffsetFromGEP.cpp [opaque pointer types] [NFC] GEP: replace get(Pointer)ElementType uses with get{Source,Result}ElementType. 2016-01-19 17:28:00 +00:00
SimplifyCFGPass.cpp PM: Fix an inverted condition in simplifyFunctionCFG 2016-01-15 21:21:39 +00:00
Sink.cpp [IR] Reformulate LLVM's EH funclet IR 2015-12-12 05:38:55 +00:00
SpeculativeExecution.cpp
SROA.cpp Fix buildbot failure introduced by 258010. Remove local variables became unused. 2016-01-17 12:59:40 +00:00
StraightLineStrengthReduce.cpp [opaque pointer types] [NFC] GEP: replace get(Pointer)ElementType uses with get{Source,Result}ElementType. 2016-01-19 17:28:00 +00:00
StructurizeCFG.cpp
TailRecursionElimination.cpp Change isSafeToLoadUnconditionally arguments order. Separated from http://reviews.llvm.org/D10920. 2016-01-15 15:27:46 +00:00