Chris Lattner 
							
						 
					 
					
						
						
							
						
						ef2aa193d6 
					 
					
						
						
							
							Revert back to r1.21, which was the last revision of predsimplify that  
						
						... 
						
						
						
						passes llvm-gcc bootstrap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31146  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-24 00:36:21 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						c17229d591 
					 
					
						
						
							
							Remove the Backwards operation. Resolving now works at the time when a  
						
						... 
						
						
						
						property is added by running through the list of uses of the value and
adding resolved properties to the property set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31126  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-23 01:56:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						7e189d095e 
					 
					
						
						
							
							Fix similar missing optimization opportunity in XOR.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31123  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-22 22:22:58 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						92a8b71dc1 
					 
					
						
						
							
							Whoops! Add missing NULL check.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31121  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-22 21:38:24 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						5062250f36 
					 
					
						
						
							
							Handle "if ((x|y) != 0)" for ints like we do for bools. Fixes missed  
						
						... 
						
						
						
						optimization opportunity pointed out by Chris Lattner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31118  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-22 21:36:41 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						802fe27d3e 
					 
					
						
						
							
							AllocaInst can't return a null pointer. Fixes missed optimization  
						
						... 
						
						
						
						opportunity pointed out by Andrew Lewycky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31115  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-22 19:53:27 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						078ff41220 
					 
					
						
						
							
							Replace custom dispatch code with two uses of InstVisitor. Improves  
						
						... 
						
						
						
						compile-time performance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30896  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-12 02:02:44 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						f938099aa1 
					 
					
						
						
							
							Simplify logic further.  
						
						... 
						
						
						
						Ensure that we copy KnownProperties before calling visitBasicBlock, else
we may leak properties into blocks where they don't belong.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30705  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-03 17:36:01 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						a73a654bb4 
					 
					
						
						
							
							Simplify, now that predsimplify depends on break-crit-edges.  
						
						... 
						
						
						
						Fix SwitchInst where dest-block is the same as one of the cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30700  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-03 15:19:11 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						5c8c5d9ace 
					 
					
						
						
							
							Move break-crit-edges before the predicate simplifier. Allows us to  
						
						... 
						
						
						
						optimize in more cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30699  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-03 14:52:23 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						47811b76ca 
					 
					
						
						
							
							Eliminate ConstantBool::True and ConstantBool::False.  Instead, provide  
						
						... 
						
						
						
						ConstantBool::getTrue() and ConstantBool::getFalse().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30665  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-28 23:35:22 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						8f389d8cd4 
					 
					
						
						
							
							Style changes only. Remove dead code, fix a comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30588  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-23 15:13:08 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						009aa1d485 
					 
					
						
						
							
							Don't rewrite ConstantExpr::get.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30552  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-21 01:05:35 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						af2f1fe94e 
					 
					
						
						
							
							Once we're down to "setcc type constant1, constant2", at least come up  
						
						... 
						
						
						
						with the right answer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30550  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-20 23:02:24 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						406fc0cb49 
					 
					
						
						
							
							Use a total ordering to compare instructions.  
						
						... 
						
						
						
						Fixes infinite loop in resolve().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30540  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-20 17:04:01 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						025f4c0fad 
					 
					
						
						
							
							Walk down the dominator tree instead of the control flow graph. That means  
						
						... 
						
						
						
						that we can't modify the CFG any more, at least not until it's possible
to update the dominator tree (PR217).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30469  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-18 21:09:35 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						668a1d0fd2 
					 
					
						
						
							
							Add some more consistency checks.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30305  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-13 19:32:53 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						977be254c6 
					 
					
						
						
							
							Fix unionSets so that it can merge correctly.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30304  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-13 19:24:01 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						cf2112a0a0 
					 
					
						
						
							
							Erase dead instructions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30298  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-13 18:55:37 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						3fc68ccd83 
					 
					
						
						
							
							Skip the linear search if the answer is already known.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30251  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-11 17:23:34 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						dc08cd56c4 
					 
					
						
						
							
							Replace EquivalenceClasses with a custom-built data structure. Many common  
						
						... 
						
						
						
						operations (like findProperties) should be faster, at the expense of
unionSets being slower in cases that are rare in practise.
Don't erase a dead Instruction. This fixes a memory corruption issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30235  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-10 02:27:07 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						a3a68bde21 
					 
					
						
						
							
							Improve handling of SelectInst.  
						
						... 
						
						
						
						Reorder operations to remove duplicated work.
Fix to leave floating-point types out of the optimization.
Add tests to predsimplify.ll for SwitchInst and SelectInst handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30055  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-02 19:40:38 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						7218c28822 
					 
					
						
						
							
							Don't confuse canonicalize and lookup. Fixes predsimplify.reg4.ll. Also  
						
						... 
						
						
						
						corrects missing optimization opportunity removing cases from a switch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30009  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-01 03:26:35 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						6e39c7ed1e 
					 
					
						
						
							
							Properties where both Values weren't in the union (as being equal to  
						
						... 
						
						
						
						another Value) weren't being found by findProperties.
This fixes predsimplify.ll test6, a missed optimization opportunity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29991  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-31 00:39:16 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						3947a76e21 
					 
					
						
						
							
							Move to using the EquivalenceClass ADT. Removes SynSets.  
						
						... 
						
						
						
						If a branch's condition has become a ConstantBool, simplify it immediately.
Removing the edge saves work and exposes up more optimization opportunities
in the pass.
Add support for SelectInst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29970  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-30 02:46:48 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						05450ae128 
					 
					
						
						
							
							Add PredicateSimplifier pass. Collapses equal variables into one form  
						
						... 
						
						
						
						and simplifies expressions. This implements the optimization described
in PR807.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29947  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-28 22:44:55 +00:00