Lang Hames 
							
						 
					 
					
						
						
							
						
						ffd1326ff8 
					 
					
						
						
							
							Improved tracking of value number kills. VN kills are now represented  
						
						... 
						
						
						
						as an (index,bool) pair. The bool flag records whether the kill is a
PHI kill or not. This code will be used to enable splitting of live
intervals containing PHI-kills.
A slight change to live interval weights introduced an extra spill
into lsr-code-insertion (outside the critical sections). The test 
condition has been updated to reflect this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75097  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-09 03:57:02 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						2578ba26e7 
					 
					
						
						
							
							Handle IMPLICIT_DEF with isUndef operand marker, part 2. This patch moves the code to annotate machineoperands to LiveIntervalAnalysis. It also add markers for implicit_def that define physical registers. The rest, is just a lot of details.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74580  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-01 01:59:31 +00:00 
						 
				 
			
				
					
						
							
							
								Lang Hames 
							
						 
					 
					
						
						
							
						
						f41538d1b5 
					 
					
						
						
							
							Update to in-place spilling framework. Includes live interval scaling and trivial rewriter.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72729  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-06-02 16:53:25 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c781a243a3 
					 
					
						
						
							
							In some rare cases, the register allocator can spill registers but end up not utilizing registers at all. The fundamental problem is linearscan's backtracking can end up freeing more than one allocated registers. However,  reloads and restores might be folded into uses / defs and freed registers might not be used at all.  
						
						... 
						
						
						
						VirtRegMap keeps track of allocations so it knows what's not used. As a horrible hack, the stack coloring can color spill slots with *free* registers. That is, it replace reload and spills with copies from and to the free register. It unfold instructions that load and store the spill slot and replace them with register using variants.
Not yet enabled. This is part 1. More coming.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70787  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-03 18:32:42 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5b69ebac85 
					 
					
						
						
							
							It has finally happened. Spiller is now using live interval info.  
						
						... 
						
						
						
						This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69743  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-04-21 22:46:52 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						2824a65550 
					 
					
						
						
							
							Fix PR3391 and PR3864. Reg allocator infinite looping.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67544  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-23 18:24:37 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						0a1fcce092 
					 
					
						
						
							
							Fix PR3486. Fix a bug in code that manually patch physical register live interval after its sub-register is coalesced with a virtual register.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64082  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-08 11:04:35 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						0c2e7b9ab6 
					 
					
						
						
							
							Fix fallout from r62144.  Evan, please double check this.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62150  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-13 06:05:10 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						8f90b6eb2f 
					 
					
						
						
							
							The coalescer does not coalesce a virtual register to a physical register if any of the physical register's sub-register live intervals overlaps with the virtual register. This is overly conservative. It prevents a extract_subreg from being coalesced away:  
						
						... 
						
						
						
						v1024 = EDI  // not killed
      =
      = EDI
One possible solution is for the coalescer to examine the sub-register live intervals in the same manner as the physical register. Another possibility is to examine defs and uses (when needed) of sub-registers. Both solutions are too expensive. For now, look for "short virtual intervals" and scan instructions to look for conflict instead.
This is a small win on x86-64. e.g. It shaves 403.gcc by ~80 instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61847  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-07 02:08:57 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						d68a07650c 
					 
					
						
						
							
							Tidy up #includes, deleting a bunch of unnecessary #includes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61715  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-05 17:59:02 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d0e32c5d5c 
					 
					
						
						
							
							- Rewrite code that update register live interval that's split.  
						
						... 
						
						
						
						- Create and update spill slot live intervals.
- Lots of bug fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58367  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-29 05:06:14 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						06587497dc 
					 
					
						
						
							
							Avoid splitting an interval multiple times; avoid splitting re-materializable val# (for now).  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58068  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-24 02:05:00 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f5cd4f0d70 
					 
					
						
						
							
							Committing a good chunk of the pre-register allocation live interval splitting pass. It's handling simple cases and appear to do good things. Next: avoid splitting an interval multiple times; renumber registers when possible; record stack slot live intervals for coloring; rematerialize defs when possible.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58044  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-23 20:43:13 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						f522068412 
					 
					
						
						
							
							Trim #includes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57649  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-16 20:18:31 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						dc37786595 
					 
					
						
						
							
							Re-apply 56835 along with header file changes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56848  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-30 15:44:16 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						fa48f94130 
					 
					
						
						
							
							Remove AsmThatEarlyClobber etc. from LiveIntervalAnalysis  
						
						... 
						
						
						
						and redo as linked list walk.  Logic moved into RA.
Per review feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56326  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-19 01:02:35 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						91aac1015e 
					 
					
						
						
							
							Add a bit to mark operands of asm's that conflict  
						
						... 
						
						
						
						with an earlyclobber operand elsewhere.  Propagate
this bit and the earlyclobber bit through SDISel.
Change linear-scan RA not to allocate regs in a way 
that conflicts with an earlyclobber.  See also comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56290  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-17 21:13:11 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						ae73dc1448 
					 
					
						
						
							
							Tidy up several unbeseeming casts from pointer to intptr_t.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55779  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-04 17:05:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2dba6a1bdb 
					 
					
						
						
							
							consolidate DenseMapInfo implementations, and add one for std::pair.  
						
						... 
						
						
						
						Patch contributed by m-s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55167  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-22 05:08:25 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						d6664311ac 
					 
					
						
						
							
							Resurrect some ancient code to add spill ranges without attempting folding, remat, or splitting.  This code has been updated to current APIs  
						
						... 
						
						
						
						in so far as it compiles and, in theory, works, but does not take advantage of recent advancements.  For instance, it could be improved by using
MachineRegisterInfo::use_iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54924  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-18 18:05:32 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						289983123b 
					 
					
						
						
							
							Expunge the last uses of std::map from LiveIntervals.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54766  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-13 22:28:50 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						20e2839cb9 
					 
					
						
						
							
							Move r2iMap_ over to DenseMap from std::map.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54765  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-13 22:08:30 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						03857b29d8 
					 
					
						
						
							
							Make the allocation of LiveIntervals explicit, rather than holding them in the r2iMap_ by value.  This will prevent references to them from being invalidated  
						
						... 
						
						
						
						if the map is changed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54763  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-13 21:49:13 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						49bfdd63f4 
					 
					
						
						
							
							Switch this from std::map to DenseMap.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54761  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-13 21:24:24 +00:00 
						 
				 
			
				
					
						
							
							
								Matthijs Kooijman 
							
						 
					 
					
						
						
							
						
						b3e15c0008 
					 
					
						
						
							
							Silence a warning.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54462  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-07 13:36:30 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						ca425a2a98 
					 
					
						
						
							
							Reword a comment to be less ambiguous.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54135  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-28 18:42:57 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						6d69ba8a69 
					 
					
						
						
							
							Enable rematerialization of constants using AliasAnalysis::pointsToConstantMemory,  
						
						... 
						
						
						
						and knowledge of PseudoSourceValues. This unfortunately isn't sufficient to allow
constants to be rematerialized in PIC mode -- the extra indirection is a
complication.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54000  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-25 00:02:30 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						a1566f2e12 
					 
					
						
						
							
							Change the heuristics used in the coalescer, register allocator, and within  
						
						... 
						
						
						
						live intervals itself to use an instruction count approximation that is 
not affected by inserting empty indices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53937  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-22 22:46:49 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						ef0732d25a 
					 
					
						
						
							
							- Change the horrible N^2 isRegReDefinedByTwoAddr. Now callers must supply the operand index of def machineoperand and at most one full scan of non-implicit operands is needed.  
						
						... 
						
						
						
						- Change local register allocator to use the new isRegReDefinedByTwoAddr instead of reinventing the wheel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53394  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-10 07:35:43 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						6b098dee28 
					 
					
						
						
							
							Remember which MachineOperand we were processing, so we don't have to scan the list to find it again later.  
						
						... 
						
						
						
						This speeds up live intervals from 0.37s to 0.30s on instcombine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52745  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-25 23:39:39 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						f399235a03 
					 
					
						
						
							
							Remove an incorrect comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52660  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-24 00:15:10 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						a6fb5b54f3 
					 
					
						
						
							
							Use InstrSlots::NUM rather than pre-dividing by four.  Also, mark this const.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52659  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-24 00:08:35 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						72e04099c6 
					 
					
						
						
							
							Add getScaledIntervalSize, which gives a measure of the size of an interval that is independent of the scaling of  
						
						... 
						
						
						
						the function due to empty index slots.  This is suitable for use in backend heuristics that need to reason about the density
of an interval.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52652  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-23 23:25:37 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c3417609ae 
					 
					
						
						
							
							Undo spill weight tweak. Need to investigate the performance regressions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52572  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-21 06:45:54 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						bdf34bc12b 
					 
					
						
						
							
							Minor spiller tweak to unfavor reload into load/store instructions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52477  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-19 01:16:17 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						9c3c221364 
					 
					
						
						
							
							Refine stack slot interval weight computation.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52040  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-06 07:54:39 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						c4dc132c8a 
					 
					
						
						
							
							Add a helper for constructing new live ranges that ended from an instruction to the end of its MBB.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52012  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-05 17:15:43 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						15a17f5481 
					 
					
						
						
							
							Forgot to commit this file.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51786  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-30 20:14:04 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						80b3ce65e2 
					 
					
						
						
							
							Factor the numbering computation into a separate method, and add the slightest attempt at some renumbering logic, which is currently unused.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51652  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-28 20:54:50 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						34cd4a484e 
					 
					
						
						
							
							Fix more -Wshorten-64-to-32 warnings.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50659  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-05 18:30:58 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						4cce6b4c78 
					 
					
						
						
							
							Use of implicit_def is not part of live interval. Create empty intervals for the uses when the live interval is being spilled.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49542  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-11 17:53:36 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						419852ca8a 
					 
					
						
						
							
							- Treat a live range defined by an implicit_def as a zero-sized one.  
						
						... 
						
						
						
						- Eliminate an implicit_def when it's being spilled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49166  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-03 16:39:43 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						c9235d2e85 
					 
					
						
						
							
							Don't include <map> in Pass.h, which doesn't need it. This requires  
						
						... 
						
						
						
						adding <map> to many files that actually do need it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48667  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-21 23:51:57 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						8131a50f44 
					 
					
						
						
							
							Fix a typo in a comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48345  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-13 23:04:27 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						676dd7c80b 
					 
					
						
						
							
							When the register allocator runs out of registers, spill a physical register around the def's and use's of the interval being allocated to make it possible for the interval to target a register and spill it right away and restore a register for uses. This likely generates terrible code but is before than aborting.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48218  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-11 07:19:34 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						e85fe660e4 
					 
					
						
						
							
							Detabify  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47597  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-26 10:49:39 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						79a0c1e46c 
					 
					
						
						
							
							Correctly determine whether a argument load can be folded into its uses.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47545  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-25 08:50:41 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						0cc83b6e85 
					 
					
						
						
							
							Forgot this.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47510  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-23 00:46:11 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d70dbb5d62 
					 
					
						
						
							
							Enable re-materialization of instructions which have virtual register operands if  
						
						... 
						
						
						
						the definition of the operand also reaches its uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47475  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-22 09:24:50 +00:00 
						 
				 
			
				
					
						
							
							
								Roman Levenstein 
							
						 
					 
					
						
						
							
						
						8dd25288f9 
					 
					
						
						
							
							New helper function getMBBFromIndex() that given an index in any instruction of an MBB returns a pointer the MBB. Reviewed by Evan.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47267  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-18 09:35:30 +00:00