Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								7c16caa336 
								
							 
						 
						
							
							
								
								Changes For Bug 352  
							
							 
							
							... 
							
							
							
							Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137 
							
						 
						
							2004-09-01 22:55:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								97cf20e1b8 
								
							 
						 
						
							
							
								
								Headers moved  
							
							 
							
							... 
							
							
							
							llvm-svn: 14665 
							
						 
						
							2004-07-07 06:35:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8db52980b7 
								
							 
						 
						
							
							
								
								Minor changes, remove some debugging code that got checked in somehow.  
							
							 
							
							... 
							
							
							
							Make sure to scope the NodeMap passed into cloneInto so that it doesn't point
to nodes that are deleted.  Add some FIXME's for future performance enhancements.
llvm-svn: 12115 
							
						 
						
							2004-03-04 17:05:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								06a573f63d 
								
							 
						 
						
							
							
								
								Only clone global nodes between graphs if both graphs have the global.  
							
							 
							
							... 
							
							
							
							llvm-svn: 11928 
							
						 
						
							2004-02-27 20:05:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ab66f3d143 
								
							 
						 
						
							
							
								
								Instead of cloning the globals for main into the globals graph at the end of  
							
							 
							
							... 
							
							
							
							BU propagation, clone the globals into the GG of EACH FUNCTION that finishes
processing!  The GlobalsGraph *must* include all globals and effects from
all functions in the program.  Fixing this makes pool allocation work better
on 175.vpr, but it still ultimately crashes.
llvm-svn: 11686 
							
						 
						
							2004-02-21 00:30:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6a4e39677e 
								
							 
						 
						
							
							
								
								There is no need to merge the globals graph into the function graphs at the  
							
							 
							
							... 
							
							
							
							end of the BU and CBU passes.  The globals will be marked incomplete, so it
doesn't matter if they are missing some info, and merging isn't guaranteed
to bring everything in anyway!
llvm-svn: 11684 
							
						 
						
							2004-02-20 23:52:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2a6802ff41 
								
							 
						 
						
							
							
								
								When we complete the bottom-up pass, make sure to merge the globals in 'main' into  
							
							 
							
							... 
							
							
							
							the globals graph.
llvm-svn: 11562 
							
						 
						
							2004-02-17 19:06:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9ab85275ef 
								
							 
						 
						
							
							
								
								Instead of callign removeTriviallyDeadNodes on the global graph every time  
							
							 
							
							... 
							
							
							
							removeDeadNodes is called, only call it at the end of the pass being run.
This saves 1.3 seconds running DSA on 177.mesa (5.3->4.0s), which is
pretty big.  This is only possible because of the automatic garbage
collection done on forwarding nodes.
llvm-svn: 11178 
							
						 
						
							2004-02-08 01:51:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2f58ffc571 
								
							 
						 
						
							
							
								
								Avoid referencing deleted DSgraphs when merging an SCC into a larger SCC.  This  
							
							 
							
							... 
							
							
							
							fixes the crash in 176.gcc.
llvm-svn: 11033 
							
						 
						
							2004-01-31 21:02:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b529730af0 
								
							 
						 
						
							
							
								
								Get clone flags right, so we don't build InlinedGlobals only to clear them  
							
							 
							
							... 
							
							
							
							llvm-svn: 10984 
							
						 
						
							2004-01-27 21:50:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								78c36d2112 
								
							 
						 
						
							
							
								
								Initial support for implementing clonePartiallyInto in terms of cloneReachableSubgraph, though this support is currently disabled.  
							
							 
							
							... 
							
							
							
							llvm-svn: 10970 
							
						 
						
							2004-01-23 01:44:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								71d3377010 
								
							 
						 
						
							
							
								
								Minor code cleanup  
							
							 
							
							... 
							
							
							
							llvm-svn: 9962 
							
						 
						
							2003-11-13 05:04:19 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9e876556fd 
								
							 
						 
						
							
							
								
								Fine-grainify namespaces for this library  
							
							 
							
							... 
							
							
							
							llvm-svn: 9948 
							
						 
						
							2003-11-12 23:11:14 +00:00  
						
					 
				
					
						
							
							
								 
								Brian Gaeke
							
						 
						
							 
							
							
							
							
								
							
							
								960707c335 
								
							 
						 
						
							
							
								
								Put all LLVM code into the llvm namespace, as per bug 109.  
							
							 
							
							... 
							
							
							
							llvm-svn: 9903 
							
						 
						
							2003-11-11 22:41:34 +00:00  
						
					 
				
					
						
							
							
								 
								John Criswell
							
						 
						
							 
							
							
							
							
								
							
							
								482202a601 
								
							 
						 
						
							
							
								
								Added LLVM project notice to the top of every C++ source file.  
							
							 
							
							... 
							
							
							
							Header files will be on the way.
llvm-svn: 9298 
							
						 
						
							2003-10-20 19:43:21 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3c095c79fa 
								
							 
						 
						
							
							
								
								Functions reachable from the arguments of unresolvable call nodes should  
							
							 
							
							... 
							
							
							
							not have their arguments marked complete
llvm-svn: 8639 
							
						 
						
							2003-09-20 23:58:33 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								413b7bde7c 
								
							 
						 
						
							
							
								
								The Globals graph must become complete at the end of the BU phase!  
							
							 
							
							... 
							
							
							
							llvm-svn: 8638 
							
						 
						
							2003-09-20 23:27:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								04d9cb6770 
								
							 
						 
						
							
							
								
								Switch from using CallInst's to represent call sites to using the LLVM  
							
							 
							
							... 
							
							
							
							CallSite class.  Now we can represent function calls by invoke instructions
too!
llvm-svn: 8629 
							
						 
						
							2003-09-20 16:34:13 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8abcd56c74 
								
							 
						 
						
							
							
								
								DEBUG got moved to Support/Debug.h  
							
							 
							
							... 
							
							
							
							llvm-svn: 7492 
							
						 
						
							2003-08-01 22:15:03 +00:00  
						
					 
				
					
						
							
							
								 
								Vikram S. Adve
							
						 
						
							 
							
							
							
							
								
							
							
								cf01ed5f75 
								
							 
						 
						
							
							
								
								Rematerialize nodes from the globals graph into the current graph  
							
							 
							
							... 
							
							
							
							after all callees are inlined into the current graph.
NOTE: There's also a major bug fix for the BU pass in DataStructure.cpp,
which ensures that resolvable indirect calls are not moved out to the
globals graph, so that they are eventually inlined (if possible).
llvm-svn: 7189 
							
						 
						
							2003-07-16 21:42:03 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7fd198806a 
								
							 
						 
						
							
							
								
								Fix how we are handling unreachable functions.  This DRAMATICALLY improves efficiency  
							
							 
							
							... 
							
							
							
							llvm-svn: 7082 
							
						 
						
							2003-07-02 23:42:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								cd7482b354 
								
							 
						 
						
							
							
								
								Keep track of how many inlinings are performed  
							
							 
							
							... 
							
							
							
							llvm-svn: 7076 
							
						 
						
							2003-07-02 20:24:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5a3d63d5aa 
								
							 
						 
						
							
							
								
								Make the BU closure keep track of which actual calls happen  
							
							 
							
							... 
							
							
							
							Minor cleanups
llvm-svn: 7059 
							
						 
						
							2003-07-02 04:37:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								269467d216 
								
							 
						 
						
							
							
								
								Minor cleanups  
							
							 
							
							... 
							
							
							
							llvm-svn: 7027 
							
						 
						
							2003-07-01 16:04:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f8865a4389 
								
							 
						 
						
							
							
								
								Split  CallSiteIterator out into DSCallSiteIterator.h, and generalize it a bit  
							
							 
							
							... 
							
							
							
							llvm-svn: 7006 
							
						 
						
							2003-06-30 05:27:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4ffb4e0e03 
								
							 
						 
						
							
							
								
								Reimplement the BU closure to collapse all SCC graphs into a single graph.  
							
							 
							
							... 
							
							
							
							Look at all of the code that gets deleted!
llvm-svn: 7001 
							
						 
						
							2003-06-30 05:09:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								63aeacfe3d 
								
							 
						 
						
							
							
								
								Revamp DSGraphs so that they can support multiple functions in the same  
							
							 
							
							... 
							
							
							
							DSGraph at one time
llvm-svn: 6994 
							
						 
						
							2003-06-30 03:15:25 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fa578d0eb4 
								
							 
						 
						
							
							
								
								Propagate globals graph from the local to bu to td globals graphs.  This  
							
							 
							
							... 
							
							
							
							fixes bug: DSGraph/buglobals.ll
llvm-svn: 6947 
							
						 
						
							2003-06-28 22:14:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4853d162af 
								
							 
						 
						
							
							
								
								* Changes to make NodeType be private to DSNode.  
							
							 
							
							... 
							
							
							
							* Add new MultiObject flag to DSNode which keeps track of whether or not
  multiple objects have been merged into the node, allowing must-alias info
  to be tracked.
llvm-svn: 6794 
							
						 
						
							2003-06-19 21:15:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								80614ee5ef 
								
							 
						 
						
							
							
								
								Implement optimization for direct function call case.  This dramatically  
							
							 
							
							... 
							
							
							
							reduces the number of function nodes created and speeds up analysis by
about 10% overall.
llvm-svn: 5495 
							
						 
						
							2003-02-05 21:59:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e396e9bbae 
								
							 
						 
						
							
							
								
								Add better debug output  
							
							 
							
							... 
							
							
							
							llvm-svn: 5476 
							
						 
						
							2003-02-03 19:11:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c44c04af44 
								
							 
						 
						
							
							
								
								Change DSGraph stuff to use hash_(set|map) instead of std::(set|map)  
							
							 
							
							... 
							
							
							
							This change provides a small (3%) but consistent speedup
llvm-svn: 5460 
							
						 
						
							2003-02-01 04:52:08 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ee97c8b08a 
								
							 
						 
						
							
							
								
								Remove using declarations  
							
							 
							
							... 
							
							
							
							llvm-svn: 5456 
							
						 
						
							2003-02-01 04:01:21 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0cd81260e6 
								
							 
						 
						
							
							
								
								Add functions to the ban list  
							
							 
							
							... 
							
							
							
							llvm-svn: 5450 
							
						 
						
							2003-01-31 23:57:10 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a1d9011d6e 
								
							 
						 
						
							
							
								
								* Eliminate boolean arguments in favor of using enums  
							
							 
							
							... 
							
							
							
							* T-D pass now eliminates unreachable globals
llvm-svn: 5419 
							
						 
						
							2003-01-23 22:05:33 +00:00  
						
					 
				
					
						
							
							
								 
								Vikram S. Adve
							
						 
						
							 
							
							
							
							
								
							
							
								2d2303db22 
								
							 
						 
						
							
							
								
								Fix logical error in TD pass: we should clear Mod/Ref bits of each caller  
							
							 
							
							... 
							
							
							
							before inlining their graphs into a function.  To support this,
added flags to CloneFlags to strip/keep Mod/Ref bits.
llvm-svn: 4836 
							
						 
						
							2002-11-27 17:41:13 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1e3652955b 
								
							 
						 
						
							
							
								
								Add MaxSCC statistics  
							
							 
							
							... 
							
							
							
							llvm-svn: 4722 
							
						 
						
							2002-11-17 22:16:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ccc27ecd35 
								
							 
						 
						
							
							
								
								Inline graphs from outside the SCC into the SCC before SCC resolution starts  
							
							 
							
							... 
							
							
							
							llvm-svn: 4701 
							
						 
						
							2002-11-12 15:58:08 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								59821c5ce6 
								
							 
						 
						
							
							
								
								Complete rewrite of BU code to use Tarjan's SCC finding algorithm to drive  
							
							 
							
							... 
							
							
							
							the algorithm instead of hand coded depth first iteration
llvm-svn: 4694 
							
						 
						
							2002-11-11 21:35:13 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								cca3599c0b 
								
							 
						 
						
							
							
								
								Fix infinite loop in the BU algorithm.  Unfortunately this dies a serious  
							
							 
							
							... 
							
							
							
							death when handling moderately sized SCC's, but what can you do
llvm-svn: 4689 
							
						 
						
							2002-11-11 00:01:34 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3b83d797d6 
								
							 
						 
						
							
							
								
								* Bottom-Up graphs print the Aux call vector  
							
							 
							
							... 
							
							
							
							* Significantly improve DEBUG output
* Aggressively fold calls together if we inlined a graph that provides
  call nodes.
* Add a bailout if the current graph has over 200 call nodes in it, this is
  a really whacky case that should never happen.
llvm-svn: 4675 
							
						 
						
							2002-11-10 06:52:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								715a3a3b5c 
								
							 
						 
						
							
							
								
								eliminate the ability to remove global nodes from deadNodeElminate... for now.  
							
							 
							
							... 
							
							
							
							This slows stuff down a bit, but it should get much better before it gets any
worse.
llvm-svn: 4666 
							
						 
						
							2002-11-09 22:07:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4b1be35569 
								
							 
						 
						
							
							
								
								Add globals graphs to all three passes  
							
							 
							
							... 
							
							
							
							llvm-svn: 4663 
							
						 
						
							2002-11-09 21:12:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								380d1ad4ab 
								
							 
						 
						
							
							
								
								Clean up DSGraph::removeDeadNodes interface  
							
							 
							
							... 
							
							
							
							llvm-svn: 4660 
							
						 
						
							2002-11-09 21:00:49 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e703c52b20 
								
							 
						 
						
							
							
								
								Make removeTriviallyDeadNodes a private interface of DSGraph  
							
							 
							
							... 
							
							
							
							llvm-svn: 4659 
							
						 
						
							2002-11-09 20:55:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								09a21dc2f5 
								
							 
						 
						
							
							
								
								ONLY merge in the aux call sites, this causes a HUGE speedup  
							
							 
							
							... 
							
							
							
							llvm-svn: 4640 
							
						 
						
							2002-11-08 22:27:25 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								639898c9bb 
								
							 
						 
						
							
							
								
								Remove gunk used by broken TD pass  
							
							 
							
							... 
							
							
							
							llvm-svn: 4632 
							
						 
						
							2002-11-08 21:25:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5e865cdbe2 
								
							 
						 
						
							
							
								
								Instead of using a bool that constant has to be explained, use a self  
							
							 
							
							... 
							
							
							
							explanitory enum instead.
llvm-svn: 4600 
							
						 
						
							2002-11-07 07:06:20 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								df307e6fd0 
								
							 
						 
						
							
							
								
								Implement a new mergeInGraph method, which basically factors code out of  
							
							 
							
							... 
							
							
							
							the BU class.
This will be used by the IPModRef class to do stuff, eventually perhaps the
TD pass will use it also.
Speaking of the TD pass, this also eliminates the self recursive case, which
was broken, and couldn't occur anyway.
llvm-svn: 4599 
							
						 
						
							2002-11-07 06:31:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ca03c3b516 
								
							 
						 
						
							
							
								
								Rename DataStructureAnalysis namespace to DS  
							
							 
							
							... 
							
							
							
							llvm-svn: 4596 
							
						 
						
							2002-11-07 05:20:53 +00:00