Craig Topper 
							
						 
					 
					
						
						
							
						
						78477ffdfd 
					 
					
						
						
							
							Use SmallVectorImpl instead of SmallVector as method argument to avoid specifying vector size.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185513  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-03 05:16:59 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Schmidt 
							
						 
					 
					
						
						
							
						
						5ff776bfde 
					 
					
						
						
							
							This patch addresses bug 15031.  
						
						... 
						
						
						
						The common code in the post-RA scheduler to break anti-dependencies on the
critical path contained a flaw.  In the reported case, an anti-dependency
between the overlapping registers %X4 and %R4 exists:
	%X29<def> = OR8 %X4, %X4
	%R4<def>, %X3<def,dead,tied3> = LBZU 1, %X3<kill,tied1>
The unpatched code breaks the dependency by replacing %R4 and its uses
with %R3, the first register on the available list.  However, %R3 and
%X3 overlap, so this creates two overlapping definitions on the same
instruction.
The fix is straightforward, preventing selection of a register that
overlaps any other defined register on the same instruction.
The test case is reduced from the bug report, and verifies that we no
longer produce "lbzu 3, 1(3)" when breaking this anti-dependency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173706  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-01-28 18:36:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chandler Carruth 
							
						 
					 
					
						
						
							
						
						a1514e24cc 
					 
					
						
						
							
							Sort includes for all of the .h files under the 'lib' tree. These were  
						
						... 
						
						
						
						missed in the first pass because the script didn't yet handle include
guards.
Note that the script is now able to handle all of these headers without
manual edits. =]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169224  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-12-04 07:12:27 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Trick 
							
						 
					 
					
						
						
							
						
						1525260b3e 
					 
					
						
						
							
							Move RegisterClassInfo.h.  
						
						... 
						
						
						
						Allow targets to access this API. It's required for RegisterPressure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158102  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-06-06 20:29:31 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						cff4ad768e 
					 
					
						
						
							
							CriticalAntiDepBreaker: Replace a SmallSet of regs with a much denser BitVector.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152999  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-03-17 20:22:57 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						fa796dd720 
					 
					
						
						
							
							Teach antidependency breakers to use RegisterClassInfo.  
						
						... 
						
						
						
						No functional change was intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133202  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-06-16 21:56:21 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						e29e8e100e 
					 
					
						
						
							
							Update DBG_VALUEs while breaking anti dependencies.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132487  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-06-02 21:26:52 +00:00 
						 
				 
			
				
					
						
							
							
								Mikhail Glushenkov 
							
						 
					 
					
						
						
							
						
						35edc42f98 
					 
					
						
						
							
							Typo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125232  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-02-09 22:55:48 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Trick 
							
						 
					 
					
						
						
							
						
						bc4bd92d52 
					 
					
						
						
							
							Fix PostRA antidependence breaker.  
						
						... 
						
						
						
						Avoid using the same register for two def operands or and earlyclobber
def and use operand. This fixes PR8986 and improves on the prior fix
for rdar://problem/8959122.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125089  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-02-08 17:39:46 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Trick 
							
						 
					 
					
						
						
							
						
						4638852696 
					 
					
						
						
							
							Fixes <rdar://problem/8612856>: During postRAsched, the antidependence  
						
						... 
						
						
						
						breaker needs to check all definitions of the antidepenent register to
avoid multiple defs of the same new register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118032  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-02 18:16:45 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						9c2a034730 
					 
					
						
						
							
							Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. This time  
						
						... 
						
						
						
						make sure to allocate enough space in the std::vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108449  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-15 19:58:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7fa889b946 
					 
					
						
						
							
							revert bill's patches in an attempt to fix the buildbot.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108419  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-15 06:51:46 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						f7f72bc1ea 
					 
					
						
						
							
							Use std::vector instead of a hard-coded array. The length of that array could  
						
						... 
						
						
						
						get *very* large, but we only need it to be the size of thenumber of pregs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108411  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-15 05:56:32 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						46df4eb46e 
					 
					
						
						
							
							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.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106091  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-16 07:35:02 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						66db3a0f10 
					 
					
						
						
							
							Make BreakAntiDependencies' SUnits argument const, and make the Begin  
						
						... 
						
						
						
						and End arguments by-value rather than by-reference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101830  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-19 23:11:58 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Grosbach 
							
						 
					 
					
						
						
							
						
						80c2b0d9ef 
					 
					
						
						
							
							Anti-dependency breaking needs to be careful regarding instructions with  
						
						... 
						
						
						
						multiple register definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92864  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-01-06 22:21:25 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Grosbach 
							
						 
					 
					
						
						
							
						
						2973b57093 
					 
					
						
						
							
							80 column and whitespace cleanup  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92837  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-01-06 16:48:02 +00:00 
						 
				 
			
				
					
						
							
							
								David Goodwin 
							
						 
					 
					
						
						
							
						
						557bbe6b5d 
					 
					
						
						
							
							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.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89471  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-20 19:32:48 +00:00 
						 
				 
			
				
					
						
							
							
								David Goodwin 
							
						 
					 
					
						
						
							
						
						4de099d8ca 
					 
					
						
						
							
							Do a scheduling pass ignoring anti-dependencies to identify candidate registers that should be renamed.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85939  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-03 20:57:50 +00:00 
						 
				 
			
				
					
						
							
							
								David Goodwin 
							
						 
					 
					
						
						
							
						
						82c7248518 
					 
					
						
						
							
							Make AntiDepReg.h internal.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85412  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-28 18:29:54 +00:00 
						 
				 
			
				
					
						
							
							
								David Goodwin 
							
						 
					 
					
						
						
							
						
						e10deca33e 
					 
					
						
						
							
							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.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85166  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-26 22:31:16 +00:00 
						 
				 
			
				
					
						
							
							
								David Goodwin 
							
						 
					 
					
						
						
							
						
						2e7be612d5 
					 
					
						
						
							
							Break anti-dependence breaking out into its own class.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85127  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-26 16:59:04 +00:00