Evan Cheng 
							
						 
					 
					
						
						
							
						
						fdb99838a3 
					 
					
						
						
							
							Remove unneeded include.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52920  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-30 20:38:22 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						601ca4b434 
					 
					
						
						
							
							Enable two-address remat by default.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52701  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-25 01:16:38 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						32a3ac7911 
					 
					
						
						
							
							Missed a check.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52487  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-19 06:17:19 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						7543e58a77 
					 
					
						
						
							
							Complete support for two-address pass rematerialization. Now *almost* always a win.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52452  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-18 07:49:14 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						bd0879d7d9 
					 
					
						
						
							
							Implement "AsCheapAsAMove" for some obviously cheap instructions: xor and the  
						
						... 
						
						
						
						like.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51662  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-29 01:02:09 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						a8db14796b 
					 
					
						
						
							
							Check the "isSafeToMove" predicate, which has a series of tests to make sure  
						
						... 
						
						
						
						that it's safe to remat an instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51659  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-28 22:52:47 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						b0f65e1348 
					 
					
						
						
							
							Incorporated feedback: Check that the implicitly defined operands aren't used  
						
						... 
						
						
						
						before deleting the instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51609  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-27 20:40:52 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						a16157a410 
					 
					
						
						
							
							The enabling of remat in 2-address conversion breaks this test:  
						
						... 
						
						
						
						Running /Users/void/llvm/llvm.src/test/CodeGen/X86/dg.exp ...
FAIL: /Users/void/llvm/llvm.src/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll
Failed with exit(1) at line 1
while running: llvm-as < /Users/void/llvm/llvm.src/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll | llc -march=x86 -mattr=+sse2 -stats |&  grep {1 .*folded into instructions}
child process exited abnormally
Make this conditional for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51563  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-26 05:49:49 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						48f7f237ea 
					 
					
						
						
							
							A problem that's exposed when machine LICM is enabled. Consider this code:  
						
						... 
						
						
						
						LBB1_3:   # bb
...
        xorl    %ebp, %ebp
        subl    (%ebx), %ebp
...
        incl    %ecx
        cmpl    %edi, %ecx
        jl      LBB1_3  # bb
Whe using machine LICM, LLVM converts it into:
        xorl %esi, %esi
LBB1_3: # bb
...
        movl    %esi, %ebp
        subl    (%ebx), %ebp
...
        incl    %ecx
        cmpl    %edi, %ecx
        jl      LBB1_3  # bb
Two address conversion inserts the copy instruction. However, it's cheaper to
rematerialize it, and remat helps reduce register pressure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51562  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-26 05:18:34 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						6ddba2b933 
					 
					
						
						
							
							Change class' public PassInfo variables to by initialized with the  
						
						... 
						
						
						
						address of the PassInfo directly instead of calling getPassInfo.
This eliminates a bunch of dynamic initializations of static data.
Also, fold RegisterPassBase into PassInfo, make a bunch of its
data members const, and rearrange some code to initialize data
members in constructors instead of using setter member functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51022  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-13 02:05:11 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						844731a7f1 
					 
					
						
						
							
							Clean up the use of static and anonymous namespaces. This turned up  
						
						... 
						
						
						
						several things that were neither in an anonymous namespace nor static
but not intended to be global.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-13 00:00:25 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						637980edce 
					 
					
						
						
							
							Cosmetic changes:  
						
						... 
						
						
						
						- Comment fixes.
 - Moar whitespace.
 - Made ivars "private" by default.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50926  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-10 00:12:52 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						7a963fa8ee 
					 
					
						
						
							
							Fix a memory bug: increment an iterator of a deleted machine instr.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48853  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-27 01:27:25 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						a2248682ae 
					 
					
						
						
							
							Typo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48337  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-13 08:04:35 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						0099ae2468 
					 
					
						
						
							
							Don't try to sink 3-address instruction if convertToThreeAddress created more than one instructions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48336  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-13 07:56:58 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f3ff6992a3 
					 
					
						
						
							
							Remove an unused command line option.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48334  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-13 06:38:28 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						875357d213 
					 
					
						
						
							
							TwoAddressInstructionPass enhancement. After it converts a two address instruction into a 3-address one, sink it past the instruction that kills the read-mod-write register if its definition is used past the kill. This reduces the number of live register by one.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48333  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-13 06:37:55 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						6130f66eaa 
					 
					
						
						
							
							Refactor code. Remove duplicated functions that basically do the same thing as  
						
						... 
						
						
						
						findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47927  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-05 00:59:57 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						6f0d024a53 
					 
					
						
						
							
							Rename MRegisterInfo to TargetRegisterInfo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46930  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-10 18:45:23 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						7047dd4d22 
					 
					
						
						
							
							Remove DefInst from LiveVariables::VarInfo.  Use the facilities on MachineRegisterInfo instead.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46016  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-15 22:02:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						749c6f6b5e 
					 
					
						
						
							
							rename TargetInstrDescriptor -> TargetInstrDesc.  
						
						... 
						
						
						
						Make MachineInstr::getDesc return a reference instead
of a pointer, since it can never be null.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45695  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 07:27:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0ff23966fe 
					 
					
						
						
							
							Rename all the M_* flags to be namespace qualified enums, and switch  
						
						... 
						
						
						
						all clients over to using predicates instead of these flags directly.
These are now private values which are only to be used to statically
initialize the tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45692  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 06:42:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e32d765f99 
					 
					
						
						
							
							add more and significantly better comments to the rest of the machineinstr  
						
						... 
						
						
						
						flags that can be set.  Add predicates for the ones lacking it, and switch
some clients over to using the predicates instead of Flags directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45690  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 06:21:53 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						349c495200 
					 
					
						
						
							
							Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptor  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45680  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 03:13:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						69244300b8 
					 
					
						
						
							
							Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects  
						
						... 
						
						
						
						that it is cheap and efficient to get.
Move a variety of predicates from TargetInstrInfo into 
TargetInstrDescriptor, which makes it much easier to query a predicate
when you don't have TII around.  Now you can use MI->getDesc()->isBranch()
instead of going through TII, and this is much more efficient anyway. Not
all of the predicates have been moved over yet.
Update old code that used MI->getInstrDescriptor()->Flags to use the
new predicates in many places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45674  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 01:56:04 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						67d65bb69d 
					 
					
						
						
							
							Don't recalculate the loop info and loop dominators analyses if they're  
						
						... 
						
						
						
						preserved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45596  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-04 20:54:55 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						d10fd9791c 
					 
					
						
						
							
							Move copyRegToReg from MRegisterInfo to TargetInstrInfo.  This is part of the  
						
						... 
						
						
						
						Machine-level API cleanup instigated by Chris.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45470  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-31 06:32:00 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						84bc5427d6 
					 
					
						
						
							
							Rename SSARegMap -> MachineRegisterInfo in keeping with the idea  
						
						... 
						
						
						
						that "machine" classes are used to represent the current state of
the code being compiled.  Given this expanded name, we can start 
moving other stuff into it.  For now, move the UsedPhysRegs and
LiveIn/LoveOuts vectors from MachineFunction into it.
Update all the clients to match.
This also reduces some needless #includes, such as MachineModuleInfo
from MachineFunction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45467  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-31 04:13:23 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4ee451de36 
					 
					
						
						
							
							Remove attribution from file headers, per discussion on llvmdev.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-29 20:36:04 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						fe0c882e5a 
					 
					
						
						
							
							As Chris and Evan pointed out, BreakCriticalMachineEdges doesn't really need  
						
						... 
						
						
						
						to be a pass of its own.  Instead, move it out into a helper method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44002  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-12 01:05:09 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						0823cea34a 
					 
					
						
						
							
							This preserves critical edge breaking.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43911  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-08 22:23:57 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						a018540807 
					 
					
						
						
							
							Bring UsedBlocks back.  StrongPHIElimination needs this information.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43866  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-08 01:20:48 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						7bb175b4d1 
					 
					
						
						
							
							It's possible to commute instrctions with more than 3 operands.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43256  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-10-23 20:14:40 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						b9d5e7cdc9 
					 
					
						
						
							
							Added missing curly braces which renders the if clause useless in debug build.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43196  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-10-20 04:01:47 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						9efce638d3 
					 
					
						
						
							
							Allow copyRegToReg to emit cross register classes copies.  
						
						... 
						
						
						
						Tested with "make check"!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42346  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-26 06:25:56 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						ecd94c804a 
					 
					
						
						
							
							Fix typo in comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36873  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-06 13:37:16 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						1997473cf7 
					 
					
						
						
							
							Drop 'const'  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-03 01:11:54 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						3e15bf33e0 
					 
					
						
						
							
							Use 'static const char' instead of 'static const int'.  
						
						... 
						
						
						
						Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-02 21:39:20 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						794fd75c67 
					 
					
						
						
							
							Do not use typeinfo to identify pass in pass manager.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-01 21:15:47 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f44c72817e 
					 
					
						
						
							
							VarInfo::UsedBlocks is no longer used. Remove.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36250  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-18 05:04:38 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						e951cd1647 
					 
					
						
						
							
							Keep UsedBlocks info accurate.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35140  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-18 09:02:31 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cd3245ac45 
					 
					
						
						
							
							Eliminate static ctors from Statistics  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32698  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-12-19 22:41:21 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						bcd2498f4f 
					 
					
						
						
							
							Removed more <iostream> includes  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32321  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-12-07 20:28:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ac0b6ae358 
					 
					
						
						
							
							Detemplatize the Statistic class.  The only type it is instantiated with  
						
						... 
						
						
						
						is 'unsigned'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32279  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-12-06 17:46:33 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						ba59a1e453 
					 
					
						
						
							
							Match TargetInstrInfo changes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32098  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-12-01 21:52:58 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						a09362eb97 
					 
					
						
						
							
							Use llvm streams instead of <iostream>  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31985  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-28 22:48:48 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						a1fd6504aa 
					 
					
						
						
							
							Remove M_2_ADDR_FLAG.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31583  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-09 02:22:54 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						360c2dd25a 
					 
					
						
						
							
							Two-address instructions no longer have to be A := A op C. Now any pair of dest / src operands can be tied together.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31363  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-01 23:06:55 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2926869b4a 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30108  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-05 02:12:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a4f0b3a084 
					 
					
						
						
							
							s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29911  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-27 12:54:02 +00:00