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 
						 
				 
			
				
					
						
							
							
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						4198c58c71 
					 
					
						
						
							
							Next stage into switch lowering refactoring  
						
						... 
						
						
						
						1. Fix some bugs in the jump table lowering threshold
2. Implement much better metric for optimal pivot selection
3. Tune thresholds for different lowering methods
4. Implement shift-and trick for lowering small (<machine word
length) cases with few destinations. Good testcase will follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35816  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-09 12:31:58 +00:00 
						 
				 
			
				
					
						
							
							
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						5502bf67cd 
					 
					
						
						
							
							Properly emit range comparisons for switch cases, where neighbour cases  
						
						... 
						
						
						
						go to the same destination. Now we're producing really good code for
switch-lower-feature.ll testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35672  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-04 21:14:49 +00:00 
						 
				 
			
				
					
						
							
							
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						3a84b9baf6 
					 
					
						
						
							
							First step of switch lowering refactoring: perform worklist-driven  
						
						... 
						
						
						
						strategy, emit JT's where possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35338  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-25 15:07:15 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						423c2260f9 
					 
					
						
						
							
							Add the 'explicit' keyword to several constructors that accept one  
						
						... 
						
						
						
						argument that don't appear intended as implicit-conversion operators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35280  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-23 18:44:11 +00:00 
						 
				 
			
				
					
						
							
							
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						d0b82b301d 
					 
					
						
						
							
							Refactoring of formal parameter flags. Enable properly use of  
						
						... 
						
						
						
						zext/sext/aext stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35008  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-07 16:25:09 +00:00 
						 
				 
			
				
					
						
							
							
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						0db79d86de 
					 
					
						
						
							
							Enumerate SDISel formal parameter attributes. Make use of new  
						
						... 
						
						
						
						enumeration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34960  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-06 06:10:33 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5f8d61bbd8 
					 
					
						
						
							
							remove dead method  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31271  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-28 18:21:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						571e434a34 
					 
					
						
						
							
							Turn conditions like x<Y|z==q  into multiple blocks.  
						
						... 
						
						
						
						This compiles Regression/CodeGen/X86/or-branch.ll into:
_foo:
        subl $12, %esp
        call L_bar$stub
        movl 20(%esp), %eax
        movl 16(%esp), %ecx
        cmpl $5, %eax
        jl LBB1_1       #cond_true
LBB1_3: #entry
        testl %ecx, %ecx
        jne LBB1_2      #UnifiedReturnBlock
LBB1_1: #cond_true
        call L_bar$stub
        addl $12, %esp
        ret
LBB1_2: #UnifiedReturnBlock
        addl $12, %esp
        ret
instead of:
_foo:
        subl $12, %esp
        call L_bar$stub
        movl 20(%esp), %eax
        movl 16(%esp), %ecx
        cmpl $4, %eax
        setg %al
        testl %ecx, %ecx
        setne %cl
        testb %cl, %al
        jne LBB1_2      #UnifiedReturnBlock
LBB1_1: #cond_true
        call L_bar$stub
        addl $12, %esp
        ret
LBB1_2: #UnifiedReturnBlock
        addl $12, %esp
        ret
And on ppc to:
        cmpwi cr0, r29, 5
        blt cr0, LBB1_1 ;cond_true
LBB1_3: ;entry
        cmplwi cr0, r30, 0
        bne cr0, LBB1_2 ;UnifiedReturnBlock
instead of:
        cmpwi cr7, r4, 4
        mfcr r2
        addic r4, r3, -1
        subfe r30, r4, r3
        rlwinm r29, r2, 30, 31, 31
        and r2, r29, r30
        cmplwi cr0, r2, 0
        bne cr0, LBB1_2 ;UnifiedReturnBlock
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31230  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-27 21:36:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						57ab65972e 
					 
					
						
						
							
							Generalize CaseBlock a bit more:  
						
						... 
						
						
						
						Rename LHSBB/RHSBB to TrueBB/FalseBB.  Allow the RHS value to be null,
in which case the LHS is treated as a bool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31166  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-24 17:57:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7b248d9866 
					 
					
						
						
							
							generalize 'CaseBlock'.  It really allows any comparison to be inserted.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31161  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-24 17:03:35 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						bddc5d04d7 
					 
					
						
						
							
							Start checking from the root of the matched sub-tree.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30957  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-14 08:30:53 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						755480681c 
					 
					
						
						
							
							add two helper methods.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30869  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-11 03:58:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						57f9a43c64 
					 
					
						
						
							
							refactor critical edge breaking out into the SplitCritEdgesForPHIConstants method.  
						
						... 
						
						
						
						This is a baby step towards fixing PR925.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30643  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-28 06:17:10 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						fe8dc2e2c8 
					 
					
						
						
							
							Move DAGSize to SelectionDAGISel; it's used in tablegen'd isel code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29547  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-07 22:16:08 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						9373beba60 
					 
					
						
						
							
							Now that the ISel is available, it's possible to create a default instruction  
						
						... 
						
						
						
						scheduler creator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29452  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-01 19:14:14 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						9ff542f2cc 
					 
					
						
						
							
							1. Change use of "Cache" to "Default".  
						
						... 
						
						
						
						2. Added argument to instruction scheduler creators so the creators can do
special things.
3. Repaired target hazard code.
4. Misc.
More to follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29450  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-01 18:29:48 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						13ec702c43 
					 
					
						
						
							
							Introducing plugable register allocators and instruction schedulers.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29434  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-01 14:21:23 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f2dfafcbc1 
					 
					
						
						
							
							Rename IsFoldableBy to CanBeFoldedleBy  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29376  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-07-28 01:03:48 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						b2c121ac14 
					 
					
						
						
							
							Let each target specific isel provide routine to check if a chain producing node is foldable by another.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29335  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-07-27 06:36:49 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						f01f31eceb 
					 
					
						
						
							
							Remove unncessary include  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28160  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-08 01:33:11 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						7328797b16 
					 
					
						
						
							
							Somehow, I missed this part of the checkin a couple days ago  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28116  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-05 01:13:11 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						55d0fa1bfa 
					 
					
						
						
							
							Remove the temporary option: -no-isel-fold-inflight  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28012  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-28 18:54:11 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						552c4a8494 
					 
					
						
						
							
							Added a temporary option -no-isel-fold-inflight to control whether a "inflight"  
						
						... 
						
						
						
						node can be folded.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28003  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-28 02:09:19 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						9453eea49b 
					 
					
						
						
							
							Fix the updating of the machine CFG when a PHI node was in a successor of  
						
						... 
						
						
						
						the jump table's range check block.  This re-enables 100% dense jump tables
by default on PPC & x86
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27952  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-23 06:26:20 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						37efe67645 
					 
					
						
						
							
							JumpTable support!  What this represents is working asm and jit support for  
						
						... 
						
						
						
						x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27947  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-22 18:53:45 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						f15485a8d0 
					 
					
						
						
							
							SelectionDAGISel can now natively handle Switch instructions, in the same  
						
						... 
						
						
						
						manner that the LowerSwitch LLVM to LLVM pass does: emitting a binary
search tree of basic blocks.  The new approach has several advantages:
it is faster, it generates significantly smaller code in many cases, and
it paves the way for implementing dense switch tables as a jump table by
handling switches directly in the instruction selector.
This functionality is currently only enabled on x86, but should be safe for
every target.  In anticipation of making it the default, the cfg is now
properly updated in the x86, ppc, and sparc select lowering code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27156  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-27 01:32:24 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b0d21ef20c 
					 
					
						
						
							
							Change the interface for getting a target HazardRecognizer to be more clean.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26608  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-08 04:25:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						37e30cf736 
					 
					
						
						
							
							Hoist the HazardRecognizer out of the ScheduleDAGList.cpp file to where  
						
						... 
						
						
						
						targets can implement them.  Make the top-down scheduler non-g5-specific.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26568  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-06 00:20:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4c12e719c9 
					 
					
						
						
							
							Add some hooks for selecting memory addresses.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26347  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-02-24 02:12:52 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						a9c2091cd3 
					 
					
						
						
							
							Do some code refactoring on Jim's scheduler in preparation of the new list  
						
						... 
						
						
						
						scheduler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25493  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-21 02:32:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						66bac3c740 
					 
					
						
						
							
							add a method  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22867  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-18 18:44:33 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c809b68357 
					 
					
						
						
							
							This was moved to the .cpp file  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22827  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-17 06:46:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cc13b76246 
					 
					
						
						
							
							add a new method  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21929  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-13 07:23:03 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						ea61c35872 
					 
					
						
						
							
							Remove trailing whitespace  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21409  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 20:39:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						80d8a93489 
					 
					
						
						
							
							Make methods private, add a method.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19634  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-17 17:14:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8a496fcffd 
					 
					
						
						
							
							Add a new node type, add comments.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19525  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-13 17:58:35 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cc524ca1c1 
					 
					
						
						
							
							Common base class for SelectionDAG-based instruction selectors.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19326  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-07 07:46:03 +00:00