1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-28 14:32:51 +01:00
llvm-mirror/lib/Transforms/Scalar
Chris Lattner 10e3ff7e5f change iterator invalidation avoidance to just move the iterator backward
when something changes, instead of moving forward.  This allows us to 
simplify memset lowering, inserting the memset at the end of the range of 
stuff we're touching instead of at the start.

This, in turn, allows us to make use of the addressing instructions already
used in the function instead of inserting our own.  For example, we now
codegen:

	%tmp41 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 0		; <i8*> [#uses=2]
	call void @llvm.memset.i64( i8* %tmp41, i8 -1, i64 8, i32 1 )

instead of:

	%tmp20 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 7		; <i8*> [#uses=1]
	%ptroffset = getelementptr i8* %tmp20, i64 -7		; <i8*> [#uses=1]
	call void @llvm.memset.i64( i8* %ptroffset, i8 -1, i64 8, i32 1 )

llvm-svn: 48940
2008-03-29 05:15:47 +00:00
..
ADCE.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
BasicBlockPlacement.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
CodeGenPrepare.cpp Handle getresult instructions in different basic blocks 2008-03-21 21:01:32 +00:00
CondPropagate.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
ConstantProp.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
DCE.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
DeadStoreElimination.cpp Be more precise when eliminating pointers bue to memcpy's. This allows more 2008-02-04 04:53:00 +00:00
GCSE.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
GVN.cpp change iterator invalidation avoidance to just move the iterator backward 2008-03-29 05:15:47 +00:00
GVNPRE.cpp Make Transforms to be 4.3 warnings-clean 2008-02-20 11:26:25 +00:00
IndVarSimplify.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
InstructionCombining.cpp Handle a special case xor undef, undef -> 0. Technically this should be transformed to undef. But this is such a common idiom (misuse) we are going to handle it. 2008-03-25 20:07:13 +00:00
LICM.cpp Use empty() instead of comparing size() with zero. 2008-01-29 13:02:09 +00:00
LoopIndexSplit.cpp PHI->removeIncomingValue may remove PHInode. 2008-03-27 17:32:46 +00:00
LoopRotation.cpp Fix PR2028 2008-02-15 01:24:49 +00:00
LoopStrengthReduce.cpp Remove dead options. 2008-03-19 22:02:26 +00:00
LoopUnroll.cpp Add comment. 2008-03-19 23:05:52 +00:00
LoopUnswitch.cpp Update the block cloner which fixes bugpoint on code using unwind_to (phew!) 2008-03-09 05:24:34 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
PredicateSimplifier.cpp De-tabify. 2008-02-26 10:53:30 +00:00
Reassociate.cpp Don't include <map> in Pass.h, which doesn't need it. This requires 2008-03-21 23:51:57 +00:00
Reg2Mem.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
Scalar.cpp C and Objective Caml bindings for mem2reg and reg2mem. 2008-03-20 17:16:03 +00:00
ScalarReplAggregates.cpp fix a bug Anders ran into where scalarrepl would crash when promoting 2008-02-29 07:12:06 +00:00
SCCP.cpp Don't include <map> in Pass.h, which doesn't need it. This requires 2008-03-21 23:51:57 +00:00
SimplifyCFG.cpp simplify code, no functionality change. 2008-02-14 07:39:01 +00:00
TailDuplication.cpp Don't include <map> in Pass.h, which doesn't need it. This requires 2008-03-21 23:51:57 +00:00
TailRecursionElimination.cpp Become multiple return value aware. 2008-03-11 17:33:32 +00:00