229907cd11 
								
							 
						 
						
							
							
								
								land David Blaikie's patch to de-constify Type, with a few tweaks.  
							
							... 
							
							
							
							llvm-svn: 135375 
							
						 
						
							2011-07-18 04:54:35 +00:00  
				
					
						
							
							
								 
						
							
								bc153d49b7 
								
							 
						 
						
							
							
								
								Next round of MC refactoring. This patch factor MC table instantiations, MC  
							
							... 
							
							
							
							registeration and creation code into XXXMCDesc libraries.
llvm-svn: 135184 
							
						 
						
							2011-07-14 20:59:42 +00:00  
				
					
						
							
							
								 
						
							
								f03fa189ca 
								
							 
						 
						
							
							
								
								Add an intrinsic and codegen support for fused multiply-accumulate. The intent  
							
							... 
							
							
							
							is to use this for architectures that have a native FMA instruction.
llvm-svn: 134742 
							
						 
						
							2011-07-08 21:39:21 +00:00  
				
					
						
							
							
								 
						
							
								0713a9d8fc 
								
							 
						 
						
							
							
								
								Add a parameter to CCState so that it can access the MachineFunction.  
							
							... 
							
							
							
							No functional change.
Part of PR6965
llvm-svn: 132763 
							
						 
						
							2011-06-08 23:55:35 +00:00  
				
					
						
							
							
								 
						
							
								de9399bf76 
								
							 
						 
						
							
							
								
								Have LowerOperandForConstraint handle multiple character constraints.  
							
							... 
							
							
							
							Part of rdar://9119939
llvm-svn: 132510 
							
						 
						
							2011-06-02 23:16:42 +00:00  
				
					
						
							
							
								 
						
							
								9eb5a410bd 
								
							 
						 
						
							
							
								
								Use the correct register class for Cell varargs spilling. This fixes all of the  
							
							... 
							
							
							
							verifier failures in the CodeGen/CellSPU tests.
llvm-svn: 131631 
							
						 
						
							2011-05-19 04:44:19 +00:00  
				
					
						
							
							
								 
						
							
								2518f8376d 
								
							 
						 
						
							
							
								
								Make the logic for determining function alignment more explicit.  No functionality change.  
							
							... 
							
							
							
							llvm-svn: 131012 
							
						 
						
							2011-05-06 20:34:06 +00:00  
				
					
						
							
							
								 
						
							
								0ab5e2cded 
								
							 
						 
						
							
							
								
								Fix a ton of comment typos found by codespell.  Patch by  
							
							... 
							
							
							
							Luis Felipe Strano Moraes!
llvm-svn: 129558 
							
						 
						
							2011-04-15 05:18:47 +00:00  
				
					
						
							
							
								 
						
							
								b2c80da4ae 
								
							 
						 
						
							
							
								
								Allow targets to specify a the type of the RHS of a shift parameterized on the type of the LHS.  
							
							... 
							
							
							
							llvm-svn: 126518 
							
						 
						
							2011-02-25 21:41:48 +00:00  
				
					
						
							
							
								 
						
							
								f3292b2196 
								
							 
						 
						
							
							
								
								Revert r124611 - "Keep track of incoming argument's location while emitting LiveIns."  
							
							... 
							
							
							
							In other words, do not keep track of argument's location.  The debugger (gdb) is not prepared to see line table entries for arguments. For the debugger, "second" line table entry marks beginning of function body.
This requires some coordination with debugger to get this working. 
 - The debugger needs to be aware of prolog_end attribute attached with line table entries.
 - The compiler needs to accurately mark prolog_end in line table entries (at -O0 and at -O1+)
llvm-svn: 126155 
							
						 
						
							2011-02-21 23:21:26 +00:00  
				
					
						
							
							
								 
						
							
								56cc5fdf09 
								
							 
						 
						
							
							
								
								Keep track of incoming argument's location while emitting LiveIns.  
							
							... 
							
							
							
							llvm-svn: 124611 
							
						 
						
							2011-01-31 21:38:14 +00:00  
				
					
						
							
							
								 
						
							
								6e5a54b36c 
								
							 
						 
						
							
							
								
								Allow sign-extending of i8 and i16 to i128 on SPU.  
							
							... 
							
							
							
							llvm-svn: 123912 
							
						 
						
							2011-01-20 15:49:06 +00:00  
				
					
						
							
							
								 
						
							
								249fcd4499 
								
							 
						 
						
							
							
								
								Remove unused variables found by gcc-4.6's -Wunused-but-set-variable.  
							
							... 
							
							
							
							llvm-svn: 123707 
							
						 
						
							2011-01-18 00:51:23 +00:00  
				
					
						
							
							
								 
						
							
								7e7b4ac751 
								
							 
						 
						
							
							
								
								Don't crash SPU BE with memory accesses with big alignmnet.  
							
							... 
							
							
							
							llvm-svn: 123620 
							
						 
						
							2011-01-17 11:59:20 +00:00  
				
					
						
							
							
								 
						
							
								2f93128109 
								
							 
						 
						
							
							
								
								Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs and fixes here and there.  
							
							... 
							
							
							
							llvm-svn: 123170 
							
						 
						
							2011-01-10 12:39:04 +00:00  
				
					
						
							
							
								 
						
							
								3e5fbd74ed 
								
							 
						 
						
							
							
								
								rename MVT::Flag to MVT::Glue.  "Flag" is a terrible name for  
							
							... 
							
							
							
							something that just glues two nodes together, even if it is
sometimes used for flags.
llvm-svn: 122310 
							
						 
						
							2010-12-21 02:38:05 +00:00  
				
					
						
							
							
								 
						
							
								e0a1d2b32c 
								
							 
						 
						
							
							
								
								Use i8 as SETCC result type for i1 in SPU.  
							
							... 
							
							
							
							llvm-svn: 120092 
							
						 
						
							2010-11-24 12:59:16 +00:00  
				
					
						
							
							
								 
						
							
								e1b6c273b8 
								
							 
						 
						
							
							
								
								Division by pow-of-2 is not cheap on SPU, do it with  
							
							... 
							
							
							
							shifts.
llvm-svn: 120022 
							
						 
						
							2010-11-23 13:27:59 +00:00  
				
					
						
							
							
								 
						
							
								527da1b6e2 
								
							 
						 
						
							
							
								
								Renaming ISD::BIT_CONVERT to ISD::BITCAST to better reflect the LLVM IR concept.  
							
							... 
							
							
							
							llvm-svn: 119990 
							
						 
						
							2010-11-23 03:31:01 +00:00  
				
					
						
							
							
								 
						
							
								77d11d054c 
								
							 
						 
						
							
							
								
								Fix a bug with extractelement on SPU.  
							
							... 
							
							
							
							In the attached testcase, the element was
never extracted (missing rotate).
llvm-svn: 119973 
							
						 
						
							2010-11-22 16:28:26 +00:00  
				
					
						
							
							
								 
						
							
								731d392d1c 
								
							 
						 
						
							
							
								
								Improve code layout, mostly indentation.  
							
							... 
							
							
							
							No functionality change.
llvm-svn: 119142 
							
						 
						
							2010-11-15 10:12:32 +00:00  
				
					
						
							
							
								 
						
							
								0a9dd405a5 
								
							 
						 
						
							
							
								
								Fix memory access lowering on SPU, adding  
							
							... 
							
							
							
							support for the case where alignment<value size.
These cases were silently miscompiled before this patch.
Now they are overly verbose -especially storing is- and
any front-end should still avoid misaligned memory 
accesses as much as possible. The bit juggling algorithm
added here probably has some room for improvement still.
llvm-svn: 118889 
							
						 
						
							2010-11-12 10:14:03 +00:00  
				
					
						
							
							
								 
						
							
								1462777017 
								
							 
						 
						
							
							
								
								Simplify uses of MVT and EVT.  An MVT can be compared directly  
							
							... 
							
							
							
							with a SimpleValueType, while an EVT supports equality and
inequality comparisons with SimpleValueType.
llvm-svn: 118169 
							
						 
						
							2010-11-03 12:17:33 +00:00  
				
					
						
							
							
								 
						
							
								e8360b7182 
								
							 
						 
						
							
							
								
								Inline asm multiple alternative constraints development phase 2 - improved basic logic, added initial platform support.  
							
							... 
							
							
							
							llvm-svn: 117667 
							
						 
						
							2010-10-29 17:29:13 +00:00  
				
					
						
							
							
								 
						
							
								5f2034c455 
								
							 
						 
						
							
							
								
								Improve lowering of sext to i128 on SPU.  
							
							... 
							
							
							
							The old algorithm inserted a 'rotqmbyi' instruction which was
both redundant and wrong - it made shufb select bytes from the
wrong end of the input quad.
llvm-svn: 116701 
							
						 
						
							2010-10-18 09:34:19 +00:00  
				
					
						
							
							
								 
						
							
								a845022ddd 
								
							 
						 
						
							
							
								
								Implement two virtual functions in SPUTargetLowering.  
							
							... 
							
							
							
							Before the implementation of isLegalAddressingMode, some rare cases 
of code were miscompiled if optimized with the LoopStrengthReduce pass.
It is unclear (to me) if LSR is "allowed" to produce wrong code with a 
bad TargetLowering, or if the bug is elsewhere and this patch just 
hides it.
llvm-svn: 115919 
							
						 
						
							2010-10-07 16:24:35 +00:00  
				
					
						
							
							
								 
						
							
								676c61db0e 
								
							 
						 
						
							
							
								
								update a bunch of code to use the MachinePointerInfo version of getStore.  
							
							... 
							
							
							
							llvm-svn: 114461 
							
						 
						
							2010-09-21 18:41:36 +00:00  
				
					
						
							
							
								 
						
							
								82fd06d3ce 
								
							 
						 
						
							
							
								
								it's more elegant to put the "getConstantPool" and  
							
							... 
							
							
							
							"getFixedStack" on the MachinePointerInfo class.  While
this isn't the problem I'm setting out to solve, it is the
right way to eliminate PseudoSourceValue, so lets go with it.
llvm-svn: 114406 
							
						 
						
							2010-09-21 06:22:23 +00:00  
				
					
						
							
							
								 
						
							
								01cda2d35a 
								
							 
						 
						
							
							
								
								Silence compiler warning.  
							
							... 
							
							
							
							llvm-svn: 113478 
							
						 
						
							2010-09-09 07:30:15 +00:00  
				
					
						
							
							
								 
						
							
								e542972828 
								
							 
						 
						
							
							
								
								Fix CellSPU vector shuffles, again.  
							
							... 
							
							
							
							Some cases of lowering to rotate were miscompiled.
llvm-svn: 113355 
							
						 
						
							2010-09-08 11:53:38 +00:00  
				
					
						
							
							
								 
						
							
								1e616572d9 
								
							 
						 
						
							
							
								
								Fix lowering of INSERT_VECTOR_ELT in SPU.  
							
							... 
							
							
							
							The IDX was treated as byte index, not element index.
llvm-svn: 112422 
							
						 
						
							2010-08-29 12:41:50 +00:00  
				
					
						
							
							
								 
						
							
								7e25bc4145 
								
							 
						 
						
							
							
								
								Fix SPU BE to use all the available return registers.  
							
							... 
							
							
							
							llc used to assert on the added testcase.
llvm-svn: 111911 
							
						 
						
							2010-08-24 11:50:48 +00:00  
				
					
						
							
							
								 
						
							
								8f3e3ba5ff 
								
							 
						 
						
							
							
								
								Remove some dead code from SPU BE that remained  
							
							... 
							
							
							
							from 64bit vector support.
llvm-svn: 111910 
							
						 
						
							2010-08-24 11:05:51 +00:00  
				
					
						
							
							
								 
						
							
								e60b5161d1 
								
							 
						 
						
							
							
								
								Fix a bug with insertelement on SPU.  
							
							... 
							
							
							
							The previous algorithm in LowerVECTOR_SHUFFLE 
didn't check all requirements for "monotonic" shuffles.
llvm-svn: 111361 
							
						 
						
							2010-08-18 10:20:29 +00:00  
				
					
						
							
							
								 
						
							
								ab49360f59 
								
							 
						 
						
							
							
								
								Remove all traces of v2[i,f]32 on SPU.  
							
							... 
							
							
							
							The "half vectors" are now widened to full size by the legalizer.
The only exception is in parameter passing, where half vectors are 
expanded. This causes changes to some dejagnu tests.
llvm-svn: 111360 
							
						 
						
							2010-08-18 10:04:39 +00:00  
				
					
						
							
							
								 
						
							
								999da1f3a0 
								
							 
						 
						
							
							
								
								Have SPU handle halfvec stores aligned by 8 bytes.  
							
							... 
							
							
							
							llvm-svn: 110576 
							
						 
						
							2010-08-09 16:33:00 +00:00  
				
					
						
							
							
								 
						
							
								8b2f70125f 
								
							 
						 
						
							
							
								
								Make SPU backend handle insertelement and  
							
							... 
							
							
							
							store for "half vectors"
llvm-svn: 110198 
							
						 
						
							2010-08-04 13:59:48 +00:00  
				
					
						
							
							
								 
						
							
								77558b7d13 
								
							 
						 
						
							
							
								
								More SPU v2f32 stuff added: insertelement and shuffle.  
							
							... 
							
							
							
							llvm-svn: 110038 
							
						 
						
							2010-08-02 11:22:10 +00:00  
				
					
						
							
							
								 
						
							
								68b3886678 
								
							 
						 
						
							
							
								
								Add preliminary v2f32 support for SPU. Like with v2i32, we just  
							
							... 
							
							
							
							duplicate the instructions and operate on half vectors. 
Also reorder code in SPUInstrInfo.td for better coherency.
llvm-svn: 110037 
							
						 
						
							2010-08-02 10:25:47 +00:00  
				
					
						
							
							
								 
						
							
								622f8eb981 
								
							 
						 
						
							
							
								
								Add preliminary v2i32 support for SPU backend. As there are no  
							
							... 
							
							
							
							such registers in SPU, this support boils down to "emulating" 
them by duplicating instructions on the general purpose registers. 
This adds the most basic operations on v2i32: passing parameters,
addition, subtraction, multiplication and a few others.
llvm-svn: 110035 
							
						 
						
							2010-08-02 08:54:39 +00:00  
				
					
						
							
							
								 
						
							
								d799ea52cd 
								
							 
						 
						
							
							
								
								Switch SPU calling convention (function arguments)  
							
							... 
							
							
							
							to a Tablegen implementation.
llvm-svn: 107913 
							
						 
						
							2010-07-08 21:15:22 +00:00  
				
					
						
							
							
								 
						
							
								fe7532a308 
								
							 
						 
						
							
							
								
								Split the SDValue out of OutputArg so that SelectionDAG-independent  
							
							... 
							
							
							
							code can do calling-convention queries. This obviates OutputArgReg.
llvm-svn: 107786 
							
						 
						
							2010-07-07 15:54:55 +00:00  
				
					
						
							
							
								 
						
							
								a3ca21b228 
								
							 
						 
						
							
							
								
								Propagate debug loc.  
							
							... 
							
							
							
							llvm-svn: 107710 
							
						 
						
							2010-07-06 22:08:15 +00:00  
				
					
						
							
							
								 
						
							
								d5ac287140 
								
							 
						 
						
							
							
								
								Remove some unused/redundant code.  
							
							... 
							
							
							
							llvm-svn: 107622 
							
						 
						
							2010-07-05 18:40:09 +00:00  
				
					
						
							
							
								 
						
							
								0664a67fe1 
								
							 
						 
						
							
							
								
								Remove isSS argument from CreateFixedObject. Fixed objects cannot be spill slots so it's always false.  
							
							... 
							
							
							
							llvm-svn: 107550 
							
						 
						
							2010-07-03 00:40:23 +00:00  
				
					
						
							
							
								 
						
							
								ce97d55ad9 
								
							 
						 
						
							
							
								
								The hasMemory argument is irrelevant to how the argument  
							
							... 
							
							
							
							for an "i" constraint should get lowered; PR 6309.  While
this argument was passed around a lot, this is the only
place it was used, so it goes away from a lot of other
places.
llvm-svn: 106893 
							
						 
						
							2010-06-25 21:55:36 +00:00  
				
					
						
							
							
								 
						
							
								74b5e3e0ae 
								
							 
						 
						
							
							
								
								remove some dead variables reported by clang++  
							
							... 
							
							
							
							llvm-svn: 106428 
							
						 
						
							2010-06-21 17:20:18 +00:00  
				
					
						
							
							
								 
						
							
								d7f50c118a 
								
							 
						 
						
							
							
								
								Fix the lowering of VECTOR_SHUFFLE on SPU to handle splats.  
							
							... 
							
							
							
							llvm-svn: 106419 
							
						 
						
							2010-06-21 14:42:19 +00:00  
				
					
						
							
							
								 
						
							
								6f58190f6f 
								
							 
						 
						
							
							
								
								Fix lowering of VECTOR_SHUFFLE on SPU. Old algorithm  
							
							... 
							
							
							
							used to choke llc with the attached test.
 
llvm-svn: 106411 
							
						 
						
							2010-06-21 10:17:36 +00:00  
				
					
						
							
							
								 
						
							
								f1d8304fe3 
								
							 
						 
						
							
							
								
								Eliminate unnecessary uses of getZExtValue().  
							
							... 
							
							
							
							llvm-svn: 106279 
							
						 
						
							2010-06-18 14:22:04 +00:00