Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								9d17c82a26 
								
							 
						 
						
							
							
								
								Resurrect r1.25.  
							
							 
							
							... 
							
							
							
							Fix and comment the "or", "and" and "xor" transformations.
llvm-svn: 31189 
							
						 
						
							2006-10-25 23:48:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								53f53db919 
								
							 
						 
						
							
							
								
								hide symbols properly  
							
							 
							
							... 
							
							
							
							llvm-svn: 31184 
							
						 
						
							2006-10-25 21:14:31 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								dc7b9beb20 
								
							 
						 
						
							
							
								
								Revert back to r1.21, which was the last revision of predsimplify that  
							
							 
							
							... 
							
							
							
							passes llvm-gcc bootstrap.
llvm-svn: 31146 
							
						 
						
							2006-10-24 00:36:21 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								53b4158448 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 31126 
							
						 
						
							2006-10-23 01:56:02 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								6f5c30fcec 
								
							 
						 
						
							
							
								
								Fix similar missing optimization opportunity in XOR.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31123 
							
						 
						
							2006-10-22 22:22:58 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								af2b0571d0 
								
							 
						 
						
							
							
								
								Whoops! Add missing NULL check.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31121 
							
						 
						
							2006-10-22 21:38:24 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								2c734f3fc1 
								
							 
						 
						
							
							
								
								Handle "if ((x|y) != 0)" for ints like we do for bools. Fixes missed  
							
							 
							
							... 
							
							
							
							optimization opportunity pointed out by Chris Lattner.
llvm-svn: 31118 
							
						 
						
							2006-10-22 21:36:41 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								f345008339 
								
							 
						 
						
							
							
								
								AllocaInst can't return a null pointer. Fixes missed optimization  
							
							 
							
							... 
							
							
							
							opportunity pointed out by Andrew Lewycky.
llvm-svn: 31115 
							
						 
						
							2006-10-22 19:53:27 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								77e030bca9 
								
							 
						 
						
							
							
								
								Replace custom dispatch code with two uses of InstVisitor. Improves  
							
							 
							
							... 
							
							
							
							compile-time performance.
llvm-svn: 30896 
							
						 
						
							2006-10-12 02:02:44 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								58a910dff5 
								
							 
						 
						
							
							
								
								Simplify logic further.  
							
							 
							
							... 
							
							
							
							Ensure that we copy KnownProperties before calling visitBasicBlock, else
we may leak properties into blocks where they don't belong.
llvm-svn: 30705 
							
						 
						
							2006-10-03 17:36:01 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								1d00f3e144 
								
							 
						 
						
							
							
								
								Simplify, now that predsimplify depends on break-crit-edges.  
							
							 
							
							... 
							
							
							
							Fix SwitchInst where dest-block is the same as one of the cases.
llvm-svn: 30700 
							
						 
						
							2006-10-03 15:19:11 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								755f801adc 
								
							 
						 
						
							
							
								
								Move break-crit-edges before the predicate simplifier. Allows us to  
							
							 
							
							... 
							
							
							
							optimize in more cases.
llvm-svn: 30699 
							
						 
						
							2006-10-03 14:52:23 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6ab03f6a08 
								
							 
						 
						
							
							
								
								Eliminate ConstantBool::True and ConstantBool::False.  Instead, provide  
							
							 
							
							... 
							
							
							
							ConstantBool::getTrue() and ConstantBool::getFalse().
llvm-svn: 30665 
							
						 
						
							2006-09-28 23:35:22 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								059c79264f 
								
							 
						 
						
							
							
								
								Style changes only. Remove dead code, fix a comment.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30588 
							
						 
						
							2006-09-23 15:13:08 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								fde9c308b2 
								
							 
						 
						
							
							
								
								Don't rewrite ConstantExpr::get.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30552 
							
						 
						
							2006-09-21 01:05:35 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								d74c55f483 
								
							 
						 
						
							
							
								
								Once we're down to "setcc type constant1, constant2", at least come up  
							
							 
							
							... 
							
							
							
							with the right answer.
llvm-svn: 30550 
							
						 
						
							2006-09-20 23:02:24 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								cfff1c3f86 
								
							 
						 
						
							
							
								
								Use a total ordering to compare instructions.  
							
							 
							
							... 
							
							
							
							Fixes infinite loop in resolve().
llvm-svn: 30540 
							
						 
						
							2006-09-20 17:04:01 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								b9c5483a93 
								
							 
						 
						
							
							
								
								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).
llvm-svn: 30469 
							
						 
						
							2006-09-18 21:09:35 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								12efffc96b 
								
							 
						 
						
							
							
								
								Add some more consistency checks.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30305 
							
						 
						
							2006-09-13 19:32:53 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								51ce8d6b46 
								
							 
						 
						
							
							
								
								Fix unionSets so that it can merge correctly.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30304 
							
						 
						
							2006-09-13 19:24:01 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								3a4dc7b489 
								
							 
						 
						
							
							
								
								Erase dead instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30298 
							
						 
						
							2006-09-13 18:55:37 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								e94f42a740 
								
							 
						 
						
							
							
								
								Skip the linear search if the answer is already known.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30251 
							
						 
						
							2006-09-11 17:23:34 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								9a22d7b60f 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 30235 
							
						 
						
							2006-09-10 02:27:07 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								8e5599354a 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 30055 
							
						 
						
							2006-09-02 19:40:38 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								f6f529d008 
								
							 
						 
						
							
							
								
								Don't confuse canonicalize and lookup. Fixes predsimplify.reg4.ll. Also  
							
							 
							
							... 
							
							
							
							corrects missing optimization opportunity removing cases from a switch.
llvm-svn: 30009 
							
						 
						
							2006-09-01 03:26:35 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								08674ab707 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 29991 
							
						 
						
							2006-08-31 00:39:16 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								5f8f9af65c 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 29970 
							
						 
						
							2006-08-30 02:46:48 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								b2e8ae1700 
								
							 
						 
						
							
							
								
								Add PredicateSimplifier pass. Collapses equal variables into one form  
							
							 
							
							... 
							
							
							
							and simplifies expressions. This implements the optimization described
in PR807.
llvm-svn: 29947 
							
						 
						
							2006-08-28 22:44:55 +00:00