Evan Cheng 
							
						 
					 
					
						
						
							
						
						3f32d65912 
					 
					
						
						
							
							Add a stack slot coloring pass. Not yet enabled.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51934  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-04 09:18:41 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						6ddba2b933 
					 
					
						
						
							
							Change class' public PassInfo variables to by initialized with the  
						
						... 
						
						
						
						address of the PassInfo directly instead of calling getPassInfo.
This eliminates a bunch of dynamic initializations of static data.
Also, fold RegisterPassBase into PassInfo, make a bunch of its
data members const, and rearrange some code to initialize data
members in constructors instead of using setter member functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51022  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-13 02:05:11 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						fb8075d03f 
					 
					
						
						
							
							Add a quick and dirty "loop aligner pass". x86 uses it to align its loops to 16-byte boundaries.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47703  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-28 00:43:03 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						67d65bb69d 
					 
					
						
						
							
							Don't recalculate the loop info and loop dominators analyses if they're  
						
						... 
						
						
						
						preserved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45596  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-04 20:54:55 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c4ce73f666 
					 
					
						
						
							
							Add a really quick hack at a machine code sinking pass, enabled with --enable-sinking.  
						
						... 
						
						
						
						It is missing validity checks, so it is known broken.  However, it is powerful enough
to compile this contrived code:
void test1(int C, double A, double B, double *P) {
  double Tmp = A*A+B*B;
  *P = C ? Tmp : A;
}
into:
_test1:
	movsd	8(%esp), %xmm0
	cmpl	$0, 4(%esp)
	je	LBB1_2	# entry
LBB1_1:	# entry
	movsd	16(%esp), %xmm1
	mulsd	%xmm1, %xmm1
	mulsd	%xmm0, %xmm0
	addsd	%xmm1, %xmm0
LBB1_2:	# entry
	movl	24(%esp), %eax
	movsd	%xmm0, (%eax)
	ret
instead of:
_test1:
	movsd	16(%esp), %xmm0
	mulsd	%xmm0, %xmm0
	movsd	8(%esp), %xmm1
	movapd	%xmm1, %xmm2
	mulsd	%xmm2, %xmm2
	addsd	%xmm0, %xmm2
	cmpl	$0, 4(%esp)
	je	LBB1_2	# entry
LBB1_1:	# entry
	movapd	%xmm2, %xmm1
LBB1_2:	# entry
	movl	24(%esp), %eax
	movsd	%xmm1, (%eax)
	ret
woo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45570  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-04 07:36:53 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7ed47a1335 
					 
					
						
						
							
							Don't attribute in file headers anymore.  See llvmdev for the  
						
						... 
						
						
						
						discussion of this change.  Boy are my fingers tired. ;-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-29 19:59:42 +00:00 
						 
				 
			
				
					
						
							
							
								Gordon Henriksen 
							
						 
					 
					
						
						
							
						
						ad93c4f936 
					 
					
						
						
							
							CollectorMetadata and Collector are rejiggered to get along with  
						
						... 
						
						
						
						per-function collector model. Collector is now the factory for
CollectorMetadata, so the latter may be subclassed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44827  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-11 00:30:17 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						0f940c95d4 
					 
					
						
						
							
							Initial commit of the machine code LICM pass. It successfully hoists this:  
						
						... 
						
						
						
						_foo:
        li r2, 0
LBB1_1: ; bb
        li r5, 0
        stw r5, 0(r3)
        addi r2, r2, 1
        addi r3, r3, 4
        cmplw cr0, r2, r4
        bne cr0, LBB1_1 ; bb
LBB1_2: ; return
        blr 
to:
_foo:
        li r2, 0
        li r5, 0
LBB1_1: ; bb
        stw r5, 0(r3)
        addi r2, r2, 1
        addi r3, r3, 4
        cmplw cr0, r2, r4
        bne cr0, LBB1_1 ; bb
LBB1_2: ; return
        blr
ZOMG!! :-)
Moar to come...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44687  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-07 21:42:31 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						fe0c882e5a 
					 
					
						
						
							
							As Chris and Evan pointed out, BreakCriticalMachineEdges doesn't really need  
						
						... 
						
						
						
						to be a pass of its own.  Instead, move it out into a helper method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44002  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-12 01:05:09 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						d195ce1fb6 
					 
					
						
						
							
							Make BreakCriticalMachineEdges available as a pass that can be depended on.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43910  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-08 22:20:23 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						0bda0e8895 
					 
					
						
						
							
							Add the skeleton of a better PHI elimination pass.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43542  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-10-31 03:37:57 +00:00 
						 
				 
			
				
					
						
							
							
								David Greene 
							
						 
					 
					
						
						
							
						
						2c17c4d8d9 
					 
					
						
						
							
							Pluggable coalescers inplementation.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41743  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-06 16:18:45 +00:00 
						 
				 
			
				
					
						
							
							
								Christopher Lamb 
							
						 
					 
					
						
						
							
						
						98363225a3 
					 
					
						
						
							
							Implement review feedback. No functionality change.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40863  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-06 16:33:56 +00:00 
						 
				 
			
				
					
						
							
							
								Christopher Lamb 
							
						 
					 
					
						
						
							
						
						bab2474b64 
					 
					
						
						
							
							Add a MachineFunction pass, which runs post register allocation, that turns subreg insert/extract instruction into register copies. This ensures correct code gen if the coalescer isn't able to remove all subreg instructions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40521  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-07-26 08:18:32 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						e7e7d0d7e3 
					 
					
						
						
							
							Skeleton of post-RA scheduler; doesn't do anything yet.  
						
						... 
						
						
						
						Change name of -sched option and DEBUG_TYPE to
pre-RA-sched; adjust testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39816  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-07-13 17:13:54 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						ff8b732feb 
					 
					
						
						
							
							Remove declarations for code no longer in the tree, to avoid confusion.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37840  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-07-02 15:06:26 +00:00 
						 
				 
			
				
					
						
							
							
								Duraid Madina 
							
						 
					 
					
						
						
							
						
						a8c7682939 
					 
					
						
						
							
							check in the BigBlock local register allocator  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37703  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-06-22 08:27:12 +00:00 
						 
				 
			
				
					
						
							
							
								David Greene 
							
						 
					 
					
						
						
							
						
						2513330de8 
					 
					
						
						
							
							Factor live variable analysis so it does not do register coalescing  
						
						... 
						
						
						
						simultaneously.  Move that pass to SimpleRegisterCoalescing.
This makes it easier to implement alternative register allocation and
coalescing strategies while maintaining reuse of the existing live
interval analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37520  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-06-08 17:18:56 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						81da02b553 
					 
					
						
						
							
							Make tail merging the default, except on powerPC.  There was no prior art  
						
						... 
						
						
						
						for a target-dependent default with a command-line override; this way
should be generally usable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37285  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-22 17:14:46 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						4e654852f1 
					 
					
						
						
							
							Initial commit of (very basic) if converter.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37092  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-16 02:00:57 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						a90ba6c2aa 
					 
					
						
						
							
							Oops! didn't mean to put this in there yet.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32014  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-29 07:31:23 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						68fe61d6a1 
					 
					
						
						
							
							Replacing std::iostreams with llvm iostreams. Some of these changes involve  
						
						... 
						
						
						
						adding a temporary wrapper around the ostream to make it friendly to
functions expecting an LLVM stream. This should be fixed in the future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31990  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-29 00:19:40 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						9d4209fb82 
					 
					
						
						
							
							1. Add a pass to fold debug label instructions so a debug info client can detect  
						
						... 
						
						
						
						empty ranges.
2. Reorg how MachineDebugInfo maintains changes to debug labels.
3. Have dwarf writer use debug label info to simplify scopes and source line
coorespondence.
4. Revert the merging of compile units until I can get the bugs ironed out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31507  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-07 19:33:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						41e087c7e6 
					 
					
						
						
							
							Remove a prototype  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23951  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-24 04:13:21 +00:00 
						 
				 
			
				
					
						
							
							
								Tanya Lattner 
							
						 
					 
					
						
						
							
						
						9d6b6280c7 
					 
					
						
						
							
							Adding ModuloSched SB.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21648  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-01 16:14:34 +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 
							
						 
					 
					
						
						
							
						
						36c29dbbee 
					 
					
						
						
							
							New pass  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15367  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-31 09:59:14 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						910d0d6066 
					 
					
						
						
							
							Add Iterative scan register allocator.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15068  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-21 08:24:35 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8b708e4752 
					 
					
						
						
							
							Add a new pass for code generators to use  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14562  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-02 05:44:13 +00:00 
						 
				 
			
				
					
						
							
							
								Tanya Lattner 
							
						 
					 
					
						
						
							
						
						5a75c91951 
					 
					
						
						
							
							Registering the ModuloScheduling pass.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13427  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-08 16:14:02 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						fc1f6e835c 
					 
					
						
						
							
							Include <iosfwd> and <string> instead of <iostream>.  
						
						... 
						
						
						
						Take away the default iostream argument of createMachineFunctionPrinterPass(),
at Chris's request.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11121  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-04 21:41:10 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						09caa3751f 
					 
					
						
						
							
							Give clients of MachineFunctionPrinter the ability to specify a banner and  
						
						... 
						
						
						
						choose an ostream.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11016  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-01-30 21:53:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3e200e6c3b 
					 
					
						
						
							
							Rearrange code, indent for the namespace, add the createMachineFunctionPrinterPass  
						
						... 
						
						
						
						to passes.h, and add the machien destruction pass to Passes.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10557  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-20 10:18:58 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						4c080863de 
					 
					
						
						
							
							Remove TwoAddressInstruction from the public headers and add an ID  
						
						... 
						
						
						
						instead, since this pass doesn't expose any state to its users.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10520  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-18 22:40:24 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						ff0cbe175d 
					 
					
						
						
							
							Merging the linear scan register allocator in trunk. It currently passes most tests under test/Programs/SingleSource/Benchmarks/Shootout so development will continue on trunk. The allocator is not enabled by default. You will need to pass -regallo=linearscan to lli or llc to use it.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10103  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-11-20 03:32:25 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						d0fde30ce8 
					 
					
						
						
							
							Put all LLVM code into the llvm namespace, as per bug 109.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-11-11 22:41:34 +00:00 
						 
				 
			
				
					
						
							
							
								John Criswell 
							
						 
					 
					
						
						
							
						
						6fbcc26f14 
					 
					
						
						
							
							Added LLVM copyright header (for lack of a better term).  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-10-20 20:19:47 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						7237ecef13 
					 
					
						
						
							
							Moved enum and command-line option in separate file. Also added function that returns the user selected register allocator to the caller.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8819  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-10-02 16:57:49 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						eed462b685 
					 
					
						
						
							
							Change llc command line for register allocators  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8815  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-10-02 06:13:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e5d1a22ef2 
					 
					
						
						
							
							Forward declare a class  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8797  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-09-30 20:15:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						086610926f 
					 
					
						
						
							
							Include the sparc register in this file  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8794  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-09-30 20:14:43 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						ef6a6a69ff 
					 
					
						
						
							
							The word dependent' has no a'.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8030  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-08-21 22:14:26 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						19df3876e6 
					 
					
						
						
							
							Factory methods for FunctionPasses now return type FunctionPass *.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7823  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-08-13 18:18:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						db00065fc8 
					 
					
						
						
							
							Add new files  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5259  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-01-13 01:01:31 +00:00