3f8ff0449a 
								
							 
						 
						
							
							
								
								Fix a bug that was causing major slowdowns in povray.  This was due to LCSSA  
							
							... 
							
							
							
							not handling PHI nodes correctly when determining if a value was live-out.
This patch reduces the number of detected live-out variables in the testcase
from 6565 to 485.
llvm-svn: 28771 
							
						 
						
							2006-06-13 19:37:18 +00:00  
				
					
						
							
							
								 
						
							
								0ac336965e 
								
							 
						 
						
							
							
								
								Fix for 2006-06-26-MultipleExitsSingleBlock.  
							
							... 
							
							
							
							If a single exit block has multiple predecessors within the loop, it will
appear in the exit blocks list more than once.  LCSSA needs to take that into
account so that it doesn't double process that exit block.
llvm-svn: 28750 
							
						 
						
							2006-06-12 07:10:16 +00:00  
				
					
						
							
							
								 
						
							
								b538f14d2a 
								
							 
						 
						
							
							
								
								Re-commit the safe parts of my 6/9 patch.  Still working on fixing the unsafe parts.  
							
							... 
							
							
							
							llvm-svn: 28748 
							
						 
						
							2006-06-11 19:22:28 +00:00  
				
					
						
							
							
								 
						
							
								1b6e310e6f 
								
							 
						 
						
							
							
								
								Back out Owen's 6/9 changes. They broke MultiSource/Benchmarks/Prolangs-C/bison (and perhaps others).  
							
							... 
							
							
							
							llvm-svn: 28747 
							
						 
						
							2006-06-11 09:32:57 +00:00  
				
					
						
							
							
								 
						
							
								505adff3f0 
								
							 
						 
						
							
							
								
								Make Loop able to verify that it is in LCSSA-form, and have the LCSSA pass assert  
							
							... 
							
							
							
							on this.
llvm-svn: 28738 
							
						 
						
							2006-06-09 18:33:30 +00:00  
				
					
						
							
							
								 
						
							
								5d029264ec 
								
							 
						 
						
							
							
								
								Update some comments, and expose LCSSAID in preparation for having other passes  
							
							... 
							
							
							
							require LCSSA.
llvm-svn: 28734 
							
						 
						
							2006-06-08 20:02:53 +00:00  
				
					
						
							
							
								 
						
							
								ac601b4c4b 
								
							 
						 
						
							
							
								
								Fix some formatting, and use inLoop() when appropriate.  
							
							... 
							
							
							
							llvm-svn: 28694 
							
						 
						
							2006-06-06 04:36:36 +00:00  
				
					
						
							
							
								 
						
							
								9e81c1bb03 
								
							 
						 
						
							
							
								
								Stop a memory leak, and update some comments.  
							
							... 
							
							
							
							llvm-svn: 28693 
							
						 
						
							2006-06-06 04:28:30 +00:00  
				
					
						
							
							
								 
						
							
								766f90b08e 
								
							 
						 
						
							
							
								
								Some more clean-up, and squash an IDF-Phi related bug.  
							
							... 
							
							
							
							llvm-svn: 28680 
							
						 
						
							2006-06-04 00:55:19 +00:00  
				
					
						
							
							
								 
						
							
								eb33815f1b 
								
							 
						 
						
							
							
								
								Various clean-ups suggested by Chris.  
							
							... 
							
							
							
							llvm-svn: 28678 
							
						 
						
							2006-06-04 00:02:23 +00:00  
				
					
						
							
							
								 
						
							
								d00eacc4f9 
								
							 
						 
						
							
							
								
								Fix a bug in Phi-noded insertion.  Also, update some comments to reflect what's  
							
							... 
							
							
							
							actually going on.
llvm-svn: 28677 
							
						 
						
							2006-06-03 23:22:50 +00:00  
				
					
						
							
							
								 
						
							
								619e4ba57f 
								
							 
						 
						
							
							
								
								Remove a FIXME that was fixed with my last patch.  
							
							... 
							
							
							
							llvm-svn: 28619 
							
						 
						
							2006-06-01 06:07:40 +00:00  
				
					
						
							
							
								 
						
							
								cd76fa04a1 
								
							 
						 
						
							
							
								
								More cleanups.  Also, add a special case for updating PHI nodes, and  
							
							... 
							
							
							
							reimplement getValueDominatingFunction to walk the DominanceTree rather than
just searching blindly.
llvm-svn: 28618 
							
						 
						
							2006-06-01 06:05:47 +00:00  
				
					
						
							
							
								 
						
							
								dad8c57340 
								
							 
						 
						
							
							
								
								Extract a huge loop into a helper method.  Fix a few iterator-invalidation bugs.  
							
							... 
							
							
							
							llvm-svn: 28599 
							
						 
						
							2006-05-31 20:55:06 +00:00  
				
					
						
							
							
								 
						
							
								8a8f278f15 
								
							 
						 
						
							
							
								
								Add Use replacement.  Assuming there is nothing horribly wrong with this, LCSSA  
							
							... 
							
							
							
							is now theoretically feature-complete.  It has not, however, been thoroughly
test, and is still considered experimental.
llvm-svn: 28529 
							
						 
						
							2006-05-29 01:00:00 +00:00  
				
					
						
							
							
								 
						
							
								152d063ccb 
								
							 
						 
						
							
							
								
								Major think-o.  Iterate over all live out-of-loop values, and perform the  
							
							... 
							
							
							
							other calculations on each individually, rather than trying to delay it and do
them all at the end.
llvm-svn: 28527 
							
						 
						
							2006-05-28 19:33:28 +00:00  
				
					
						
							
							
								 
						
							
								1310e42803 
								
							 
						 
						
							
							
								
								Make LCSSA insert proper Phi nodes throughout the rest of the CFG by computing  
							
							... 
							
							
							
							the iterated Dominance Frontier of the loop-closure Phi's.  This is the
second phase of the LCSSA pass.  The third phase (coming soon) will be to
update all uses of loop variables to use the loop-closure Phi's instead.
llvm-svn: 28524 
							
						 
						
							2006-05-27 18:47:11 +00:00  
				
					
						
							
							
								 
						
							
								b4e16996f1 
								
							 
						 
						
							
							
								
								A few small clean-ups, and the addition of an LCSSA statistic.  
							
							... 
							
							
							
							llvm-svn: 28512 
							
						 
						
							2006-05-27 00:31:37 +00:00  
				
					
						
							
							
								 
						
							
								6e047ab8fc 
								
							 
						 
						
							
							
								
								Fix a copy-and-paste-o that would break some compilers.  
							
							... 
							
							
							
							llvm-svn: 28507 
							
						 
						
							2006-05-26 21:19:17 +00:00  
				
					
						
							
							
								 
						
							
								f3dd3e2bfd 
								
							 
						 
						
							
							
								
								Clean up and refactor LCSSA a bunch.  It should also run faster now, though  
							
							... 
							
							
							
							there's still a lot of work to be done on it.
llvm-svn: 28506 
							
						 
						
							2006-05-26 21:11:53 +00:00  
				
					
						
							
							
								 
						
							
								8eca8910b6 
								
							 
						 
						
							
							
								
								Skeletal LCSSA pass.  This is currently non-functional.  Expect functionality  
							
							... 
							
							
							
							and documentation updates soo.
llvm-svn: 28495 
							
						 
						
							2006-05-26 13:58:26 +00:00