Bob Wilson 
							
						 
					 
					
						
						
							
						
						8ad05c4bdf 
					 
					
						
						
							
							Fix CodePlacementOpt::OptimizeIntraLoopEdges so that its return value  
						
						... 
						
						
						
						correctly indicates whether it changed the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72038  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-18 21:02:18 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						6ebf7bc740 
					 
					
						
						
							
							Run code placement optimization for targets that want it (arm and x86 for now).  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71726  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-13 21:42:09 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						9d3094b38e 
					 
					
						
						
							
							If header of inner loop is aligned, do not align the outer loop header. We don't want to add nops in the outer loop for the sake of aligning the inner loop.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71609  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-12 23:58:14 +00:00 
						 
				 
			
				
					
						
							
							
								Bob Wilson 
							
						 
					 
					
						
						
							
						
						74b0ccc577 
					 
					
						
						
							
							Fix pr4195: When iterating through predecessor blocks, break out of the loop  
						
						... 
						
						
						
						after finding the (unique) layout predecessor.  Sometimes a block may be listed
more than once, and processing it more than once in this loop can lead to
inconsistent values for FtTBB/FtFBB, since the AnalyzeBranch method does not
clear these values.  There's no point in continuing the loop regardless.
The testcase for this is reduced from the 2003-05-02-DependentPHI SingleSource
test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71536  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-12 03:48:10 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5374405dc1 
					 
					
						
						
							
							Oops. Don't forget to align single bb loops.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71363  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-09 19:18:01 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f045f80ba9 
					 
					
						
						
							
							Enable loop bb placement optimization.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71291  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-08 23:35:49 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						0269d3cbf3 
					 
					
						
						
							
							Don't align loop header unless the loop back edge is below the header.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71242  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-08 19:01:44 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						4b7f7a6e1f 
					 
					
						
						
							
							Reverse branch condition only when there is a conditional branch.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71214  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-08 09:35:53 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						0ab2dcee5b 
					 
					
						
						
							
							Add explicit braces to disambiguate nested if/else. Removes a warning.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71211  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-08 06:57:41 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						45e0010e14 
					 
					
						
						
							
							Optimize code placement in loop to eliminate unconditional branches or move unconditional branch to the outside of the loop. e.g.  
						
						... 
						
						
						
						///       A:                                                                                                                                                                 
///       ...                                                                                                                                                                
///       <fallthrough to B>                                                                                                                                                 
///                                                                                                                                                                          
///       B:  --> loop header                                                                                                                                                
///       ...                                                                                                                                                                
///       jcc <cond> C, [exit]                                                                                                                                               
///                                                                                                                                                                          
///       C:                                                                                                                                                                 
///       ...                                                                                                                                                                
///       jmp B                                                                                                                                                              
///                                                                                                                                                                          
/// ==>                                                                                                                                                                      
///                                                                                                                                                                          
///       A:                                                                                                                                                                 
///       ...                                                                                                                                                                
///       jmp B                                                                                                                                                              
///                                                                                                                                                                          
///       C:  --> new loop header                                                                                                                                            
///       ...                                                                                                                                                                
///       <fallthough to B>                                                                                                                                                  
///                                                                                                                                                                          
///       B:                                                                                                                                                                 
///       ...                                                                                                                                                                
///       jcc <cond> C, [exit] 
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71209  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-08 06:34:09 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						7132e12ee5 
					 
					
						
						
							
							Code refactoring.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71151  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-07 05:49:39 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						bbf1db7213 
					 
					
						
						
							
							Rename "loop aligner" pass to "code placement optimization" pass.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71150  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-07 05:42:24 +00:00