Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e563c7eb27 
								
							 
						 
						
							
							
								
								Out of bound reference.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34461 
							
						 
						
							2007-02-21 02:27:39 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								f7ed82da10 
								
							 
						 
						
							
							
								
								Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34428 
							
						 
						
							2007-02-19 21:49:54 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								da81bf4d3e 
								
							 
						 
						
							
							
								
								For PR1207:  
							
							 
							
							... 
							
							
							
							Revert patches that caused the problem. Evan, please investigate and reapply
when you've discovered the problem.
llvm-svn: 34399 
							
						 
						
							2007-02-19 03:20:00 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								2605082f0e 
								
							 
						 
						
							
							
								
								- Changes how function livein's are handled, they now have a start index of 0.  
							
							 
							
							... 
							
							
							
							- When coalescing a copy MI, if its destination is "dead", propagate the
  property to the source MI's destination if there are no intervening uses.
- Detect dead function live-in's and remove them.
llvm-svn: 34383 
							
						 
						
							2007-02-17 11:15:40 +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  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b612316f20 
								
							 
						 
						
							
							
								
								Allow any MachineBasicBlock (not just the entry block) to have live-in physical  
							
							 
							
							... 
							
							
							
							registers. Make sure liveinterval analysis is correctly creating live ranges
for them.
llvm-svn: 34217 
							
						 
						
							2007-02-13 01:30:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								aee775a6b7 
								
							 
						 
						
							
							
								
								Eliminate static ctors from Statistics  
							
							 
							
							... 
							
							
							
							llvm-svn: 32698 
							
						 
						
							2006-12-19 22:41:21 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								f3baad3ee1 
								
							 
						 
						
							
							
								
								Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are  
							
							 
							
							... 
							
							
							
							now cerr, cout, and NullStream resp.
llvm-svn: 32298 
							
						 
						
							2006-12-07 01:30:32 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e312c152d2 
								
							 
						 
						
							
							
								
								MI keeps a ptr of TargetInstrDescriptor, use it.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32296 
							
						 
						
							2006-12-07 01:21:59 +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  
						
					 
				
					
						
							
							
								 
								Jeff Cohen
							
						 
						
							 
							
							
							
							
								
							
							
								cc08c83186 
								
							 
						 
						
							
							
								
								Unbreak VC++ build.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32113 
							
						 
						
							2006-12-02 02:22:01 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								67fc141db5 
								
							 
						 
						
							
							
								
								Match TargetInstrInfo changes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32098 
							
						 
						
							2006-12-01 21:52:58 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								5c3966aa68 
								
							 
						 
						
							
							
								
								Converted to using llvm streams instead of <iostream>s  
							
							 
							
							... 
							
							
							
							llvm-svn: 31992 
							
						 
						
							2006-11-29 00:39:47 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								d811cc6818 
								
							 
						 
						
							
							
								
								Don't recompute getNumOperands for each iteration.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31783 
							
						 
						
							2006-11-16 07:35:18 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								c7969fd1e7 
								
							 
						 
						
							
							
								
								Added a new method "CreateNewLiveInterval" which, given a list of  
							
							 
							
							... 
							
							
							
							LiveRanges, creates a new LiveInterval from them. The LiveRanges should
have existed already in another LiveInterval, but removed.
llvm-svn: 31780 
							
						 
						
							2006-11-16 02:41:50 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								12ea213de9 
								
							 
						 
						
							
							
								
								A register def can be partially dead when the whole register has use(s) but a subreg does not.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31760 
							
						 
						
							2006-11-15 20:54:11 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								8c9c6d71ed 
								
							 
						 
						
							
							
								
								Add implicit def / use operands to MachineInstr.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31633 
							
						 
						
							2006-11-10 08:43:01 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								61feeb90f9 
								
							 
						 
						
							
							
								
								Remove redundant <cmath>.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31561 
							
						 
						
							2006-11-08 19:16:44 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b18177bfab 
								
							 
						 
						
							
							
								
								Enable improved spilling costs by default.  This speeds up viterbi on x86  
							
							 
							
							... 
							
							
							
							by 40%, FreeBench/fourinarow by 20%, and many other programs 10-25%.
On PPC, this speeds up fourinarow by 18%, and probably other things as well.
llvm-svn: 31504 
							
						 
						
							2006-11-07 18:04:58 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								6a9342166b 
								
							 
						 
						
							
							
								
								Use correct value for float HUGH_VAL.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31500 
							
						 
						
							2006-11-07 12:25:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								01d039cc44 
								
							 
						 
						
							
							
								
								Add a new llcbeta option.  This speeds up viterbi from 12.34 to 8.76s on  
							
							 
							
							... 
							
							
							
							X86.  If happy, I'll enable this by default.
llvm-svn: 31493 
							
						 
						
							2006-11-07 07:18:40 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								299022d514 
								
							 
						 
						
							
							
								
								Proper check for two-addressness.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31408 
							
						 
						
							2006-11-03 03:04:46 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								de46e48420 
								
							 
						 
						
							
							
								
								For PR786:  
							
							 
							
							... 
							
							
							
							Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
llvm-svn: 31380 
							
						 
						
							2006-11-02 20:25:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8fb3d445f5 
								
							 
						 
						
							
							
								
								Keep track of the start of MBB's in a separate map from instructions.  This  
							
							 
							
							... 
							
							
							
							is faster and is needed for future improvements.
llvm-svn: 30383 
							
						 
						
							2006-09-15 03:57:23 +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  
						
					 
				
					
						
							
							
								 
								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
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								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  
						
					 
				
					
						
							
							
								 
								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  
						
					 
				
					
						
							
							
								 
								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
							
						 
						
							 
							
							
							
							
								
							
							
								2c3683a901 
								
							 
						 
						
							
							
								
								typo fix  
							
							 
							
							... 
							
							
							
							llvm-svn: 29910 
							
						 
						
							2006-08-27 12:47:48 +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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bdf121060c 
								
							 
						 
						
							
							
								
								Take advantage of the recent improvements to the liveintervals set (tracking  
							
							 
							
							... 
							
							
							
							instructions which define each value#) to simplify and improve the coallescer.
In particular, this patch:
1. Implements iterative coallescing.
2. Reverts an unsafe hack from handlePhysRegDef, superceeding it with a
   better solution.
3. Implements PR865, "coallescing" away the second copy in code like:
   A = B
   ...
   B = A
This also includes changes to symbolically print registers in intervals
when possible.
llvm-svn: 29862 
							
						 
						
							2006-08-24 22:43:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2e9f1bc056 
								
							 
						 
						
							
							
								
								Improve the LiveInterval class to keep track of which machine instruction  
							
							 
							
							... 
							
							
							
							defines each value# tracked by the interval.  This will be used to improve
coallescing.
llvm-svn: 29830 
							
						 
						
							2006-08-22 18:19:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1d77a0ff88 
								
							 
						 
						
							
							
								
								Print physreg names symbolically in dumps  
							
							 
							
							... 
							
							
							
							llvm-svn: 29805 
							
						 
						
							2006-08-21 23:03:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								213159a6ee 
								
							 
						 
						
							
							
								
								Print debug info as:  
							
							 
							
							... 
							
							
							
							*** Register mapping ***
  reg 1024 -> %reg1028
  reg 1026 -> EAX
  reg 1027 -> %reg1028
instead of:
*** Register mapping ***
  reg 1024 -> reg 1028
  reg 1026 -> reg 15
  reg 1027 -> reg 1028
llvm-svn: 29803 
							
						 
						
							2006-08-21 22:56:29 +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
							
						 
						
							 
							
							
							
							
								
							
							
								c496b418b5 
								
							 
						 
						
							
							
								
								Reduce number of exported symbols  
							
							 
							
							... 
							
							
							
							llvm-svn: 29220 
							
						 
						
							2006-07-20 17:28:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								aa2372562e 
								
							 
						 
						
							
							
								
								Patches to make the LLVM sources more -pedantic clean.  Patch provided  
							
							 
							
							... 
							
							
							
							by Anton Korobeynikov!  This is a step towards closing PR786.
llvm-svn: 28447 
							
						 
						
							2006-05-24 17:04:05 +00:00