Chris Lattner 
							
						 
					 
					
						
						
							
						
						2c56e8a23e 
					 
					
						
						
							
							Add support for FSQRT node, patch contributed by Morten Ofstad  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21610  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-28 22:07:18 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						2d86ea21dd 
					 
					
						
						
							
							Implement Value* tracking for loads and stores in the selection DAG.  This enables one to use alias analysis in the backends.  
						
						... 
						
						
						
						(TRUNK)Stores and (EXT|ZEXT|SEXT)Loads have an extra SDOperand which is a SrcValueSDNode which contains the Value*.  Note that if the operation is introduced by the backend, it will still have the operand, but the value* will be null.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21599  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-27 20:10:01 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						0e0a7a45d3 
					 
					
						
						
							
							* Remove trailing whitespace  
						
						... 
						
						
						
						* Convert tabs to spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21426  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 23:38:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						75f354bd7a 
					 
					
						
						
							
							Handle (store &GV -> mem) as a store immediate.  This often occurs for  
						
						... 
						
						
						
						printf format strings and other stuff.  Instead of generating this:
        movl $l1__2E_str_1, %eax
        movl %eax, (%esp)
we now emit:
        movl $l1__2E_str_1, (%esp)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21406  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 19:03:24 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5bf2686a1b 
					 
					
						
						
							
							Fix some mysteriously missing {}'s which cause the miscompilation of  
						
						... 
						
						
						
						Olden/mst, Ptrdist/bc, Obsequi, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21274  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-13 03:29:53 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						91302a10ae 
					 
					
						
						
							
							Z_E_I is gone  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21267  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-13 02:39:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4c52f0ec8c 
					 
					
						
						
							
							Use live out sets for return values instead of imp_defs, which is cleaner and faster.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21181  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-09 15:23:56 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						da4d4694a8 
					 
					
						
						
							
							This target does not support/want ISD::BRCONDTWOWAY  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21164  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-09 03:22:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6659bd7592 
					 
					
						
						
							
							X86 zero extends setcc results  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21146  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-07 19:41:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8db0af1c8d 
					 
					
						
						
							
							Add (untested) support for MULHS and MULHU.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21107  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-06 04:21:07 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b7edaa1d08 
					 
					
						
						
							
							add support for FABS and FNEG  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21015  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-02 05:30:17 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						43fdea070c 
					 
					
						
						
							
							This target doesn't support fabs/fneg yet.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21010  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-02 05:03:24 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b38a7495da 
					 
					
						
						
							
							Add support for 64-bit shifts.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21005  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-02 04:01:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7ce7eff54c 
					 
					
						
						
							
							Add support for ISD::UNDEF to the X86 be  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20990  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-01 22:46:45 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						71df3f8cab 
					 
					
						
						
							
							don't depend on the cfg being set up yet  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20936  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-03-30 01:10:00 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						8e21e71b24 
					 
					
						
						
							
							Change interface to LowerCallTo to take a boolean isVarArg argument.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20842  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-03-26 01:29:23 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						85fdeb233e 
					 
					
						
						
							
							Remove comments that are now meaningless from the pattern ISels, at Chris's  
						
						... 
						
						
						
						request.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20804  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-03-24 04:39:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7805fa4acc 
					 
					
						
						
							
							Don't emit two comparisons when comparing a FP value against zero!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20651  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-03-17 16:29:26 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e4d5c441e0 
					 
					
						
						
							
							This mega patch converts us from using Function::a{iterator|begin|end} to  
						
						... 
						
						
						
						using Function::arg_{iterator|begin|end}.  Likewise Module::g* -> Module::global_*.
This patch is contributed by Gabor Greif, thanks!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20597  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-03-15 04:54:21 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						572dd08204 
					 
					
						
						
							
							Silence some uninit variable warnings.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20284  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-02-23 05:57:21 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3576c84baf 
					 
					
						
						
							
							We can fold promoted and non-promoted loads into divs also!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19835  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-25 20:35:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						44129b5b68 
					 
					
						
						
							
							Fold promoted loads into binary ops for FP, allowing us to generate m32 forms  
						
						... 
						
						
						
						of FP ops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19834  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-25 20:03:11 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0a07883694 
					 
					
						
						
							
							Silence a warning.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19798  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-23 23:20:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fb0f53f9c1 
					 
					
						
						
							
							Speed up folding operations into loads.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19733  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-21 21:43:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						67b1c3c404 
					 
					
						
						
							
							The ever-important vanity pass name :)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19731  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-21 21:35:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b62e1e296e 
					 
					
						
						
							
							Fix a FIXME: realize that argument stores are all independent (don't alias)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19728  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-21 19:46:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						19ad0620bc 
					 
					
						
						
							
							Implement ADD_PARTS/SUB_PARTS so that 64-bit integer add/sub work.  This  
						
						... 
						
						
						
						fixes most of the remaining llc-beta failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19716  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-20 18:53:00 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						bf52d49f36 
					 
					
						
						
							
							Fix a crash compiling 134.perl.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19711  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-20 16:50:16 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c3c021bcad 
					 
					
						
						
							
							Fix a problem where were were literally selecting for INCREASED register  
						
						... 
						
						
						
						pressure, not decreases register pressure.  Fix problem where we accidentally
swapped the operands of SHLD, which caused fourinarow to fail.  This fixes
fourinarow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19697  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-19 17:24:34 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4053b1e30b 
					 
					
						
						
							
							Implement Regression/CodeGen/X86/rotate.ll: emit rotate instructions (which  
						
						... 
						
						
						
						typically cost 1 cycle) instead of shld/shrd instruction (which are typically
6 or more cycles).  This also saves code space.
For example, instead of emitting:
rotr:
        mov %EAX, DWORD PTR [%ESP + 4]
        mov %CL, BYTE PTR [%ESP + 8]
        shrd %EAX, %EAX, %CL
        ret
rotli:
        mov %EAX, DWORD PTR [%ESP + 4]
        shrd %EAX, %EAX, 27
        ret
Emit:
rotr32:
        mov %CL, BYTE PTR [%ESP + 8]
        mov %EAX, DWORD PTR [%ESP + 4]
        ror %EAX, %CL
        ret
rotli32:
        mov %EAX, DWORD PTR [%ESP + 4]
        ror %EAX, 27
        ret
We also emit byte rotate instructions which do not have a sh[lr]d counterpart
at all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19692  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-19 08:07:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						30ea1e9411 
					 
					
						
						
							
							Match 16-bit shld/shrd instructions as well, implementing shift-double.llx:test5  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19689  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-19 07:37:26 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8571637ee9 
					 
					
						
						
							
							Codegen long >> 2 to this:  
						
						... 
						
						
						
						foo:
        mov %EAX, DWORD PTR [%ESP + 4]
        mov %EDX, DWORD PTR [%ESP + 8]
        shrd %EAX, %EDX, 2
        sar %EDX, 2
        ret
instead of this:
test1:
        mov %ECX, DWORD PTR [%ESP + 4]
        shr %ECX, 2
        mov %EDX, DWORD PTR [%ESP + 8]
        mov %EAX, %EDX
        shl %EAX, 30
        or %EAX, %ECX
        sar %EDX, 2
        ret
and long << 2 to this:
foo:
        mov %EAX, DWORD PTR [%ESP + 4]
        mov %ECX, DWORD PTR [%ESP + 8]
***     mov %EDX, %EAX
        shrd %EDX, %ECX, 30
        shl %EAX, 2
        ret
instead of this:
foo:
        mov %EAX, DWORD PTR [%ESP + 4]
        mov %ECX, %EAX
        shr %ECX, 30
        mov %EDX, DWORD PTR [%ESP + 8]
        shl %EDX, 2
        or %EDX, %ECX
        shl %EAX, 2
        ret
The extra copy (marked ***) can be eliminated when I teach the code generator
that shrd32rri8 is really commutative.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19681  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-19 06:18:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						009b55b6f6 
					 
					
						
						
							
							X86 shifts mask the amount.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19678  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-19 03:36:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						477c931852 
					 
					
						
						
							
							Code to handle FP_EXTEND is dead now.  X86 doesn't support any data types to  
						
						... 
						
						
						
						FP_EXTEND from!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19674  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-18 20:05:56 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3dd68151dc 
					 
					
						
						
							
							Remove more dead code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19673  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-18 19:50:08 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a7a4c0f7c4 
					 
					
						
						
							
							The selection dag code handles the promotions from F32 to F64 for us, so we  
						
						... 
						
						
						
						don't need to even think about F32 in the X86 code anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19672  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-18 19:46:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b422aeac9e 
					 
					
						
						
							
							Fix 124.m88ksim.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19667  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-18 17:35:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						811482a82b 
					 
					
						
						
							
							Do not emit loads multiple times, potentially in the wrong places.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19661  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-18 04:18:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b71f8fc99d 
					 
					
						
						
							
							Eliminate bad assertions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19659  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-18 04:00:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4a108668df 
					 
					
						
						
							
							* Eliminate the TokenSet and just use the ExprMap for both tokens and values.  
						
						... 
						
						
						
						* Insert some really pedantic assertions that will notice when we emit the
  same loads more than one time, exposing bugs.  This turns a miscompilation in
  bzip2 into a compile-fail.  yaay.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19658  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-18 03:51:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						883c86f510 
					 
					
						
						
							
							Rely on the code in MatchAddress to do this work.  Otherwise we fail to  
						
						... 
						
						
						
						match (X+Y)+(Z << 1), because we match the X+Y first, consuming the index
register, then there is no place to put the Z.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19652  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-18 02:25:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						98a8ba0393 
					 
					
						
						
							
							Fix a problem where probing for addressing modes caused expressions to be  
						
						... 
						
						
						
						emitted too early.  In particular, this fixes
Regression/CodeGen/X86/regpressure.ll:regpressure3.
This also improves the 2nd basic block in 164.gzip:flush_block, which went from
.LBBflush_block_1:      # loopentry.1.i
        movzx %EAX, WORD PTR [dyn_ltree + 20]
        movzx %ECX, WORD PTR [dyn_ltree + 16]
        mov DWORD PTR [%ESP + 32], %ECX
        movzx %ECX, WORD PTR [dyn_ltree + 12]
        movzx %EDX, WORD PTR [dyn_ltree + 8]
        movzx %EBX, WORD PTR [dyn_ltree + 4]
        mov DWORD PTR [%ESP + 36], %EBX
        movzx %EBX, WORD PTR [dyn_ltree]
        add DWORD PTR [%ESP + 36], %EBX
        add %EDX, DWORD PTR [%ESP + 36]
        add %ECX, %EDX
        add DWORD PTR [%ESP + 32], %ECX
        add %EAX, DWORD PTR [%ESP + 32]
        movzx %ECX, WORD PTR [dyn_ltree + 24]
        add %EAX, %ECX
        mov %ECX, 0
        mov %EDX, %ECX
to
.LBBflush_block_1:      # loopentry.1.i
        movzx %EAX, WORD PTR [dyn_ltree]
        movzx %ECX, WORD PTR [dyn_ltree + 4]
        add %ECX, %EAX
        movzx %EAX, WORD PTR [dyn_ltree + 8]
        add %EAX, %ECX
        movzx %ECX, WORD PTR [dyn_ltree + 12]
        add %ECX, %EAX
        movzx %EAX, WORD PTR [dyn_ltree + 16]
        add %EAX, %ECX
        movzx %ECX, WORD PTR [dyn_ltree + 20]
        add %ECX, %EAX
        movzx %EAX, WORD PTR [dyn_ltree + 24]
        add %ECX, %EAX
        mov %EAX, 0
        mov %EDX, %EAX
... which results in less spilling in the function.
This change alone speeds up 164.gzip from 37.23s to 36.24s on apoc.  The
default isel takes 37.31s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19650  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-18 01:06:26 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						869e0434ae 
					 
					
						
						
							
							Don't bother using max here.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19647  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-17 23:02:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						90d1be7eef 
					 
					
						
						
							
							Do not give token factor nodes outrageous weights  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19645  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-17 22:56:09 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5c65981a57 
					 
					
						
						
							
							Two changes:  
						
						... 
						
						
						
						1. Fold  [mem] += (1|-1) into inc [mem]/dec [mem] to save some icache space.
 2. Do not let token factor nodes prevent forming '[mem] op= val' folds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19643  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-17 22:10:42 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e10269ba30 
					 
					
						
						
							
							Refactor load/op/store folding into it's own method, no functionality changes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19641  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-17 19:25:26 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ae3ffba466 
					 
					
						
						
							
							Fix a major regression last night that prevented us from producing [mem] op= reg  
						
						... 
						
						
						
						operations.
The body of the if is less indented but unmodified in this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19638  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-17 17:49:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2a4e508281 
					 
					
						
						
							
							Codegen this:  
						
						... 
						
						
						
						int %foo(int %X) {
        %T = add int %X, 13
        %S = mul int %T, 3
        ret int %S
}
as this:
        mov %ECX, DWORD PTR [%ESP + 4]
        lea %EAX, DWORD PTR [%ECX + 2*%ECX + 39]
        ret
instead of this:
        mov %ECX, DWORD PTR [%ESP + 4]
        mov %EAX, %ECX
        add %EAX, 13
        imul %EAX, %EAX, 3
        ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19633  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-17 06:48:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4ff348befa 
					 
					
						
						
							
							Fix test/Regression/CodeGen/X86/2005-01-17-CycleInDAG.ll and 132.ijpeg.  
						
						... 
						
						
						
						Do not fold a load into an operation if it will induce a cycle in the DAG.
Repeat after me: dAg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19631  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-17 06:26:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cb1aa8d772 
					 
					
						
						
							
							Do not fold a load into a comparison that is used by more than one place.  
						
						... 
						
						
						
						The comparison will probably be folded, so this is not ok to do.
This fixed 197.parser.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19624  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-17 01:34:14 +00:00