2e766ed2f8 
								
							 
						 
						
							
							
								
								Reverse order of operands of address operand mem so that the base operand comes  
							
							... 
							
							
							
							before the offset. This change will enable simplification of function
MipsRegisterInfo::eliminateFrameIndex.
llvm-svn: 134625 
							
						 
						
							2011-07-07 18:57:00 +00:00  
				
					
						
							
							
								 
						
							
								ca88b4abec 
								
							 
						 
						
							
							
								
								Prevent generation of redundant addiu instructions that compute address of  
							
							... 
							
							
							
							static variables or functions. 
llvm-svn: 133803 
							
						 
						
							2011-06-24 17:55:19 +00:00  
				
					
						
							
							
								 
						
							
								4c406e7457 
								
							 
						 
						
							
							
								
								Re-apply 132758 and 132768 which were speculatively reverted in 132777.  
							
							... 
							
							
							
							llvm-svn: 133494 
							
						 
						
							2011-06-21 00:40:49 +00:00  
				
					
						
							
							
								 
						
							
								f15601f19a 
								
							 
						 
						
							
							
								
								Speculatively revert 132758 and 132768 to try to fix the Windows buildbots.  
							
							... 
							
							
							
							llvm-svn: 132777 
							
						 
						
							2011-06-09 16:03:19 +00:00  
				
					
						
							
							
								 
						
							
								0683a7212e 
								
							 
						 
						
							
							
								
								Initial support for inline asm memory operand constraints.  
							
							... 
							
							
							
							llvm-svn: 132768 
							
						 
						
							2011-06-09 03:31:05 +00:00  
				
					
						
							
							
								 
						
							
								e99b08d6c3 
								
							 
						 
						
							
							
								
								Put back removed line.  
							
							... 
							
							
							
							llvm-svn: 132725 
							
						 
						
							2011-06-07 19:03:14 +00:00  
				
					
						
							
							
								 
						
							
								1550678765 
								
							 
						 
						
							
							
								
								Coding style fixes.  
							
							... 
							
							
							
							- Fix indentation.
- Move comments.
- Fit lines in 80 columns.
- Remove dead code.
llvm-svn: 132724 
							
						 
						
							2011-06-07 18:58:42 +00:00  
				
					
						
							
							
								 
						
							
								2446869410 
								
							 
						 
						
							
							
								
								Detect FI|cst pattern in MipsDAGToDAGISel::SelectAddr. Patch by Sasa Stankovic.  
							
							... 
							
							
							
							llvm-svn: 132448 
							
						 
						
							2011-06-02 01:03:14 +00:00  
				
					
						
							
							
								 
						
							
								bf3c1251e0 
								
							 
						 
						
							
							
								
								This patch implements the thread local storage. Implemented are General  
							
							... 
							
							
							
							Dynamic, Initial Exec and Local Exec TLS models.
Patch by Sasa Stankovic
llvm-svn: 132322 
							
						 
						
							2011-05-31 02:53:58 +00:00  
				
					
						
							
							
								 
						
							
								b406843fe5 
								
							 
						 
						
							
							
								
								Define a wrapper node for target constant nodes (tglobaladdr, etc.).  
							
							... 
							
							
							
							Need this to prevent emitting illegal conditional move instructions. 
llvm-svn: 132240 
							
						 
						
							2011-05-28 01:07:07 +00:00  
				
					
						
							
							
								 
						
							
								e24891251c 
								
							 
						 
						
							
							
								
								Reverse unnecessary changes made in r129606 and r129608. There is no change in functionality.  
							
							... 
							
							
							
							llvm-svn: 129612 
							
						 
						
							2011-04-15 21:51:11 +00:00  
				
					
						
							
							
								 
						
							
								aef55c8801 
								
							 
						 
						
							
							
								
								Fix lines that have incorrect indentation or exceed 80 columns. There is no change in functionality.  
							
							... 
							
							
							
							llvm-svn: 129606 
							
						 
						
							2011-04-15 21:00:26 +00:00  
				
					
						
							
							
								 
						
							
								5ec2ead9b0 
								
							 
						 
						
							
							
								
								Move transformation of JmpLink and related nodes done during instruction selection to Legalize phase.  
							
							... 
							
							
							
							llvm-svn: 128830 
							
						 
						
							2011-04-04 17:11:07 +00:00  
				
					
						
							
							
								 
						
							
								4111db6575 
								
							 
						 
						
							
							
								
								Undo changes mistakenly made in revision 128750.  
							
							... 
							
							
							
							llvm-svn: 128751 
							
						 
						
							2011-04-02 00:26:12 +00:00  
				
					
						
							
							
								 
						
							
								977f555a76 
								
							 
						 
						
							
							
								
								Insert space before ';' to prevent warnings.  
							
							... 
							
							
							
							llvm-svn: 128750 
							
						 
						
							2011-04-02 00:15:58 +00:00  
				
					
						
							
							
								 
						
							
								3d9df607ba 
								
							 
						 
						
							
							
								
								Remove redundant code. There are assignments to variables Base and Offset right after the code that is removed.  
							
							... 
							
							
							
							llvm-svn: 128742 
							
						 
						
							2011-04-01 21:56:02 +00:00  
				
					
						
							
							
								 
						
							
								434248a62c 
								
							 
						 
						
							
							
								
								Improve div/rem node handling on mips. Patch by Akira Hatanaka  
							
							... 
							
							
							
							llvm-svn: 127034 
							
						 
						
							2011-03-04 21:03:24 +00:00  
				
					
						
							
							
								 
						
							
								f8198e4311 
								
							 
						 
						
							
							
								
								Lowers block address. Currently asserts when relocation model is not PIC. Patch by Akira Hatanaka  
							
							... 
							
							
							
							llvm-svn: 127027 
							
						 
						
							2011-03-04 20:01:52 +00:00  
				
					
						
							
							
								 
						
							
								ed874eff93 
								
							 
						 
						
							
							
								
								Remove (hopefully) all trailing whitespaces from the mips backend. Patch by Hatanaka, Akira  
							
							... 
							
							
							
							llvm-svn: 127003 
							
						 
						
							2011-03-04 17:51:39 +00:00  
				
					
						
							
							
								 
						
							
								9b43f33620 
								
							 
						 
						
							
							
								
								Change all self assignments X=X to (void)X, so that we can turn on a  
							
							... 
							
							
							
							new gcc warning that complains on self-assignments and
self-initializations.
llvm-svn: 122458 
							
						 
						
							2010-12-23 00:58:24 +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  
				
					
						
							
							
								 
						
							
								03c0330176 
								
							 
						 
						
							
							
								
								Enable mips32 mul instruction. Patch by Akira Hatanaka <ahatanaka@mips.com>  
							
							... 
							
							
							
							llvm-svn: 118864 
							
						 
						
							2010-11-12 00:38:32 +00:00  
				
					
						
							
							
								 
						
							
								0e023ea02a 
								
							 
						 
						
							
							
								
								fix a long standing wart: all the ComplexPattern's were being  
							
							... 
							
							
							
							passed the root of the match, even though only a few patterns
actually needed this (one in X86, several in ARM [which should
be refactored anyway], and some in CellSPU that I don't feel 
like detangling).   Instead of requiring all ComplexPatterns to
take the dead root, have targets opt into getting the root by
putting SDNPWantRoot on the ComplexPattern.
llvm-svn: 114471 
							
						 
						
							2010-09-21 20:31:19 +00:00  
				
					
						
							
							
								 
						
							
								44a2797e02 
								
							 
						 
						
							
							
								
								Remove Predicate_* calls from Mips  
							
							... 
							
							
							
							llvm-svn: 112919 
							
						 
						
							2010-09-03 00:35:13 +00:00  
				
					
						
							
							
								 
						
							
								92d57cee61 
								
							 
						 
						
							
							
								
								Don't call Predicate_* in Mips.  
							
							... 
							
							
							
							llvm-svn: 111468 
							
						 
						
							2010-08-18 23:56:46 +00:00  
				
					
						
							
							
								 
						
							
								5d56769fb6 
								
							 
						 
						
							
							
								
								SubRegIndex'ize Mips  
							
							... 
							
							
							
							llvm-svn: 104514 
							
						 
						
							2010-05-24 17:42:58 +00:00  
				
					
						
							
							
								 
						
							
								21cea8ac2e 
								
							 
						 
						
							
							
								
								Use const qualifiers with TargetLowering. This eliminates several  
							
							... 
							
							
							
							const_casts, and it reinforces the design of the Target classes being
immutable.
SelectionDAGISel::IsLegalToFold is now a static member function, because
PIC16 uses it in an unconventional way. There is more room for API
cleanup here.
And PIC16's AsmPrinter no longer uses TargetLowering.
llvm-svn: 101635 
							
						 
						
							2010-04-17 15:26:15 +00:00  
				
					
						
							
							
								 
						
							
								f98f124a73 
								
							 
						 
						
							
							
								
								Sink InstructionSelect() out of each target into SDISel, and rename it  
							
							... 
							
							
							
							DoInstructionSelection.  Inline "SelectRoot" into it from DAGISelHeader.
Sink some other stuff out of DAGISelHeader into SDISel.
Eliminate the various 'Indent' stuff from various targets, which dates
to when isel was recursive.
 17 files changed, 114 insertions(+), 430 deletions(-)
llvm-svn: 97555 
							
						 
						
							2010-03-02 06:34:30 +00:00  
				
					
						
							
							
								 
						
							
								b06015aa69 
								
							 
						 
						
							
							
								
								move target-independent opcodes out of TargetInstrInfo  
							
							... 
							
							
							
							into TargetOpcodes.h.  #include the new TargetOpcodes.h
into MachineInstr.  Add new inline accessors (like isPHI())
to MachineInstr, and start using them throughout the 
codebase.
llvm-svn: 95687 
							
						 
						
							2010-02-09 19:54:29 +00:00  
				
					
						
							
							
								 
						
							
								aa8c429a53 
								
							 
						 
						
							
							
								
								MulOp is actually a Mips specific node, so do the match using Opcode. This fixes PR6192  
							
							... 
							
							
							
							llvm-svn: 94977 
							
						 
						
							2010-02-01 12:16:39 +00:00  
				
					
						
							
							
								 
						
							
								e1afaf5c22 
								
							 
						 
						
							
							
								
								Fix a bug introduced on r92564 where the name "Node" was already  
							
							... 
							
							
							
							in use by Mips.
llvm-svn: 93897 
							
						 
						
							2010-01-19 19:57:07 +00:00  
				
					
						
							
							
								 
						
							
								4f34432d09 
								
							 
						 
						
							
							
								
								On pic function calls some arguments were marked dead and  
							
							... 
							
							
							
							the instruction to load those args removed. This fix PR6071
llvm-svn: 93880 
							
						 
						
							2010-01-19 17:00:43 +00:00  
				
					
						
							
							
								 
						
							
								c9818a77cb 
								
							 
						 
						
							
							
								
								load f64 +0.0 in a cleaner way. This fix part of PR5445  
							
							... 
							
							
							
							llvm-svn: 93876 
							
						 
						
							2010-01-19 12:53:04 +00:00  
				
					
						
							
							
								 
						
							
								ea6f91ff64 
								
							 
						 
						
							
							
								
								Change SelectCode's argument from SDValue to SDNode *, to make it more  
							
							... 
							
							
							
							clear what information these functions are actually using.
This is also a micro-optimization, as passing a SDNode * around is
simpler than passing a { SDNode *, int } by value or reference.
llvm-svn: 92564 
							
						 
						
							2010-01-05 01:24:18 +00:00  
				
					
						
							
							
								 
						
							
								2db07581b7 
								
							 
						 
						
							
							
								
								Support PIC loading of constant pool entries  
							
							... 
							
							
							
							llvm-svn: 89863 
							
						 
						
							2009-11-25 12:17:58 +00:00  
				
					
						
							
							
								 
						
							
								2c6d498ccc 
								
							 
						 
						
							
							
								
								Use endianess dependent offsets for load/store of doubles when  
							
							... 
							
							
							
							using two swc/lwc instead of sdc/ldc.
llvm-svn: 89826 
							
						 
						
							2009-11-25 01:05:25 +00:00  
				
					
						
							
							
								 
						
							
								4713b282ce 
								
							 
						 
						
							
							
								
								- Add sugregister logic to handle f64=(f32,f32).  
							
							... 
							
							
							
							- Support mips1 like load/store of doubles:
Instead of:
  sdc $f0, X($3)
Generate:
  swc $f0, X($3)
  swc $f1, X+4($3)
llvm-svn: 89322 
							
						 
						
							2009-11-19 06:06:13 +00:00  
				
					
						
							
							
								 
						
							
								537e409c58 
								
							 
						 
						
							
							
								
								- Fix a small bug while handling target constant pools (one param was missing).  
							
							... 
							
							
							
							- Add a smarter constant pool loading, instead of:
lui $2, %hi($CPI1_0)
addiu $2, $2, %lo($CPI1_0)
lwc1 $f0, 0($2)
Generate:
lui $2, %hi($CPI1_0)
lwc1 $f0, %lo($CPI1_0)($2)
llvm-svn: 88886 
							
						 
						
							2009-11-16 04:33:42 +00:00  
				
					
						
							
							
								 
						
							
								a03b5b44fc 
								
							 
						 
						
							
							
								
								Support fp64 immediate zero, this fixes only part of PR5445  
							
							... 
							
							
							
							because the testcase is triggering one more bug.
llvm-svn: 88674 
							
						 
						
							2009-11-13 18:49:59 +00:00  
				
					
						
							
							
								 
						
							
								b15f4a1cbd 
								
							 
						 
						
							
							
								
								Remove uninteresting and confusing debug output.  
							
							... 
							
							
							
							llvm-svn: 86149 
							
						 
						
							2009-11-05 18:47:09 +00:00  
				
					
						
							
							
								 
						
							
								974e12b2d3 
								
							 
						 
						
							
							
								
								Remove includes of Support/Compiler.h that are no longer needed after the  
							
							... 
							
							
							
							VISIBILITY_HIDDEN removal.
llvm-svn: 85043 
							
						 
						
							2009-10-25 06:57:41 +00:00  
				
					
						
							
							
								 
						
							
								02d5f77d26 
								
							 
						 
						
							
							
								
								Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.  
							
							... 
							
							
							
							Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.
llvm-svn: 85042 
							
						 
						
							2009-10-25 06:33:48 +00:00  
				
					
						
							
							
								 
						
							
								32f71d714b 
								
							 
						 
						
							
							
								
								Rename getTargetNode to getMachineNode, for consistency with the  
							
							... 
							
							
							
							naming scheme used in SelectionDAG, where there are multiple kinds
of "target" nodes, but "machine" nodes are nodes which represent
a MachineInstr.
llvm-svn: 82790 
							
						 
						
							2009-09-25 18:54:59 +00:00  
				
					
						
							
							
								 
						
							
								0f20a5b338 
								
							 
						 
						
							
							
								
								Reapply 80278  
							
							... 
							
							
							
							Add MO flags to simplify the printing of relocations.
Remove the support for printing large code model relocs (which
aren't supported anyway).
llvm-svn: 80691 
							
						 
						
							2009-09-01 17:27:58 +00:00  
				
					
						
							
							
								 
						
							
								e91191630b 
								
							 
						 
						
							
							
								
								Revert 80278 for now, it caused a lot of MIPS tests to fail  
							
							... 
							
							
							
							llvm-svn: 80280 
							
						 
						
							2009-08-27 19:57:56 +00:00  
				
					
						
							
							
								 
						
							
								18c21daafb 
								
							 
						 
						
							
							
								
								Revamp our friend Mips :)  
							
							... 
							
							
							
							Add MO flags to simplify the printing of relocations.
Remove the support for printing large code model relocs (which
aren't supported anyway).
llvm-svn: 80278 
							
						 
						
							2009-08-27 19:40:40 +00:00  
				
					
						
							
							
								 
						
							
								34ee203337 
								
							 
						 
						
							
							
								
								Fix some refactos for iostream changes (in -Asserts mode).  
							
							... 
							
							
							
							- The world needs better C++ refactoring tools, can I get an Amen!?
llvm-svn: 79843 
							
						 
						
							2009-08-23 08:50:52 +00:00  
				
					
						
							
							
								 
						
							
								af29ea6d57 
								
							 
						 
						
							
							
								
								eliminate the last DOUTs from the targets.  
							
							... 
							
							
							
							llvm-svn: 79833 
							
						 
						
							2009-08-23 06:49:22 +00:00  
				
					
						
							
							
								 
						
							
								9f94459d24 
								
							 
						 
						
							
							
								
								Split EVT into MVT and EVT, the former representing _just_ a primitive type, while  
							
							... 
							
							
							
							the latter is capable of representing either a primitive or an extended type.
llvm-svn: 78713 
							
						 
						
							2009-08-11 20:47:22 +00:00  
				
					
						
							
							
								 
						
							
								53aa7a960c 
								
							 
						 
						
							
							
								
								Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type.  
							
							... 
							
							
							
							llvm-svn: 78610 
							
						 
						
							2009-08-10 22:56:29 +00:00