Owen Anderson 
							
						 
					 
					
						
						
							
						
						62efd3b385 
					 
					
						
						
							
							Make JumpThreading smart enough to properly thread StrSwitch when it's compiled with clang++.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112198  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-26 17:40:24 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						53c36c41ae 
					 
					
						
						
							
							Turn LVI on, previously detected failures should be fixed now.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111923  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-24 17:21:18 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						b6ad691ad7 
					 
					
						
						
							
							Turn LVI back off, I have a testcase now.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111834  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-23 19:59:27 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						0e2c359a3e 
					 
					
						
						
							
							Re-enable LazyValueInfo.  Monitoring for failures.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111816  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-23 18:12:23 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						684d8d5b50 
					 
					
						
						
							
							Disable LVI while I evaluate a failure.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111551  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-19 19:47:08 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						f2d197b77a 
					 
					
						
						
							
							Tentatively enabled LVI by default.  I'll be monitoring for any failures.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111543  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-19 19:04:40 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						00ac77ef88 
					 
					
						
						
							
							Inform LazyValueInfo whenever a block is deleted, to avoid dangling pointer issues.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111382  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-18 18:39:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2fa7b48eb5 
					 
					
						
						
							
							Fix PR7755: knowing something about an inval for a pred  
						
						... 
						
						
						
						from the LHS should disable reconsidering that pred on the
RHS.  However, knowing something about the pred on the RHS
shouldn't disable subsequent additions on the RHS from
happening.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111349  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-18 03:14:36 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						90c579de5a 
					 
					
						
						
							
							Reapply r110396, with fixes to appease the Linux buildbot gods.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-06 18:33:48 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						1f74590e9d 
					 
					
						
						
							
							Revert r110396 to fix buildbots.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-06 00:23:35 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						9ccaf53ada 
					 
					
						
						
							
							Don't use PassInfo* as a type identifier for passes.  Instead, use the address of the static  
						
						... 
						
						
						
						ID member as the sole unique type identifier.  Clean up APIs related to this change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-05 23:42:04 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						f35b08db50 
					 
					
						
						
							
							Give JumpThreading+LVI a long-form cl::opt so that it's easier to toggle the default.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110384  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-05 22:11:31 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						cfa7fb6df5 
					 
					
						
						
							
							Add an initial implementation of LazyValueInfo updating for JumpThreading.  Disabled for now.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109424  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-26 18:48:03 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						d13db2c59c 
					 
					
						
						
							
							Fix batch of converting RegisterPass<> to INTIALIZE_PASS().  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109045  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-21 22:09:45 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Greif 
							
						 
					 
					
						
						
							
						
						ee1f44fba3 
					 
					
						
						
							
							cache results of operator*  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108142  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-12 14:10:24 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0a96144aac 
					 
					
						
						
							
							if jump threading is able to infer interesting values on both  
						
						... 
						
						
						
						the LHS and RHS of an and/or instruction, don't multiply add
known predecessor values.  This fixes the crash on testcase
from PR7498
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108114  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-12 00:47:34 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e58867e55e 
					 
					
						
						
							
							jump threading can't split a critical edge from an indirectbr.  This  
						
						... 
						
						
						
						fixes PR7356.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105950  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-14 19:45:43 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						dd9344f3fa 
					 
					
						
						
							
							Move FindAvailableLoadedValue isSafeToLoadUnconditionally out of  
						
						... 
						
						
						
						lib/Transforms/Utils and into lib/Analysis so that Analysis passes
can use them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104949  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-28 16:19:17 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6f285d2105 
					 
					
						
						
							
							fix PR6743, a case where we'd delete an instruction before using it  
						
						... 
						
						
						
						in some cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100937  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-10 18:26:57 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						1df9859c40 
					 
					
						
						
							
							There are two ways of checking for a given type, for example isa<PointerType>(T)  
						
						... 
						
						
						
						and T->isPointerTy().  Convert most instances of the first form to the second form.
Requested by Chris.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-02-16 11:11:14 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						b0bc6c361d 
					 
					
						
						
							
							Uniformize the names of type predicates: rather than having isFloatTy and  
						
						... 
						
						
						
						isInteger, we now have isFloatTy and isIntegerTy.  Requested by Chris!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96223  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-02-15 16:12:20 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1e452650c6 
					 
					
						
						
							
							Make jump threading honor x|undef -> true and x&undef -> false,  
						
						... 
						
						
						
						instead of considering x|undef -> x, which may not be true.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95850  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-02-11 04:40:44 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d668839cb9 
					 
					
						
						
							
							third bug from PR6119: the xor dupe extension allows  
						
						... 
						
						
						
						for arbitrary terminators in predecessors, don't assume
it is a conditional or uncond branch.  The testcase shows
an example where they can happen with switches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94323  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-01-23 19:21:31 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2dd7657a5b 
					 
					
						
						
							
							add an early out to ProcessBranchOnXOR to speed it up,  
						
						... 
						
						
						
						handle the case when we can infer an input to the xor
from all inputs that agree, instead of going into an
infinite loop.  Another part of PR6199
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94321  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-01-23 19:16:25 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8231fd1e6c 
					 
					
						
						
							
							fix a crash in jump threading, PR6119  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94319  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-01-23 18:56:07 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						972a46c96a 
					 
					
						
						
							
							1) Use the new SimplifyInstructionsInBlock routine instead of the copy  
						
						... 
						
						
						
						in JT.
2) When cloning blocks for PHI or xor conditions, use
instsimplify to simplify the code as we go.  This allows us to 
squish common cases early in JT which opens up opportunities for
subsequent iterations, and allows it to completely simplify the
testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93253  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-01-12 20:41:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						797c440caf 
					 
					
						
						
							
							tidy up  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93222  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-01-12 02:07:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2249a0b1bd 
					 
					
						
						
							
							Teach jump threading to duplicate small blocks when the branch  
						
						... 
						
						
						
						condition is a xor with a phi node.  This eliminates nonsense
like this from 176.gcc in several places:
 LBB166_84:
        testl   %eax, %eax
-       setne   %al
-       xorb    %cl, %al
-       notb    %al
-       testb   $1, %al
-       je      LBB166_85
+       je      LBB166_69
+       jmp     LBB166_85
This is rdar://7391699
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93221  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-01-12 02:07:17 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						77beb479f5 
					 
					
						
						
							
							some cleanup, and make it obvious that ProcessJumpOnPHI only works  
						
						... 
						
						
						
						on branches by renaming it and checking for a branch at the call site.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93208  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-01-11 23:41:09 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						66b581ef49 
					 
					
						
						
							
							Use a do-while loop instead of while + boolean.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92912  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-01-07 13:50:07 +00:00 
						 
				 
			
				
					
						
							
							
								David Greene 
							
						 
					 
					
						
						
							
						
						fe7fe6603f 
					 
					
						
						
							
							Change errs() to dbgs().  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92614  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-01-05 01:27:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5660846f15 
					 
					
						
						
							
							Metadata.h doesn't need to include ValueHandle.h anymore.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92211  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-12-28 08:20:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						08bc2701a2 
					 
					
						
						
							
							fix PR5698  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90708  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-12-06 17:17:23 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						46875c0bfb 
					 
					
						
						
							
							fix PR5640 by tracking whether a block is the header of a loop more  
						
						... 
						
						
						
						precisely, which prevents us from infinitely peeling the loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90211  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-12-01 06:04:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4e447ebc58 
					 
					
						
						
							
							make PRE of loads preserve the alignment of the moved load instruction.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88865  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-15 19:58:31 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1fb5630474 
					 
					
						
						
							
							fix a bug handling 'not x' when x is undef.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88864  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-15 19:57:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						66c04c48de 
					 
					
						
						
							
							use getPredicateOnEdge to fold comparisons through PHI nodes,  
						
						... 
						
						
						
						which implements GCC PR18046.  This also gets us 360 more
jump threads on 176.gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86953  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-12 05:24:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f496e79f44 
					 
					
						
						
							
							various fixes to the lattice transfer functions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86952  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-12 04:57:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0e0ff29271 
					 
					
						
						
							
							switch jump threading to use getPredicateOnEdge in one place  
						
						... 
						
						
						
						making the new LVI stuff smart enough to subsume some special
cases in the old code.  Disable them when LVI is around, the
testcase still passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86951  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-12 04:37:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						87e9f59c7a 
					 
					
						
						
							
							with the new code we can thread non-instruction values.  This  
						
						... 
						
						
						
						allows us to handle the test10 testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86924  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-12 01:41:34 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1c96b4187b 
					 
					
						
						
							
							this argument can be an arbitrary value, it doesn't need to be an instruction.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86923  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-12 01:37:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						38392bbeb8 
					 
					
						
						
							
							expose edge information and switch j-t to use it.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86920  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-12 01:29:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2ad00bf99d 
					 
					
						
						
							
							pass TD into a SimplifyCmpInst call.  Add another case that  
						
						... 
						
						
						
						uses LVI info when -enable-jump-threading-lvi is passed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86886  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-11 22:31:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cc4d3b25f3 
					 
					
						
						
							
							stub out some LazyValueInfo interfaces, and have JumpThreading  
						
						... 
						
						
						
						start using them in a trivial way when -enable-jump-threading-lvi
is passed.  enable-jump-threading-lvi will be my playground for 
awhile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86789  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-11 02:08:33 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b14b88a40a 
					 
					
						
						
							
							add a fixme  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86766  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-11 00:21:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						055d046f48 
					 
					
						
						
							
							implement a TODO by teaching jump threading about "xor x, 1".  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86739  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-10 22:39:16 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						40d8c28b27 
					 
					
						
						
							
							move some generally useful functions out of jump threading  
						
						... 
						
						
						
						into libanalysis and transformutils.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86735  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-10 22:26:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6f84a5feee 
					 
					
						
						
							
							improve comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86723  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-10 21:45:09 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f3183f6da6 
					 
					
						
						
							
							Make jump threading eliminate blocks that just contain phi nodes,  
						
						... 
						
						
						
						debug intrinsics, and an unconditional branch when possible.  This
reuses the TryToSimplifyUncondBranchFromEmptyBlock function split
out of simplifycfg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86722  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-10 21:40:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fddcf47a24 
					 
					
						
						
							
							make jump threading recursively simplify expressions instead of doing it  
						
						... 
						
						
						
						just one level deep.  On the testcase we go from getting this:
F1:                                               ; preds = %T2
  %F = and i1 true, %cond                         ; <i1> [#uses=1]
  br i1 %F, label %X, label %Y
to a fully threaded:
F1:                                               ; preds = %T2
  br label %Y
This changes gets us to the point where we're forming (too many) switch 
instructions on doug's strswitch testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86646  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-10 01:57:31 +00:00