Dan Gohman 
							
						 
					 
					
						
						
							
						
						475871a144 
					 
					
						
						
							
							Rename SDOperand to SDValue.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54128  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-27 21:46:04 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						e8be6c6391 
					 
					
						
						
							
							Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk  
						
						... 
						
						
						
						replacement of multiple values. This is slightly more efficient
than doing multiple ReplaceAllUsesOfValueWith calls, and theoretically
could be optimized even further. However, an important property of this
new function is that it handles the case where the source value set and
destination value set overlap. This makes it feasible for isel to use
SelectNodeTo in many very common cases, which is advantageous because
SelectNodeTo avoids a temporary node and it doesn't require CSEMap
updates for users of values that don't change position.
Revamp MorphNodeTo, which is what does all the work of SelectNodeTo, to
handle operand lists more efficiently, and to correctly handle a number
of corner cases to which its new wider use exposes it.
This commit also includes a change to the encoding of post-isel opcodes
in SDNodes; now instead of being sandwiched between the target-independent
pre-isel opcodes and the target-dependent pre-isel opcodes, post-isel
opcodes are now represented as negative values. This makes it possible
to test if an opcode is pre-isel or post-isel without having to know
the size of the current target's post-isel instruction set.
These changes speed up llc overall by 3% and reduce memory usage by 10%
on the InstructionCombining.cpp testcase with -fast and -regalloc=local.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53728  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-17 19:10:17 +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 
							
						 
					 
					
						
						
							
						
						c17d69fa1e 
					 
					
						
						
							
							use predicate.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45691  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 06:37:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						834f1ce031 
					 
					
						
						
							
							rename isLoad -> isSimpleLoad due to evan's desire to have such a predicate.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45667  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-06 23:38:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2e48a70b35 
					 
					
						
						
							
							rename isStore -> mayStore to more accurately reflect what it captures.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45656  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-06 08:36:04 +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 
							
						 
					 
					
						
						
							
						
						399ea50dc3 
					 
					
						
						
							
							LVXL and STVXL are also a load and store resp.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41733  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-05 23:47:12 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						e7e7d0d7e3 
					 
					
						
						
							
							Skeleton of post-RA scheduler; doesn't do anything yet.  
						
						... 
						
						
						
						Change name of -sched option and DEBUG_TYPE to
pre-RA-sched; adjust testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39816  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-07-13 17:13:54 +00:00 
						 
				 
			
				
					
						
							
							
								Nicolas Geoffray 
							
						 
					 
					
						
						
							
						
						05c180b347 
					 
					
						
						
							
							Fix parenthesis for BCTRL_{ELF|Macho} test.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34668  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-27 13:10:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9f0bc659c8 
					 
					
						
						
							
							implement support for the linux/ppc function call ABI.  Patch by  
						
						... 
						
						
						
						Nicolas Geoffray!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34574  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-25 05:34:32 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						f5da13367f 
					 
					
						
						
							
							What should be the last unnecessary <iostream>s in the library.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32333  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-12-07 22:21:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						80df01d2cf 
					 
					
						
						
							
							add ppc64 r+i stores with update.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31776  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-16 00:57:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f8e07f448a 
					 
					
						
						
							
							Switch loads over to use memri as the operand instead of a reg/imm operand  
						
						... 
						
						
						
						pair for cleanliness.  Add instructions for PPC32 preinc-stores with commented
out patterns.  More improvement is needed to enable the patterns, but we're
getting close.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31749  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-15 02:43:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c9dcf28955 
					 
					
						
						
							
							teach the g5 hazard recognizer about update loads.  This fixes  
						
						... 
						
						
						
						Ptrdist/anagram among others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31708  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-13 20:11:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						518f9c7ad0 
					 
					
						
						
							
							Add missing PPC64 extload/truncstores  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29140  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-07-14 04:42:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d998938459 
					 
					
						
						
							
							Implement Regression/CodeGen/PowerPC/bswap-load-store.ll by folding bswaps  
						
						... 
						
						
						
						into i16/i32 load/stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29089  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-07-10 20:56:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ecfe55e65b 
					 
					
						
						
							
							When possible, custom lower 32-bit SINT_TO_FP to this:  
						
						... 
						
						
						
						_foo2:
        extsw r2, r3
        std r2, -8(r1)
        lfd f0, -8(r1)
        fcfid f0, f0
        frsp f1, f0
        blr
instead of this:
_foo2:
        lis r2, ha16(LCPI2_0)
        lis r4, 17200
        xoris r3, r3, 32768
        stw r3, -4(r1)
        stw r4, -8(r1)
        lfs f0, lo16(LCPI2_0)(r2)
        lfd f1, -8(r1)
        fsub f0, f1, f0
        frsp f1, f0
        blr
This speeds up Misc/pi from 2.44s->2.09s with LLC and from 3.01->2.18s
with llcbeta (16.7% and 38.1% respectively).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26943  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-22 05:30:33 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						64ce964673 
					 
					
						
						
							
							Fix a couple of bugs that broke the alpha tester build  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26722  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-13 05:23:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3faad495bc 
					 
					
						
						
							
							Handle cracked instructions in dispatch group formation.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26721  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-13 05:20:04 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						88d211f823 
					 
					
						
						
							
							Several big changes:  
						
						... 
						
						
						
						1. Use flags on the instructions in the .td file to indicate the PPC970 unit
   type instead of a table in the .cpp file.  Much cleaner.
2. Change the hazard recognizer to build d-groups according to the actual
   algorithm used, not my flawed understanding of it.
3. Model "must be in the first slot" and "must be the only instr in a group"
   accurately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26719  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-12 09:13:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9c2c38674a 
					 
					
						
						
							
							blr is a branch too  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26710  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-11 21:49:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b0d21ef20c 
					 
					
						
						
							
							Change the interface for getting a target HazardRecognizer to be more clean.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26608  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-08 04:25:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b84225b080 
					 
					
						
						
							
							add another missing store.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26595  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-07 16:26:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ab5801cb28 
					 
					
						
						
							
							add a couple more load/store instrs, add a newline to the end of file.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26594  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-07 16:19:46 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						3acbe5d4f0 
					 
					
						
						
							
							This kinda sorta implements "things that have to lead a dispatch group".  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26591  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-07 08:30:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2046371e70 
					 
					
						
						
							
							add some new instructions to the classifier.  With this, we correctly insert  
						
						... 
						
						
						
						a nop into Freebench/neural, which speeds it up from 136->129s (~5.4%).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26590  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-07 07:14:55 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7ce64852e8 
					 
					
						
						
							
							add some comments that describe what we model  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26588  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-07 06:44:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c664418820 
					 
					
						
						
							
							Implement a very very simple hazard recognizer for LSU rejects and ctr set/read  
						
						... 
						
						
						
						flushes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26587  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-07 06:32:48 +00:00