Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								c176f038b9 
								
							 
						 
						
							
							
								
								Added isPredecessor.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31409 
							
						 
						
							2006-11-03 03:05:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								cd7b92251d 
								
							 
						 
						
							
							
								
								silence warning  
							
							 
							
							... 
							
							
							
							llvm-svn: 31397 
							
						 
						
							2006-11-03 01:28:29 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								de46e48420 
								
							 
						 
						
							
							
								
								For PR786:  
							
							 
							
							... 
							
							
							
							Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
llvm-svn: 31380 
							
						 
						
							2006-11-02 20:25:50 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								415f365e5c 
								
							 
						 
						
							
							
								
								Print jumptable index.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31340 
							
						 
						
							2006-11-01 04:48:30 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								c3e695137d 
								
							 
						 
						
							
							
								
								Added a new SDNode type: BR_JT for jumptable branch.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31292 
							
						 
						
							2006-10-30 07:59:36 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								7ab6123c42 
								
							 
						 
						
							
							
								
								VLOAD is not the LoadSDNode opcode.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31276 
							
						 
						
							2006-10-29 06:14:47 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								dc146a9fb9 
								
							 
						 
						
							
							
								
								Remove spurious case. EXTLOAD is not one of the node opcodes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31275 
							
						 
						
							2006-10-29 02:26:30 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								eef273a16f 
								
							 
						 
						
							
							
								
								Load and stores have not been uniqued properly.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31261 
							
						 
						
							2006-10-28 17:25:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b78eb6c8d1 
								
							 
						 
						
							
							
								
								Fix a serious bug that caused any x86 vector stuff to infinite loop  
							
							 
							
							... 
							
							
							
							llvm-svn: 31254 
							
						 
						
							2006-10-28 06:15:26 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								bd0f088743 
								
							 
						 
						
							
							
								
								Clean up.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31243 
							
						 
						
							2006-10-27 23:52:51 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								f576b42bb2 
								
							 
						 
						
							
							
								
								Switch over from SelectionNodeCSEMap to FoldingSet.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31240 
							
						 
						
							2006-10-27 23:46:08 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								96d6bf50ae 
								
							 
						 
						
							
							
								
								getPreIndexedLoad -> getIndexedLoad.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31209 
							
						 
						
							2006-10-26 21:53:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								78fd0f83ff 
								
							 
						 
						
							
							
								
								Trivial patch to speed up legalizing common i64 constants.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31020 
							
						 
						
							2006-10-17 21:47:13 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								1839d76f69 
								
							 
						 
						
							
							
								
								Reflect MemOpAddrMode change; added a helper to create pre-indexed load.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31016 
							
						 
						
							2006-10-17 21:14:32 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								e7d2c24a7d 
								
							 
						 
						
							
							
								
								Make it simplier to dump DAGs while in DAGCombiner.  Remove a nasty optimization.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31009 
							
						 
						
							2006-10-17 19:33:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bd9acad805 
								
							 
						 
						
							
							
								
								When SimplifySetCC was moved to the DAGCombiner, it was never removed from  
							
							 
							
							... 
							
							
							
							SelectionDAG and it has since bitrotted.  Remove the copy from SelectionDAG.
Next, remove the constant folding piece of DAGCombiner::SimplifySetCC into
a new FoldSetCC method which can be used by getNode() and SimplifySetCC.
This fixes obscure bugs.
llvm-svn: 30952 
							
						 
						
							2006-10-14 00:41:01 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								45ffb1eb70 
								
							 
						 
						
							
							
								
								Fix a bug where we incorrectly turned '(X & 0) == 0' into '(X & 0) >> -1',  
							
							 
							
							... 
							
							
							
							which is undefined.  "0" isn't a power of 2.
llvm-svn: 30947 
							
						 
						
							2006-10-13 22:46:18 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								ab51cf2e78 
								
							 
						 
						
							
							
								
								Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30945 
							
						 
						
							2006-10-13 21:14:26 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a731cb674a 
								
							 
						 
						
							
							
								
								Add RemoveDeadNode to remove a dead node and its (potentially) dead operands.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30916 
							
						 
						
							2006-10-12 20:34:05 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d35734bd1f 
								
							 
						 
						
							
							
								
								Naming consistency.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30878 
							
						 
						
							2006-10-11 07:10:22 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								a6bbf33cbf 
								
							 
						 
						
							
							
								
								Jimptables working again on alpha.  
							
							 
							
							... 
							
							
							
							As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff.
llvm-svn: 30873 
							
						 
						
							2006-10-11 04:29:42 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								2da4671e05 
								
							 
						 
						
							
							
								
								FindModifiedNodeSlot needs to add LoadSDNode ivars to create proper SelectionDAGCSEMap ID.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30866 
							
						 
						
							2006-10-11 01:47:58 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								fe858538c0 
								
							 
						 
						
							
							
								
								SDNode::dump should also print out extension type and VT.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30860 
							
						 
						
							2006-10-10 20:05:10 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e71fe34d75 
								
							 
						 
						
							
							
								
								Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30844 
							
						 
						
							2006-10-09 20:57:25 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								af309d29b1 
								
							 
						 
						
							
							
								
								Add getStore() helper function to create ISD::STORE nodes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30758 
							
						 
						
							2006-10-05 22:57:11 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5d9fd977d3 
								
							 
						 
						
							
							
								
								Combine ISD::EXTLOAD, ISD::SEXTLOAD, ISD::ZEXTLOAD into ISD::LOADX. Add an  
							
							 
							
							... 
							
							
							
							extra operand to LOADX to specify the exact value extension type.
llvm-svn: 30714 
							
						 
						
							2006-10-04 00:56:09 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								c19ef92403 
								
							 
						 
						
							
							
								
								Comments on JumpTableness  
							
							 
							
							... 
							
							
							
							llvm-svn: 30615 
							
						 
						
							2006-09-26 20:02:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5a42ebcff3 
								
							 
						 
						
							
							
								
								Fold extract_element(cst) to cst  
							
							 
							
							... 
							
							
							
							llvm-svn: 30478 
							
						 
						
							2006-09-19 05:02:39 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4c059f4962 
								
							 
						 
						
							
							
								
								Minor speedup for legalize by avoiding some malloc traffic  
							
							 
							
							... 
							
							
							
							llvm-svn: 30477 
							
						 
						
							2006-09-19 04:51:23 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								45fe3bc72c 
								
							 
						 
						
							
							
								
								Added support for machine specific constantpool values. These are useful for  
							
							 
							
							... 
							
							
							
							representing expressions that can only be resolved at link time, etc.
llvm-svn: 30278 
							
						 
						
							2006-09-12 21:00:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f0359b343a 
								
							 
						 
						
							
							
								
								Implement the fpowi now by lowering to a libcall  
							
							 
							
							... 
							
							
							
							llvm-svn: 30225 
							
						 
						
							2006-09-09 06:03:30 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e5570a4c3f 
								
							 
						 
						
							
							
								
								Move isCommutativeBinOp from SelectionDAG.cpp and DAGCombiner.cpp out. Make it a static method of SelectionDAG.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29951 
							
						 
						
							2006-08-29 06:42:35 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								849f4bf8dd 
								
							 
						 
						
							
							
								
								Eliminate SelectNodeTo() and getTargetNode() variants which take more than  
							
							 
							
							... 
							
							
							
							3 SDOperand operands. They are replaced by versions which take an array
of SDOperand and the number of operands.
llvm-svn: 29905 
							
						 
						
							2006-08-27 08:08:54 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								34b70eea5c 
								
							 
						 
						
							
							
								
								SelectNodeTo now returns a SDNode*.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29901 
							
						 
						
							2006-08-26 08:00:10 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								65879caf07 
								
							 
						 
						
							
							
								
								minor changes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29740 
							
						 
						
							2006-08-16 22:57:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a4f3625c23 
								
							 
						 
						
							
							
								
								Use the appropriate typedef  
							
							 
							
							... 
							
							
							
							llvm-svn: 29730 
							
						 
						
							2006-08-16 20:59:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a5a3eafbd0 
								
							 
						 
						
							
							
								
								Start using SDVTList more consistently  
							
							 
							
							... 
							
							
							
							llvm-svn: 29711 
							
						 
						
							2006-08-15 19:11:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f98411a220 
								
							 
						 
						
							
							
								
								add a new SDVTList type and new SelectionDAG::getVTList methods to streamline  
							
							 
							
							... 
							
							
							
							the creation of canonical VTLists.
llvm-svn: 29709 
							
						 
						
							2006-08-15 17:46:01 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3bf4be453f 
								
							 
						 
						
							
							
								
								Add a new getNode() method that takes a pointer to an already-intern'd list  
							
							 
							
							... 
							
							
							
							of value-type nodes.  This avoids having to do mallocs for std::vectors of
valuetypes when a node returns more than one type.
llvm-svn: 29685 
							
						 
						
							2006-08-14 23:31:51 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e93a39f2d7 
								
							 
						 
						
							
							
								
								remove SelectionDAG::InsertISelMapEntry, it is dead  
							
							 
							
							... 
							
							
							
							llvm-svn: 29677 
							
						 
						
							2006-08-14 22:24:39 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								63268f0672 
								
							 
						 
						
							
							
								
								Add code to resize the CSEMap hash table.  This doesn't speedup codegen of  
							
							 
							
							... 
							
							
							
							kimwitu, but seems like a good idea from a "avoid performance cliffs" standpoint :)
llvm-svn: 29675 
							
						 
						
							2006-08-14 22:19:25 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8e37283d8b 
								
							 
						 
						
							
							
								
								Add the actual constant to the hash for ConstantPool nodes.  Thanks to  
							
							 
							
							... 
							
							
							
							Rafael Espindola for pointing this out.
llvm-svn: 29669 
							
						 
						
							2006-08-14 20:12:44 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0c2e5412bb 
								
							 
						 
						
							
							
								
								Remove 8 more std::map's.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29631 
							
						 
						
							2006-08-11 21:55:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3f16b201e2 
								
							 
						 
						
							
							
								
								Move the BBNodes, GlobalValues, TargetGlobalValues, Constants, TargetConstants,  
							
							 
							
							... 
							
							
							
							RegNodes, and ValueNodes maps into the CSEMap.
llvm-svn: 29626 
							
						 
						
							2006-08-11 21:01:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fcb16470ec 
								
							 
						 
						
							
							
								
								eliminate the NullaryOps map, use CSEMap instead.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29621 
							
						 
						
							2006-08-11 18:38:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a2f4086828 
								
							 
						 
						
							
							
								
								Change one ReplaceAllUsesWith method to take an array of operands to replace  
							
							 
							
							... 
							
							
							
							instead of a vector of operands.
llvm-svn: 29616 
							
						 
						
							2006-08-11 17:46:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c24a1d3093 
								
							 
						 
						
							
							
								
								Start eliminating temporary vectors used to create DAG nodes.  Instead, pass  
							
							 
							
							... 
							
							
							
							in the start of an array and a count of operands where applicable.  In many
cases, the number of operands is known, so this static array can be allocated
on the stack, avoiding the heap.  In many other cases, a SmallVector can be
used, which has the same benefit in the common cases.
I updated a lot of code calling getNode that takes a vector, but ran out of
time.  The rest of the code should be updated, and these methods should be
removed.
We should also do the same thing to eliminate the methods that take a
vector of MVT::ValueTypes.
It would be extra nice to convert the dagiselemitter to avoid creating vectors
for operands when calling getTargetNode.
llvm-svn: 29566 
							
						 
						
							2006-08-08 02:23:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								97af9d5d3a 
								
							 
						 
						
							
							
								
								Eliminate some malloc traffic by allocating vectors on the stack.  Change some  
							
							 
							
							... 
							
							
							
							method that took std::vector<SDOperand> to take a pointer to a first operand
and #operands.
This speeds up isel on kc++ by about 3%.
llvm-svn: 29561 
							
						 
						
							2006-08-08 01:09:31 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1ee75ce65d 
								
							 
						 
						
							
							
								
								Revamp the "CSEMap" datastructure used in the SelectionDAG class.  This  
							
							 
							
							... 
							
							
							
							eliminates a bunch of std::map's in the SelectionDAG, replacing them with a
home-grown hashtable.
This is still a work in progress: not all the maps have been moved over and the
hashtable never resizes.  That said, this still speeds up llc 20% on kimwitu++
with -fast -regalloc=local using a release build.
llvm-svn: 29550 
							
						 
						
							2006-08-07 23:03:03 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								445b91a041 
								
							 
						 
						
							
							
								
								Clear TopOrder before assigning topological order. Some clean ups.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29546 
							
						 
						
							2006-08-07 22:13:29 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8927c875bb 
								
							 
						 
						
							
							
								
								Make SelectionDAG::RemoveDeadNodes iterative instead of recursive, which  
							
							 
							
							... 
							
							
							
							also make it simpler.
llvm-svn: 29524 
							
						 
						
							2006-08-04 17:45:20 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								bba1ebda32 
								
							 
						 
						
							
							
								
								- Change AssignTopologicalOrder to return vector of SDNode* by reference.  
							
							 
							
							... 
							
							
							
							- Tweak implementation to avoid using std::map.
llvm-svn: 29479 
							
						 
						
							2006-08-02 22:00:34 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								9631a60020 
								
							 
						 
						
							
							
								
								Added AssignTopologicalOrder() to assign each node an unique id based on their topological order.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29431 
							
						 
						
							2006-08-01 08:20:41 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b572401bea 
								
							 
						 
						
							
							
								
								Remove InFlightSet hack. No longer needed.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29373 
							
						 
						
							2006-07-28 00:47:19 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								acb606ff33 
								
							 
						 
						
							
							
								
								AssignNodeIds should return unsigned.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29343 
							
						 
						
							2006-07-27 07:36:47 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								29eefc164c 
								
							 
						 
						
							
							
								
								AssignNodeIds assign each node in the DAG an unique id.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29337 
							
						 
						
							2006-07-27 06:39:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c0973edc69 
								
							 
						 
						
							
							
								
								Add an out-of-line virtual method for the sdnode class to give it a home.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29192 
							
						 
						
							2006-07-19 00:00:37 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d19938834b 
								
							 
						 
						
							
							
								
								Ugly hack! Add helper functions InsertInFlightSetEntry and  
							
							 
							
							... 
							
							
							
							RemoveInFlightSetEntry. They are used in place of direct set operators to
reduce instruction selection function stack size.
llvm-svn: 28987 
							
						 
						
							2006-06-29 23:57:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								710b3d5ea1 
								
							 
						 
						
							
							
								
								Fix CodeGen/Generic/2006-06-28-SimplifySetCCCrash.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 28965 
							
						 
						
							2006-06-28 18:29:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								aaa23d953f 
								
							 
						 
						
							
							
								
								Add a new ISD::CALL node, make the default impl of TargetLowering::LowerCallTo  
							
							 
							
							... 
							
							
							
							produce it.
llvm-svn: 28338 
							
						 
						
							2006-05-16 22:53:20 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								da076e41ab 
								
							 
						 
						
							
							
								
								remove dead vars  
							
							 
							
							... 
							
							
							
							llvm-svn: 28254 
							
						 
						
							2006-05-12 18:04:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8c02c3f41a 
								
							 
						 
						
							
							
								
								Compile:  
							
							 
							
							... 
							
							
							
							%tmp152 = setgt uint %tmp144, %tmp149           ; <bool> [#uses=1]
        %tmp159 = setlt uint %tmp144, %tmp149           ; <bool> [#uses=1]
        %bothcond2 = or bool %tmp152, %tmp159           ; <bool> [#uses=1]
To setne, not setune, which causes an assertion fault.
llvm-svn: 28244 
							
						 
						
							2006-05-12 17:03:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								78da6792e7 
								
							 
						 
						
							
							
								
								Fold shifts with undef operands.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28167 
							
						 
						
							2006-05-08 17:29:49 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								751817c54f 
								
							 
						 
						
							
							
								
								constant fold sign_extend_inreg  
							
							 
							
							... 
							
							
							
							llvm-svn: 28151 
							
						 
						
							2006-05-06 23:05:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								393d96a56c 
								
							 
						 
						
							
							
								
								Fix Regression/CodeGen/Generic/2006-04-26-SetCCAnd.ll and  
							
							 
							
							... 
							
							
							
							PR748.
llvm-svn: 27987 
							
						 
						
							2006-04-27 05:01:07 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								4ca2ea5b43 
								
							 
						 
						
							
							
								
								JumpTable support!  What this represents is working asm and jit support for  
							
							 
							
							... 
							
							
							
							x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.
llvm-svn: 27947 
							
						 
						
							2006-04-22 18:53:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bc1b262725 
								
							 
						 
						
							
							
								
								Implement folding of a bunch of binops with undef  
							
							 
							
							... 
							
							
							
							llvm-svn: 27863 
							
						 
						
							2006-04-20 05:39:12 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7e7ad593cc 
								
							 
						 
						
							
							
								
								Make these predicates return true for bit_convert(buildvector)'s as well as  
							
							 
							
							... 
							
							
							
							buildvectors.
llvm-svn: 27723 
							
						 
						
							2006-04-15 23:38:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d3b504ae10 
								
							 
						 
						
							
							
								
								Implement support for the formal_arguments node.  To get this, targets shouldcustom legalize it and remove their XXXTargetLowering::LowerArguments overload  
							
							 
							
							... 
							
							
							
							llvm-svn: 27604 
							
						 
						
							2006-04-12 16:20:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								417b96b6dd 
								
							 
						 
						
							
							
								
								Don't memoize vloads in the load map!  Don't memoize them anywhere here, let  
							
							 
							
							... 
							
							
							
							getNode do it.  This fixes CodeGen/Generic/2006-04-11-vecload.ll
llvm-svn: 27602 
							
						 
						
							2006-04-12 03:25:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								02274a5265 
								
							 
						 
						
							
							
								
								Add code generator support for VSELECT  
							
							 
							
							... 
							
							
							
							llvm-svn: 27542 
							
						 
						
							2006-04-08 22:22:57 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a9e77d14c7 
								
							 
						 
						
							
							
								
								Constant fold bitconvert(undef)  
							
							 
							
							... 
							
							
							
							llvm-svn: 27391 
							
						 
						
							2006-04-04 01:02:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1c22728787 
								
							 
						 
						
							
							
								
								These entries already exist  
							
							 
							
							... 
							
							
							
							llvm-svn: 27340 
							
						 
						
							2006-04-02 02:51:27 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1985e1cbb8 
								
							 
						 
						
							
							
								
								Add some missing node names  
							
							 
							
							... 
							
							
							
							llvm-svn: 27339 
							
						 
						
							2006-04-02 02:41:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5fe1f54c17 
								
							 
						 
						
							
							
								
								Significantly improve handling of vectors that are live across basic blocks,  
							
							 
							
							... 
							
							
							
							handling cases where the vector elements need promotion, expansion, and when
the vector type itself needs to be decimated.
llvm-svn: 27278 
							
						 
						
							2006-03-31 02:06:56 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8d57da2ffc 
								
							 
						 
						
							
							
								
								new node  
							
							 
							
							... 
							
							
							
							llvm-svn: 27231 
							
						 
						
							2006-03-28 19:54:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ffec47ebff 
								
							 
						 
						
							
							
								
								Add an assertion  
							
							 
							
							... 
							
							
							
							llvm-svn: 27228 
							
						 
						
							2006-03-28 19:04:49 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e55d171ccd 
								
							 
						 
						
							
							
								
								Tblgen doesn't like multiple SDNode<> definitions that map to the sameenum value.  Split them into separate enums.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27201 
							
						 
						
							2006-03-28 00:40:33 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0e84f1e532 
								
							 
						 
						
							
							
								
								Unbreak the build on non-apple compilers :-(  
							
							 
							
							... 
							
							
							
							llvm-svn: 27173 
							
						 
						
							2006-03-27 16:10:59 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d09b05b0bc 
								
							 
						 
						
							
							
								
								Try again  
							
							 
							
							... 
							
							
							
							llvm-svn: 27171 
							
						 
						
							2006-03-27 08:10:26 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								64efb35c32 
								
							 
						 
						
							
							
								
								Incorrect check for FP all one's  
							
							 
							
							... 
							
							
							
							llvm-svn: 27169 
							
						 
						
							2006-03-27 07:26:17 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								c70e33cd6e 
								
							 
						 
						
							
							
								
								Change isBuildVectorAllOnesInteger to isBuildVectorAllOnes. Also check for  
							
							 
							
							... 
							
							
							
							floating point cases.
llvm-svn: 27165 
							
						 
						
							2006-03-27 06:58:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								52fcad3a37 
								
							 
						 
						
							
							
								
								Instead of printing "INTRINSIC" on intrinsic node, print the intrinsic name.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27164 
							
						 
						
							2006-03-27 06:45:25 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a67899195f 
								
							 
						 
						
							
							
								
								Add ISD::isBuildVectorAllZeros predicate  
							
							 
							
							... 
							
							
							
							llvm-svn: 27147 
							
						 
						
							2006-03-26 09:50:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f6e3b957b8 
								
							 
						 
						
							
							
								
								Fix a bug in ISD::isBuildVectorAllOnesInteger that  caused it to always return  
							
							 
							
							... 
							
							
							
							false
llvm-svn: 27131 
							
						 
						
							2006-03-25 22:59:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c2d2811a07 
								
							 
						 
						
							
							
								
								Implement the ISD::isBuildVectorAllOnesInteger predicate  
							
							 
							
							... 
							
							
							
							llvm-svn: 27130 
							
						 
						
							2006-03-25 22:57:01 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6b05290922 
								
							 
						 
						
							
							
								
								fix some bogus assertions: noop bitconverts are legal  
							
							 
							
							... 
							
							
							
							llvm-svn: 27032 
							
						 
						
							2006-03-24 02:20:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ebac9a4adf 
								
							 
						 
						
							
							
								
								Identify the INTRINSIC node  
							
							 
							
							... 
							
							
							
							llvm-svn: 27020 
							
						 
						
							2006-03-24 01:04:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2f4119a608 
								
							 
						 
						
							
							
								
								Implement simple support for vector casting.  This can currently only handle  
							
							 
							
							... 
							
							
							
							casts between legal vector types.
llvm-svn: 26961 
							
						 
						
							2006-03-22 20:09:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7c0cd8cafc 
								
							 
						 
						
							
							
								
								add some trivial support for extractelement.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26928 
							
						 
						
							2006-03-21 20:44:12 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								672a42d731 
								
							 
						 
						
							
							
								
								Add a hacky workaround for crashes due to vectors live across blocks.  
							
							 
							
							... 
							
							
							
							Note that this code won't work for vectors that aren't legal on the
target.  Improvements coming.
llvm-svn: 26925 
							
						 
						
							2006-03-21 19:20:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								00f0589bc0 
								
							 
						 
						
							
							
								
								Add very basic support for VECTOR_SHUFFLE  
							
							 
							
							... 
							
							
							
							llvm-svn: 26880 
							
						 
						
							2006-03-19 23:56:04 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9cdc5a0ce7 
								
							 
						 
						
							
							
								
								Add SCALAR_TO_VECTOR support  
							
							 
							
							... 
							
							
							
							llvm-svn: 26866 
							
						 
						
							2006-03-19 06:31:19 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f4e1a53647 
								
							 
						 
						
							
							
								
								Rename ConstantVec -> BUILD_VECTOR and VConstant -> VBUILD_VECTOR.  Allow*BUILD_VECTOR to take variable inputs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26847 
							
						 
						
							2006-03-19 00:52:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								32206f54c6 
								
							 
						 
						
							
							
								
								Change the structure of lowering vector stuff.  Note: This breaks some  
							
							 
							
							... 
							
							
							
							things.
llvm-svn: 26840 
							
						 
						
							2006-03-18 01:44:44 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								98931bc381 
								
							 
						 
						
							
							
								
								add a couple enum values  
							
							 
							
							... 
							
							
							
							llvm-svn: 26830 
							
						 
						
							2006-03-17 19:53:59 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								bb01d4f272 
								
							 
						 
						
							
							
								
								Remove BRTWOWAY*  
							
							 
							
							... 
							
							
							
							Make the PPC backend not dependent on BRTWOWAY_CC and make the branch
selector smarter about the code it generates, fixing a case in the
readme.
llvm-svn: 26814 
							
						 
						
							2006-03-17 01:40:33 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4024c00ce7 
								
							 
						 
						
							
							
								
								add support for vector->vector casts  
							
							 
							
							... 
							
							
							
							llvm-svn: 26788 
							
						 
						
							2006-03-15 22:19:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								80268aaeed 
								
							 
						 
						
							
							
								
								Don't depend on the C99 copysign function, implement it ourselves.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26566 
							
						 
						
							2006-03-05 23:57:58 +00:00  
						
					 
				
					
						
							
							
								 
								Jeff Cohen
							
						 
						
							 
							
							
							
							
								
							
							
								55e2aac24b 
								
							 
						 
						
							
							
								
								Fix VC++ compilation error.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26554 
							
						 
						
							2006-03-05 21:43:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3bc4050217 
								
							 
						 
						
							
							
								
								Add some simple copysign folds  
							
							 
							
							... 
							
							
							
							llvm-svn: 26543 
							
						 
						
							2006-03-05 05:30:57 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5c1ba2ac08 
								
							 
						 
						
							
							
								
								Codegen copysign[f] into a FCOPYSIGN node  
							
							 
							
							... 
							
							
							
							llvm-svn: 26542 
							
						 
						
							2006-03-05 05:09:38 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								23e75f5b49 
								
							 
						 
						
							
							
								
								SDOperand::isOperand should not be a forwarding. It must check *this against N's operands.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26502 
							
						 
						
							2006-03-03 06:42:32 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6b08ae8497 
								
							 
						 
						
							
							
								
								Added isOperand(N): true if this is an operand of N  
							
							 
							
							... 
							
							
							
							llvm-svn: 26501 
							
						 
						
							2006-03-03 06:24:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ad3c974a77 
								
							 
						 
						
							
							
								
								remove the read/write port/io intrinsics.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26479 
							
						 
						
							2006-03-03 00:19:58 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								be85e89ec4 
								
							 
						 
						
							
							
								
								- Added VConstant as an abstract version of ConstantVec.  
							
							 
							
							... 
							
							
							
							- All abstrct vector nodes must have # of elements and element type as their
first two operands.
llvm-svn: 26432 
							
						 
						
							2006-03-01 00:51:13 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								9f9662b86e 
								
							 
						 
						
							
							
								
								Print ConstantPoolSDNode offset field.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26381 
							
						 
						
							2006-02-26 08:36:57 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								ed169db8a5 
								
							 
						 
						
							
							
								
								Added an offset field to ConstantPoolSDNode.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26371 
							
						 
						
							2006-02-25 09:54:52 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								abac61603f 
								
							 
						 
						
							
							
								
								Add checks to make sure we don't create bogus extend nodes, and fix a bug  
							
							 
							
							... 
							
							
							
							where we were doing exactly that which was causing failures on x86 and
alpha.
llvm-svn: 26284 
							
						 
						
							2006-02-18 02:40:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								375e1a71cc 
								
							 
						 
						
							
							
								
								Fix a tricky issue in the SimplifyDemandedBits code where CombineTo wasn't  
							
							 
							
							... 
							
							
							
							exactly the API we wanted to call into.  This fixes the crash on crafty last
night.
llvm-svn: 26269 
							
						 
						
							2006-02-17 21:58:01 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								5965bd19f8 
								
							 
						 
						
							
							
								
								kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBC  
							
							 
							
							... 
							
							
							
							and SUBE nodes that actually expose what's going on and allow for
significant simplifications in the targets.
llvm-svn: 26255 
							
						 
						
							2006-02-17 05:43:56 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a1ef3ec5b5 
								
							 
						 
						
							
							
								
								Added SelectionDAG::InsertISelMapEntry(). This is used to workaround the gcc  
							
							 
							
							... 
							
							
							
							problem where it inline the map insertion call too aggressively. Before this
change it was producing a frame size of 24k for Select_store(), now it's down
to 10k (by calling this method rather than calling the map insertion operator).
llvm-svn: 26094 
							
						 
						
							2006-02-09 22:11:03 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d3f1db93c1 
								
							 
						 
						
							
							
								
								More changes to reduce frame size.  
							
							 
							
							... 
							
							
							
							Move all getTargetNode() out of SelectionDAG.h into SelectionDAG.cpp. This
prevents them from being inlined.
Change getTargetNode() so they return SDNode * instead of SDOperand to prevent
copying. It should also help compilation speed.
llvm-svn: 26083 
							
						 
						
							2006-02-09 07:15:23 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d37645c07d 
								
							 
						 
						
							
							
								
								* Added SDNode::isOnlyUse().  
							
							 
							
							... 
							
							
							
							* Fix hasNUsesOfValue(), it should be const.
llvm-svn: 25990 
							
						 
						
							2006-02-05 06:29:23 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6091407783 
								
							 
						 
						
							
							
								
								remove dead fn  
							
							 
							
							... 
							
							
							
							llvm-svn: 25935 
							
						 
						
							2006-02-03 06:51:34 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								02b5b9cdd6 
								
							 
						 
						
							
							
								
								Added case HANDLENODE to getOperationName().  
							
							 
							
							... 
							
							
							
							llvm-svn: 25920 
							
						 
						
							2006-02-03 01:33:01 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								32be2dc0af 
								
							 
						 
						
							
							
								
								Allow the specification of explicit alignments for constant pool entries.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25855 
							
						 
						
							2006-01-31 22:23:14 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ccb4476c87 
								
							 
						 
						
							
							
								
								Remove some special case hacks for CALLSEQ_*, using UpdateNodeOperands  
							
							 
							
							... 
							
							
							
							instead.
llvm-svn: 25780 
							
						 
						
							2006-01-29 07:58:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								758b0ac54b 
								
							 
						 
						
							
							
								
								Legalize ConstantFP into TargetConstantFP when the target allows.  Implement  
							
							 
							
							... 
							
							
							
							custom expansion of ConstantFP nodes.
llvm-svn: 25772 
							
						 
						
							2006-01-29 06:26:56 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								580b12ad34 
								
							 
						 
						
							
							
								
								add another method variant  
							
							 
							
							... 
							
							
							
							llvm-svn: 25744 
							
						 
						
							2006-01-28 10:09:25 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f34156e8cb 
								
							 
						 
						
							
							
								
								add some methods for updating nodes  
							
							 
							
							... 
							
							
							
							llvm-svn: 25742 
							
						 
						
							2006-01-28 09:32:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fb16a62fba 
								
							 
						 
						
							
							
								
								Remove the ISD::CALL and ISD::TAILCALL nodes  
							
							 
							
							... 
							
							
							
							llvm-svn: 25721 
							
						 
						
							2006-01-28 00:18:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								476e67be14 
								
							 
						 
						
							
							
								
								initial selectiondag support for new INLINEASM node.  Note that inline asms  
							
							 
							
							... 
							
							
							
							with outputs or inputs are not supported yet. :)
llvm-svn: 25664 
							
						 
						
							2006-01-26 22:24:51 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								e74795cd70 
								
							 
						 
						
							
							
								
								First part of bug 680:  
							
							 
							
							... 
							
							
							
							Remove TLI.LowerVA* and replace it with SDNodes that are lowered the same
way as everything else.
llvm-svn: 25606 
							
						 
						
							2006-01-25 18:21:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f9a1e3aadc 
								
							 
						 
						
							
							
								
								Fix an infinite loop I caused by making sure to legalize the flag operand  
							
							 
							
							... 
							
							
							
							of CALLSEQ_* nodes
llvm-svn: 25582 
							
						 
						
							2006-01-24 05:48:21 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								683352382e 
								
							 
						 
						
							
							
								
								another couple selects  
							
							 
							
							... 
							
							
							
							llvm-svn: 25551 
							
						 
						
							2006-01-23 21:51:14 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								c28563874c 
								
							 
						 
						
							
							
								
								another selectto  
							
							 
							
							... 
							
							
							
							llvm-svn: 25548 
							
						 
						
							2006-01-23 20:59:12 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								1e1eb5ee6c 
								
							 
						 
						
							
							
								
								Constant fold ctpop/ctlz/cttz, and a couple other small cleanups  
							
							 
							
							... 
							
							
							
							llvm-svn: 25357 
							
						 
						
							2006-01-16 08:07:10 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9597b33d58 
								
							 
						 
						
							
							
								
								add a missing node name  
							
							 
							
							... 
							
							
							
							llvm-svn: 25327 
							
						 
						
							2006-01-15 08:39:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a5110e854d 
								
							 
						 
						
							
							
								
								add stacksave/stackrestore nodes  
							
							 
							
							... 
							
							
							
							llvm-svn: 25270 
							
						 
						
							2006-01-13 02:39:42 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								982493300e 
								
							 
						 
						
							
							
								
								ignore register  #0  
							
							 
							
							... 
							
							
							
							llvm-svn: 25223 
							
						 
						
							2006-01-11 22:13:48 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								1b8121b227 
								
							 
						 
						
							
							
								
								Add bswap, rotl, and rotr nodes  
							
							 
							
							... 
							
							
							
							Add dag combiner code to recognize rotl, rotr
Add ppc code to match rotl
Targets should add rotl/rotr patterns if they have them
llvm-svn: 25222 
							
						 
						
							2006-01-11 21:21:00 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								53a1f57fc5 
								
							 
						 
						
							
							
								
								New getNode() variants.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25156 
							
						 
						
							2006-01-09 18:29:18 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								762e9ec06c 
								
							 
						 
						
							
							
								
								Added initial support for DEBUG_LABEL allowing debug specific labels to be  
							
							 
							
							... 
							
							
							
							inserted in the code.
llvm-svn: 25104 
							
						 
						
							2006-01-05 01:25:28 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								164db3a7eb 
								
							 
						 
						
							
							
								
								Make sure to pass the offset into the new node, so that we don't silently  
							
							 
							
							... 
							
							
							
							drop it on the floor.
llvm-svn: 25044 
							
						 
						
							2005-12-30 00:10:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								efbbedbf4a 
								
							 
						 
						
							
							
								
								Fold bitconv(bitconv(x)) -> x.  We now compile this:  
							
							 
							
							... 
							
							
							
							void foo(double);
void bar(double X) { foo(X); }
to this:
bar:
        save -96, %o6, %o6
        or %g0, %i0, %o0
        or %g0, %i1, %o1
        call foo
        nop
        restore %g0, %g0, %g0
        retl
        nop
instead of this:
bar:
        save -112, %o6, %o6
        st %i1, [%i6+-4]
        st %i0, [%i6+-8]
        ldd [%i6+-8], %f0
        std %f0, [%i6+-16]
        ld [%i6+-12], %o1
        ld [%i6+-16], %o0
        call foo
        nop
        restore %g0, %g0, %g0
        retl
        nop
on V8.
llvm-svn: 24981 
							
						 
						
							2005-12-23 05:37:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a187460552 
								
							 
						 
						
							
							
								
								constant fold bits_convert in getNode and in the dag combiner for fp<->int  
							
							 
							
							... 
							
							
							
							conversions.  This allows V8 to compiles this:
void %test() {
        call float %test2( float 1.000000e+00, float 2.000000e+00, double 3.000000e+00, double* null )
        ret void
}
into:
test:
        save -96, %o6, %o6
        sethi 0, %o3
        sethi 1049088, %o2
        sethi 1048576, %o1
        sethi 1040384 , %o0
        or %g0, %o3, %o4
        call test2
        nop
        restore %g0, %g0, %g0
        retl
        nop
instead of:
test:
        save -112, %o6, %o6
        sethi 0, %o4
        sethi 1049088, %l0
        st %o4, [%i6+-12]
        st %l0, [%i6+-16]
        ld [%i6+-12], %o3
        ld [%i6+-16], %o2
        sethi 1048576, %o1
        sethi 1040384 , %o0
        call test2
        nop
        restore %g0, %g0, %g0
        retl
        nop
llvm-svn: 24980 
							
						 
						
							2005-12-23 05:30:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								36e663d6e1 
								
							 
						 
						
							
							
								
								add very simple support for the BIT_CONVERT node  
							
							 
							
							... 
							
							
							
							llvm-svn: 24970 
							
						 
						
							2005-12-23 00:16:34 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								177d7af5d5 
								
							 
						 
						
							
							
								
								remove dead code  
							
							 
							
							... 
							
							
							
							llvm-svn: 24965 
							
						 
						
							2005-12-22 21:16:08 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6af02635a7 
								
							 
						 
						
							
							
								
								Added a hook to print out names of target specific DAG nodes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24877 
							
						 
						
							2005-12-20 06:22:03 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								9fd9541367 
								
							 
						 
						
							
							
								
								Print out opcode number if it's an unknown target node.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24869 
							
						 
						
							2005-12-19 23:11:49 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								50b2d302d5 
								
							 
						 
						
							
							
								
								Fix a case where the DAG Combiner would accidentally CSE flag-producing nodes,  
							
							 
							
							... 
							
							
							
							creating graphs that cannot be scheduled.
llvm-svn: 24866 
							
						 
						
							2005-12-19 22:21:21 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								7c462768ed 
								
							 
						 
						
							
							
								
								Added source file/line correspondence for dwarf (PowerPC only at this point.)  
							
							 
							
							... 
							
							
							
							llvm-svn: 24748 
							
						 
						
							2005-12-16 22:45:29 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								dadc1057ac 
								
							 
						 
						
							
							
								
								Added new getNode and getTargetNode variants for X86 stores.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24653 
							
						 
						
							2005-12-10 00:37:58 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								41b1cdc771 
								
							 
						 
						
							
							
								
								Teach the SelectionDAG ISel how to turn ConstantPacked values into  
							
							 
							
							... 
							
							
							
							constant nodes with vector types.  Also teach the asm printer how to print
ConstantPacked constant pool entries.  This allows us to generate altivec
code such as the following, which adds a vector constantto a packed float.
LCPI1_0:  <4 x float> < float 0.0e+0, float 0.0e+0, float 0.0e+0, float 1.0e+0 >
        .space  4
        .space  4
        .space  4
        .long   1065353216      ; float 1
        .text
        .align  4
        .globl  _foo
_foo:
        lis r2, ha16(LCPI1_0)
        la r2, lo16(LCPI1_0)(r2)
        li r4, 0
        lvx v0, r4, r2
        lvx v1, r4, r3
        vaddfp v0, v1, v0
        stvx v0, r4, r3
        blr
For the llvm code:
void %foo(<4 x float> * %a) {
entry:
  %tmp1 = load <4 x float> * %a;
  %tmp2 = add <4 x float> %tmp1, < float 0.0, float 0.0, float 0.0, float 1.0 >
  store <4 x float> %tmp2, <4 x float> *%a
  ret void
}
llvm-svn: 24616 
							
						 
						
							2005-12-06 06:18:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0142afd6c1 
								
							 
						 
						
							
							
								
								Don't remove two operand, two result nodes from the binary ops map.  These  
							
							 
							
							... 
							
							
							
							should come from the arbitrary ops map.
This fixes Regression/CodeGen/PowerPC/2005-12-01-Crash.ll
llvm-svn: 24571 
							
						 
						
							2005-12-01 23:14:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9d0d715e83 
								
							 
						 
						
							
							
								
								This is a bugfix for SelectNodeTo.  In certain situations, we could be  
							
							 
							
							... 
							
							
							
							selecting a node and use a mix of getTargetNode() and SelectNodeTo.  Because
SelectNodeTo didn't check the CSE maps for a preexisting node and didn't insert
its result into the CSE maps, we would sometimes miss a CSE opportunity.
This is extremely rare, but worth fixing for completeness.
llvm-svn: 24565 
							
						 
						
							2005-12-01 18:00:57 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								be5dd5da19 
								
							 
						 
						
							
							
								
								Make SelectNodeTo return N  
							
							 
							
							... 
							
							
							
							llvm-svn: 24548 
							
						 
						
							2005-11-30 22:45:14 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c174048430 
								
							 
						 
						
							
							
								
								CALLSEQ_START/END nodes don't get memoized, do not add them in when  
							
							 
							
							... 
							
							
							
							replaceAllUses'ing.
llvm-svn: 24539 
							
						 
						
							2005-11-30 18:20:52 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								11d61613af 
								
							 
						 
						
							
							
								
								Fixed a bug introduced by my last commit: TargetGlobalValues should key on  
							
							 
							
							... 
							
							
							
							GlobalValue * and index pair. Update getGlobalAddress() for symmetry.
llvm-svn: 24524 
							
						 
						
							2005-11-30 02:49:21 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								0e0de2f3f0 
								
							 
						 
						
							
							
								
								Added an index field to GlobalAddressSDNode so it can represent X+12, etc.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24523 
							
						 
						
							2005-11-30 02:04:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								435b402e1f 
								
							 
						 
						
							
							
								
								Add support for a new STRING and LOCATION node for line number support, patch  
							
							 
							
							... 
							
							
							
							contributed by Daniel Berlin, with a few cleanups here and there by me.
llvm-svn: 24515 
							
						 
						
							2005-11-29 06:21:05 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								d37c13154a 
								
							 
						 
						
							
							
								
								Check in code to scalarize arbitrarily wide packed types for some simple  
							
							 
							
							... 
							
							
							
							vector operations (load, add, sub, mul).
This allows us to codegen:
void %foo(<4 x float> * %a) {
entry:
  %tmp1 = load <4 x float> * %a;
  %tmp2 = add <4 x float> %tmp1, %tmp1
  store <4 x float> %tmp2, <4 x float> *%a
  ret void
}
on ppc as:
_foo:
        lfs f0, 12(r3)
        lfs f1, 8(r3)
        lfs f2, 4(r3)
        lfs f3, 0(r3)
        fadds f0, f0, f0
        fadds f1, f1, f1
        fadds f2, f2, f2
        fadds f3, f3, f3
        stfs f0, 12(r3)
        stfs f1, 8(r3)
        stfs f2, 4(r3)
        stfs f3, 0(r3)
        blr
llvm-svn: 24484 
							
						 
						
							2005-11-22 18:16:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f090f7eb0e 
								
							 
						 
						
							
							
								
								Add some method variants, patch by Evan Cheng  
							
							 
							
							... 
							
							
							
							llvm-svn: 24418 
							
						 
						
							2005-11-19 01:44:53 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								b2e089c31b 
								
							 
						 
						
							
							
								
								Teach LLVM how to scalarize packed types.  Currently, this only works on  
							
							 
							
							... 
							
							
							
							packed types with an element count of 1, although more generic support is
coming.  This allows LLVM to turn the following code:
void %foo(<1 x float> * %a) {
entry:
  %tmp1 = load <1 x float> * %a;
  %tmp2 = add <1 x float> %tmp1, %tmp1
  store <1 x float> %tmp2, <1 x float> *%a
  ret void
}
Into:
_foo:
        lfs f0, 0(r3)
        fadds f0, f0, f0
        stfs f0, 0(r3)
        blr
llvm-svn: 24416 
							
						 
						
							2005-11-19 00:36:38 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								01aa56397d 
								
							 
						 
						
							
							
								
								continued readcyclecounter support  
							
							 
							
							... 
							
							
							
							llvm-svn: 24300 
							
						 
						
							2005-11-11 16:47:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bf4f233214 
								
							 
						 
						
							
							
								
								Switch the allnodes list from a vector of pointers to an ilist of nodes.This eliminates the vector, allows constant time removal of a node froma graph, and makes iteration over the all nodes list stable when adding  
							
							 
							
							... 
							
							
							
							nodes to the graph.
llvm-svn: 24263 
							
						 
						
							2005-11-09 23:47:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								88fa11c3d5 
								
							 
						 
						
							
							
								
								Change the ValueList array for each node to be shared instead of individuallyallocated.  Further, in the common case where a node has a single value, justreference an element from a small array.  This is a small compile-time win.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24251 
							
						 
						
							2005-11-08 23:30:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7e4b5d33cb 
								
							 
						 
						
							
							
								
								Switch the operandlist/valuelist from being vectors to being just an array.This saves 12 bytes from SDNode, but doesn't speed things up substantially  
							
							 
							
							... 
							
							
							
							(our graphs apparently already fit within the cache on my g5).  In any case
this reduces memory usage.
llvm-svn: 24249 
							
						 
						
							2005-11-08 22:07:03 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								aba48dd34c 
								
							 
						 
						
							
							
								
								Clean up RemoveDeadNodes significantly, by eliminating the need for a temporary  
							
							 
							
							... 
							
							
							
							set and eliminating the need to iterate whenever something is removed (which
can be really slow in some cases).  Thx to Jim for pointing out something silly
I was getting stuck on. :)
llvm-svn: 24241 
							
						 
						
							2005-11-08 18:52:27 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								4b3932aa89 
								
							 
						 
						
							
							
								
								add TargetExternalSymbol  
							
							 
							
							... 
							
							
							
							llvm-svn: 23886 
							
						 
						
							2005-10-23 03:40:17 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								02b23c6065 
								
							 
						 
						
							
							
								
								Move some Legalize functionality over to the DAGCombiner where it belongs.  
							
							 
							
							... 
							
							
							
							Kill some dead code.
llvm-svn: 23706 
							
						 
						
							2005-10-13 03:11:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								56e44a6da5 
								
							 
						 
						
							
							
								
								This function is now dead  
							
							 
							
							... 
							
							
							
							llvm-svn: 23684 
							
						 
						
							2005-10-10 16:49:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bcfebebf22 
								
							 
						 
						
							
							
								
								Enable Nate's excellent DAG combiner work by default.  This allows the  
							
							 
							
							... 
							
							
							
							removal of a bunch of ad-hoc and crufty code from SelectionDAG.cpp.
llvm-svn: 23682 
							
						 
						
							2005-10-10 16:47:10 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1d3dc00674 
								
							 
						 
						
							
							
								
								(X & Y) & C == 0 if either X&C or Y&C are zero  
							
							 
							
							... 
							
							
							
							llvm-svn: 23678 
							
						 
						
							2005-10-09 22:12:36 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								be4bbca0ba 
								
							 
						 
						
							
							
								
								remove debugging code  
							
							 
							
							... 
							
							
							
							llvm-svn: 23663 
							
						 
						
							2005-10-07 15:31:26 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fb12624a3f 
								
							 
						 
						
							
							
								
								implement CodeGen/PowerPC/div-2.ll:test2-4 by propagating zero bits through  
							
							 
							
							... 
							
							
							
							C-X's
llvm-svn: 23662 
							
						 
						
							2005-10-07 15:30:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b27a4147d3 
								
							 
						 
						
							
							
								
								fix indentation  
							
							 
							
							... 
							
							
							
							llvm-svn: 23660 
							
						 
						
							2005-10-07 06:37:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5bcd0dd811 
								
							 
						 
						
							
							
								
								Turn sdivs into udivs when we can prove the sign bits are clear.  This  
							
							 
							
							... 
							
							
							
							implements CodeGen/PowerPC/div-2.ll
llvm-svn: 23659 
							
						 
						
							2005-10-07 06:10:46 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								558beb3729 
								
							 
						 
						
							
							
								
								Let the combiner handle more cases  
							
							 
							
							... 
							
							
							
							llvm-svn: 23641 
							
						 
						
							2005-10-05 21:44:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a49e16fefa 
								
							 
						 
						
							
							
								
								implement visitBR_CC so that PowerPC/inverted-bool-compares.ll passes  
							
							 
							
							... 
							
							
							
							with the dag combiner.  This speeds up espresso by 8%, reaching performance
parity with the dag-combiner-disabled llc.
llvm-svn: 23636 
							
						 
						
							2005-10-05 06:47:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b11d15637a 
								
							 
						 
						
							
							
								
								fix some pastos  
							
							 
							
							... 
							
							
							
							llvm-svn: 23635 
							
						 
						
							2005-10-05 06:37:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								06f1d0f73a 
								
							 
						 
						
							
							
								
								Add a new HandleNode class, which is used to handle (haha) cases in the  
							
							 
							
							... 
							
							
							
							dead node elim and dag combiner passes where the root is potentially updated.
This fixes a fixme in the dag combiner.
llvm-svn: 23634 
							
						 
						
							2005-10-05 06:35:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6f3b577ee6 
								
							 
						 
						
							
							
								
								Add FP versions of the binary operators, keeping the int and fp worlds seperate.  
							
							 
							
							... 
							
							
							
							Though I have done extensive testing, it is possible that this will break
things in configs I can't test.  Please let me know if this causes a problem
and I'll fix it ASAP.
llvm-svn: 23504 
							
						 
						
							2005-09-28 22:28:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								59a05bdde6 
								
							 
						 
						
							
							
								
								Turn (X^C1) == C2 into X == C1^C2 iff X&~C1 = 0 (and move a function)  
							
							 
							
							... 
							
							
							
							This happens all the time on PPC for bool values, e.g. eliminating a xori
in inverted-bool-compares.ll.
This should be added to the dag combiner as well.
llvm-svn: 23403 
							
						 
						
							2005-09-23 00:55:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								331b311f7b 
								
							 
						 
						
							
							
								
								Fix a problem duraid encountered on itanium where this folding:  
							
							 
							
							... 
							
							
							
							select (x < y), 1, 0 -> (x < y) incorrectly: the setcc returns i1 but the
select returned i32.  Add the zero extend as needed.
llvm-svn: 23301 
							
						 
						
							2005-09-09 23:00:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								16e5cb87ba 
								
							 
						 
						
							
							
								
								Fix a crash viewing dags that have target nodes in them  
							
							 
							
							... 
							
							
							
							llvm-svn: 23300 
							
						 
						
							2005-09-09 22:35:03 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								049b748c76 
								
							 
						 
						
							
							
								
								Last round of 2-node folds from SD.cpp.  Will  move on to 3 node ops such  
							
							 
							
							... 
							
							
							
							as setcc and select next.
llvm-svn: 23295 
							
						 
						
							2005-09-09 19:49:52 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								85c1cc4523 
								
							 
						 
						
							
							
								
								Move yet more folds over to the dag combiner from sd.cpp  
							
							 
							
							... 
							
							
							
							llvm-svn: 23278 
							
						 
						
							2005-09-08 20:18:10 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								2cc2c9a79c 
								
							 
						 
						
							
							
								
								Another round of dag combiner changes.  This fixes some missing XOR folds  
							
							 
							
							... 
							
							
							
							as well as fixing how we replace old values with new values.
llvm-svn: 23260 
							
						 
						
							2005-09-07 23:25:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fe883adfd2 
								
							 
						 
						
							
							
								
								Fix a bug nate ran into with replacealluseswith.  In the recursive cse case,  
							
							 
							
							... 
							
							
							
							we were losing a node, causing an assertion to fail.  Now we eagerly delete
discovered CSE's, and provide an optional vector to keep track of these
discovered equivalences.
llvm-svn: 23255 
							
						 
						
							2005-09-07 05:37:01 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								821628ff2a 
								
							 
						 
						
							
							
								
								Fix a checking failure in gs  
							
							 
							
							... 
							
							
							
							llvm-svn: 23235 
							
						 
						
							2005-09-03 01:04:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b95b280bee 
								
							 
						 
						
							
							
								
								Make sure to auto-cse nullary ops  
							
							 
							
							... 
							
							
							
							llvm-svn: 23224 
							
						 
						
							2005-09-02 19:36:17 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1e89e36dcd 
								
							 
						 
						
							
							
								
								Fix some buggy logic where we would try to remove nodes with two operands  
							
							 
							
							... 
							
							
							
							from the binary ops map, even if they had multiple results.  This latent bug
caused a few failures with the dag isel last night.
To prevent stuff like this from happening in the future, add some really
strict checking to make sure that the CSE maps always match up with reality!
llvm-svn: 23221 
							
						 
						
							2005-09-02 19:15:44 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8c393c218b 
								
							 
						 
						
							
							
								
								Add support for ANY_EXTEND and add a few minor folds for it  
							
							 
							
							... 
							
							
							
							llvm-svn: 23203 
							
						 
						
							2005-09-02 00:17:32 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								d78d975437 
								
							 
						 
						
							
							
								
								Fix some code in the current node combining code, spotted when it was moved  
							
							 
							
							... 
							
							
							
							over to DAGCombiner.cpp
1. Don't assume that SetCC returns i1 when folding (xor (setcc) constant)
2. Don't duplicate code in folding AND with AssertZext that is handled by
   MaskedValueIsZero
llvm-svn: 23196 
							
						 
						
							2005-09-01 23:25:49 +00:00  
						
					 
				
					
						
							
							
								 
								Jeff Cohen
							
						 
						
							 
							
							
							
							
								
							
							
								d8c84e3c7e 
								
							 
						 
						
							
							
								
								Fix VC++ precedence warnings  
							
							 
							
							... 
							
							
							
							llvm-svn: 23169 
							
						 
						
							2005-08-31 02:47:06 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								539e7c892c 
								
							 
						 
						
							
							
								
								Sigh, not my day.  Fix typo.  
							
							 
							
							... 
							
							
							
							llvm-svn: 23166 
							
						 
						
							2005-08-31 00:43:49 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								d513d8a662 
								
							 
						 
						
							
							
								
								Fix a mistake in my previous patch pointed out by sabre; the AssertZext  
							
							 
							
							... 
							
							
							
							case in MaskedValueIsZero was wrong.
llvm-svn: 23165 
							
						 
						
							2005-08-31 00:43:08 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								e07bc28cca 
								
							 
						 
						
							
							
								
								Remove some unnecessary casts, and add the AssertZext case to  
							
							 
							
							... 
							
							
							
							MaskedValueIsZero.
llvm-svn: 23164 
							
						 
						
							2005-08-31 00:27:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5764da422a 
								
							 
						 
						
							
							
								
								Allow physregs to occur in the dag with multiple types.  Though I don't likethis, it is a requirement on PPC, which can have an f32 value in r3 at onepoint in a function and a f64 value in r3 at another point.  :(  
							
							 
							
							... 
							
							
							
							This fixes compilation of mesa
llvm-svn: 23161 
							
						 
						
							2005-08-30 22:38:38 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								a3da8c4819 
								
							 
						 
						
							
							
								
								Remove a bogus piece of my AssertSext/AssertZext patch.  oops.  
							
							 
							
							... 
							
							
							
							llvm-svn: 23148 
							
						 
						
							2005-08-30 02:54:28 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								43144a2fe0 
								
							 
						 
						
							
							
								
								Add support for AssertSext and AssertZext, folding other extensions with  
							
							 
							
							... 
							
							
							
							them.  This allows for elminination of redundant extends in the entry
blocks of functions on PowerPC.
Add support for i32 x i32 -> i64 multiplies, by recognizing when the inputs
to ISD::MUL in ExpandOp are actually just extended i32 values and not real
i64 values.  this allows us to codegen
int mulhs(int a, int b) { return ((long long)a * b) >> 32; }
as:
_mulhs:
        mulhw r3, r4, r3
        blr
instead of:
_mulhs:
        mulhwu r2, r4, r3
        srawi r5, r3, 31
        mullw r5, r4, r5
        add r2, r2, r5
        srawi r4, r4, 31
        mullw r3, r4, r3
        add r3, r2, r3
        blr
with a similar improvement on x86.
llvm-svn: 23147 
							
						 
						
							2005-08-30 02:44:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c738d000d5 
								
							 
						 
						
							
							
								
								Add a new API for Nate  
							
							 
							
							... 
							
							
							
							llvm-svn: 23131 
							
						 
						
							2005-08-29 21:59:31 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								87421c8658 
								
							 
						 
						
							
							
								
								Fix a bug in ReplaceAllUsesWith  
							
							 
							
							... 
							
							
							
							llvm-svn: 23122 
							
						 
						
							2005-08-28 23:59:36 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4a5ebe94ba 
								
							 
						 
						
							
							
								
								Checking types here is not safe, because multiple types can map to the same  
							
							 
							
							... 
							
							
							
							register class.
llvm-svn: 23103 
							
						 
						
							2005-08-26 21:39:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								373f048a79 
								
							 
						 
						
							
							
								
								Revampt ReplaceAllUsesWith to be more efficient and easier to use.  
							
							 
							
							... 
							
							
							
							llvm-svn: 23087 
							
						 
						
							2005-08-26 18:36:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c30405e0ee 
								
							 
						 
						
							
							
								
								Change ConstantPoolSDNode to actually hold the Constant itself instead of  
							
							 
							
							... 
							
							
							
							putting it into the constant pool.  This allows the isel machinery to
create constants that it will end up deciding are not needed, without them
ending up in the resultant function constant pool.
llvm-svn: 23081 
							
						 
						
							2005-08-26 17:15:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2091a36631 
								
							 
						 
						
							
							
								
								Fix a huge annoyance: SelectNodeTo took types before the opcode unlike  
							
							 
							
							... 
							
							
							
							every other SD API.  Fix it to take the opcode before the types.
llvm-svn: 23079 
							
						 
						
							2005-08-26 16:36:26 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1cb550c603 
								
							 
						 
						
							
							
								
								Fix a nasty bug from a previous patch of mine  
							
							 
							
							... 
							
							
							
							llvm-svn: 23069 
							
						 
						
							2005-08-26 00:13:12 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								33840c3268 
								
							 
						 
						
							
							
								
								New fold for SELECT_CC  
							
							 
							
							... 
							
							
							
							llvm-svn: 23058 
							
						 
						
							2005-08-25 20:04:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f9c19157df 
								
							 
						 
						
							
							
								
								Don't auto-cse nodes that return flags  
							
							 
							
							... 
							
							
							
							llvm-svn: 23055 
							
						 
						
							2005-08-25 19:12:10 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9d28a56d55 
								
							 
						 
						
							
							
								
								simplify the code a bit using isOperationLegal  
							
							 
							
							... 
							
							
							
							llvm-svn: 23053 
							
						 
						
							2005-08-25 17:54:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								407c6415b4 
								
							 
						 
						
							
							
								
								ADd support for TargetConstantPool nodes  
							
							 
							
							... 
							
							
							
							llvm-svn: 23041 
							
						 
						
							2005-08-25 05:03:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bbe0e7df2c 
								
							 
						 
						
							
							
								
								add a new TargetFrameIndex node  
							
							 
							
							... 
							
							
							
							llvm-svn: 23035 
							
						 
						
							2005-08-25 00:43:01 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								45e1ce4e28 
								
							 
						 
						
							
							
								
								add a method  
							
							 
							
							... 
							
							
							
							llvm-svn: 23027 
							
						 
						
							2005-08-24 23:00:29 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d7ee4d8671 
								
							 
						 
						
							
							
								
								Add ReplaceAllUsesWith that can take a vector of replacement values.  
							
							 
							
							... 
							
							
							
							Add some foldings to hopefully help the illegal setcc issue, and move some code around.
llvm-svn: 23025 
							
						 
						
							2005-08-24 22:44:39 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								86b1658d58 
								
							 
						 
						
							
							
								
								teach selection dag mask tracking about the fact that select_cc operates like  
							
							 
							
							... 
							
							
							
							select.  Also teach it that the bit count instructions can only set the low bits
of the result, depending on the size of the input.
This allows us to compile this:
int %eq0(int %a) {
        %tmp.1 = seteq int %a, 0                ; <bool> [#uses=1]
        %tmp.2 = cast bool %tmp.1 to int                ; <int> [#uses=1]
        ret int %tmp.2
}
To this:
_eq0:
        cntlzw r2, r3
        srwi r3, r2, 5
        blr
instead of this:
_eq0:
        cntlzw r2, r3
        rlwinm r3, r2, 27, 31, 31
        blr
when setcc is marked illegal on ppc (which restores parity to non-illegal
setcc).  Thanks to Nate for pointing this out.
llvm-svn: 23013 
							
						 
						
							2005-08-24 16:46:55 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								45bbbb3f11 
								
							 
						 
						
							
							
								
								Teach SelectionDAG how to simplify a few more setcc-equivalent select_cc  
							
							 
							
							... 
							
							
							
							nodes so that backends don't have to.
llvm-svn: 22999 
							
						 
						
							2005-08-24 04:57:57 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								72eab5dd5c 
								
							 
						 
						
							
							
								
								Fix optimization of select_cc seteq X, 0, 1, 0 -> srl (ctlz X), log2 X size  
							
							 
							
							... 
							
							
							
							llvm-svn: 22995 
							
						 
						
							2005-08-24 00:21:28 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								bf8c3939d7 
								
							 
						 
						
							
							
								
								Teach the SelectionDAG how to transform select_cc eq, X, 0, 1, 0 into  
							
							 
							
							... 
							
							
							
							either seteq X, 0 or srl (ctlz X), size(X-1), depending on what's legal
for the target.
llvm-svn: 22978 
							
						 
						
							2005-08-23 05:41:12 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								466fecee19 
								
							 
						 
						
							
							
								
								add anew method  
							
							 
							
							... 
							
							
							
							llvm-svn: 22957 
							
						 
						
							2005-08-21 22:30:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0548f50501 
								
							 
						 
						
							
							
								
								add a method  
							
							 
							
							... 
							
							
							
							llvm-svn: 22955 
							
						 
						
							2005-08-21 19:48:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								707b39fb8c 
								
							 
						 
						
							
							
								
								add a method  
							
							 
							
							... 
							
							
							
							llvm-svn: 22949 
							
						 
						
							2005-08-21 18:49:33 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1be7eddecf 
								
							 
						 
						
							
							
								
								Add support for TargetGlobalAddress nodes  
							
							 
							
							... 
							
							
							
							llvm-svn: 22938 
							
						 
						
							2005-08-19 22:31:04 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0875d1ab89 
								
							 
						 
						
							
							
								
								Fix a bug in previous commit  
							
							 
							
							... 
							
							
							
							llvm-svn: 22936 
							
						 
						
							2005-08-19 21:34:13 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4990335eb8 
								
							 
						 
						
							
							
								
								Print physreg register nodes with target names (e.g. F1) instead of numbers  
							
							 
							
							... 
							
							
							
							llvm-svn: 22934 
							
						 
						
							2005-08-19 21:21:16 +00:00  
						
					 
				
					
						
							
							
								 
								Jeff Cohen
							
						 
						
							 
							
							
							
							
								
							
							
								d1f22b1282 
								
							 
						 
						
							
							
								
								Fix VC++ precedence warning.  
							
							 
							
							... 
							
							
							
							llvm-svn: 22902 
							
						 
						
							2005-08-19 04:39:48 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								19a271a67b 
								
							 
						 
						
							
							
								
								Add support for target DAG nodes that take 4 operands, such as PowerPC's  
							
							 
							
							... 
							
							
							
							rlwinm.
llvm-svn: 22856 
							
						 
						
							2005-08-18 07:30:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								802080d812 
								
							 
						 
						
							
							
								
								Fix printing of VTSDNodes  
							
							 
							
							... 
							
							
							
							llvm-svn: 22853 
							
						 
						
							2005-08-18 03:31:02 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								d66e616545 
								
							 
						 
						
							
							
								
								Move the code dependency for MathExtras.h from SelectionDAGNodes.h.  
							
							 
							
							... 
							
							
							
							Added some class dividers in SelectionDAG.cpp.
llvm-svn: 22841 
							
						 
						
							2005-08-17 20:08:02 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								b74c666186 
								
							 
						 
						
							
							
								
								Culling out use of unions for converting FP to bits and vice versa.  
							
							 
							
							... 
							
							
							
							llvm-svn: 22838 
							
						 
						
							2005-08-17 19:34:49 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ab0de9d7fc 
								
							 
						 
						
							
							
								
								Fix a bug in RemoveDeadNodes where it would crash when its "optional"  
							
							 
							
							... 
							
							
							
							argument is not specified.
Implement ReplaceAllUsesWith.
llvm-svn: 22834 
							
						 
						
							2005-08-17 19:00:20 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0d2456e1f0 
								
							 
						 
						
							
							
								
								add a new TargetConstant node  
							
							 
							
							... 
							
							
							
							llvm-svn: 22813 
							
						 
						
							2005-08-17 00:34:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								33182325f5 
								
							 
						 
						
							
							
								
								Eliminate the RegSDNode class, which 3 nodes (CopyFromReg/CopyToReg/ImplicitDef)  
							
							 
							
							... 
							
							
							
							used to tack a register number onto the node.
Instead of doing this, make a new node, RegisterSDNode, which is a leaf
containing a register number.  These three operations just become normal
DAG nodes now, instead of requiring special handling.
Note that with this change, it is no longer correct to make illegal
CopyFromReg/CopyToReg nodes.  The legalizer will not touch them, and this
is bad, so don't do it. :)
llvm-svn: 22806 
							
						 
						
							2005-08-16 21:55:35 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								371e49515d 
								
							 
						 
						
							
							
								
								Implement BR_CC and BRTWOWAY_CC.  This allows the removal of a rather nasty  
							
							 
							
							... 
							
							
							
							fixme from the PowerPC backend.  Emit slightly better code for legalizing
select_cc.
llvm-svn: 22805 
							
						 
						
							2005-08-16 19:49:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bc89226527 
								
							 
						 
						
							
							
								
								Allow passing a dag into dump and getOperationName.  If one is available  
							
							 
							
							... 
							
							
							
							when printing a node, use it to render target operations with their
target instruction name instead of "<<unknown>>".
llvm-svn: 22804 
							
						 
						
							2005-08-16 18:33:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1973278b38 
								
							 
						 
						
							
							
								
								Add some methods for dag->dag isel.  
							
							 
							
							... 
							
							
							
							Split RemoveNodeFromCSEMaps out of DeleteNodesIfDead to do it.
llvm-svn: 22801 
							
						 
						
							2005-08-16 18:17:10 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								dc3154ec66 
								
							 
						 
						
							
							
								
								Remove an unncessary argument to SimplifySelectCC and add an additional  
							
							 
							
							... 
							
							
							
							assert when creating a select_cc node.
llvm-svn: 22780 
							
						 
						
							2005-08-13 06:14:17 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								b6651e81a0 
								
							 
						 
						
							
							
								
								Fix the fabs regression on x86 by abstracting the select_cc optimization  
							
							 
							
							... 
							
							
							
							out into SimplifySelectCC.  This allows both ISD::SELECT and ISD::SELECT_CC
to use the same set of simplifying folds.
llvm-svn: 22779 
							
						 
						
							2005-08-13 06:00:21 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								21381e8424 
								
							 
						 
						
							
							
								
								implement a couple of simple shift foldings.  
							
							 
							
							... 
							
							
							
							e.g.  (X & 7) >> 3   -> 0
llvm-svn: 22774 
							
						 
						
							2005-08-12 23:54:58 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								5c7656fd53 
								
							 
						 
						
							
							
								
								Add a select_cc optimization for recognizing abs(int).  This speeds up an  
							
							 
							
							... 
							
							
							
							integer MPEG encoding loop by a factor of two.
llvm-svn: 22758 
							
						 
						
							2005-08-11 02:18:13 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								180b08897f 
								
							 
						 
						
							
							
								
								Some SELECT_CC cleanups:  
							
							 
							
							... 
							
							
							
							1. move assertions for node creation to getNode()
2. legalize the values returned in ExpandOp immediately
3. Move select_cc optimizations from SELECT's getNode() to SELECT_CC's,
   allowing them to be cleaned up significantly.
This paves the way to pick up additional optimizations on SELECT_CC, such
as sum-of-absolute-differences.
llvm-svn: 22757 
							
						 
						
							2005-08-11 01:12:20 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								e5b86d7442 
								
							 
						 
						
							
							
								
								Add new node, SELECT_CC.  This node is for targets that don't natively  
							
							 
							
							... 
							
							
							
							implement SELECT.
llvm-svn: 22755 
							
						 
						
							2005-08-10 20:51:12 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								21c0fd9e8f 
								
							 
						 
						
							
							
								
								Fix an oversight that may be causing PR617.  
							
							 
							
							... 
							
							
							
							llvm-svn: 22753 
							
						 
						
							2005-08-10 17:37:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								679f5b0b40 
								
							 
						 
						
							
							
								
								Fix spelling, fix some broken canonicalizations by my last patch  
							
							 
							
							... 
							
							
							
							llvm-svn: 22734 
							
						 
						
							2005-08-09 23:09:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								14e060f743 
								
							 
						 
						
							
							
								
								add cc nodes to the AllNodes list so they show up in Graphviz output  
							
							 
							
							... 
							
							
							
							llvm-svn: 22731 
							
						 
						
							2005-08-09 20:40:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d47675ed24 
								
							 
						 
						
							
							
								
								Eliminate the SetCCSDNode in favor of a CondCodeSDNode class.  This pulls the  
							
							 
							
							... 
							
							
							
							CC out of the SetCC operation, making SETCC a standard ternary operation and
CC's a standard DAG leaf.  This will make it possible for other node to use
CC's as operands in the future...
llvm-svn: 22728 
							
						 
						
							2005-08-09 20:20:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0c26a0b902 
								
							 
						 
						
							
							
								
								add a small simplification that can be exposed after promotion/expansion  
							
							 
							
							... 
							
							
							
							llvm-svn: 22691 
							
						 
						
							2005-08-07 05:00:44 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1095dc94a9 
								
							 
						 
						
							
							
								
								Fix a use-of-dangling-pointer bug, from the introduction of SrcValue's.  
							
							 
							
							... 
							
							
							
							llvm-svn: 22679 
							
						 
						
							2005-08-05 16:55:31 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6667bdbaca 
								
							 
						 
						
							
							
								
								Update to use the new MathExtras.h support for log2 computation.  
							
							 
							
							... 
							
							
							
							Patch contributed by Jim Laskey!
llvm-svn: 22594 
							
						 
						
							2005-08-02 19:26:06 +00:00  
						
					 
				
					
						
							
							
								 
								Jeff Cohen
							
						 
						
							 
							
							
							
							
								
							
							
								5f4ef3c5a8 
								
							 
						 
						
							
							
								
								Eliminate all remaining tabs and trailing spaces.  
							
							 
							
							... 
							
							
							
							llvm-svn: 22523 
							
						 
						
							2005-07-27 06:12:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								de0a4b1987 
								
							 
						 
						
							
							
								
								Change *EXTLOAD to use an VTSDNode operand instead of being an MVTSDNode.  
							
							 
							
							... 
							
							
							
							This is the last MVTSDNode.
This allows us to eliminate a bunch of special case code for handling
MVTSDNodes.
llvm-svn: 22367 
							
						 
						
							2005-07-10 01:55:33 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								36db1ed06f 
								
							 
						 
						
							
							
								
								Change TRUNCSTORE to use a VTSDNode operand instead of being an MVTSTDNode  
							
							 
							
							... 
							
							
							
							llvm-svn: 22366 
							
						 
						
							2005-07-10 00:29:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0b6ba90a72 
								
							 
						 
						
							
							
								
								Introduce a new VTSDNode class with the ultimate goal of eliminating the  
							
							 
							
							... 
							
							
							
							MVTSDNode class.  This class is used to provide an operand to operators
that require an extra type.  We start by converting FP_ROUND_INREG and
SIGN_EXTEND_INREG over to using it.
llvm-svn: 22364 
							
						 
						
							2005-07-10 00:07:11 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								2edc1881ac 
								
							 
						 
						
							
							
								
								restore old srcValueNode behavior and try to to work around it  
							
							 
							
							... 
							
							
							
							llvm-svn: 22315 
							
						 
						
							2005-06-29 18:54:02 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								8192568fbc 
								
							 
						 
						
							
							
								
								tracking the instructions causing loads and stores provides more information than just the pointer being loaded or stored  
							
							 
							
							... 
							
							
							
							llvm-svn: 22311 
							
						 
						
							2005-06-29 15:57:19 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								a2e8779b0d 
								
							 
						 
						
							
							
								
								Fix bug 537 test 2, which checks to make sure that we fold A+(B-A) -> B for  
							
							 
							
							... 
							
							
							
							integer types.  Add a couple checks to not perform these kinds of transform
on floating point values.
llvm-svn: 22228 
							
						 
						
							2005-06-16 07:06:03 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								51836bbc82 
								
							 
						 
						
							
							
								
								Add some simplifications for MULH[SU].  This allows us to compile this:  
							
							 
							
							... 
							
							
							
							long %bar(long %X) {
  %Y = mul long %X, 4294967297
  ret long %Y
}
to this:
l1_bar:
        mov %EAX, DWORD PTR [%ESP + 4]
        mov %EDX, %EAX
        add %EDX, DWORD PTR [%ESP + 8]
        ret
instead of:
l1_bar:
        mov %ECX, DWORD PTR [%ESP + 4]
        mov %EDX, 1
        mov %EAX, %ECX
        mul %EDX
        add %EDX, %ECX
        add %EDX, DWORD PTR [%ESP + 8]
        mov %EAX, %ECX
        ret
llvm-svn: 22044 
							
						 
						
							2005-05-15 05:39:08 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								865359958b 
								
							 
						 
						
							
							
								
								remove special case hacks for readport/readio from the binary operator  
							
							 
							
							... 
							
							
							
							codepath
llvm-svn: 22019 
							
						 
						
							2005-05-14 07:45:46 +00:00