Chris Lattner 
							
						 
					 
					
						
						
							
						
						60d410d7bb 
					 
					
						
						
							
							fix two significant issues with FoldTwoEntryPHINode:  
						
						... 
						
						
						
						first, it can kick in on blocks whose conditions have been
folded to a constant, even though one of the edges will be
trivially folded.
second, it doesn't clean up the "if diamond" that it just 
eliminated away.  This is a problem because other simplifycfg
xforms kick in depending on the order of block visitation,
causing pointless work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121762  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 08:01:53 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						071edc81f2 
					 
					
						
						
							
							remove the instsimplify logic I added in r121754.  It is apparently  
						
						... 
						
						
						
						breaking the selfhost builds, though I can't fathom how.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121761  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 07:53:03 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						44da7ca421 
					 
					
						
						
							
							clean up logic, convert std::set to SmallPtrSet, handle the case  
						
						... 
						
						
						
						when all 2-entry phis are simplified away.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121760  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 07:41:39 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e0b18e5912 
					 
					
						
						
							
							tidy up a bit, move DEBUG down to when we commit to doing the transform so we  
						
						... 
						
						
						
						don't print it unless the xform happens.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121758  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 07:23:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						07ff3539f5 
					 
					
						
						
							
							use SimplifyInstruction instead of reimplementing part of it.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121757  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 07:20:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						995ba1bd49 
					 
					
						
						
							
							simplify GetIfCondition by using getSinglePredecessor.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121756  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 07:15:21 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6de0a28dfb 
					 
					
						
						
							
							use AddPredecessorToBlock in 3 places instead of a manual loop.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121755  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 07:09:42 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						73c50a68a7 
					 
					
						
						
							
							make FoldTwoEntryPHINode use instsimplify a bit, make  
						
						... 
						
						
						
						GetIfCondition faster by avoiding pred_iterator.  No
really interesting change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121754  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 07:00:00 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						302ba6fc1c 
					 
					
						
						
							
							improve DEBUG's a bit, switch to eraseFromParent() to simplify  
						
						... 
						
						
						
						code a bit, switch from constant folding to instsimplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121751  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 06:17:25 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						117f8cffc5 
					 
					
						
						
							
							reapply my recent change that disables a piece of the switch formation  
						
						... 
						
						
						
						work, but fixes 400.perlbmk.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121749  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 05:57:30 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						2d9220e8f5 
					 
					
						
						
							
							Fix recent buildbot breakage by pulling SimplifyCFG back to its state as of r121694, the most recent state  
						
						... 
						
						
						
						where I'm confident there were no crashes or miscompilations.  XFAIL the test added since then for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121733  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 23:49:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f9a1b2a4cf 
					 
					
						
						
							
							temporarily disable part of my previous patch, which causes an iterator invalidation issue, causing a crash on some versions of perlbmk.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121728  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 23:02:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						94c58a0906 
					 
					
						
						
							
							add some DEBUG's.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121711  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 19:55:30 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						cf8b3257c0 
					 
					
						
						
							
							Fix sort predicate. qsort(3)'s predicate semantics differ from std::sort's. Fixes PR 8780.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121705  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 18:20:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a9f6bbea62 
					 
					
						
						
							
							reinstate my patch: the miscompile was caused by an inverted branch in the  
						
						... 
						
						
						
						'and' case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121695  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 08:12:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						92407e5895 
					 
					
						
						
							
							Completely disable the optimization I added in r121680 until  
						
						... 
						
						
						
						I can track down a miscompile.  This should bring the buildbots
back to life
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121693  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 07:41:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						daa02ab70c 
					 
					
						
						
							
							Make simplifycfg reprocess newly formed "br (cond1 | cond2)" conditions  
						
						... 
						
						
						
						when simplifying, allowing them to be eagerly turned into switches.  This
is the last step required to get "Example 7" from this blog post:
http://blog.regehr.org/archives/320 
On X86, we now generate this machine code, which (to my eye) seems better
than the ICC generated code:
_crud:                                  ## @crud
## BB#0:                                ## %entry
	cmpb	$33, %dil
	jb	LBB0_4
## BB#1:                                ## %switch.early.test
	addb	$-34, %dil
	cmpb	$58, %dil
	ja	LBB0_3
## BB#2:                                ## %switch.early.test
	movzbl	%dil, %eax
	movabsq	$288230376537592865, %rcx ## imm = 0x400000017001421
	btq	%rax, %rcx
	jb	LBB0_4
LBB0_3:                                 ## %lor.rhs
	xorl	%eax, %eax
	ret
LBB0_4:                                 ## %lor.end
	movl	$1, %eax
	ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121690  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 07:00:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						021c9d3bd4 
					 
					
						
						
							
							make this logic a bit simpler.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121689  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 06:36:51 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3d5121314a 
					 
					
						
						
							
							split all the guts of SimplifyCFGOpt::run out into one function  
						
						... 
						
						
						
						per terminator kind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121688  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 06:25:44 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						97bd89ece3 
					 
					
						
						
							
							fix a bug in r121680 that upset the various buildbots.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121687  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 05:34:18 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						979b8f1d8c 
					 
					
						
						
							
							refactor the speculative execution logic to be factored into the cond branch code instead of  
						
						... 
						
						
						
						doing a cfg search for every block simplified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121686  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 05:26:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						eff7edf126 
					 
					
						
						
							
							simplify a bunch of code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121685  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 05:20:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ef5002ba85 
					 
					
						
						
							
							move HoistThenElseCodeToIf up to a more logical and efficient-to-handle place.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121684  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 05:15:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ddb97a2bf1 
					 
					
						
						
							
							move 'MergeBlocksIntoPredecessor' call earlier.  Use  
						
						... 
						
						
						
						getSinglePredecessor to simplify code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121683  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 05:10:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						97fdb898f5 
					 
					
						
						
							
							factor new code out to a SimplifyBranchOnICmpChain helper function.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121681  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 05:03:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7312a22ed6 
					 
					
						
						
							
							enhance the "change or icmp's into switch" xform to handle one value in an  
						
						... 
						
						
						
						'or sequence' that it doesn't understand.  This allows us to optimize
something insane like this:
int crud (unsigned char c, unsigned x)
 {
   if(((((((((( (int) c <= 32 ||
                    (int) c == 46) || (int) c == 44)
                  || (int) c == 58) || (int) c == 59) || (int) c == 60)
               || (int) c == 62) || (int) c == 34) || (int) c == 92)
            || (int) c == 39) != 0)
     foo();
 }
into:
define i32 @crud(i8 zeroext %c, i32 %x) nounwind ssp noredzone {
entry:
  %cmp = icmp ult i8 %c, 33
  br i1 %cmp, label %if.then, label %switch.early.test
switch.early.test:                                ; preds = %entry
  switch i8 %c, label %if.end [
    i8 39, label %if.then
    i8 44, label %if.then
    i8 58, label %if.then
    i8 59, label %if.then
    i8 60, label %if.then
    i8 62, label %if.then
    i8 46, label %if.then
    i8 92, label %if.then
    i8 34, label %if.then
  ]
by pulling the < comparison out ahead of the newly formed switch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121680  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 04:50:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0aa749bde7 
					 
					
						
						
							
							merge two very similar functions into one that has a bool argument.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121678  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 04:26:26 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						662269d2ab 
					 
					
						
						
							
							don't bother handling non-canonical icmp's  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121676  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 04:18:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						803a29d19f 
					 
					
						
						
							
							inline a function, making the result much simpler.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121675  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 04:15:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						abf706703f 
					 
					
						
						
							
							Fix my previous patch to handle a degenerate case that the llvm-gcc  
						
						... 
						
						
						
						bootstrap buildbot tripped over.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121674  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 03:43:57 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						28acc13548 
					 
					
						
						
							
							convert some methods to be static functions  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121673  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 03:30:12 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fca20f507c 
					 
					
						
						
							
							zap two more std::sorts.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121672  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 03:24:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						61c77449c7 
					 
					
						
						
							
							fix a fairly serious oversight with switch formation from  
						
						... 
						
						
						
						or'd conditions.  Previously we'd compile something like this:
int crud (unsigned char c) {
   return c == 62 || c == 34 || c == 92;
}
into:
  switch i8 %c, label %lor.rhs [
    i8 62, label %lor.end
    i8 34, label %lor.end
  ]
lor.rhs:                                          ; preds = %entry
  %cmp8 = icmp eq i8 %c, 92
  br label %lor.end
lor.end:                                          ; preds = %entry, %entry, %lor.rhs
  %0 = phi i1 [ true, %entry ], [ %cmp8, %lor.rhs ], [ true, %entry ]
  %lor.ext = zext i1 %0 to i32
  ret i32 %lor.ext
which failed to merge the compare-with-92 into the switch.  With this patch
we simplify this all the way to:
  switch i8 %c, label %lor.rhs [
    i8 62, label %lor.end
    i8 34, label %lor.end
    i8 92, label %lor.end
  ]
lor.rhs:                                          ; preds = %entry
  br label %lor.end
lor.end:                                          ; preds = %entry, %entry, %entry, %lor.rhs
  %0 = phi i1 [ true, %entry ], [ false, %lor.rhs ], [ true, %entry ], [ true, %entry ]
  %lor.ext = zext i1 %0 to i32
  ret i32 %lor.ext
which is much better for codegen's switch lowering stuff.  This kicks in 33 times
on 176.gcc (for example) cutting 103 instructions off the generated code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121671  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 03:18:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6d4d21e29d 
					 
					
						
						
							
							convert an std::sort to array_pod_sort.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121669  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 02:00:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cd4b709d73 
					 
					
						
						
							
							move the "br (X == 0 | X == 1), T, F" -> switch optimization to a new  
						
						... 
						
						
						
						location in simplifycfg.  In the old days, SimplifyCFG was never run on
the entry block, so we had to scan over all preds of the BB passed into
simplifycfg to do this xform, now we can just check blocks ending with
a condbranch.  This avoids a scan over all preds of every simplified 
block, which should be a significant compile-time perf win on functions
with lots of edges.  No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121668  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 01:57:34 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9a2b72acc9 
					 
					
						
						
							
							reduce indentation and generally simplify code, no functionality change.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121667  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 01:47:07 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						dcb54ce3da 
					 
					
						
						
							
							use getFirstNonPHIOrDbg to simplify this code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121664  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 01:28:06 +00:00 
						 
				 
			
				
					
						
							
							
								Frits van Bommel 
							
						 
					 
					
						
						
							
						
						7ac40c3ffa 
					 
					
						
						
							
							Teach SimplifyCFG to turn  
						
						... 
						
						
						
						(indirectbr (select cond, blockaddress(@fn, BlockA),
                            blockaddress(@fn, BlockB)))
into
  (br cond, BlockA, BlockB).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120943  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-05 18:29:03 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						5f28475b30 
					 
					
						
						
							
							Fix PR8445: a block with no predecessors may be the entry block, in which case  
						
						... 
						
						
						
						it isn't unreachable and should not be zapped.  The check for the entry block
was missing in one case: a block containing a unwind instruction.  While there,
do some small cleanups: "M" is not a great name for a Function* (it would be
more appropriate for a Module*), change it to "Fn"; use Fn in more places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117224  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-24 12:23:30 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						7a4994356b 
					 
					
						
						
							
							Instead, teach SimplifyCFG to trim non-address-taken blocks from  
						
						... 
						
						
						
						indirectbr destination lists.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111122  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-16 14:41:14 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						e2c6d131d1 
					 
					
						
						
							
							Teach SimplifyCFG how to simplify indirectbr instructions.  
						
						... 
						
						
						
						- Eliminate redundant successors.
 - Convert an indirectbr with one successor into a direct branch.
Also, generalize SimplifyCFG to be able to be run on a function entry block.
It knows quite a few simplifications which are applicable to the entry
block, and it only needs a few checks to avoid trouble with the entry block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111060  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-14 00:29:42 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Greif 
							
						 
					 
					
						
						
							
						
						20361b9d4d 
					 
					
						
						
							
							pass dereferenced iterator to dyn_cast  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109098  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-22 11:43:44 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						2722dfa75d 
					 
					
						
						
							
							Remove unneeded check, and correct style.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108427  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-15 16:38:22 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						e84178a0bd 
					 
					
						
						
							
							Extend SimplifyCFG's common-destination folding heuristic to allow a single  
						
						... 
						
						
						
						"bonus" instruction to be speculatively executed.  Add a heuristic to
ensure we're not tripping up out-of-order execution by checking that this bonus
instruction only uses values that were already guaranteed to be available.
This allows us to eliminate the short circuit in (x&1)&&(x&2).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108351  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-14 19:52:16 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Greif 
							
						 
					 
					
						
						
							
						
						625398343e 
					 
					
						
						
							
							cache dereferenced iterators  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108133  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-12 10:59:23 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Greif 
							
						 
					 
					
						
						
							
						
						5896935423 
					 
					
						
						
							
							cache result of operator*  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107974  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-09 15:25:09 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						4bb31bfaa3 
					 
					
						
						
							
							Fix a grammaro.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99917  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-30 20:04:57 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Greif 
							
						 
					 
					
						
						
							
						
						bd44314c67 
					 
					
						
						
							
							fix two cases where the arguments were extracted from the wrong range out of the InvokeInst  
						
						... 
						
						
						
						spotted by baldrick -- thanks\!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99914  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-30 19:20:53 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						c69b4a5b8b 
					 
					
						
						
							
							Make returns more consistent with others.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98490  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-14 10:40:28 +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