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  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								261779bb45 
								
							 
						 
						
							
							
								
								Make target asm info a property of the target machine.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30162 
							
						 
						
							2006-09-07 22:06:40 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								95b3dde8bb 
								
							 
						 
						
							
							
								
								Fix pasto that was breaking x86 tests.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30151 
							
						 
						
							2006-09-07 18:50:20 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								707339a57b 
								
							 
						 
						
							
							
								
								Fix CodeGen/Generic/2006-09-06-SwitchLowering.ll, a bug where SDIsel inserted  
							
							 
							
							... 
							
							
							
							too many phi operands when lowering a switch to branches in some cases.
llvm-svn: 30142 
							
						 
						
							2006-09-07 01:59:34 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								a6211dcdad 
								
							 
						 
						
							
							
								
								Separate target specific asm properties from the asm printers.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30126 
							
						 
						
							2006-09-06 18:34:40 +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
							
						 
						
							 
							
							
							
							
								
							
							
								2cb238320d 
								
							 
						 
						
							
							
								
								Only call isUse/isDef on register operands  
							
							 
							
							... 
							
							
							
							llvm-svn: 30118 
							
						 
						
							2006-09-05 20:19:27 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								45456d44e3 
								
							 
						 
						
							
							
								
								Don't call isDef on non-registers  
							
							 
							
							... 
							
							
							
							llvm-svn: 30117 
							
						 
						
							2006-09-05 20:02:51 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0dce3311c4 
								
							 
						 
						
							
							
								
								Change the default to 0, which means 'default'.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30114 
							
						 
						
							2006-09-05 17:39:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								af23f9b5f6 
								
							 
						 
						
							
							
								
								Completely eliminate def&use operands.  Now a register operand is EITHER a  
							
							 
							
							... 
							
							
							
							def operand or a use operand.
llvm-svn: 30109 
							
						 
						
							2006-09-05 02:31:13 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								13a5dcddce 
								
							 
						 
						
							
							
								
								Fix a long-standing wart in the code generator: two-address instruction lowering  
							
							 
							
							... 
							
							
							
							actually *removes* one of the operands, instead of just assigning both operands
the same register.  This make reasoning about instructions unnecessarily complex,
because you need to know if you are before or after register allocation to match
up operand #'s with the target description file.
Changing this also gets rid of a bunch of hacky code in various places.
This patch also includes changes to fold loads into cmp/test instructions in
the X86 backend, along with a significant simplification to the X86 spill
folding code.
llvm-svn: 30108 
							
						 
						
							2006-09-05 02:12:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1eed04d1fb 
								
							 
						 
						
							
							
								
								Correct fix for a crasher on functions with live in values  
							
							 
							
							... 
							
							
							
							llvm-svn: 30099 
							
						 
						
							2006-09-04 18:27:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bff0b5969f 
								
							 
						 
						
							
							
								
								Hack around a regression I introduced yesterday  
							
							 
							
							... 
							
							
							
							llvm-svn: 30098 
							
						 
						
							2006-09-04 18:20:15 +00:00  
						
					 
				
					
						
							
							
								 
								Duraid Madina
							
						 
						
							 
							
							
							
							
								
							
							
								373be1d1a2 
								
							 
						 
						
							
							
								
								forgot this  
							
							 
							
							... 
							
							
							
							llvm-svn: 30097 
							
						 
						
							2006-09-04 07:44:11 +00:00  
						
					 
				
					
						
							
							
								 
								Duraid Madina
							
						 
						
							 
							
							
							
							
								
							
							
								cf6749e4c0 
								
							 
						 
						
							
							
								
								add setJumpBufSize() and setJumpBufAlignment() to target-lowering.  
							
							 
							
							... 
							
							
							
							Call these from your backend to enjoy setjmp/longjmp goodness, see
lib/Target/IA64/IA64ISelLowering.cpp for an example
llvm-svn: 30095 
							
						 
						
							2006-09-04 06:21:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a916db12e4 
								
							 
						 
						
							
							
								
								new file  
							
							 
							
							... 
							
							
							
							llvm-svn: 30082 
							
						 
						
							2006-09-04 04:16:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8584e940b8 
								
							 
						 
						
							
							
								
								Avoid beating on the mi2i map when we know the answer already.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30066 
							
						 
						
							2006-09-03 08:07:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								774785a79d 
								
							 
						 
						
							
							
								
								minor speedup  
							
							 
							
							... 
							
							
							
							llvm-svn: 30065 
							
						 
						
							2006-09-03 07:53:50 +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
							
						 
						
							 
							
							
							
							
								
							
							
								f8f724a2b1 
								
							 
						 
						
							
							
								
								Move two methods out of line, make them work when the record for a machine  
							
							 
							
							... 
							
							
							
							instruction includes physregs.
llvm-svn: 30061 
							
						 
						
							2006-09-03 00:05:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f2ce949ae9 
								
							 
						 
						
							
							
								
								improve compat with certain versions of GCC (on cygwin?)  
							
							 
							
							... 
							
							
							
							llvm-svn: 30054 
							
						 
						
							2006-09-02 17:37:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								75742e532a 
								
							 
						 
						
							
							
								
								Iteration is required for some cases, even if they don't occur in crafty.  
							
							 
							
							... 
							
							
							
							Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll
llvm-svn: 30050 
							
						 
						
							2006-09-02 05:32:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5a56d30906 
								
							 
						 
						
							
							
								
								When joining two intervals where the RHS is really simple, use a light-weight  
							
							 
							
							... 
							
							
							
							method for joining the live ranges instead of the fully-general one.
llvm-svn: 30049 
							
						 
						
							2006-09-02 05:26:59 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e93762d36e 
								
							 
						 
						
							
							
								
								Allow legalizer to expand ISD::MUL using only MULHS in the rare case that is  
							
							 
							
							... 
							
							
							
							possible and the target only supports MULHS.
llvm-svn: 30022 
							
						 
						
							2006-09-01 18:17:58 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								5352d0cc4d 
								
							 
						 
						
							
							
								
								Corrections.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30021 
							
						 
						
							2006-09-01 12:55:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								93c067dc2d 
								
							 
						 
						
							
							
								
								Pull some code out of a hot recursive function because the common case doesn't  
							
							 
							
							... 
							
							
							
							need recursion.
llvm-svn: 30015 
							
						 
						
							2006-09-01 07:00:23 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3eac2c87aa 
								
							 
						 
						
							
							
								
								Reserve space in the ValueNumberInfo vector.  This speeds up live interval  
							
							 
							
							... 
							
							
							
							analysis 16% on crafty.
Wrap long lines.
llvm-svn: 30012 
							
						 
						
							2006-09-01 06:10:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f765351978 
								
							 
						 
						
							
							
								
								Iterative coallescing doesn't buy us anything (we get identical results on  
							
							 
							
							... 
							
							
							
							crafty with and without it).  Removing it speeds up live intervals 6%.
llvm-svn: 30010 
							
						 
						
							2006-09-01 04:02:42 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								31305c45da 
								
							 
						 
						
							
							
								
								DAG combiner fix for rotates. Previously the outer-most condition checks  
							
							 
							
							... 
							
							
							
							for ROTL availability. This prevents it from forming ROTR for targets that
has ROTR only.
llvm-svn: 29997 
							
						 
						
							2006-08-31 07:41:12 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a700a19d04 
								
							 
						 
						
							
							
								
								Add a special case that speeds up coallescing a bit, but not enough.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29996 
							
						 
						
							2006-08-31 06:48:26 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								78cca7243c 
								
							 
						 
						
							
							
								
								Delete copies as they are coallesced instead of waiting until the end.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29995 
							
						 
						
							2006-08-31 05:58:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								aa36808fd3 
								
							 
						 
						
							
							
								
								avoid calling the virtual isMoveInstr method endlessly by caching its results.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29994 
							
						 
						
							2006-08-31 05:54:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								cb74860cce 
								
							 
						 
						
							
							
								
								Fix a compiler crash bootstrapping llvm-gcc.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29989 
							
						 
						
							2006-08-30 23:02:29 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								34434e97c9 
								
							 
						 
						
							
							
								
								Teach the coallescer to coallesce live intervals joined by an arbitrary  
							
							 
							
							... 
							
							
							
							number of copies, potentially defining live ranges that appear to have
differing value numbers that become identical when coallsced.  Among other
things, this fixes CodeGen/X86/shift-coalesce.ll and PR687.
llvm-svn: 29968 
							
						 
						
							2006-08-29 23:18:15 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								2eebe8b05e 
								
							 
						 
						
							
							
								
								Handle callee saved registers in dwarf frame info (lead up to exception  
							
							 
							
							... 
							
							
							
							handling.)
llvm-svn: 29954 
							
						 
						
							2006-08-29 16:24:26 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e5570a4c3f 
								
							 
						 
						
							
							
								
								Move isCommutativeBinOp from SelectionDAG.cpp and DAGCombiner.cpp out. Make it a static method of SelectionDAG.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29951 
							
						 
						
							2006-08-29 06:42:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c2d3d3112e 
								
							 
						 
						
							
							
								
								eliminate RegisterOpt.  It does the same thing as RegisterPass.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29925 
							
						 
						
							2006-08-27 22:42:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3c9b2420df 
								
							 
						 
						
							
							
								
								Eliminate RegisterAnalysis.  RegisterPass now does all that is necessary.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29921 
							
						 
						
							2006-08-27 22:30:17 +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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2c3683a901 
								
							 
						 
						
							
							
								
								typo fix  
							
							 
							
							... 
							
							
							
							llvm-svn: 29910 
							
						 
						
							2006-08-27 12:47:48 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								849f4bf8dd 
								
							 
						 
						
							
							
								
								Eliminate SelectNodeTo() and getTargetNode() variants which take more than  
							
							 
							
							... 
							
							
							
							3 SDOperand operands. They are replaced by versions which take an array
of SDOperand and the number of operands.
llvm-svn: 29905 
							
						 
						
							2006-08-27 08:08:54 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								7851db75d9 
								
							 
						 
						
							
							
								
								Properly size the string table, and emit symbol table and string table  
							
							 
							
							... 
							
							
							
							entries in the correct order, fixing several fixmes.
llvm-svn: 29902 
							
						 
						
							2006-08-26 15:46:34 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								34b70eea5c 
								
							 
						 
						
							
							
								
								SelectNodeTo now returns a SDNode*.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29901 
							
						 
						
							2006-08-26 08:00:10 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								122f2bcdc2 
								
							 
						 
						
							
							
								
								Simplifications to liveinterval analysis, no functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29896 
							
						 
						
							2006-08-26 01:28:16 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f4f0b1995c 
								
							 
						 
						
							
							
								
								Completely change the way that joining with physregs is implemented.  This  
							
							 
							
							... 
							
							
							
							paves the way for future changes, increases coallescing opportunities (in
theory, not witnessed in practice), and eliminates the really expensive
LiveIntervals::overlapsAliases method.
llvm-svn: 29890 
							
						 
						
							2006-08-25 23:41:24 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								fb96c74874 
								
							 
						 
						
							
							
								
								Tidy up.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29888 
							
						 
						
							2006-08-25 22:56:30 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								92206f9404 
								
							 
						 
						
							
							
								
								Consolidate callee saved register information so that it can me used by debug  
							
							 
							
							... 
							
							
							
							information and exception handling.
llvm-svn: 29881 
							
						 
						
							2006-08-25 19:45:51 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								f8bf1e6034 
								
							 
						 
						
							
							
								
								Allow for register numbers > 31.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29879 
							
						 
						
							2006-08-25 19:39:52 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								89fa9c7d65 
								
							 
						 
						
							
							
								
								Get closer to handling globals correctly.  We now generally get them in the  
							
							 
							
							... 
							
							
							
							right section.
llvm-svn: 29871 
							
						 
						
							2006-08-25 06:36:58 +00:00