Chris Lattner 
							
						 
					 
					
						
						
							
						
						e831b9a48b 
					 
					
						
						
							
							Fix a bug from r1.391 of this file, where we checked the size instead of  
						
						... 
						
						
						
						the alignment when promoting allocations.  This implements
InstCombine/cast.ll:test32
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30682  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-01 19:40:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						596721f0d7 
					 
					
						
						
							
							Fix debug output  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30680  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-30 23:32:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8639503abe 
					 
					
						
						
							
							Implement SRA of heap allocations.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30679  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-30 23:32:09 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cff1673182 
					 
					
						
						
							
							Add some ifdef'd out debug info  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30676  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-30 19:40:30 +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 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						3295471846 
					 
					
						
						
							
							Another attempt at making ArgPromotion smarter.  This patch no longer breaks Burg.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30657  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-28 23:02:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						40d31ecb29 
					 
					
						
						
							
							simplify code  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30656  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-28 22:58:25 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7514437133 
					 
					
						
						
							
							set DEBUG_TYPE right  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30623  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-27 04:58:23 +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 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						120fce5540 
					 
					
						
						
							
							Be far more careful when splitting a loop header, either to form a preheader  
						
						... 
						
						
						
						or when splitting loops with a common header into multiple loops.  In particular
the old code would always insert the preheader before the old loop header.  This
is disasterous in cases where the loop hasn't been rotated.  For example, it can
produce code like:
        .. outside the loop...
        jmp LBB1_2      #bb13.outer
LBB1_1: #bb1
        movsd 8(%esp,%esi,8), %xmm1
        mulsd (%edi), %xmm1
        addsd %xmm0, %xmm1
        addl $24, %edi
        incl %esi
        jmp LBB1_3      #bb13
LBB1_2: #bb13.outer
        leal (%edx,%eax,8), %edi
        pxor %xmm1, %xmm1
        xorl %esi, %esi
LBB1_3: #bb13
        movapd %xmm1, %xmm0
        cmpl $4, %esi
        jl LBB1_1       #bb1
Note that the loop body is actually LBB1_1 + LBB1_3, which means that the
loop now contains an uncond branch WITHIN it to jump around the inserted
loop header (LBB1_2).  Doh.
This patch changes the preheader insertion code to insert it in the right
spot, producing this code:
        ... outside the loop, fall into the header ...
LBB1_1: #bb13.outer
        leal (%edx,%eax,8), %esi
        pxor %xmm0, %xmm0
        xorl %edi, %edi
        jmp LBB1_3      #bb13
LBB1_2: #bb1
        movsd 8(%esp,%edi,8), %xmm0
        mulsd (%esi), %xmm0
        addsd %xmm1, %xmm0
        addl $24, %esi
        incl %edi
LBB1_3: #bb13
        movapd %xmm0, %xmm1
        cmpl $4, %edi
        jl LBB1_2       #bb1
Totally crazy, no branch in the loop! :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30587  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-23 08:19:21 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c3984578be 
					 
					
						
						
							
							Teach UpdateDomInfoForRevectoredPreds to handle revectored preds that are not  
						
						... 
						
						
						
						reachable, making it general purpose enough for use by InsertPreheaderForLoop.
Eliminate custom dominfo updating code in InsertPreheaderForLoop, using
UpdateDomInfoForRevectoredPreds instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30586  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-23 07:40:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9ba46c13bf 
					 
					
						
						
							
							Fix Transforms/IndVarsSimplify/2006-09-20-LFTR-Crash.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30555  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-21 05:12:20 +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 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						4563326472 
					 
					
						
						
							
							simplify  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30535  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-20 15:37:57 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b8456460cb 
					 
					
						
						
							
							We went through all that trouble to compute whether it was safe to transform  
						
						... 
						
						
						
						this comparison, but never checked it.  Whoops, no wonder we miscompiled
177.mesa!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30511  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-20 04:44:59 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						571c15e38a 
					 
					
						
						
							
							Back out Chris' last set of changes. This breaks 177.mesa and povray somehow.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30505  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-20 01:39:40 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						7df4ad9a7f 
					 
					
						
						
							
							80 col.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30504  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-20 01:10:02 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						16d7955eb0 
					 
					
						
						
							
							If we have an add, do it in the pointer realm, not the int realm.  This is critical in the linux kernel for pointer analysis correctness  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30496  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-19 18:24:51 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						733f576d29 
					 
					
						
						
							
							implement select.ll:test19-22  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30482  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-19 06:18:21 +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 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6d7ca92bbf 
					 
					
						
						
							
							Fix an infinite loop building the CFE  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30465  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-18 18:27:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4af90abc13 
					 
					
						
						
							
							Implement a trivial optzn: of vastart is never called in a function that takes  
						
						... 
						
						
						
						... args, remove the '...'.
This is Transforms/DeadArgElim/dead_vaargs.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30459  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-18 07:02:31 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e695a3bd32 
					 
					
						
						
							
							Implement InstCombine/cast.ll:test31.  This speeds up 462.libquantum by 26%.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30456  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-18 05:27:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b7363791ed 
					 
					
						
						
							
							Implement Transforms/InstCombine/shift-sra.ll:test0  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30450  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-18 04:31:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						65b72baa59 
					 
					
						
						
							
							Rewrite shift/and/compare sequences to promote better licm of the RHS.  
						
						... 
						
						
						
						Use isLogicalShift/isArithmeticShift to simplify code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30448  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-18 04:22:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f6bd07c7fe 
					 
					
						
						
							
							Fix Transforms/InstCombine/2006-09-15-CastToBool.ll and PR913  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30405  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-16 03:14:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						94876527af 
					 
					
						
						
							
							revert previous two patches.  They cause miscompilation of MultiSource/Applications/Burg  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30397  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-15 17:24:45 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						46f022a7f1 
					 
					
						
						
							
							Revert my previous work on ArgumentPromotion.  Further investigation has revealed these  
						
						... 
						
						
						
						changes to be incorrect.  They just weren't showing up in any of our current testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30385  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-15 05:22:51 +00:00 
						 
				 
			
				
					
						
							
							
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						b74ed07bfd 
					 
					
						
						
							
							Adding dllimport, dllexport and external weak linkage types.  
						
						... 
						
						
						
						DLL* linkages got full (I hope) codegeneration support in C & both x86
assembler backends.
External weak linkage added for future use, we don't provide any
codegeneration, etc. support for it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30374  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-14 18:23:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a4646b61e4 
					 
					
						
						
							
							Second half of the fix for Transforms/Inline/inline_cleanup.ll  
						
						... 
						
						
						
						This folds unconditional branches that are often produced by code
specialization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30307  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-13 21:27:00 +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 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						33bb3c8be3 
					 
					
						
						
							
							Implement the first half of Transforms/Inline/inline_cleanup.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30303  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-13 19:23:57 +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 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						56eac5f6f7 
					 
					
						
						
							
							Initialize DontInternalize.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30281  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-13 01:02:26 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						92f7365740 
					 
					
						
						
							
							An sinkable instruction may exist with uses, if those uses are in dead blocks.  
						
						... 
						
						
						
						Handle this.  This fixes PR908 and Transforms/LICM/2006-09-12-DeadUserOfSunkInstr.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30275  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-12 19:17:09 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						63d3220dae 
					 
					
						
						
							
							Fix PR905 and InstCombine/2006-09-11-EmptyStructCrash.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30266  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-11 21:43:16 +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 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						dfa1af0513 
					 
					
						
						
							
							Allow tail duplication in more cases, relaxing the previous restriction a  
						
						... 
						
						
						
						bit.  This fixes Regression/Transforms/TailDup/MergeTest.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30237  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-10 18:17:58 +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 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2a86f3b744 
					 
					
						
						
							
							Implement Transforms/InstCombine/hoist_instr.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30234  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-09 22:02:56 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7b166d9969 
					 
					
						
						
							
							Make inlining costs more accurate.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30231  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-09 20:40:44 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8e49e08f4b 
					 
					
						
						
							
							Turn div X, (Cond ? Y : 0) -> div X, Y  
						
						... 
						
						
						
						This implements select.ll::test18.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30230  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-09 20:26:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e99c623e75 
					 
					
						
						
							
							Throttle back tail duplication to avoid creating really ugly sequences of code.  
						
						... 
						
						
						
						For Transforms/TailDup/if-tail-dup.ll, f.e., it produces:
_foo:
        movl 8(%esp), %eax
        movl 4(%esp), %ecx
        testl $1, %ecx
        je LBB1_2       #cond_next
LBB1_1: #cond_true
        movl $1, (%eax)
LBB1_2: #cond_next
        testl $2, %ecx
        je LBB1_4       #cond_next10
LBB1_3: #cond_true6
        movl $1, 4(%eax)
LBB1_4: #cond_next10
        testl $4, %ecx
        je LBB1_6       #cond_next18
LBB1_5: #cond_true14
        movl $1, 8(%eax)
LBB1_6: #cond_next18
        testl $8, %ecx
        je LBB1_8       #return
LBB1_7: #cond_true22
        movl $1, 12(%eax)
        ret
LBB1_8: #return
        ret
instead of:
_foo:
        movl 4(%esp), %eax
        testl $2, %eax
        sete %cl
        movl 8(%esp), %edx
        testl $1, %eax
        je LBB1_2       #cond_next
LBB1_1: #cond_true
        movl $1, (%edx)
        testb %cl, %cl
        jne LBB1_4      #cond_next10
        jmp LBB1_3      #cond_true6
LBB1_2: #cond_next
        testb %cl, %cl
        jne LBB1_4      #cond_next10
LBB1_3: #cond_true6
        movl $1, 4(%edx)
        testl $4, %eax
        je LBB1_6       #cond_next18
        jmp LBB1_5      #cond_true14
LBB1_4: #cond_next10
        testl $4, %eax
        je LBB1_6       #cond_next18
LBB1_5: #cond_true14
        movl $1, 8(%edx)
        testl $8, %eax
        je LBB1_8       #return
        jmp LBB1_7      #cond_true22
LBB1_6: #cond_next18
        testl $8, %eax
        je LBB1_8       #return
LBB1_7: #cond_true22
        movl $1, 12(%edx)
        ret
LBB1_8: #return
        ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30158  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-07 21:30:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						97d2dbd100 
					 
					
						
						
							
							Fix Duraid's changes to work when TLI is null.  This fixes the failing  
						
						... 
						
						
						
						lowerinvoke regtests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30115  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-05 17:48:07 +00:00 
						 
				 
			
				
					
						
							
							
								Duraid Madina 
							
						 
					 
					
						
						
							
						
						2a0013f59f 
					 
					
						
						
							
							add setJumpBufSize() and setJumpBufAlignment() to target-lowering.  
						
						... 
						
						
						
						Call these from your backend to enjoy setjmp/longjmp goodness, see
lib/Target/IA64/IA64ISelLowering.cpp for an example
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30095  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-04 06:21:35 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						b833e5ac3f 
					 
					
						
						
							
							Make ArgumentPromotion handle recursive functions that pass pointers in their recursive calls.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30057  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-02 21:19:44 +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