Dan Gohman 
							
						 
					 
					
						
						
							
						
						d735b8019b 
					 
					
						
						
							
							Switch the MachineOperand accessors back to the short names like  
						
						... 
						
						
						
						isReg, etc., from isRegister, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-03 15:45:36 +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 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						acb04ec427 
					 
					
						
						
							
							Cosmetic changes to Machine LICM. No functionality change.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55578  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-31 02:30:23 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						fb018d0433 
					 
					
						
						
							
							Don't hoist instructions that define a physical register.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55074  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-20 20:32:05 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						d3361e996b 
					 
					
						
						
							
							Don't hoist instructions that have implicit uses or defines. Before, it was  
						
						... 
						
						
						
						hoisting out some "test" and "cmp" instructions. This was obvious badness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54908  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-18 00:33:49 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						8870ce951d 
					 
					
						
						
							
							Prevent option name conflict.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53166  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-07 05:42:27 +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 
							
						 
					 
					
						
						
							
						
						c1b7f52fbe 
					 
					
						
						
							
							Revert the previous commit. Go ahead and hoist rematerializable instructions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50990  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-12 19:47:18 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						e4fc1ccd4d 
					 
					
						
						
							
							One real change - don't hoist something that's trivially rematerializable. It's  
						
						... 
						
						
						
						possible for it to produce worse code than before.
The rest of this patch is code cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50987  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-12 19:38:32 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						074223a124 
					 
					
						
						
							
							Minor cleanup. No functionality change.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48142  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-10 08:13:01 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						e6d088acc9 
					 
					
						
						
							
							Rename PrintableName to Name.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47629  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-26 21:47:57 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						74ab84c31e 
					 
					
						
						
							
							Change "Name" to "AsmName" in the target register info. Gee, a refactoring tool  
						
						... 
						
						
						
						would have been a Godsend here!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47625  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-26 21:11:01 +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 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a22edc82ca 
					 
					
						
						
							
							Simplify the side effect stuff a bit more and make licm/sinking  
						
						... 
						
						
						
						both work right according to the new flags.
This removes the TII::isReallySideEffectFree predicate, and adds
TII::isInvariantLoad. 
It removes NeverHasSideEffects+MayHaveSideEffects and adds
UnmodeledSideEffects as machine instr flags.  Now the clients
can decide everything they need.
I think isRematerializable can be implemented in terms of the
flags we have now, though I will let others tackle that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45843  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-10 23:08:24 +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 
							
						 
					 
					
						
						
							
						
						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 
							
						 
					 
					
						
						
							
						
						d5da7048c2 
					 
					
						
						
							
							Add that this preserves some analyses.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45573  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-04 08:48:49 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						cc8f603f53 
					 
					
						
						
							
							Move option to enable machine LICM into LLVMTargetMachine.cpp.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45572  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-04 08:11:03 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						b082c6f5d9 
					 
					
						
						
							
							Call the parent's getAnalysisUsage.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45571  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-04 07:50:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ac69582664 
					 
					
						
						
							
							remove dead #includes and reorder the rest.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45569  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-04 06:41:45 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						dde059a9de 
					 
					
						
						
							
							Use the correct MachineRegisterInfo object.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45499  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-02 21:10:54 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						a4b662272d 
					 
					
						
						
							
							Remove dead code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45496  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-02 20:47:37 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						9258cd3994 
					 
					
						
						
							
							Use the new architecture to get the containing machine basic block for a machine  
						
						... 
						
						
						
						instruction. Also, use "splice" to move the new instruction instead of
remove/insert (where it was leaking memory anyway).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45492  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-02 19:32:43 +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 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						60ff1a3005 
					 
					
						
						
							
							Updated comments to reflect what "side effects" means in this situation.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45245  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-20 01:08:10 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						280f4565eb 
					 
					
						
						
							
							Add debugging info. Use the newly created "hasUnmodelledSideEffects" method.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45178  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-18 21:38:04 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						efe2be7976 
					 
					
						
						
							
							Need to grow the indexed map. Added debug statements.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44892  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-11 23:27:51 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						a17ad59e13 
					 
					
						
						
							
							Simplify slightly.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44881  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-11 22:22:22 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						12ebf14048 
					 
					
						
						
							
							Blark! How in the world did this work without this?!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44874  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-11 19:40:06 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						28bd5f0e47 
					 
					
						
						
							
							- Update the virtual reg to machine instruction map when hoisting.  
						
						... 
						
						
						
						- Fix subtle bug when creating initially creating this map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44873  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-11 19:17:04 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						650b0527a4 
					 
					
						
						
							
							Checking for "zero operands" during the "CanHoistInst()" method isn't necessary  
						
						... 
						
						
						
						because those with side effects will be caught by other checks in here.
Also, simplify the check for a BB in a sub loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44871  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-11 18:45:11 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						041b3f8356 
					 
					
						
						
							
							Reverting 44702. It wasn't correct to rename them.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44727  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-08 23:58:46 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						320c630c1b 
					 
					
						
						
							
							Renaming:  
						
						... 
						
						
						
						isTriviallyReMaterializable -> hasNoSideEffects
  isReallyTriviallyReMaterializable -> isTriviallyReMaterializable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44702  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-08 07:17:56 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						b48519cbad 
					 
					
						
						
							
							Incorporated comments from Evan and Chris:  
						
						... 
						
						
						
						http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056043.html 
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056048.html 
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44696  91177308-0d34-0410-b5e6-96231b3b80d8 
					
						2007-12-08 01:47:01 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						0f940c95d4 
					 
					
						
						
							
							Initial commit of the machine code LICM pass. It successfully hoists this:  
						
						... 
						
						
						
						_foo:
        li r2, 0
LBB1_1: ; bb
        li r5, 0
        stw r5, 0(r3)
        addi r2, r2, 1
        addi r3, r3, 4
        cmplw cr0, r2, r4
        bne cr0, LBB1_1 ; bb
LBB1_2: ; return
        blr 
to:
_foo:
        li r2, 0
        li r5, 0
LBB1_1: ; bb
        stw r5, 0(r3)
        addi r2, r2, 1
        addi r3, r3, 4
        cmplw cr0, r2, r4
        bne cr0, LBB1_1 ; bb
LBB1_2: ; return
        blr
ZOMG!! :-)
Moar to come...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44687  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-07 21:42:31 +00:00