Dale Johannesen 
							
						 
					 
					
						
						
							
						
						81da02b553 
					 
					
						
						
							
							Make tail merging the default, except on powerPC.  There was no prior art  
						
						... 
						
						
						
						for a target-dependent default with a command-line override; this way
should be generally usable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37285  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-22 17:14:46 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						1cf08c1d6d 
					 
					
						
						
							
							Remove some unneeded branches.  (spotted by Evan, thanks)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37198  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-18 01:28:58 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						14ba0cc429 
					 
					
						
						
							
							Remove extra CFG edges before doing these passes; it makes them happier.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37089  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-15 21:19:17 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						54f4a6780a 
					 
					
						
						
							
							Do not generate branches to entry block.  This fixes several test suite  
						
						... 
						
						
						
						failures on PPC (can happen only when prologue code is null)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36979  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-10 23:59:23 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						76b38fcabe 
					 
					
						
						
							
							Make tail merging handle many more cases (all it can, I think).  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36966  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-10 01:01:49 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						7d33b4c59b 
					 
					
						
						
							
							Handle some non-exit blocks in tail merging.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36907  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-07 20:57:21 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						1997473cf7 
					 
					
						
						
							
							Drop 'const'  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-03 01:11:54 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						3e15bf33e0 
					 
					
						
						
							
							Use 'static const char' instead of 'static const int'.  
						
						... 
						
						
						
						Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-02 21:39:20 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						794fd75c67 
					 
					
						
						
							
							Do not use typeinfo to identify pass in pass manager.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-01 21:15:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						77edc4b1b0 
					 
					
						
						
							
							Fix PR1228 and CodeGen/Generic/2007-04-30-LandingPadBranchFolding.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36602  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-30 23:35:00 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						69cb9b78f1 
					 
					
						
						
							
							maintain LiveIn when splitting blocks (register scavenging needs it)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35226  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-20 21:35:06 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						033c9715d9 
					 
					
						
						
							
							Remove isAccessable.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34497  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-22 16:39:03 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						02b3f5ec4a 
					 
					
						
						
							
							Make branch folding behave in the presence of landing pads.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34476  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-21 22:42:20 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						6b896cec8b 
					 
					
						
						
							
							Fixes PR 1200  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34359  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-17 00:44:34 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						44c3b9fdd4 
					 
					
						
						
							
							Change the MachineDebugInfo to MachineModuleInfo to better reflect usage  
						
						... 
						
						
						
						for debugging and exception handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33550  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-26 21:22:28 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						1ee2925742 
					 
					
						
						
							
							Make LABEL a builtin opcode.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33537  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-26 14:34:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cd3245ac45 
					 
					
						
						
							
							Eliminate static ctors from Statistics  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32698  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-12-19 22:41:21 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ac0b6ae358 
					 
					
						
						
							
							Detemplatize the Statistic class.  The only type it is instantiated with  
						
						... 
						
						
						
						is 'unsigned'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32279  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-12-06 17:46:33 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4b10591265 
					 
					
						
						
							
							Don't transform in another bad case: if the block is empty, it should be  
						
						... 
						
						
						
						simplified before we do this xform so that our cost model is accurate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31864  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-18 22:25:39 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f10a56a86f 
					 
					
						
						
							
							Fix another case we *don't* want to do this xform.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31861  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-18 21:56:39 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						154e104718 
					 
					
						
						
							
							make the previous change more aggressive, moving any block with no fallthrough.  
						
						... 
						
						
						
						This speeds up yacr2 by 7% on a core2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31856  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-18 21:30:35 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a7bef4a4e4 
					 
					
						
						
							
							Minor code layout tweak: if we have something like this:  
						
						... 
						
						
						
						if (cond) goto BB2
BB1:
    ...
    return;
BB2:
   ...
Move BB1 to the end of the function so that the code falls through in the
non-return case.  This has the effect of moving assert (and other no-return
call) bodies and return blocks out of loops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31855  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-18 20:47:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5d056952ba 
					 
					
						
						
							
							optimize single MBB loops better.  In particular, produce:  
						
						... 
						
						
						
						LBB1_57:        #bb207.i
        movl 72(%esp), %ecx
        movb (%ecx,%eax), %cl
        movl 80(%esp), %edx
        movb %cl, 1(%edx,%eax)
        incl %eax
        cmpl $143, %eax
        jne LBB1_57     #bb207.i
        jmp LBB1_64     #cond_next255.i
intead of:
LBB1_57:        #bb207.i
        movl 72(%esp), %ecx
        movb (%ecx,%eax), %cl
        movl 80(%esp), %edx
        movb %cl, 1(%edx,%eax)
        incl %eax
        cmpl $143, %eax
        je LBB1_64      #cond_next255.i
        jmp LBB1_57     #bb207.i
This eliminates a branch per iteration of the loop.  This hurted PPC
particularly, because the extra branch meant another dispatch group for each
iteration of the loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31530  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-08 01:03:21 +00:00 
						 
				 
			
				
					
						
							
							
								Jeff Cohen 
							
						 
					 
					
						
						
							
						
						d41b30def3 
					 
					
						
						
							
							Unbreak VC++ build.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31464  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-05 19:31:28 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						3ed469ccd7 
					 
					
						
						
							
							For PR786:  
						
						... 
						
						
						
						Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31380  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-02 20:25:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d4bf3c2fd6 
					 
					
						
						
							
							give branch folding a simple heuristic to decide which block to split so that  
						
						... 
						
						
						
						it inserts an uncond branch where it is less likely to cause a problem.  This
fixes some perf issues on ppc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31354  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-01 19:36:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1d08d83230 
					 
					
						
						
							
							make tail merging more aggressive.  If two blocks share a common tail, but the  
						
						... 
						
						
						
						tail is not an entire block for either of them, pick one, split it, then
merge the common part.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31336  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-01 01:16:12 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d8ccff0c3e 
					 
					
						
						
							
							enable branch folding with an option  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31335  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-01 00:38:31 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6b0e3f8907 
					 
					
						
						
							
							Make CanFallThrough more intelligent (so it can handle blocks with (e.g.) no  
						
						... 
						
						
						
						successors), and make island block movement more general.
This compiles CodeGen/X86/2006-04-27-ISelFoldingBug.ll to:
_loadAndRLEsource_no_exit_2E_1_label_2E_0:
        subl $8, %esp
        movl %esi, 4(%esp)
        movl %ebx, (%esp)
        movl 16(%esp), %eax
        movl 12(%esp), %ecx
LBB1_3: #label.0
        movl _last, %edx
        movl %edx, %esi
        incl %esi
        movl %esi, _last
        movl %ecx, %ebx
        # TRUNCATE movb %bl, %bl
        movl _block, %esi
        movb %bl, 1(%esi,%edx)
        cmpl %eax, _last
        jge LBB1_2      #codeRepl5.exitStub
LBB1_4: #label.0
        cmpl $257, %ecx
        je LBB1_2       #codeRepl5.exitStub
LBB1_1: #label.0.no_exit.1_crit_edge.exitStub
        movl $1, %eax
        movl (%esp), %ebx
        movl 4(%esp), %esi
        addl $8, %esp
        ret
LBB1_2: #codeRepl5.exitStub
        xorl %eax, %eax
        movl (%esp), %ebx
        movl 4(%esp), %esi
        addl $8, %esp
        ret
instead of:
_loadAndRLEsource_no_exit_2E_1_label_2E_0:
        subl $8, %esp
        movl %esi, 4(%esp)
        movl %ebx, (%esp)
        movl 16(%esp), %eax
        movl 12(%esp), %ecx
        jmp LBB1_3      #label.0
LBB1_1: #label.0.no_exit.1_crit_edge.exitStub
        movl $1, %eax
        movl (%esp), %ebx
        movl 4(%esp), %esi
        addl $8, %esp
        ret
LBB1_2: #codeRepl5.exitStub
        xorl %eax, %eax
        movl (%esp), %ebx
        movl 4(%esp), %esi
        addl $8, %esp
        ret
LBB1_3: #label.0
        movl _last, %edx
        movl %edx, %esi
        incl %esi
        movl %esi, _last
        movl %ecx, %ebx
        # TRUNCATE movb %bl, %bl
        movl _block, %esi
        movb %bl, 1(%esi,%edx)
        cmpl %eax, _last
        jge LBB1_2      #codeRepl5.exitStub
LBB1_4: #label.0
        cmpl $257, %ecx
        jne LBB1_1      #label.0.no_exit.1_crit_edge.exitStub
        jmp LBB1_2      #codeRepl5.exitStub
... which is much better layout :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31282  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-29 21:05:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6acfe12dd6 
					 
					
						
						
							
							Teach branch folding to fold identical jump tables together and to delete  
						
						... 
						
						
						
						jump tables that are dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31273  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-28 18:34:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cf420cca57 
					 
					
						
						
							
							improve deletion of blocks that just contain branches by knowing that  
						
						... 
						
						
						
						the pred block doesn't fall through into them if it's a jumptable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31263  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-28 17:32:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c2e91e34dc 
					 
					
						
						
							
							simplify code  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31188  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-25 22:21:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						323ece6fcd 
					 
					
						
						
							
							turn off tail merging for now  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31180  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-25 18:08:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7d09784d3f 
					 
					
						
						
							
							move single basic blocks that are neither fallen into nor fall out of into  
						
						... 
						
						
						
						a place more useful.  In particular, if we can put them in a place where code
will be able to fall into it, do so.  Otherwise, put it in a place it can fall
through into a successor.  Otherwise, if preventing a fallthrough, move to the
end of the function, out of the way.
This deletes several hundred unconditional branches from spass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31149  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-24 01:12:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a4bcfe12d1 
					 
					
						
						
							
							Enable tail merging by default.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31140  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-23 22:10:12 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						66ebf0973d 
					 
					
						
						
							
							More complete solution to deleting blocks and debug info.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31129  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-23 14:56:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4bc135e93b 
					 
					
						
						
							
							don't break infinite loops  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31102  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-21 06:11:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a2d799531a 
					 
					
						
						
							
							Use branch reversal to do stuff like this:  
						
						... 
						
						
						
						call L_strcmp$stub
        testl %eax, %eax
-       jne LBB26_208   #cond_true6020
-       jmp LBB26_227   #bb7119
+       je LBB26_227    #bb7119
 LBB26_208:     #cond_true6020
        movl $l31_str14, 4(%esp)
        testl %eax, %eax
-       jne LBB26_704   #cond_true13042
-       jmp LBB26_713   #bb13151
+       je LBB26_713    #bb13151
 LBB26_704:     #cond_true13042
        movl $_str52, 4(%esp)
        cmpl 76(%ecx), %eax
-       jge LBB26_1628  #cond_false63.i.i
-       jmp LBB26_1769  #_Z8makeGridP13mrSurfaceListidiidd.exit.i
+       jl LBB26_1769   #_Z8makeGridP13mrSurfaceListidiidd.exit.i
 LBB26_1628:    #cond_false63.i.i
        movl $0, 48964(%esp)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31100  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-21 05:54:00 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2d47bd937c 
					 
					
						
						
							
							Transform code like:  
						
						... 
						
						
						
						jle FOO
  jmp BAR
BAR:
into:
  jle FOO
BAR:
... whoa!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31098  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-21 05:43:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						386e29065d 
					 
					
						
						
							
							Three changes:  
						
						... 
						
						
						
						1. Remove a bunch of ifdef'd code.
2. When a block just contains an uncond branch, change all blocks branching
   to it to jump to the destination instead.
3. If branch analysis tells us some edges in the machinecfg are not actually
   possible, remove them.
#2  triggers a suprisingly large number of times.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31094  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-21 05:08:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						12143054aa 
					 
					
						
						
							
							Add an experimental cross-jumping implementation.  
						
						... 
						
						
						
						This is currently disabled by default and limited in several ways, but does
have a positive effect.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31090  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-21 00:47:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						683747abb8 
					 
					
						
						
							
							Teach the branch folder to update debug info if it removes blocks with line  
						
						... 
						
						
						
						# notes in it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31026  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-17 23:17:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ffddf6ba1c 
					 
					
						
						
							
							Enable deleting branches to successor blocks.  With the previous patches,  
						
						... 
						
						
						
						branch folding can now compile stuff like this:
void foo(int W, int X, int Y, int Z) {
  if (W & 1) {
    for (; X;--X) bar();
  } else if (W & 2) {
    for (; Y;--Y) bar();
  } else if (W & 4) {
    for (; Z;--Z) bar();
  } else if (W & 8) {
    for (; W;--W) bar();
  }
  if (W) {
    bar();
  }
}
contrived testcase where loops exits all end up merging together.  To have
the loop merges be:
...
        cmplw cr0, r30, r27
        bne cr0, LBB1_14        ;bb38
LBB1_16:        ;cond_next48.loopexit
        mr r27, r29
LBB1_20:        ;cond_next48
        cmplwi cr0, r27, 0
        beq cr0, LBB1_22        ;UnifiedReturnBlock
...
instead of:
...
        cmplw cr0, r30, r27
        bne cr0, LBB1_14        ;bb38
LBB1_16:        ;cond_next48.loopexit
        mr r27, r29
        b LBB1_20       ;cond_next48
LBB1_17:        ;cond_next48.loopexit1
        b LBB1_20       ;cond_next48
LBB1_18:        ;cond_next48.loopexit2
        b LBB1_20       ;cond_next48
LBB1_19:        ;cond_next48.loopexit3
LBB1_20:        ;cond_next48
        cmplwi cr0, r27, 0
        beq cr0, LBB1_22        ;UnifiedReturnBlock
...
This is CodeGen/PowerPC/branch-opt.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31006  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-17 18:16:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c50ffcb7fc 
					 
					
						
						
							
							Reenable this pass, fixing the bugs in it.  
						
						... 
						
						
						
						It now correctly deletes unreachable blocks and blocks that are empty.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31000  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-17 17:13:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8f16eb98ed 
					 
					
						
						
							
							disable this pass for now, it's causing issues  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30951  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-14 00:30:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7821a8afd3 
					 
					
						
						
							
							falling off the end of a function is ok with an unreachable instruction.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30950  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-14 00:21:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						eb15eeec39 
					 
					
						
						
							
							disable some objectionable code, maybe we can bring this pass to life  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30939  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-13 20:43:10 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						edf128a7fa 
					 
					
						
						
							
							Remove trailing whitespace  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21420  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 22:36:52 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						551ccae044 
					 
					
						
						
							
							Changes For Bug 352  
						
						... 
						
						
						
						Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-09-01 22:55:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4ae131e5da 
					 
					
						
						
							
							Dereferencing end() is bad.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15402  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-08-01 09:51:42 +00:00