871c724773 
								
							 
						 
						
							
							
								
								Convert the last use of getPhysicalRegisterRegClass and remove it.  
							
							... 
							
							
							
							AggressiveAntiDepBreaker should not be using getPhysicalRegisterRegClass. An
instruction might be using a register that can only be replaced with one from
a subclass of getPhysicalRegisterRegClass.
With this patch we use getMinimalPhysRegClass. This is correct, but
conservative. We should check the uses of the register and select the
largest register class that can be used in all of them.
llvm-svn: 108122 
							
						 
						
							2010-07-12 02:55:34 +00:00  
				
					
						
							
							
								 
						
							
								f128bdcb55 
								
							 
						 
						
							
							
								
								Make post-ra scheduling, anti-dep breaking, and register scavenger (conservatively) aware of predicated instructions. This enables ARM to move if-conversion before post-ra scheduler.  
							
							... 
							
							
							
							llvm-svn: 106091 
							
						 
						
							2010-06-16 07:35:02 +00:00  
				
					
						
							
							
								 
						
							
								848548300d 
								
							 
						 
						
							
							
								
								Not all entries in the range will have an SUnit. Check for that when looking  
							
							... 
							
							
							
							for debug information.
llvm-svn: 105324 
							
						 
						
							2010-06-02 15:29:36 +00:00  
				
					
						
							
							
								 
						
							
								12ac8f0352 
								
							 
						 
						
							
							
								
								Update debug information when breaking anti-dependencies. rdar://7759363  
							
							... 
							
							
							
							llvm-svn: 105300 
							
						 
						
							2010-06-01 23:48:44 +00:00  
				
					
						
							
							
								 
						
							
								35bc4d46cb 
								
							 
						 
						
							
							
								
								Make BreakAntiDependencies' SUnits argument const, and make the Begin  
							
							... 
							
							
							
							and End arguments by-value rather than by-reference.
llvm-svn: 101830 
							
						 
						
							2010-04-19 23:11:58 +00:00  
				
					
						
							
							
								 
						
							
								67dd3a4464 
								
							 
						 
						
							
							
								
								Tidy whitespace.  
							
							... 
							
							
							
							llvm-svn: 100904 
							
						 
						
							2010-04-09 21:38:26 +00:00  
				
					
						
							
							
								 
						
							
								b06015aa69 
								
							 
						 
						
							
							
								
								move target-independent opcodes out of TargetInstrInfo  
							
							... 
							
							
							
							into TargetOpcodes.h.  #include the new TargetOpcodes.h
into MachineInstr.  Add new inline accessors (like isPHI())
to MachineInstr, and start using them throughout the 
codebase.
llvm-svn: 95687 
							
						 
						
							2010-02-09 19:54:29 +00:00  
				
					
						
							
							
								 
						
							
								eb431da074 
								
							 
						 
						
							
							
								
								80 column and whitespace cleanup  
							
							... 
							
							
							
							llvm-svn: 92837 
							
						 
						
							2010-01-06 16:48:02 +00:00  
				
					
						
							
							
								 
						
							
								75a2efb06d 
								
							 
						 
						
							
							
								
								Change errs() to dbgs().  
							
							... 
							
							
							
							llvm-svn: 92093 
							
						 
						
							2009-12-24 00:14:25 +00:00  
				
					
						
							
							
								 
						
							
								a45fe67667 
								
							 
						 
						
							
							
								
								<rdar://problem/7453528>. Track only physical registers that are valid for the target.  
							
							... 
							
							
							
							llvm-svn: 90970 
							
						 
						
							2009-12-09 17:18:22 +00:00  
				
					
						
							
							
								 
						
							
								3f3a8b1c7e 
								
							 
						 
						
							
							
								
								<rdar://problem/6721894>. Allow multiple registers to be renamed together (super and sub) if necessary to break an anti-dependence.  
							
							... 
							
							
							
							llvm-svn: 89722 
							
						 
						
							2009-11-24 00:59:08 +00:00  
				
					
						
							
							
								 
						
							
								5305dc0be1 
								
							 
						 
						
							
							
								
								Restructure code to allow renaming of multiple-register groups for anti-dep breaking.  
							
							... 
							
							
							
							llvm-svn: 89511 
							
						 
						
							2009-11-20 23:33:54 +00:00  
				
					
						
							
							
								 
						
							
								80a03cc0b1 
								
							 
						 
						
							
							
								
								Remove some old experimental code that is no longer needed. Remove additional, speculative scheduling pass as its cost did not translate into significant performance improvement. Minor tweaks.  
							
							... 
							
							
							
							llvm-svn: 89471 
							
						 
						
							2009-11-20 19:32:48 +00:00  
				
					
						
							
							
								 
						
							
								dd1c6198d4 
								
							 
						 
						
							
							
								
								Fix a couple of problems with maintaining liveness information for antidep breaking.  
							
							... 
							
							
							
							llvm-svn: 89404 
							
						 
						
							2009-11-19 23:12:37 +00:00  
				
					
						
							
							
								 
						
							
								b9fe5d5d02 
								
							 
						 
						
							
							
								
								Allow target to specify regclass for which antideps will only be broken along the critical path.  
							
							... 
							
							
							
							llvm-svn: 88682 
							
						 
						
							2009-11-13 19:52:48 +00:00  
				
					
						
							
							
								 
						
							
								da83f7d58b 
								
							 
						 
						
							
							
								
								Rename registers to break output dependencies in addition to anti-dependencies.  
							
							... 
							
							
							
							llvm-svn: 87015 
							
						 
						
							2009-11-12 19:08:21 +00:00  
				
					
						
							
							
								 
						
							
								cf89db135e 
								
							 
						 
						
							
							
								
								Allow targets to specify register classes whose member registers should not be renamed to break anti-dependencies.  
							
							... 
							
							
							
							llvm-svn: 86628 
							
						 
						
							2009-11-10 00:15:47 +00:00  
				
					
						
							
							
								 
						
							
								bed7cb6c1d 
								
							 
						 
						
							
							
								
								Fix bug in aggressive antidep breaking; liveness was not updated correctly for regions that do not have antidep candidates.  
							
							... 
							
							
							
							llvm-svn: 86172 
							
						 
						
							2009-11-05 21:06:09 +00:00  
				
					
						
							
							
								 
						
							
								542649463b 
								
							 
						 
						
							
							
								
								Replace std::map.at() with std::map[].  
							
							... 
							
							
							
							llvm-svn: 86102 
							
						 
						
							2009-11-05 01:45:50 +00:00  
				
					
						
							
							
								 
						
							
								7d8878add2 
								
							 
						 
						
							
							
								
								Break anti-dependencies using free registers in a round-robin manner to avoid introducing new anti-dependencies.  
							
							... 
							
							
							
							llvm-svn: 86098 
							
						 
						
							2009-11-05 01:19:35 +00:00  
				
					
						
							
							
								 
						
							
								8501dbbe10 
								
							 
						 
						
							
							
								
								Do a scheduling pass ignoring anti-dependencies to identify candidate registers that should be renamed.  
							
							... 
							
							
							
							llvm-svn: 85939 
							
						 
						
							2009-11-03 20:57:50 +00:00  
				
					
						
							
							
								 
						
							
								faa7660fd0 
								
							 
						 
						
							
							
								
								Between scheduling regions, correctly maintain anti-dep breaking state so that we don't incorrectly rename registers that span these regions.  
							
							... 
							
							
							
							llvm-svn: 85537 
							
						 
						
							2009-10-29 23:30:59 +00:00  
				
					
						
							
							
								 
						
							
								9f1b2d4619 
								
							 
						 
						
							
							
								
								Fix a couple of bugs in aggressive anti-dep breaking.  
							
							... 
							
							
							
							llvm-svn: 85522 
							
						 
						
							2009-10-29 19:17:04 +00:00  
				
					
						
							
							
								 
						
							
								e056d1077e 
								
							 
						 
						
							
							
								
								Allow the aggressive anti-dep breaker to process the same region multiple times. This is necessary because new anti-dependencies are exposed when "current" ones are broken.  
							
							... 
							
							
							
							llvm-svn: 85166 
							
						 
						
							2009-10-26 22:31:16 +00:00  
				
					
						
							
							
								 
						
							
								de11f36ab7 
								
							 
						 
						
							
							
								
								Add aggressive anti-dependence breaker. Currently it is not the default for any target. Enable with -break-anti-dependencies=all.  
							
							... 
							
							
							
							llvm-svn: 85145 
							
						 
						
							2009-10-26 19:32:42 +00:00