70794596a8 
								
							 
						 
						
							
							
								
								Assign ordering to SDNodes in PromoteNode. Also fixing a subtle bug where BSWAP  
							
							... 
							
							
							
							was using "Tmp1" in the first getNode call instead of Node->getOperand(0).
llvm-svn: 91936 
							
						 
						
							2009-12-22 22:53:39 +00:00  
				
					
						
							
							
								 
						
							
								d85498132f 
								
							 
						 
						
							
							
								
								Allow 0 as an order number. Don't assign an order to formal arguments.  
							
							... 
							
							
							
							llvm-svn: 91920 
							
						 
						
							2009-12-22 21:35:02 +00:00  
				
					
						
							
							
								 
						
							
								bac37abe73 
								
							 
						 
						
							
							
								
								Report an error for bad inline assembly, where the value passed for an  
							
							... 
							
							
							
							"indirect" operand is not a pointer.
llvm-svn: 91913 
							
						 
						
							2009-12-22 18:34:19 +00:00  
				
					
						
							
							
								 
						
							
								919b7aab2e 
								
							 
						 
						
							
							
								
								Add more plumbing. This time in the LowerArguments and "get" functions which  
							
							... 
							
							
							
							return partial registers. This affected the back-end lowering code some.
Also patch up some places I missed before in the "get" functions.
llvm-svn: 91880 
							
						 
						
							2009-12-22 02:10:19 +00:00  
				
					
						
							
							
								 
						
							
								ac08758b71 
								
							 
						 
						
							
							
								
								Add SDNode ordering to inlined asm and VA functions.  
							
							... 
							
							
							
							llvm-svn: 91876 
							
						 
						
							2009-12-22 01:25:10 +00:00  
				
					
						
							
							
								 
						
							
								f376c40d0e 
								
							 
						 
						
							
							
								
								Adding more assignment of ordering to SDNodes. This time in the "call" and  
							
							... 
							
							
							
							generic copy functions.
llvm-svn: 91872 
							
						 
						
							2009-12-22 01:11:43 +00:00  
				
					
						
							
							
								 
						
							
								a4d7df7a37 
								
							 
						 
						
							
							
								
								Add ordering of SDNodes to LowerCallTo.  
							
							... 
							
							
							
							llvm-svn: 91866 
							
						 
						
							2009-12-22 00:50:32 +00:00  
				
					
						
							
							
								 
						
							
								b99b2693f3 
								
							 
						 
						
							
							
								
								Now add ordering to SDNodes created by the massive intrinsic lowering function.  
							
							... 
							
							
							
							llvm-svn: 91863 
							
						 
						
							2009-12-22 00:40:51 +00:00  
				
					
						
							
							
								 
						
							
								ea3e73e596 
								
							 
						 
						
							
							
								
								To make things interesting, I added MORE code to set the ordering of  
							
							... 
							
							
							
							SDNodes. This time in the load/store and limited-precision code.
llvm-svn: 91860 
							
						 
						
							2009-12-22 00:12:37 +00:00  
				
					
						
							
							
								 
						
							
								c6b473433b 
								
							 
						 
						
							
							
								
								Add more plumbing to assign ordering to SDNodes. Have the "getValue" method  
							
							... 
							
							
							
							assign the ordering when called. Combine some of the ordering assignments to
keep things simple.
llvm-svn: 91857 
							
						 
						
							2009-12-21 23:47:40 +00:00  
				
					
						
							
							
								 
						
							
								e79105b591 
								
							 
						 
						
							
							
								
								More ordering plumbing. This time for GEP. I need to remember to assign  
							
							... 
							
							
							
							orderings to values returned by getValue().
llvm-svn: 91850 
							
						 
						
							2009-12-21 23:10:19 +00:00  
				
					
						
							
							
								 
						
							
								fff99f066b 
								
							 
						 
						
							
							
								
								Another incremental check-in for assigning ordering to SDNodes. This time for  
							
							... 
							
							
							
							shuffle and insert vector.
llvm-svn: 91847 
							
						 
						
							2009-12-21 22:42:14 +00:00  
				
					
						
							
							
								 
						
							
								443d0722b0 
								
							 
						 
						
							
							
								
								Assign ordering to more instructions. Incremental check-in.  
							
							... 
							
							
							
							llvm-svn: 91846 
							
						 
						
							2009-12-21 22:30:11 +00:00  
				
					
						
							
							
								 
						
							
								28727f3785 
								
							 
						 
						
							
							
								
								- Add a bit more plumbing assigning an order to SDNodes.  
							
							... 
							
							
							
							- Modify the "dump" method to emit the order of an SDNode.
llvm-svn: 91845 
							
						 
						
							2009-12-21 21:59:52 +00:00  
				
					
						
							
							
								 
						
							
								7f5eb53ce2 
								
							 
						 
						
							
							
								
								First wave of plumbing for assigning an ordering to SDNodes. This takes care of  
							
							... 
							
							
							
							a lot of the branching instructions.
llvm-svn: 91838 
							
						 
						
							2009-12-21 19:59:38 +00:00  
				
					
						
							
							
								 
						
							
								022d18fa3f 
								
							 
						 
						
							
							
								
								Changes from review:  
							
							... 
							
							
							
							- Move DisableScheduling flag into TargetOption.h
- Move SDNodeOrdering into its own header file. Give it a minimal interface that
  doesn't conflate construction with storage.
- Move assigning the ordering into the SelectionDAGBuilder.
This isn't used yet, so there should be no functional changes.
llvm-svn: 91727 
							
						 
						
							2009-12-18 23:32:53 +00:00  
				
					
						
							
							
								 
						
							
								3152b0471b 
								
							 
						 
						
							
							
								
								Handle ARM inline asm "w" constraints with 64-bit ("d") registers.  
							
							... 
							
							
							
							The change in SelectionDAGBuilder is needed to allow using bitcasts to convert
between f64 (the default type for ARM "d" registers) and 64-bit Neon vector
types.  Radar 7457110.
llvm-svn: 91649 
							
						 
						
							2009-12-18 01:03:29 +00:00  
				
					
						
							
							
								 
						
							
								1c00b6964f 
								
							 
						 
						
							
							
								
								Fix a comment grammaro.  
							
							... 
							
							
							
							llvm-svn: 91584 
							
						 
						
							2009-12-17 05:07:36 +00:00  
				
					
						
							
							
								 
						
							
								b827e52638 
								
							 
						 
						
							
							
								
								Reapply r91392, it was only unmasking the bug, and since TOT is still broken having it reverted does no good.  
							
							... 
							
							
							
							llvm-svn: 91560 
							
						 
						
							2009-12-16 20:10:05 +00:00  
				
					
						
							
							
								 
						
							
								df45b70c1e 
								
							 
						 
						
							
							
								
								Revert "Initial work on disabling the scheduler. This is a work in progress, and  
							
							... 
							
							
							
							this", this broke llvm-gcc bootstrap for release builds on
x86_64-apple-darwin10.
llvm-svn: 91533 
							
						 
						
							2009-12-16 10:56:02 +00:00  
				
					
						
							
							
								 
						
							
								07beddceb7 
								
							 
						 
						
							
							
								
								Initial work on disabling the scheduler. This is a work in progress, and this  
							
							... 
							
							
							
							stuff isn't used just yet.
We want to model the GCC `-fno-schedule-insns' and `-fno-schedule-insns2'
flags. The hypothesis is that the people who use these flags know what they are
doing, and have hand-optimized the C code to reduce latencies and other
conflicts.
The idea behind our scheme to turn off scheduling is to create a map "on the
side" during DAG generation. It will order the nodes by how they appeared in the
code. This map is then used during scheduling to get the ordering.
llvm-svn: 91392 
							
						 
						
							2009-12-15 01:54:51 +00:00  
				
					
						
							
							
								 
						
							
								6d306bb32b 
								
							 
						 
						
							
							
								
								Fix the result type of SELECT nodes lowered from Select instructions with  
							
							... 
							
							
							
							aggregate return values. This fixes PR5754.
llvm-svn: 91145 
							
						 
						
							2009-12-11 19:50:50 +00:00  
				
					
						
							
							
								 
						
							
								1a6c47f1cb 
								
							 
						 
						
							
							
								
								Rename SelectionDAGLowering to SelectionDAGBuilder, and rename  
							
							... 
							
							
							
							SelectionDAGBuild.cpp to SelectionDAGBuilder.cpp.
llvm-svn: 89681 
							
						 
						
							2009-11-23 18:04:58 +00:00