Owen Anderson 
							
						 
					 
					
						
						
							
						
						b33f7cc7e6 
					 
					
						
						
							
							Enable local PRE by default.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53616  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-15 16:28:23 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						961edc8be6 
					 
					
						
						
							
							Have GVN do a pre-pass over the CFG that folds away unconditional branches where possible.  This allows local PRE to be more aggressive.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53615  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-15 16:28:06 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						c45996bf74 
					 
					
						
						
							
							Don't call lookupNumber more than we have to.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53470  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-11 20:05:13 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						0ae33ef202 
					 
					
						
						
							
							Use information already present in the ValueTable to fast-fail when we know there won't be a value number match.  This speeds up GVN on a case where there are very few redundancies by ~25%.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53108  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-03 17:44:33 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						cb29a4f66a 
					 
					
						
						
							
							Avoid a redundant call.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53040  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-02 18:15:31 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						f2aa160b35 
					 
					
						
						
							
							A better fix for PR2503 that doesn't pessimize GVN in the presence of unreachable blocks.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53032  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-02 17:20:16 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						2e9f0b1a32 
					 
					
						
						
							
							Disable PRE. It's breaking bootstrapping.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52643  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-23 21:22:35 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						b70a571c99 
					 
					
						
						
							
							Tighten the conditions under which we do PRE, remove some unneeded code, and correct our preserved analyses list, since we  
						
						... 
						
						
						
						do now change the CFG by splitting critical edges during PRE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52631  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-23 17:49:45 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						4ce138cc55 
					 
					
						
						
							
							Enable PRE.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52574  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-21 07:26:53 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						f2204d7bb1 
					 
					
						
						
							
							Really disable PRE.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52531  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-20 08:59:13 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						6fafe847b2 
					 
					
						
						
							
							Change around the data structures used to store availability sets, resulting in a GVN+PRE that is faster that GVN alone was before.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52521  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-20 01:15:47 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						88d11c03cd 
					 
					
						
						
							
							Disable PRE for now. It seems to be breaking llvm-gcc bootstrapping.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52518  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-20 01:01:07 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						aa0b63422a 
					 
					
						
						
							
							Add a hidden -disable-pre flag for testing purposes.  This should be removed  
						
						... 
						
						
						
						once benchmarking is completed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52506  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-19 19:57:25 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						5c274eebc6 
					 
					
						
						
							
							PRE requires that critical edges be split.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52505  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-19 19:54:19 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						9da52dce89 
					 
					
						
						
							
							Be sure to remove values from the value numbering table after we delete them.  
						
						... 
						
						
						
						This fixes a failure on povray.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52499  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-19 17:53:26 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						3cd8eb314a 
					 
					
						
						
							
							Revert support for insertvalue and extractvalue instructions for the moment.  
						
						... 
						
						
						
						GVN expects that all inputs which to an instruction fall somewhere in the value
hierarchy, which isn't true for these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52496  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-19 17:25:39 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						d34ac6e782 
					 
					
						
						
							
							Add support for extractvalue and insertvalue instructions in GVN.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52472  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-18 21:59:00 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						b230372437 
					 
					
						
						
							
							Add local PRE to GVN.  This only operates in cases where it would not increase code size, namely when the instantiated expression  
						
						... 
						
						
						
						would only need to be created in one predecessor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52471  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-18 21:41:49 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						2960ed4b85 
					 
					
						
						
							
							We don't want to find dependencies within the same block in this case.  It leads to incorrect results because  
						
						... 
						
						
						
						we're detecting something at or after the call we're querying on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52433  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-17 22:27:06 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						af4240ac2d 
					 
					
						
						
							
							Switch GVN to use ScopedHashTable.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52242  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-12 19:25:32 +00:00 
						 
				 
			
				
					
						
							
							
								Matthijs Kooijman 
							
						 
					 
					
						
						
							
						
						845f524c25 
					 
					
						
						
							
							Update comments and documentation to reflect that GCSE and ValueNumbering are  
						
						... 
						
						
						
						deprecated by the GVN and GVNPRE passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51983  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-05 07:55:49 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						10a05bfff0 
					 
					
						
						
							
							Remove unneeded #include.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51955  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-04 18:28:10 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						1d6e4091f6 
					 
					
						
						
							
							Teach GVN to not assert on vector comparisons  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51230  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-18 19:49:05 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						c4f406e736 
					 
					
						
						
							
							Fix Analysis/BasicAA/pure-const-dce.ll.  This turned out to be a correctness  
						
						... 
						
						
						
						bug as well as a missed optimization.  We weren't properly checking for local
dependencies before moving on to non-local ones when doing non-local read-only 
call CSE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51082  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-13 23:18:30 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						16db1f70b7 
					 
					
						
						
							
							Make the non-local CSE safety checks slightly more thorough.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51035  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-13 13:41:23 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						3b3f58cb77 
					 
					
						
						
							
							Add support for non-local CSE of read-only calls.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51024  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-13 08:17:22 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						a472c4a280 
					 
					
						
						
							
							Go back to passing the analyses around as parameters.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50995  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-12 20:15:55 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						7b45e33107 
					 
					
						
						
							
							Move the various analyses used by GVN into static variables so we don't have to keep passing them around or refetching them.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50963  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-12 08:15:27 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						4bda6e47e9 
					 
					
						
						
							
							Remove unneeded #include's.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50035  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-21 07:47:38 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						241f65321e 
					 
					
						
						
							
							Make GVN able to remove unnecessary calls to read-only functions again.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49842  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-17 05:36:50 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						8f46c78fcc 
					 
					
						
						
							
							Fix PR2213 by simultaneously making GVN more aggressive with the return values  
						
						... 
						
						
						
						of calls and less aggressive with non-readnone calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49516  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-11 05:11:49 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						a723d1e48f 
					 
					
						
						
							
							Factor a bunch of functionality related to memcpy and memset transforms out of  
						
						... 
						
						
						
						GVN and into its own pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49419  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-09 08:23:16 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						82a66291b0 
					 
					
						
						
							
							Remove accidentally duplicated code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49418  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-09 07:55:01 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						412821284f 
					 
					
						
						
							
							Add operator= implementations to SparseBitVector, allowing it to be used in GVN.  This results  
						
						... 
						
						
						
						in both time and memory savings for GVN.  For example, one testcase went from 10.5s to 6s with
this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49345  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-07 17:38:23 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						e5ffa900f8 
					 
					
						
						
							
							Make GVN more memory efficient, particularly on code that contains a large number of  
						
						... 
						
						
						
						allocations, which GVN can't optimize anyways.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49329  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-07 09:59:07 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Greif 
							
						 
					 
					
						
						
							
						
						051a950000 
					 
					
						
						
							
							API changes for class Use size reduction, wave 1.  
						
						... 
						
						
						
						Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49277  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-06 20:25:17 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						97ae12a988 
					 
					
						
						
							
							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 )
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48940  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-29 05:15:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d22fe2b51f 
					 
					
						
						
							
							make the common case of a single store (which clearly shouldn't be turned  
						
						... 
						
						
						
						into a memset!) faster by avoiding an allocation of an std::list node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48939  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-29 04:52:12 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9f8a6a7498 
					 
					
						
						
							
							give form-memset a significantly more sane heuristic, enable it by default.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48937  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-29 04:36:18 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7f0965e7da 
					 
					
						
						
							
							make memset inference significantly more powerful: it can now handle  
						
						... 
						
						
						
						memsets that initialize "structs of arrays" and other store sequences
that are not sequential.  This is still only enabled if you pass 
-form-memset-from-stores.  The flag is not heavily tested and I haven't
analyzed the perf regressions when -form-memset-from-stores is passed
either, but this causes no make check regressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48909  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-28 06:45:13 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						88ffdddcc4 
					 
					
						
						
							
							Temporarily disabling memset forming optimization. Add an option.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48720  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-24 05:28:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b017c9e89c 
					 
					
						
						
							
							implement an initial hack at a straight-line store -> memset optimization.  
						
						... 
						
						
						
						This fires dozens of times across spec and multisource, but I don't know
if it actually speeds stuff up.  Hopefully the testers will show something
nice :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48680  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-22 05:37:16 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d27290d733 
					 
					
						
						
							
							implement the logic for memset insertion and store deletion.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48679  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-22 04:13:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						641dae19eb 
					 
					
						
						
							
							This is a partially implemented and currently disabled start of a store  
						
						... 
						
						
						
						merging optimization.  Nothing to see here, hopefully more later :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48670  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-22 00:31:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8e1e95cb04 
					 
					
						
						
							
							the size of a smallvector shouldn't be part of the interface to these methods.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48662  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-21 22:01:16 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2e60701b9d 
					 
					
						
						
							
							make gvn marginally faster by reallocating the lastSeenLoad map for  
						
						... 
						
						
						
						each basic block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48660  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-21 21:33:23 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						88365bb404 
					 
					
						
						
							
							Minor cleanups and shrinkification.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48658  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-21 21:14:38 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						8a97fddbc2 
					 
					
						
						
							
							Fix a bug in GVN that Duncan noticed, where we potentially need to insert a  
						
						... 
						
						
						
						pointer bitcast when performing return slot optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48343  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-13 22:07:10 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						6bb0bd52ec 
					 
					
						
						
							
							Improve the return slot optimization to be both more aggressive (not limited to sret parameters), and  
						
						... 
						
						
						
						safer (when the passed pointer might be invalid).  Thanks to Duncan and Chris for the idea behind this, 
and extra thanks to Duncan for helping me work out the trap-safety.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48280  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-12 07:37:44 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						77db50f68f 
					 
					
						
						
							
							Fix an issue where GVN had the sizes of the two memcpy's reverse, resulting  
						
						... 
						
						
						
						in an invalid transformation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47639  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-26 23:06:17 +00:00