Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								52c15b3e6d 
								
							 
						 
						
							
							
								
								Really really bad local register allocator bug. On X86, it was never using ESI, EDI, and EBP because of a bug in RALocal::isPhysRegAvailable(). For example, when  
							
							 
							
							... 
							
							
							
							it checks if ESI is available, it then looks at registers aliases to ESI. SIL is marked -2 (not allocatable) but isPhysRegAvailable() incorrectly assumes it is in use and returns false for ESI.
llvm-svn: 47499 
							
						 
						
							2008-02-22 20:30:53 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a1977d32f0 
								
							 
						 
						
							
							
								
								Add debugging printfs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 47496 
							
						 
						
							2008-02-22 19:57:06 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								18991d78fa 
								
							 
						 
						
							
							
								
								Fix newly-introduced 4.3 warnings  
							
							 
							
							... 
							
							
							
							llvm-svn: 47375 
							
						 
						
							2008-02-20 12:07:57 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								ad4d57a2f5 
								
							 
						 
						
							
							
								
								Determine whether a spill kills the register it's spilling before insertion rather than trying to undo the kill marker afterwards.  
							
							 
							
							... 
							
							
							
							llvm-svn: 46953 
							
						 
						
							2008-02-11 08:30:52 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								3a4be0fdef 
								
							 
						 
						
							
							
								
								Rename MRegisterInfo to TargetRegisterInfo.  
							
							 
							
							... 
							
							
							
							llvm-svn: 46930 
							
						 
						
							2008-02-10 18:45:23 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6a80462568 
								
							 
						 
						
							
							
								
								Remove remnant of load folding in local register allocator. Patch by Holger Schurig.  
							
							 
							
							... 
							
							
							
							llvm-svn: 46861 
							
						 
						
							2008-02-07 19:46:55 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								1ec748c784 
								
							 
						 
						
							
							
								
								Fix a number of local register allocator issues: PR1609.  
							
							 
							
							... 
							
							
							
							llvm-svn: 46821 
							
						 
						
							2008-02-06 19:16:53 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								8291ab4449 
								
							 
						 
						
							
							
								
								RegAllocaLocal still *requires* LiveVariables since it runs PHIElimination, followed by TwoAddress which requires LiveVariables. We cannot run LiveVariables on non-SSA code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 46813 
							
						 
						
							2008-02-06 08:00:32 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								9a8c890c02 
								
							 
						 
						
							
							
								
								Reg alloc doesn't really need LiveVariables.  
							
							 
							
							... 
							
							
							
							llvm-svn: 46420 
							
						 
						
							2008-01-27 22:00:00 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								54c20b559e 
								
							 
						 
						
							
							
								
								When a live virtual register is being clobbered by an implicit def, it is spilled  
							
							 
							
							... 
							
							
							
							and the spill is its kill. However, if the local allocator has determined the
register has not been modified (possible when its value was reloaded), it would
not issue a restore. In that case, mark the last use of the virtual register as
kill.
llvm-svn: 46111 
							
						 
						
							2008-01-17 02:08:17 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								dc5b4c57d7 
								
							 
						 
						
							
							
								
								Replace std::vector<bool> with BitVector.  
							
							 
							
							... 
							
							
							
							llvm-svn: 46104 
							
						 
						
							2008-01-17 00:35:26 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								03ad885039 
								
							 
						 
						
							
							
								
								rename TargetInstrDescriptor -> TargetInstrDesc.  
							
							 
							
							... 
							
							
							
							Make MachineInstr::getDesc return a reference instead
of a pointer, since it can never be null.
llvm-svn: 45695 
							
						 
						
							2008-01-07 07:27:27 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								0ec92e9d64 
								
							 
						 
						
							
							
								
								Update CodeGen for MRegisterInfo --> TargetInstrInfo changes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45673 
							
						 
						
							2008-01-07 01:35:56 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								eee14601b1 
								
							 
						 
						
							
							
								
								Move some more instruction creation methods from RegisterInfo into InstrInfo.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45484 
							
						 
						
							2008-01-01 21:11:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a10fff51d9 
								
							 
						 
						
							
							
								
								Rename SSARegMap -> MachineRegisterInfo in keeping with the idea  
							
							 
							
							... 
							
							
							
							that "machine" classes are used to represent the current state of
the code being compiled.  Given this expanded name, we can start 
moving other stuff into it.  For now, move the UsedPhysRegs and
LiveIn/LoveOuts vectors from MachineFunction into it.
Update all the clients to match.
This also reduces some needless #includes, such as MachineModuleInfo
from MachineFunction.
llvm-svn: 45467 
							
						 
						
							2007-12-31 04:13:23 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								bb26301864 
								
							 
						 
						
							
							
								
								Add a argument to storeRegToStackSlot and storeRegToAddr to specify whether  
							
							 
							
							... 
							
							
							
							the stored register is killed.
llvm-svn: 44600 
							
						 
						
							2007-12-05 03:14:33 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								f45a1d623c 
								
							 
						 
						
							
							
								
								Remove redundant foldMemoryOperand variants and other code clean up.  
							
							 
							
							... 
							
							
							
							llvm-svn: 44517 
							
						 
						
							2007-12-02 08:30:39 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5163a8f53e 
								
							 
						 
						
							
							
								
								Add missing paratheses.  
							
							 
							
							... 
							
							
							
							llvm-svn: 43227 
							
						 
						
							2007-10-22 19:42:28 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								4bf87f1f44 
								
							 
						 
						
							
							
								
								Correctly handle implcit def / use operands.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37740 
							
						 
						
							2007-06-26 21:05:13 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								31fd60ba0c 
								
							 
						 
						
							
							
								
								Change names from RA to something unique to get rid of naming conflicts with  
							
							 
							
							... 
							
							
							
							certain linkers...
llvm-svn: 36944 
							
						 
						
							2007-05-08 19:02:46 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								8c78a0bff0 
								
							 
						 
						
							
							
								
								Drop 'const'  
							
							 
							
							... 
							
							
							
							llvm-svn: 36662 
							
						 
						
							2007-05-03 01:11:54 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								e95c6ad802 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 36652 
							
						 
						
							2007-05-02 21:39:20 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								09f162ca6a 
								
							 
						 
						
							
							
								
								Do not use typeinfo to identify pass in pass manager.  
							
							 
							
							... 
							
							
							
							llvm-svn: 36632 
							
						 
						
							2007-05-01 21:15:47 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								0ba174534c 
								
							 
						 
						
							
							
								
								Match MachineFunction::UsedPhysRegs changes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 36452 
							
						 
						
							2007-04-25 22:13:27 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								14edd1989b 
								
							 
						 
						
							
							
								
								Use BitVector instead of vector<bool> which can be extremely slow.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34302 
							
						 
						
							2007-02-15 05:59:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1003dc72b4 
								
							 
						 
						
							
							
								
								rename DenseMap to IndexedMap.  
							
							 
							
							... 
							
							
							
							llvm-svn: 33749 
							
						 
						
							2007-02-01 05:32:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								aee775a6b7 
								
							 
						 
						
							
							
								
								Eliminate static ctors from Statistics  
							
							 
							
							... 
							
							
							
							llvm-svn: 32698 
							
						 
						
							2006-12-19 22:41:21 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								22e978a736 
								
							 
						 
						
							
							
								
								Removing even more <iostream> includes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32320 
							
						 
						
							2006-12-07 20:04:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								700b873130 
								
							 
						 
						
							
							
								
								Detemplatize the Statistic class.  The only type it is instantiated with  
							
							 
							
							... 
							
							
							
							is 'unsigned'.
llvm-svn: 32279 
							
						 
						
							2006-12-06 17:46:33 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								9d46fcd59c 
								
							 
						 
						
							
							
								
								More removal of std::cerr and DEBUG, replacing with DOUT instead.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31806 
							
						 
						
							2006-11-17 02:09:07 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								0ffff1c629 
								
							 
						 
						
							
							
								
								Match live variable changes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31762 
							
						 
						
							2006-11-15 20:55:15 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								8c9c6d71ed 
								
							 
						 
						
							
							
								
								Add implicit def / use operands to MachineInstr.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31633 
							
						 
						
							2006-11-10 08:43:01 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								698000b0da 
								
							 
						 
						
							
							
								
								Fix UnitTests/2005-05-12-Int64ToFP.c with llc-beta.  In particular, do not  
							
							 
							
							... 
							
							
							
							allow it to go into an infinite loop, filling up the disk!
llvm-svn: 30494 
							
						 
						
							2006-09-19 18:02:01 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b2e7316b2d 
								
							 
						 
						
							
							
								
								Non-allocatable physregs can be killed and dead, but don't treat them as  
							
							 
							
							... 
							
							
							
							safe for later allocation.  This fixes McCat/18-imp with llc-beta.
llvm-svn: 30204 
							
						 
						
							2006-09-08 20:21:31 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								050c64c51d 
								
							 
						 
						
							
							
								
								This fixes Benchmarks/Prolangs-C/unix-smail  
							
							 
							
							... 
							
							
							
							llvm-svn: 30198 
							
						 
						
							2006-09-08 19:11:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9b1a6ebf20 
								
							 
						 
						
							
							
								
								Fix a bunch of llc-beta failures on x86 yesterday.  Don't allow selection  
							
							 
							
							... 
							
							
							
							of unallocatable registers, just because an alias is allocatable.  We were
picking registers like SIL just because ESI was being used.
llvm-svn: 30197 
							
						 
						
							2006-09-08 19:03:30 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								ddfb10b5af 
								
							 
						 
						
							
							
								
								Only call isUse/isDef on register operands  
							
							 
							
							... 
							
							
							
							llvm-svn: 30122 
							
						 
						
							2006-09-05 20:32:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7cc20d418b 
								
							 
						 
						
							
							
								
								Fix Regression/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll on X86.  
							
							 
							
							... 
							
							
							
							Just because an alias of a register is available, it doesn't mean that we
can arbitrarily evict the register.
llvm-svn: 30064 
							
						 
						
							2006-09-03 07:15:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bd79458b0e 
								
							 
						 
						
							
							
								
								When deleting a machine instruction, make sure to remove it from the  
							
							 
							
							... 
							
							
							
							livevariables information.  This fixes several regalloc=local failures on x86
llvm-svn: 30062 
							
						 
						
							2006-09-03 00:06:08 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3d27be1333 
								
							 
						 
						
							
							
								
								s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|  
							
							 
							
							... 
							
							
							
							llvm-svn: 29911 
							
						 
						
							2006-08-27 12:54:02 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								29e635d3c9 
								
							 
						 
						
							
							
								
								Final polish on machine pass registries.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29471 
							
						 
						
							2006-08-02 12:30:23 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								95eda5b1f3 
								
							 
						 
						
							
							
								
								Introducing plugable register allocators and instruction schedulers.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29434 
							
						 
						
							2006-08-01 14:21:23 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								4b49c23571 
								
							 
						 
						
							
							
								
								Eliminate data relocations by using NULL instead of global empty list.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29250 
							
						 
						
							2006-07-21 21:15:20 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								ec104a2b41 
								
							 
						 
						
							
							
								
								80 cols  
							
							 
							
							... 
							
							
							
							llvm-svn: 29221 
							
						 
						
							2006-07-20 17:43:27 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								c496b418b5 
								
							 
						 
						
							
							
								
								Reduce number of exported symbols  
							
							 
							
							... 
							
							
							
							llvm-svn: 29220 
							
						 
						
							2006-07-20 17:28:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								996795b0dd 
								
							 
						 
						
							
							
								
								Use hidden visibility to make symbols in an anonymous namespace get  
							
							 
							
							... 
							
							
							
							dropped.  This shrinks libllvmgcc.dylib another 67K
llvm-svn: 28975 
							
						 
						
							2006-06-28 23:17:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4ff6c1646f 
								
							 
						 
						
							
							
								
								Teach the local allocator to know that live-in values (e.g. arguments) are  
							
							 
							
							... 
							
							
							
							live at function entry.  This prevents it from using arg registers for other
purposes before the arguments are used.
llvm-svn: 28809 
							
						 
						
							2006-06-15 22:21:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								10d6341618 
								
							 
						 
						
							
							
								
								Move some methods out of MachineInstr into MachineOperand  
							
							 
							
							... 
							
							
							
							llvm-svn: 28102 
							
						 
						
							2006-05-04 17:52:23 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								de02d7727f 
								
							 
						 
						
							
							
								
								Add explicit #includes of <iostream>  
							
							 
							
							... 
							
							
							
							llvm-svn: 25515 
							
						 
						
							2006-01-22 23:41:00 +00:00