Chris Lattner 
							
						 
					 
					
						
						
							
						
						432a205769 
					 
					
						
						
							
							Let the inliner update the callgraph to reflect the changes it makes, instead  
						
						... 
						
						
						
						of doing it ourselves.  This fixes Transforms/Inline/2006-01-14-CallGraphUpdate.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25321  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-14 20:09:18 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						468fb1df7d 
					 
					
						
						
							
							Teach the inliner to update the CallGraph itself, and have it add edges to  
						
						... 
						
						
						
						llvm.stacksave/restore when it inserts calls to them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25320  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-14 20:07:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						516a74c01a 
					 
					
						
						
							
							FunctionPass's cannot do IPO things.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25315  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-14 19:30:35 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						6fb3bd6a65 
					 
					
						
						
							
							Add bswap intrinsics as documented in the Language Reference  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25309  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-14 01:25:24 +00:00 
						 
				 
			
				
					
						
							
							
								Robert Bocchino 
							
						 
					 
					
						
						
							
						
						1d7456d0bf 
					 
					
						
						
							
							Added instcombine support for extractelement.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25299  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-13 22:48:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5522037136 
					 
					
						
						
							
							it is ok to dce stacksave.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25295  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-13 21:31:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a728ddc815 
					 
					
						
						
							
							Do a simple instcombine xforms to delete llvm.stackrestore cases.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25294  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-13 21:28:09 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8b0ea313d9 
					 
					
						
						
							
							Simplify this a tiny bit by using the new IntrinsicInst functionality.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25292  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-13 20:11:04 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ccca3ca85f 
					 
					
						
						
							
							Permit inlining functions that contain dynamic allocations now that  
						
						... 
						
						
						
						InlineFunction handles this case safely.  This implements
Transforms/Inline/dynamic_alloca_test.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25288  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-13 19:35:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						bf229f488a 
					 
					
						
						
							
							If inlining a call to a function that contains dynamic allocas, wrap the  
						
						... 
						
						
						
						resultant code with llvm.stacksave/llvm.stackrestore intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25286  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-13 19:34:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1fdf4a859f 
					 
					
						
						
							
							Use ClonedCodeInfo to avoid another walk over the inlined code, this this  
						
						... 
						
						
						
						time in common C cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25285  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-13 19:18:11 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						727d1dd587 
					 
					
						
						
							
							Use the ClonedCodeInfo object to avoid scans of the inlined code when  
						
						... 
						
						
						
						it doesn't contain any calls.  This is a fairly common case for C++ code,
so it will probably speed up the inliner marginally in these cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25284  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-13 19:15:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cd4d339ec1 
					 
					
						
						
							
							Refactor a bunch of invoke handling stuff out into a new function  
						
						... 
						
						
						
						"HandleInlinedInvoke".  No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25283  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-13 19:05:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a4c29d2037 
					 
					
						
						
							
							Allow the code cloning interfaces to capture some important info about the  
						
						... 
						
						
						
						code being cloned if the client wants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25281  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-13 18:39:17 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						21f20558d6 
					 
					
						
						
							
							Fix a bug I noticed by inspection: if the first instruction in the inlined  
						
						... 
						
						
						
						function was not an alloca, we wouldn't check the entry block for any allocas,
leading to increased stack space in some cases.  In practice, allocas are almost
always at the top of the block, so this was never noticed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25280  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-13 18:16:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8acb249725 
					 
					
						
						
							
							Fix 80 column violations  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25279  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-13 18:06:56 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						dd9e956605 
					 
					
						
						
							
							Preserve and update ETForest.  Patch by Daniel Berlin  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25203  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-11 05:11:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						88cac3d2f7 
					 
					
						
						
							
							Switch these to using ETForest instead of DominatorSet to compute itself.  
						
						... 
						
						
						
						Patch written by Daniel Berlin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25202  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-11 05:10:20 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						19ef3d5be2 
					 
					
						
						
							
							Switch this to using ETForest instead of DominatorSet to compute itself.  
						
						... 
						
						
						
						Patch written by Daniel Berlin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25201  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-11 05:09:40 +00:00 
						 
				 
			
				
					
						
							
							
								Robert Bocchino 
							
						 
					 
					
						
						
							
						
						b52ee7f5ff 
					 
					
						
						
							
							Added support for the extractelement operation.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25181  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-10 19:05:34 +00:00 
						 
				 
			
				
					
						
							
							
								Robert Bocchino 
							
						 
					 
					
						
						
							
						
						56107e21a5 
					 
					
						
						
							
							Added lower packed support for the extractelement operation.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25180  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-10 19:05:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						baec98d00b 
					 
					
						
						
							
							Teach loopsimplify to update et-forest.  Patch contributed by Daniel Berlin!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25153  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-09 08:03:08 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e8d56c536d 
					 
					
						
						
							
							fix some 176.gcc miscompilation from my previous patch.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25137  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-07 01:32:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4f637d4db1 
					 
					
						
						
							
							silence some bogus gcc warnings on fenris  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25130  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-06 17:59:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ad0124c188 
					 
					
						
						
							
							Enhance the shift-shift folding code to allow a no-op cast to occur in between  
						
						... 
						
						
						
						the shifts.
This allows us to fold this (which is the 'integer add a constant' sequence
from cozmic's scheme compmiler):
int %x(uint %anf-temporary776) {
        %anf-temporary777 = shr uint %anf-temporary776, ubyte 1
        %anf-temporary800 = cast uint %anf-temporary777 to int
        %anf-temporary804 = shl int %anf-temporary800, ubyte 1
        %anf-temporary805 = add int %anf-temporary804, -2
        %anf-temporary806 = or int %anf-temporary805, 1
        ret int %anf-temporary806
}
into this:
int %x(uint %anf-temporary776) {
        %anf-temporary776 = cast uint %anf-temporary776 to int
        %anf-temporary776.mask1 = add int %anf-temporary776, -2
        %anf-temporary805 = or int %anf-temporary776.mask1, 1
        ret int %anf-temporary805
}
note that instcombine already knew how to eliminate the AND that the two
shifts fold into.  This is tested by InstCombine/shift.ll:test26
-Chris
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25128  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-06 07:52:12 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						830ed03e8b 
					 
					
						
						
							
							Simplify the code a bit more  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25126  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-06 07:22:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4d5542ce6e 
					 
					
						
						
							
							Extract a bunch of code out of visitShiftInst into FoldShiftByConstant.  No  
						
						... 
						
						
						
						functionality changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25125  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-06 07:12:35 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4eb40df1a8 
					 
					
						
						
							
							Pull inline methods out of the pass class definition to make it easier to  
						
						... 
						
						
						
						read the code.
Do not internalize debugger anchors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25067  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-03 19:13:17 +00:00 
						 
				 
			
				
					
						
							
							
								Duraid Madina 
							
						 
					 
					
						
						
							
						
						b5186853f8 
					 
					
						
						
							
							getting there...  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25021  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-26 13:48:44 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6860f6a01c 
					 
					
						
						
							
							Fix Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll, a crash on undefined  
						
						... 
						
						
						
						behavior in 126.gcc on big-endian systems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24708  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-14 17:23:59 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						2f1890792c 
					 
					
						
						
							
							Improve ResolveFunctions to:  
						
						... 
						
						
						
						a) use better local variable names (OldMT -> OldFT) where "M" is used to
   mean "Function" (perhaps it was previously "Method"?)
b) print out the module identifier in a warning message so that it is
   possible to track down in which module the error occurred.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24698  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-13 19:56:51 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a188894d67 
					 
					
						
						
							
							Implement a little hack for parity with GCC on crafty.  This speeds up  
						
						... 
						
						
						
						186.crafty by about 16% (from 15.109s to 13.045s) on my system.
This turns allocas with unions/casts into scalars.  For example crafty has
something like this:
    union doub {
      unsigned short i[4];
      long long d;
    };
int f(long long a) {
  return ((union doub){.d=a}).i[1];
}
Instead of generating loads and stores to an alloca, we now promote the
whole thing to a scalar long value.
This implements: Transforms/ScalarRepl/AggregatePromote.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24667  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-12 07:19:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e08dc62b1a 
					 
					
						
						
							
							getRawValue zero extens for unsigned values, use getsextvalue so that we  
						
						... 
						
						
						
						know that small negative values fit into the immediate field of addressing
modes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24608  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-05 18:23:57 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6b44ba2803 
					 
					
						
						
							
							Wrap a long line, never internalize llvm.used.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24602  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-05 05:07:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8e75ee212f 
					 
					
						
						
							
							Fix SimplifyCFG/2005-12-03-IncorrectPHIFold.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24581  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-03 18:25:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2bd4cb597a 
					 
					
						
						
							
							Fix a bug where we didn't realize that vaarg reads memory.  This fixes  
						
						... 
						
						
						
						Transforms/DeadStoreElimination/2005-11-30-vaarg.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24545  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-30 19:38:22 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						8dc2d50988 
					 
					
						
						
							
							a few more comments on the interfaces and functions  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24500  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-28 18:10:59 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						bb227c1b79 
					 
					
						
						
							
							Added documented rsprofiler interface.  Also remove new profiler passes, the  
						
						... 
						
						
						
						old ones have been updated to implement the interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24499  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-28 18:00:38 +00:00 
						 
				 
			
				
					
						
							
							
								Jeff Cohen 
							
						 
					 
					
						
						
							
						
						3523f6e7a4 
					 
					
						
						
							
							Fix VC++ warning.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24496  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-28 06:45:57 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						701f5ac73c 
					 
					
						
						
							
							Random sampling (aka Arnold and Ryder) profiling.  This is still preliminary, but it works on spec on x86 and alpha.  The idea is to allow profiling passes to remember what profiling they inserted, then a random sampling framework is inserted which consists of duplicated basic blocks (without profiling), such that at each backedge in the program and entry into every function, the framework chooses whether to use the instrumented code or the instrumentation free code.  The goal of such a framework is to make it reasonably cheap to do random sampling of very expensive profiling products (such as load-value profiling).  
						
						... 
						
						
						
						The code is organized into 3 parts (2 passes)
1) a linked set of profiling passes, which implement an analysis group (linked, like alias analysis are).  These insert profiling into the program, and remember what they inserted, so that at a later time they can be queried about any instruction.
2) a pass that handles inserting the random sampling framework.  This also has options to control how random samples are choosen.  Currently implemented are Global counters, register allocated global counters, and read cycle counter (see? there was a reason for it).
The profiling passes are almost identical to the existing ones (block, function, and null profiling is supported right now), and they are valid passes without the sampling framework (hence the existing passes can be unified with the new ones, not done yet).
Some things are a bit ugly still, but that should be fixed up soon enough.
Other todo? making the counter values not "magic 2^16 -1" values, but dynamically choosable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24493  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-28 00:58:09 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						b0826529f8 
					 
					
						
						
							
							since reg2mem requires it, might as well mention that it preserves it  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24491  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-25 16:04:54 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						7c0c567058 
					 
					
						
						
							
							Reg2Mem is something a pass may depend on, so allow that  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24488  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-22 22:14:23 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						7045f6c56e 
					 
					
						
						
							
							turns out, demotion and invokes and critical edges don't mix  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24487  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-22 21:45:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1730078d5f 
					 
					
						
						
							
							Fix a crash building 176.gcc due to my recent patch, which only fixed  
						
						... 
						
						
						
						half the problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24414  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-18 18:30:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						36ba5006df 
					 
					
						
						
							
							Implement a refinement to the mem2reg algorithm for cases where an alloca  
						
						... 
						
						
						
						has a single def.  In this case, look for uses that are dominated by the def
and attempt to rewrite them to directly use the stored value.
This speeds up mem2reg on these values and reduces the number of phi nodes
inserted.  This should address PR665.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24411  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-18 07:31:42 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fed40df846 
					 
					
						
						
							
							This needs proper dominance  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24410  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-18 07:29:44 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ceda605fd7 
					 
					
						
						
							
							This was checking the wrong GEP expression.  Fixing this fixes a gccas crash  
						
						... 
						
						
						
						compiling mysql reported by Ted Kremenek.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24402  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-17 19:35:42 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						fa25e48412 
					 
					
						
						
							
							the pain isn't gone unless the phinodes are spilled too  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24288  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-10 19:39:09 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						99b8e26b84 
					 
					
						
						
							
							this works with backedges to the existing entry block alot better  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24270  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-10 17:35:34 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						183119cdf6 
					 
					
						
						
							
							The pass everyone has been waiting for!  
						
						... 
						
						
						
						Reg2Mem
for fun you can opt -reg2mem -mem2reg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24267  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-10 01:58:38 +00:00