llvm-6502/lib/Transforms/Scalar
Chris Lattner 80e8b506b8 rewrite the memset_pattern pattern generation stuff to accept any 2/4/8/16-byte
constant, including globals.  This makes us generate much more "pretty" pattern
globals as well because it doesn't break it down to an array of bytes all the
time.

This enables us to handle stores of relocatable globals.  This kicks in about
48 times in 254.gap, giving us stuff like this:

@.memset_pattern40 = internal constant [2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*] [%struct.TypHeader* (%struct.TypHeader*, %struct
.TypHeader*)* @IsFalse, %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)* @IsFalse], align 16

...
  call void @memset_pattern16(i8* %scevgep5859, i8* bitcast ([2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*]* @.memset_pattern40 to i8*
), i64 %tmp75) nounwind



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126044 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19 19:56:44 +00:00
..
ADCE.cpp Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +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 CMake: Add missing source file. 2011-01-03 02:13:05 +00:00
CodeGenPrepare.cpp fix rdar://8878965, a regression I introduced with the recent 2011-01-18 20:53:04 +00:00
ConstantProp.cpp Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
CorrelatedValuePropagation.cpp Fix PR8790, another instance where unreachable code can cause instruction simplification to fail, 2010-12-15 00:55:35 +00:00
DCE.cpp Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
DeadStoreElimination.cpp Give GetUnderlyingObject a TargetData, to keep it in sync 2011-01-24 18:53:32 +00:00
EarlyCSE.cpp Duncan deftly points out that readnone functions aren't 2011-01-03 23:38:13 +00:00
GEPSplitter.cpp Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
GVN.cpp Give GetUnderlyingObject a TargetData, to keep it in sync 2011-01-24 18:53:32 +00:00
IndVarSimplify.cpp reduce indentation. Print <nuw> and <nsw> when dumping SCEV AddRec's 2011-01-09 02:16:18 +00:00
JumpThreading.cpp prevent jump threading from merging blocks when their address is 2011-02-18 04:43:06 +00:00
LICM.cpp Generalize LoadAndStorePromoter a bit and switch LICM 2011-01-15 00:12:35 +00:00
LoopDeletion.cpp Remove code for updating dominance frontiers and some outdated references to 2011-01-18 04:11:31 +00:00
LoopIdiomRecognize.cpp rewrite the memset_pattern pattern generation stuff to accept any 2/4/8/16-byte 2011-02-19 19:56:44 +00:00
LoopInstSimplify.cpp LoopInstSimplify preserves ScalarEvolution. 2011-02-11 06:08:25 +00:00
LoopRotation.cpp Do not hoist @llvm.dbg.value. Here, @llvm.dbg.value is "referring" a value that is modified inside loop. 2011-02-14 23:03:23 +00:00
LoopStrengthReduce.cpp If we can't avoid running loop-simplify twice for now, at least avoid running 2011-02-10 23:53:14 +00:00
LoopUnrollPass.cpp Remove dead code, that I apparently wrote a while back. We seem to be doing well enough 2011-01-17 22:39:54 +00:00
LoopUnswitch.cpp Make LoopUnswitch preserve ScalarEvolution by just forgetting everything about 2011-02-11 06:08:28 +00:00
LowerAtomic.cpp Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +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 Spelling fix: consequtive -> consecutive. 2011-02-15 09:23:02 +00:00
Reassociate.cpp fix PR9215, preventing -reassociate from clearing nsw/nuw when 2011-02-17 01:29:24 +00:00
Reg2Mem.cpp Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
Scalar.cpp Remove outdated references to dominance frontiers. 2011-01-18 03:53:26 +00:00
ScalarReplAggregates.cpp convert ConstantVector::get to use ArrayRef. 2011-02-15 00:14:00 +00:00
SCCP.cpp SCCP doesn't actually preserve the CFG. It will delete and insert terminator 2011-01-21 08:38:09 +00:00
SimplifyCFGPass.cpp Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
SimplifyHalfPowrLibCalls.cpp Zap the last two -Wself-assign warnings in llvm. 2011-01-06 01:33:22 +00:00
SimplifyLibCalls.cpp SimplifyLibCalls: Add missing legalize check on various printf to puts and 2011-02-12 18:19:57 +00:00
Sink.cpp Add helper functions for computing the Location of load, store, 2010-11-11 21:50:19 +00:00
TailDuplication.cpp Replace calls to ConstantFoldInstruction with calls to SimplifyInstruction 2010-11-23 20:26:33 +00:00
TailRecursionElimination.cpp Unbreak the MSVC build. 2011-01-29 20:06:16 +00:00