1d3922ac0b 
								
							 
						 
						
							
							
								
								* Fix a bug introduced in the last checkin wrt Stack markers  
							
							... 
							
							
							
							* Make cloning more efficient in the process...
llvm-svn: 5479 
							
						 
						
							2003-02-03 20:08:51 +00:00  
				
					
						
							
							
								 
						
							
								8bb9513bd8 
								
							 
						 
						
							
							
								
								Implement the globals graph!  
							
							... 
							
							
							
							llvm-svn: 5477 
							
						 
						
							2003-02-03 19:12:15 +00:00  
				
					
						
							
							
								 
						
							
								e396e9bbae 
								
							 
						 
						
							
							
								
								Add better debug output  
							
							... 
							
							
							
							llvm-svn: 5476 
							
						 
						
							2003-02-03 19:11:38 +00:00  
				
					
						
							
							
								 
						
							
								07ba9d9010 
								
							 
						 
						
							
							
								
								Be a bit more specific in caption  
							
							... 
							
							
							
							llvm-svn: 5469 
							
						 
						
							2003-02-02 16:42:01 +00:00  
				
					
						
							
							
								 
						
							
								9e75f38bb9 
								
							 
						 
						
							
							
								
								Fix a bug where we would delete neccesary calls in bu pass  
							
							... 
							
							
							
							llvm-svn: 5465 
							
						 
						
							2003-02-01 06:54:31 +00:00  
				
					
						
							
							
								 
						
							
								5965bbb02f 
								
							 
						 
						
							
							
								
								Fix a bug where we would incorrectly delete globals which had edges to alive nodes in  
							
							... 
							
							
							
							a graph in the t-d pass.  This slows down the TD pass by quite a bit (1/3), but is
needed for correctness.
llvm-svn: 5464 
							
						 
						
							2003-02-01 06:51:17 +00:00  
				
					
						
							
							
								 
						
							
								c154bdcd4c 
								
							 
						 
						
							
							
								
								Delete nodes more efficiently  
							
							... 
							
							
							
							llvm-svn: 5463 
							
						 
						
							2003-02-01 06:41:15 +00:00  
				
					
						
							
							
								 
						
							
								71449ba556 
								
							 
						 
						
							
							
								
								Remove dead nodes more efficiently  
							
							... 
							
							
							
							llvm-svn: 5462 
							
						 
						
							2003-02-01 06:23:33 +00:00  
				
					
						
							
							
								 
						
							
								4f276cc4dd 
								
							 
						 
						
							
							
								
								Improve efficiency of aliveness traversal code  
							
							... 
							
							
							
							llvm-svn: 5461 
							
						 
						
							2003-02-01 06:17:02 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								ee97c8b08a 
								
							 
						 
						
							
							
								
								Remove using declarations  
							
							... 
							
							
							
							llvm-svn: 5456 
							
						 
						
							2003-02-01 04:01:21 +00:00  
				
					
						
							
							
								 
						
							
								87d76c7f01 
								
							 
						 
						
							
							
								
								Remove globals on the bottom up pass which do not contain any information  
							
							... 
							
							
							
							llvm-svn: 5451 
							
						 
						
							2003-01-31 23:57:36 +00:00  
				
					
						
							
							
								 
						
							
								0cd81260e6 
								
							 
						 
						
							
							
								
								Add functions to the ban list  
							
							... 
							
							
							
							llvm-svn: 5450 
							
						 
						
							2003-01-31 23:57:10 +00:00  
				
					
						
							
							
								 
						
							
								c5497c816f 
								
							 
						 
						
							
							
								
								Use and implement API for graph traversals  
							
							... 
							
							
							
							llvm-svn: 5431 
							
						 
						
							2003-01-29 21:10:20 +00:00  
				
					
						
							
							
								 
						
							
								362dab3705 
								
							 
						 
						
							
							
								
								free instructions mark their operands as being heap nodes.  
							
							... 
							
							
							
							llvm-svn: 5425 
							
						 
						
							2003-01-28 20:59:57 +00:00  
				
					
						
							
							
								 
						
							
								38c5e417a7 
								
							 
						 
						
							
							
								
								* Eliminate boolean arguments in favor of using enums  
							
							... 
							
							
							
							llvm-svn: 5420 
							
						 
						
							2003-01-23 22:06:33 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								98034fa407 
								
							 
						 
						
							
							
								
								Slight efficiency improvement  
							
							... 
							
							
							
							llvm-svn: 5418 
							
						 
						
							2003-01-23 21:31:16 +00:00  
				
					
						
							
							
								 
						
							
								2d4945580f 
								
							 
						 
						
							
							
								
								Fix analysis of the Burg program  
							
							... 
							
							
							
							llvm-svn: 5401 
							
						 
						
							2003-01-22 22:00:24 +00:00  
				
					
						
							
							
								 
						
							
								24c1d5e551 
								
							 
						 
						
							
							
								
								Rename llvm/Analysis/LiveVar/FunctionLiveVarInfo.h -> llvm/CodeGen/FunctionLiveVarInfo.h  
							
							... 
							
							
							
							llvm-svn: 5284 
							
						 
						
							2003-01-14 23:05:08 +00:00  
				
					
						
							
							
								 
						
							
								de1d729747 
								
							 
						 
						
							
							
								
								Move llvm/Analysis/LiveVar/ValueSet.h to CodeGen/ValueSet.h  
							
							... 
							
							
							
							llvm-svn: 5282 
							
						 
						
							2003-01-14 22:56:37 +00:00  
				
					
						
							
							
								 
						
							
								0b2f0ed730 
								
							 
						 
						
							
							
								
								Move annotations to support library  
							
							... 
							
							
							
							llvm-svn: 5270 
							
						 
						
							2003-01-14 21:31:39 +00:00  
				
					
						
							
							
								 
						
							
								1028ac46d6 
								
							 
						 
						
							
							
								
								'graph' is spelled without a 'c'.  
							
							... 
							
							
							
							Also added Statistic counters for NoAlias and MayAlias.
llvm-svn: 4972 
							
						 
						
							2002-12-12 05:34:10 +00:00  
				
					
						
							
							
								 
						
							
								c42ada2e5e 
								
							 
						 
						
							
							
								
								Remove #includes  
							
							... 
							
							
							
							llvm-svn: 4968 
							
						 
						
							2002-12-12 03:47:27 +00:00  
				
					
						
							
							
								 
						
							
								775e51d87a 
								
							 
						 
						
							
							
								
								Iterator that enumerates the ProgramDependenceGraph (PDG) for a function,  
							
							... 
							
							
							
							i.e., enumerates all data and control dependences for the function.
llvm-svn: 4958 
							
						 
						
							2002-12-08 14:13:19 +00:00  
				
					
						
							
							
								 
						
							
								8975afdfc4 
								
							 
						 
						
							
							
								
								An explicit representation of dependence graphs, and a pass that  
							
							... 
							
							
							
							computes a dependence graph for data dependences on memory locations
using interprocedural Mod/Ref information.
llvm-svn: 4957 
							
						 
						
							2002-12-08 13:26:29 +00:00  
				
					
						
							
							
								 
						
							
								3935d2b1ec 
								
							 
						 
						
							
							
								
								Add total instruction, bb, & function counts  
							
							... 
							
							
							
							llvm-svn: 4954 
							
						 
						
							2002-12-07 23:24:24 +00:00  
				
					
						
							
							
								 
						
							
								04aee9478c 
								
							 
						 
						
							
							
								
								Two bug fixes:  
							
							... 
							
							
							
							(1) Make entries for Constant values in the ScalarMap.
(2) Set MOD bit for the node pointed to by the
    argument of a free instruction.
llvm-svn: 4948 
							
						 
						
							2002-12-06 21:17:10 +00:00  
				
					
						
							
							
								 
						
							
								0d5559fdfb 
								
							 
						 
						
							
							
								
								Fix several related bugs in DSNode::mergeWith() caused by the  
							
							... 
							
							
							
							fact that the incoming nodes may be merged away at intermediate
steps.  Use an extra level of indirection via DSNodeHandles
to track the nodes being merged.  All this now happens in a
static helper function MergeNodes().
llvm-svn: 4947 
							
						 
						
							2002-12-06 21:15:21 +00:00  
				
					
						
							
							
								 
						
							
								bfff743897 
								
							 
						 
						
							
							
								
								Cute bug fix: when moving links from N to this, some links could have  
							
							... 
							
							
							
							been missed if node *this got merged away due to recursive merging!
Also, links were not moved correctly if a node is collapsed.
llvm-svn: 4933 
							
						 
						
							2002-12-05 17:17:26 +00:00  
				
					
						
							
							
								 
						
							
								5e05817565 
								
							 
						 
						
							
							
								
								Simplify code  
							
							... 
							
							
							
							llvm-svn: 4886 
							
						 
						
							2002-12-03 19:40:16 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								19b3303f3d 
								
							 
						 
						
							
							
								
								(1) Bug fix that was causing nodes with dangling references to be freed.  
							
							... 
							
							
							
							We run removeDeadNodes() on the TD graph up front before using it.
(2) Major enhancement to printing of results: now we list the actual objects
    that are mod/ref instead of just printing the bit vectors.
Also an important bug fix in TDDataStructures pass (no change here):
clear Mod/Ref bits of callers before inlining into a function.
llvm-svn: 4833 
							
						 
						
							2002-11-27 17:37:46 +00:00  
				
					
						
							
							
								 
						
							
								68690673ad 
								
							 
						 
						
							
							
								
								Keep global nodes in each DS Graph (by forcing them to be marked live).  
							
							... 
							
							
							
							llvm-svn: 4831 
							
						 
						
							2002-11-25 18:21:25 +00:00  
				
					
						
							
							
								 
						
							
								79d943eb67 
								
							 
						 
						
							
							
								
								Add peak memory usage measurement stuff  
							
							... 
							
							
							
							Add structure padding optimizations
llvm-svn: 4749 
							
						 
						
							2002-11-18 21:44:46 +00:00  
				
					
						
							
							
								 
						
							
								63a9e5c068 
								
							 
						 
						
							
							
								
								Add peak memory usage support  
							
							... 
							
							
							
							llvm-svn: 4748 
							
						 
						
							2002-11-18 21:44:19 +00:00  
				
					
						
							
							
								 
						
							
								77b80616b0 
								
							 
						 
						
							
							
								
								Add stats  
							
							... 
							
							
							
							llvm-svn: 4747 
							
						 
						
							2002-11-18 21:42:45 +00:00  
				
					
						
							
							
								 
						
							
								29a320bfcf 
								
							 
						 
						
							
							
								
								Add hack to only consider indirect calls indirect if they do more than cast  
							
							... 
							
							
							
							their source function
llvm-svn: 4723 
							
						 
						
							2002-11-17 22:17:12 +00:00  
				
					
						
							
							
								 
						
							
								1e3652955b 
								
							 
						 
						
							
							
								
								Add MaxSCC statistics  
							
							... 
							
							
							
							llvm-svn: 4722 
							
						 
						
							2002-11-17 22:16:28 +00:00  
				
					
						
							
							
								 
						
							
								342f68151e 
								
							 
						 
						
							
							
								
								Count CallInsts correctly, remove unneccesary initializers  
							
							... 
							
							
							
							S: ----------------------------------------------------------------------
llvm-svn: 4721 
							
						 
						
							2002-11-17 22:15:40 +00:00  
				
					
						
							
							
								 
						
							
								a7be9a7db7 
								
							 
						 
						
							
							
								
								Gives the count for various instructions.  
							
							... 
							
							
							
							llvm-svn: 4706 
							
						 
						
							2002-11-13 18:22:13 +00:00  
				
					
						
							
							
								 
						
							
								16eac628f4 
								
							 
						 
						
							
							
								
								Pass to compute various statisics related to DSGraphs.  
							
							... 
							
							
							
							For now, this just computes the #indirect call sites and
the avg. #callees per indirect call site (actually it prints
both totals and the average is their ratio).
llvm-svn: 4705 
							
						 
						
							2002-11-13 15:41:00 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								dcb4ac9594 
								
							 
						 
						
							
							
								
								Fix two bugs:  
							
							... 
							
							
							
							* The globals vector was getting broken and unsorted, this caused vortex
   to get badly pessimized
 * Node offset handling was being handled really poorly, and in particular
   we were not merging types with offsets right.  This causes several graphs
   to be non-merged.
llvm-svn: 4699 
							
						 
						
							2002-11-12 07:20:45 +00:00  
				
					
						
							
							
								 
						
							
								1aeca4d0e6 
								
							 
						 
						
							
							
								
								Fix bug  
							
							... 
							
							
							
							llvm-svn: 4697 
							
						 
						
							2002-11-11 22:23:56 +00:00  
				
					
						
							
							
								 
						
							
								eb10d4cbce 
								
							 
						 
						
							
							
								
								Handle a mismatch between # function args and call site args  
							
							... 
							
							
							
							llvm-svn: 4696 
							
						 
						
							2002-11-11 21:36:05 +00:00  
				
					
						
							
							
								 
						
							
								8aed9820e2 
								
							 
						 
						
							
							
								
								Elimiante calls to a node with nothing in it.  
							
							... 
							
							
							
							llvm-svn: 4695 
							
						 
						
							2002-11-11 21:35:38 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								dd3dd4abeb 
								
							 
						 
						
							
							
								
								Mark stuff reachable by _AUX_ calls as incomplete in the BU graph  
							
							... 
							
							
							
							llvm-svn: 4690 
							
						 
						
							2002-11-11 03:36:55 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								773da868a0 
								
							 
						 
						
							
							
								
								Print the right call set size  
							
							... 
							
							
							
							llvm-svn: 4688 
							
						 
						
							2002-11-11 00:01:02 +00:00  
				
					
						
							
							
								 
						
							
								6fa9a7f7f4 
								
							 
						 
						
							
							
								
								Use call site mergeWith method to simplify code  
							
							... 
							
							
							
							llvm-svn: 4687 
							
						 
						
							2002-11-11 00:00:46 +00:00  
				
					
						
							
							
								 
						
							
								d7f9f635ec 
								
							 
						 
						
							
							
								
								Fix a bug that could trigger when varargs call sites had non-matching number of arguments  
							
							... 
							
							
							
							llvm-svn: 4683 
							
						 
						
							2002-11-10 07:46:08 +00:00  
				
					
						
							
							
								 
						
							
								7b61563d99 
								
							 
						 
						
							
							
								
								* Dramatically rework liveness evaluation.  
							
							... 
							
							
							
							* Implement the first step of the Globals graph: Deleting nodes from function
  graphs.  In practice, these nodes need to be moved to the globals graph, but
  this will be taken care of later.  Note that the graphs computed right now are
  not strictly correct!
llvm-svn: 4681 
							
						 
						
							2002-11-10 06:59:55 +00:00  
				
					
						
							
							
								 
						
							
								e79ce7d359 
								
							 
						 
						
							
							
								
								Honor the shouldPrintAuxCalls flag  
							
							... 
							
							
							
							llvm-svn: 4678 
							
						 
						
							2002-11-10 06:53:59 +00:00  
				
					
						
							
							
								 
						
							
								17da287408 
								
							 
						 
						
							
							
								
								Initialize PrintAuxCalls member  
							
							... 
							
							
							
							llvm-svn: 4677 
							
						 
						
							2002-11-10 06:53:38 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								3e32cd8e8b 
								
							 
						 
						
							
							
								
								Remove obsolete code  
							
							... 
							
							
							
							llvm-svn: 4665 
							
						 
						
							2002-11-09 21:41:44 +00:00  
				
					
						
							
							
								 
						
							
								d185d2ce9d 
								
							 
						 
						
							
							
								
								Fix logic  
							
							... 
							
							
							
							llvm-svn: 4664 
							
						 
						
							2002-11-09 21:40:58 +00:00  
				
					
						
							
							
								 
						
							
								4b1be35569 
								
							 
						 
						
							
							
								
								Add globals graphs to all three passes  
							
							... 
							
							
							
							llvm-svn: 4663 
							
						 
						
							2002-11-09 21:12:07 +00:00  
				
					
						
							
							
								 
						
							
								0de21ea32d 
								
							 
						 
						
							
							
								
								Move maskNodeTypes to header file  
							
							... 
							
							
							
							llvm-svn: 4661 
							
						 
						
							2002-11-09 21:02:26 +00:00  
				
					
						
							
							
								 
						
							
								380d1ad4ab 
								
							 
						 
						
							
							
								
								Clean up DSGraph::removeDeadNodes interface  
							
							... 
							
							
							
							llvm-svn: 4660 
							
						 
						
							2002-11-09 21:00:49 +00:00  
				
					
						
							
							
								 
						
							
								e703c52b20 
								
							 
						 
						
							
							
								
								Make removeTriviallyDeadNodes a private interface of DSGraph  
							
							... 
							
							
							
							llvm-svn: 4659 
							
						 
						
							2002-11-09 20:55:24 +00:00  
				
					
						
							
							
								 
						
							
								2dd1adafa6 
								
							 
						 
						
							
							
								
								Don't put constants into the scalar map!  
							
							... 
							
							
							
							llvm-svn: 4657 
							
						 
						
							2002-11-09 20:14:03 +00:00  
				
					
						
							
							
								 
						
							
								e742f31e0c 
								
							 
						 
						
							
							
								
								Add initial support for a globals graph  
							
							... 
							
							
							
							llvm-svn: 4656 
							
						 
						
							2002-11-09 20:01:01 +00:00  
				
					
						
							
							
								 
						
							
								5737a600d7 
								
							 
						 
						
							
							
								
								Tighten up array handling  
							
							... 
							
							
							
							llvm-svn: 4655 
							
						 
						
							2002-11-09 19:25:27 +00:00  
				
					
						
							
							
								 
						
							
								bcc12023ce 
								
							 
						 
						
							
							
								
								#include Datastructure.h first  
							
							... 
							
							
							
							llvm-svn: 4654 
							
						 
						
							2002-11-09 19:25:10 +00:00  
				
					
						
							
							
								 
						
							
								a2620ac156 
								
							 
						 
						
							
							
								
								Fix warning  
							
							... 
							
							
							
							llvm-svn: 4649 
							
						 
						
							2002-11-09 00:49:43 +00:00  
				
					
						
							
							
								 
						
							
								63aeefeafb 
								
							 
						 
						
							
							
								
								Fix warning & release build  
							
							... 
							
							
							
							llvm-svn: 4648 
							
						 
						
							2002-11-09 00:49:05 +00:00  
				
					
						
							
							
								 
						
							
								be46569ba1 
								
							 
						 
						
							
							
								
								Fold arrays down to a single element.  This causes huge wins on some benchmarks  
							
							... 
							
							
							
							for example: 197.parser (64M->14M), 164.gzip (14M->2.7M).  The actual graphs
represented should not change at all.
llvm-svn: 4643 
							
						 
						
							2002-11-08 22:49:57 +00:00  
				
					
						
							
							
								 
						
							
								09a21dc2f5 
								
							 
						 
						
							
							
								
								ONLY merge in the aux call sites, this causes a HUGE speedup  
							
							... 
							
							
							
							llvm-svn: 4640 
							
						 
						
							2002-11-08 22:27:25 +00:00  
				
					
						
							
							
								 
						
							
								56363a05e6 
								
							 
						 
						
							
							
								
								Allow specification of whether the call sites should be copied, AND whether  
							
							... 
							
							
							
							the aux call sites should be copied
llvm-svn: 4639 
							
						 
						
							2002-11-08 22:27:09 +00:00  
				
					
						
							
							
								 
						
							
								ef305cec98 
								
							 
						 
						
							
							
								
								Reenable 'quick exit' case  
							
							... 
							
							
							
							llvm-svn: 4638 
							
						 
						
							2002-11-08 22:26:43 +00:00  
				
					
						
							
							
								 
						
							
								2ea00e994e 
								
							 
						 
						
							
							
								
								Reduce amount of work needed to compute ip/modref  
							
							... 
							
							
							
							llvm-svn: 4637 
							
						 
						
							2002-11-08 22:17:01 +00:00  
				
					
						
							
							
								 
						
							
								0c2f4bab3a 
								
							 
						 
						
							
							
								
								Reimplement TD pass completely it now works  
							
							... 
							
							
							
							llvm-svn: 4635 
							
						 
						
							2002-11-08 21:28:37 +00:00  
				
					
						
							
							
								 
						
							
								a06ac62a5e 
								
							 
						 
						
							
							
								
								Cannot modify original call sites vector  
							
							... 
							
							
							
							llvm-svn: 4634 
							
						 
						
							2002-11-08 21:27:37 +00:00  
				
					
						
							
							
								 
						
							
								c20122732e 
								
							 
						 
						
							
							
								
								- Add a bunch of checking to make sure that dead nodes are not used after they  
							
							... 
							
							
							
							are marked DEAD.  This helped track down some bugs
- Fix a bunch of bugs where we were doing work on nodes after they became dead
- Add support for aux function call sites
- Add support for not cloning call sites
llvm-svn: 4633 
							
						 
						
							2002-11-08 21:27:12 +00:00  
				
					
						
							
							
								 
						
							
								639898c9bb 
								
							 
						 
						
							
							
								
								Remove gunk used by broken TD pass  
							
							... 
							
							
							
							llvm-svn: 4632 
							
						 
						
							2002-11-08 21:25:24 +00:00  
				
					
						
							
							
								 
						
							
								465668552a 
								
							 
						 
						
							
							
								
								Fix IPModRef to use new DS interface  
							
							... 
							
							
							
							llvm-svn: 4628 
							
						 
						
							2002-11-08 19:13:14 +00:00  
				
					
						
							
							
								 
						
							
								a075a5801b 
								
							 
						 
						
							
							
								
								Use DSNodeHandleMap instead to be safe  
							
							... 
							
							
							
							llvm-svn: 4622 
							
						 
						
							2002-11-08 05:01:14 +00:00  
				
					
						
							
							
								 
						
							
								5e730ed972 
								
							 
						 
						
							
							
								
								* actually handle constants (especially constantexprs) correctly.  
							
							... 
							
							
							
							- This seems to dramatically improve many benchmarks, only slowing down
    gzip significantly.
llvm-svn: 4621 
							
						 
						
							2002-11-08 05:00:44 +00:00  
				
					
						
							
							
								 
						
							
								b0c9b37048 
								
							 
						 
						
							
							
								
								Add flush  
							
							... 
							
							
							
							llvm-svn: 4619 
							
						 
						
							2002-11-08 01:21:07 +00:00  
				
					
						
							
							
								 
						
							
								5904e63465 
								
							 
						 
						
							
							
								
								Implement ResolveCallSiteModRefInfo for IPModRef.  computeModRef is not yet done though!  
							
							... 
							
							
							
							llvm-svn: 4602 
							
						 
						
							2002-11-07 07:12:23 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								ca03c3b516 
								
							 
						 
						
							
							
								
								Rename DataStructureAnalysis namespace to DS  
							
							... 
							
							
							
							llvm-svn: 4596 
							
						 
						
							2002-11-07 05:20:53 +00:00  
				
					
						
							
							
								 
						
							
								28c34bd8eb 
								
							 
						 
						
							
							
								
								Fix problem with dangling referrers  
							
							... 
							
							
							
							llvm-svn: 4595 
							
						 
						
							2002-11-07 05:00:35 +00:00  
				
					
						
							
							
								 
						
							
								f9d29b3299 
								
							 
						 
						
							
							
								
								Minor bugfix to enable generation of methcall.llvm.lib, objinst.llvm.lib, and  
							
							... 
							
							
							
							The problem was merging two unsized types like function's, ie int (int*) with
int (uint *)
llvm-svn: 4594 
							
						 
						
							2002-11-07 04:59:28 +00:00  
				
					
						
							
							
								 
						
							
								c03a377f6a 
								
							 
						 
						
							
							
								
								Compute total number of nodes and # call nodes  
							
							... 
							
							
							
							llvm-svn: 4592 
							
						 
						
							2002-11-07 02:18:46 +00:00  
				
					
						
							
							
								 
						
							
								4f8e2acaa2 
								
							 
						 
						
							
							
								
								Move printouts to be wrapped in DEBUG() macros  
							
							... 
							
							
							
							llvm-svn: 4588 
							
						 
						
							2002-11-07 01:54:56 +00:00  
				
					
						
							
							
								 
						
							
								2d0081a148 
								
							 
						 
						
							
							
								
								When the -only-print-main-ds option is specified, still print out graph size  
							
							... 
							
							
							
							statistics for skipped functions
llvm-svn: 4587 
							
						 
						
							2002-11-07 01:54:44 +00:00  
				
					
						
							
							
								 
						
							
								bac5fec8b9 
								
							 
						 
						
							
							
								
								Allow the ResolveCallSiteModRefInfo method to return a mapping of nodes,  
							
							... 
							
							
							
							implement the mod/ref bit masking
llvm-svn: 4578 
							
						 
						
							2002-11-06 19:59:33 +00:00  
				
					
						
							
							
								 
						
							
								2b23bf16e3 
								
							 
						 
						
							
							
								
								Add a stub to implement the context sensitive mod/ref info for call sites  
							
							... 
							
							
							
							llvm-svn: 4577 
							
						 
						
							2002-11-06 19:38:43 +00:00  
				
					
						
							
							
								 
						
							
								3cf08cc08a 
								
							 
						 
						
							
							
								
								Give a back pointer to the IPModRef object to the FunctionModRefInfo object  
							
							... 
							
							
							
							llvm-svn: 4576 
							
						 
						
							2002-11-06 19:07:13 +00:00  
				
					
						
							
							
								 
						
							
								2f05c9a206 
								
							 
						 
						
							
							
								
								Remove a couple of #includes, move some code from .h file  
							
							... 
							
							
							
							llvm-svn: 4575 
							
						 
						
							2002-11-06 18:38:18 +00:00  
				
					
						
							
							
								 
						
							
								92acbcda99 
								
							 
						 
						
							
							
								
								Change Steens class to build with Vikram's changes  
							
							... 
							
							
							
							llvm-svn: 4572 
							
						 
						
							2002-11-06 18:08:32 +00:00  
				
					
						
							
							
								 
						
							
								2b79f4b7c3 
								
							 
						 
						
							
							
								
								Make PointerSize & Shift be enums  
							
							... 
							
							
							
							Fix problem with recursive merging
llvm-svn: 4570 
							
						 
						
							2002-11-06 18:01:39 +00:00  
				
					
						
							
							
								 
						
							
								075a8d7341 
								
							 
						 
						
							
							
								
								Make query operations non-const to allow demand-driven analyses.  
							
							... 
							
							
							
							llvm-svn: 4569 
							
						 
						
							2002-11-06 17:17:55 +00:00  
				
					
						
							
							
								 
						
							
								36da63f19f 
								
							 
						 
						
							
							
								
								An interprocedural analysis pass that computes flow-insensitive  
							
							... 
							
							
							
							IP Mod and Ref information for every function and every call site.
llvm-svn: 4567 
							
						 
						
							2002-11-06 17:02:03 +00:00  
				
					
						
							
							
								 
						
							
								48e37d9b97 
								
							 
						 
						
							
							
								
								Dramatically simplify internal DSNode representation, get implementation  
							
							... 
							
							
							
							*FULLY OPERATIONAL* and safe.  We are now capable of completely analyzing
at LEAST the Olden benchmarks + 181.mcf
llvm-svn: 4562 
							
						 
						
							2002-11-06 06:20:27 +00:00  
				
					
						
							
							
								 
						
							
								230f6926b0 
								
							 
						 
						
							
							
								
								Delete "StripScalars" argument to cloneInto method  
							
							... 
							
							
							
							llvm-svn: 4560 
							
						 
						
							2002-11-06 06:16:30 +00:00  
				
					
						
							
							
								 
						
							
								6c213d673b 
								
							 
						 
						
							
							
								
								Attempted fixes to the mergemap to make it work better.  
							
							... 
							
							
							
							Ended up disabling merge map merging completely.  It shall be removed.
llvm-svn: 4550 
							
						 
						
							2002-11-05 00:01:58 +00:00  
				
					
						
							
							
								 
						
							
								5beed607f4 
								
							 
						 
						
							
							
								
								Simple passes that print out SCCs in the CFGs or in the CallGraph of a module.  
							
							... 
							
							
							
							llvm-svn: 4532 
							
						 
						
							2002-11-04 14:20:22 +00:00  
				
					
						
							
							
								 
						
							
								7e8b76009f 
								
							 
						 
						
							
							
								
								Change the "Cannot merge two portions of the same node yet" from an assertion  
							
							... 
							
							
							
							into a "oh crap, lets collapse" case
llvm-svn: 4530 
							
						 
						
							2002-11-04 06:48:26 +00:00  
				
					
						
							
							
								 
						
							
								cd691d2047 
								
							 
						 
						
							
							
								
								Give a better error message in an unhandled case  
							
							... 
							
							
							
							llvm-svn: 4521 
							
						 
						
							2002-11-04 02:29:15 +00:00  
				
					
						
							
							
								 
						
							
								b9d55473b5 
								
							 
						 
						
							
							
								
								Allow the call graph to be called from analyze naturally with print implemented  
							
							... 
							
							
							
							llvm-svn: 4517 
							
						 
						
							2002-11-04 00:21:19 +00:00  
				
					
						
							
							
								 
						
							
								a20fabc7ec 
								
							 
						 
						
							
							
								
								Rename ValueMap to ScalarMap  
							
							... 
							
							
							
							llvm-svn: 4516 
							
						 
						
							2002-11-03 21:27:48 +00:00  
				
					
						
							
							
								 
						
							
								bd7af8e664 
								
							 
						 
						
							
							
								
								Rename NewNode flag to HeapNode  
							
							... 
							
							
							
							llvm-svn: 4515 
							
						 
						
							2002-11-03 21:24:04 +00:00  
				
					
						
							
							
								 
						
							
								4b6a813048 
								
							 
						 
						
							
							
								
								Change the letters used to represent stack and heap allocations to "S" and "H"  
							
							... 
							
							
							
							respectively.  This is to make presentation easier in the paper.
llvm-svn: 4514 
							
						 
						
							2002-11-03 19:46:15 +00:00  
				
					
						
							
							
								 
						
							
								63ba1aca7c 
								
							 
						 
						
							
							
								
								Implement the "unknown flag" which mainly consists of aligning printing code  
							
							... 
							
							
							
							llvm-svn: 4490 
							
						 
						
							2002-11-02 00:36:03 +00:00  
				
					
						
							
							
								 
						
							
								364e6e82fd 
								
							 
						 
						
							
							
								
								Oops, this was not meant to be checked in  
							
							... 
							
							
							
							llvm-svn: 4489 
							
						 
						
							2002-11-02 00:26:32 +00:00  
				
					
						
							
							
								 
						
							
								a7b0d4eb08 
								
							 
						 
						
							
							
								
								Stop representing scalars as explicit nodes in the graph.  Now the only  
							
							... 
							
							
							
							nodes in the graph are memory objects, which is very nice.  This also greatly
reduces the size and memory footprint for DSGraphs.  For example, the local
DSGraph for llu went from 65 to 13 nodes with this change.  As a side bonus,
dot seems to lay out the graphs slightly better too.  :)
llvm-svn: 4488 
							
						 
						
							2002-11-02 00:13:20 +00:00  
				
					
						
							
							
								 
						
							
								8a1854fc47 
								
							 
						 
						
							
							
								
								Fix comments, steens is context sensitive, we just haven't implemented  
							
							... 
							
							
							
							mod/ref apis yet
llvm-svn: 4485 
							
						 
						
							2002-11-01 17:34:23 +00:00  
				
					
						
							
							
								 
						
							
								8c68d869e5 
								
							 
						 
						
							
							
								
								Add a fixme  
							
							... 
							
							
							
							llvm-svn: 4479 
							
						 
						
							2002-10-31 23:24:00 +00:00  
				
					
						
							
							
								 
						
							
								c1d8820711 
								
							 
						 
						
							
							
								
								* Minor optimization: when merging nodes, merge the smaller one into the  
							
							... 
							
							
							
							larger one.
     * Handle the case where we are merging two nodes of different size better.
llvm-svn: 4476 
							
						 
						
							2002-10-31 22:41:15 +00:00  
				
					
						
							
							
								 
						
							
								5d428a0029 
								
							 
						 
						
							
							
								
								Remove dead code  
							
							... 
							
							
							
							llvm-svn: 4467 
							
						 
						
							2002-10-31 06:52:26 +00:00  
				
					
						
							
							
								 
						
							
								7d5f19886d 
								
							 
						 
						
							
							
								
								This fixes all kinds of problems with array handling.  There are still bugs to  
							
							... 
							
							
							
							be fixed, but we are getting much closer now.
    * Make DSNode::TypeRec a full fledged DSTypeRec type.
    * Add methods used to update and access the typerecords elements
    * Add methods to query if and to cause a node to be completely folded
    * DSGraph construction doesn't use the allocation type for anything at all,
      now nodes get their type information based on how they are used.
    * Fixed a bug with global value handling introduced in the last checkin
    * GEP support is now much better, arrays are handled correctly.  The array
      flag is now updated in type records.  There are still cases that are not
      handled yet (we do not detect pessimizations), but getting much closer.
llvm-svn: 4465 
							
						 
						
							2002-10-31 05:45:02 +00:00  
				
					
						
							
							
								 
						
							
								d1998c4aea 
								
							 
						 
						
							
							
								
								Use new isCommutative interface, which gives us SetEQ and SetNE for free.  
							
							... 
							
							
							
							Thanks fly out to Casey Carter for this fix.
llvm-svn: 4460 
							
						 
						
							2002-10-31 04:20:07 +00:00  
				
					
						
							
							
								 
						
							
								632df28deb 
								
							 
						 
						
							
							
								
								Fix spelling of `propagate'.  
							
							... 
							
							
							
							llvm-svn: 4423 
							
						 
						
							2002-10-29 23:06:16 +00:00  
				
					
						
							
							
								 
						
							
								a7ee81d6a5 
								
							 
						 
						
							
							
								
								Eliminate uses of MachineBasicBlock::get  
							
							... 
							
							
							
							llvm-svn: 4340 
							
						 
						
							2002-10-28 18:01:21 +00:00  
				
					
						
							
							
								 
						
							
								8710aab04c 
								
							 
						 
						
							
							
								
								Rename MachineCodeForBasicBlock to MachineBasicBlock  
							
							... 
							
							
							
							llvm-svn: 4318 
							
						 
						
							2002-10-28 01:41:47 +00:00  
				
					
						
							
							
								 
						
							
								51a2c3cc2d 
								
							 
						 
						
							
							
								
								- Make sure to only keep track of mappings that the TD pass may need in the  
							
							... 
							
							
							
							future.  This prevents having spurious map entries to nodes that we really
    don't care about.  This allows us to reenable the DeadNodeElim, which was
    disabled.
llvm-svn: 4260 
							
						 
						
							2002-10-22 16:01:03 +00:00  
				
					
						
							
							
								 
						
							
								d90e74ae13 
								
							 
						 
						
							
							
								
								The callee is not correct, and confuses the TD pass.  Null it out.  
							
							... 
							
							
							
							llvm-svn: 4259 
							
						 
						
							2002-10-22 15:58:46 +00:00  
				
					
						
							
							
								 
						
							
								155fffd350 
								
							 
						 
						
							
							
								
								Delete unused arguments to DSGraph::cloneInto method  
							
							... 
							
							
							
							llvm-svn: 4253 
							
						 
						
							2002-10-21 19:50:29 +00:00  
				
					
						
							
							
								 
						
							
								f76087336f 
								
							 
						 
						
							
							
								
								- Add "ResolvingCaller" to the CallSite record.  This keeps track of which  
							
							... 
							
							
							
							function was finally able to resolve the function call.  Adding this allows
    the TD pass to actually work right!
  - Temporarily disable dead node pruning.  This will be reenabled soon.
llvm-svn: 4252 
							
						 
						
							2002-10-21 19:47:18 +00:00  
				
					
						
							
							
								 
						
							
								c6191df9af 
								
							 
						 
						
							
							
								
								Add another copy ctor form  
							
							... 
							
							
							
							llvm-svn: 4251 
							
						 
						
							2002-10-21 15:32:34 +00:00  
				
					
						
							
							
								 
						
							
								78c1e7d83c 
								
							 
						 
						
							
							
								
								As it turns out, we don't need a fully generic mapping copy ctor, we just need  
							
							... 
							
							
							
							something that maps through a std::map.  Since this simplified the client and
implementation code, do so now.
llvm-svn: 4250 
							
						 
						
							2002-10-21 15:04:18 +00:00  
				
					
						
							
							
								 
						
							
								32438d8c84 
								
							 
						 
						
							
							
								
								Don't create a new node for every reference to a global.  This caused a huge  
							
							... 
							
							
							
							node explosion that doesn't help anything at all.  In previous versions of
the representation this DID help, but not anymore.
llvm-svn: 4249 
							
						 
						
							2002-10-21 13:51:30 +00:00  
				
					
						
							
							
								 
						
							
								800b7e33df 
								
							 
						 
						
							
							
								
								Fix a confusing bug that caused return value and callee pointers to not  
							
							... 
							
							
							
							be printed!
llvm-svn: 4248 
							
						 
						
							2002-10-21 13:47:57 +00:00  
				
					
						
							
							
								 
						
							
								2f5a6d46ae 
								
							 
						 
						
							
							
								
								Remove some unneccesary 'using' directives  
							
							... 
							
							
							
							llvm-svn: 4246 
							
						 
						
							2002-10-21 13:31:48 +00:00  
				
					
						
							
							
								 
						
							
								80e1a74820 
								
							 
						 
						
							
							
								
								Fix bug with prior checkin  
							
							... 
							
							
							
							llvm-svn: 4242 
							
						 
						
							2002-10-21 02:18:55 +00:00  
				
					
						
							
							
								 
						
							
								5c3ce31e1f 
								
							 
						 
						
							
							
								
								- Make DSCallSite not inherit from std::vector.  Renamed methods slightly.  
							
							... 
							
							
							
							Make copy ctor have two versions to avoid dealing with conditional template
    argument.  DSCallSite ctor now takes all arguments instead of taking one
    and being populated later.
llvm-svn: 4240 
							
						 
						
							2002-10-21 02:08:03 +00:00  
				
					
						
							
							
								 
						
							
								faa756ecee 
								
							 
						 
						
							
							
								
								Avoid extra copy  
							
							... 
							
							
							
							llvm-svn: 4239 
							
						 
						
							2002-10-20 22:12:06 +00:00  
				
					
						
							
							
								 
						
							
								3af17ce2cf 
								
							 
						 
						
							
							
								
								Simplify code a bit, add comment flyer  
							
							... 
							
							
							
							llvm-svn: 4238 
							
						 
						
							2002-10-20 22:11:44 +00:00  
				
					
						
							
							
								 
						
							
								fd16b72fc7 
								
							 
						 
						
							
							
								
								Split some long lines  
							
							... 
							
							
							
							llvm-svn: 4237 
							
						 
						
							2002-10-20 22:11:17 +00:00  
				
					
						
							
							
								 
						
							
								e85319693e 
								
							 
						 
						
							
							
								
								Remove spurious caller pointer in DSCallSite.  
							
							... 
							
							
							
							Also add functions to access pointer argument nodes cleanly.
llvm-svn: 4235 
							
						 
						
							2002-10-20 21:41:02 +00:00  
				
					
						
							
							
								 
						
							
								c94855e46b 
								
							 
						 
						
							
							
								
								This function can be static  
							
							... 
							
							
							
							llvm-svn: 4234 
							
						 
						
							2002-10-20 20:39:31 +00:00  
				
					
						
							
							
								 
						
							
								07d69052f8 
								
							 
						 
						
							
							
								
								Fix previous checkin :(  
							
							... 
							
							
							
							llvm-svn: 4233 
							
						 
						
							2002-10-20 20:39:17 +00:00  
				
					
						
							
							
								 
						
							
								28bef38c56 
								
							 
						 
						
							
							
								
								Avoid extra callSite copy  
							
							... 
							
							
							
							llvm-svn: 4232 
							
						 
						
							2002-10-20 20:32:13 +00:00  
				
					
						
							
							
								 
						
							
								43301680aa 
								
							 
						 
						
							
							
								
								Print the array flag  
							
							... 
							
							
							
							llvm-svn: 4231 
							
						 
						
							2002-10-20 20:29:10 +00:00  
				
					
						
							
							
								 
						
							
								dc9e142686 
								
							 
						 
						
							
							
								
								Added a first-class representation for each call site that can be  
							
							... 
							
							
							
							used in the DS graphs.  Essentially, what was vector<DSNodeHandle>
before is now a DSCallSite with the same vector, plus pointers to the
CallInst and the caller Function.  The special-purpose class
BUDataStructure::CallSite is no longer needed.
llvm-svn: 4228 
							
						 
						
							2002-10-20 18:07:37 +00:00  
				
					
						
							
							
								 
						
							
								f931f6b5c7 
								
							 
						 
						
							
							
								
								Convert typerec to be a structure instead of a pair  
							
							... 
							
							
							
							llvm-svn: 4226 
							
						 
						
							2002-10-18 18:22:46 +00:00  
				
					
						
							
							
								 
						
							
								ac2de97c75 
								
							 
						 
						
							
							
								
								Print Mod/ref info  
							
							... 
							
							
							
							llvm-svn: 4224 
							
						 
						
							2002-10-17 22:13:28 +00:00  
				
					
						
							
							
								 
						
							
								b4e800aabf 
								
							 
						 
						
							
							
								
								Calculate mod/ref info  
							
							... 
							
							
							
							llvm-svn: 4223 
							
						 
						
							2002-10-17 22:13:19 +00:00  
				
					
						
							
							
								 
						
							
								bf25578f02 
								
							 
						 
						
							
							
								
								Remove more obsolete code  
							
							... 
							
							
							
							llvm-svn: 4221 
							
						 
						
							2002-10-17 20:53:12 +00:00  
				
					
						
							
							
								 
						
							
								b182216df8 
								
							 
						 
						
							
							
								
								* Make the DSGraph cloner automatically merge global nodes  
							
							... 
							
							
							
							* BUClosure doesn't have to worry about global nodes
 * TDClosure now works with global nodes
 * Reenable DNE on TD pass, now that globals work right
llvm-svn: 4220 
							
						 
						
							2002-10-17 20:09:52 +00:00  
				
					
						
							
							
								 
						
							
								981c92a9e2 
								
							 
						 
						
							
							
								
								Remove obsolete code  
							
							... 
							
							
							
							llvm-svn: 4218 
							
						 
						
							2002-10-17 04:58:10 +00:00  
				
					
						
							
							
								 
						
							
								7c02ec2562 
								
							 
						 
						
							
							
								
								Enable incompleteness marking  
							
							... 
							
							
							
							llvm-svn: 4217 
							
						 
						
							2002-10-17 04:57:28 +00:00  
				
					
						
							
							
								 
						
							
								f10327ebce 
								
							 
						 
						
							
							
								
								* First try at implementing TD pass this does not merge global nodes yet,  
							
							... 
							
							
							
							among other things.
  * Significant rewrite of TD pass to avoid potentially N^2 algorithms if
    possible.  It is still not complete, but at least it's checked in now.
llvm-svn: 4215 
							
						 
						
							2002-10-17 04:26:54 +00:00  
				
					
						
							
							
								 
						
							
								6b5acda098 
								
							 
						 
						
							
							
								
								Reenable printing of TD analysis  
							
							... 
							
							
							
							llvm-svn: 4214 
							
						 
						
							2002-10-17 04:24:30 +00:00  
				
					
						
							
							
								 
						
							
								a1cfcf4dff 
								
							 
						 
						
							
							
								
								* Add data structures and code to track the call sites for each function  
							
							... 
							
							
							
							llvm-svn: 4213 
							
						 
						
							2002-10-17 04:24:08 +00:00  
				
					
						
							
							
								 
						
							
								ddebb4343e 
								
							 
						 
						
							
							
								
								Cleanup data structure graph printer, eliminate hard coded printing in  
							
							... 
							
							
							
							favor of generic printer.
llvm-svn: 4209 
							
						 
						
							2002-10-17 01:02:46 +00:00  
				
					
						
							
							
								 
						
							
								7b0ebe9983 
								
							 
						 
						
							
							
								
								Make sure to print out the call nodes as well  
							
							... 
							
							
							
							llvm-svn: 4203 
							
						 
						
							2002-10-16 20:16:16 +00:00  
				
					
						
							
							
								 
						
							
								fea9f0b786 
								
							 
						 
						
							
							
								
								* Print the "return" node in the graphs  
							
							... 
							
							
							
							llvm-svn: 4199 
							
						 
						
							2002-10-16 02:04:36 +00:00  
				
					
						
							
							
								 
						
							
								5274757b62 
								
							 
						 
						
							
							
								
								The second element of the iterator is really an offset, not a link  
							
							... 
							
							
							
							llvm-svn: 4196 
							
						 
						
							2002-10-16 01:43:11 +00:00  
				
					
						
							
							
								 
						
							
								b1c17ad7e8 
								
							 
						 
						
							
							
								
								Specify the graph name  
							
							... 
							
							
							
							llvm-svn: 4195 
							
						 
						
							2002-10-16 01:34:28 +00:00  
				
					
						
							
							
								 
						
							
								eb15c6d2b3 
								
							 
						 
						
							
							
								
								- DSGraph Printing Improvements:  
							
							... 
							
							
							
							* Print edge source labels again
     * Override node shape to be Mrecord again, instead of just record.
llvm-svn: 4193 
							
						 
						
							2002-10-16 01:18:27 +00:00  
				
					
						
							
							
								 
						
							
								b0f38789da 
								
							 
						 
						
							
							
								
								Halfway conversion from custom printing to GraphWriter printing  
							
							... 
							
							
							
							llvm-svn: 4146 
							
						 
						
							2002-10-13 19:31:57 +00:00  
				
					
						
							
							
								 
						
							
								b52220cd21 
								
							 
						 
						
							
							
								
								Use PARALLEL_DIRS.  
							
							... 
							
							
							
							llvm-svn: 4114 
							
						 
						
							2002-10-11 16:08:17 +00:00  
				
					
						
							
							
								 
						
							
								33022f07bb 
								
							 
						 
						
							
							
								
								Added capability to get execution count of a loop if it is a predictable  
							
							... 
							
							
							
							number of iterations.
llvm-svn: 4113 
							
						 
						
							2002-10-11 05:34:32 +00:00  
				
					
						
							
							
								 
						
							
								3845be203d 
								
							 
						 
						
							
							
								
								Added helper functions in LoopInfo: isLoopExit and numBackEdges.  
							
							... 
							
							
							
							llvm-svn: 4112 
							
						 
						
							2002-10-11 05:31:10 +00:00  
				
					
						
							
							
								 
						
							
								d7b3bb0fa4 
								
							 
						 
						
							
							
								
								Handle post dominance correctly in the case where blocks do not have a path to  
							
							... 
							
							
							
							the exit node.
llvm-svn: 4038 
							
						 
						
							2002-10-04 14:50:20 +00:00  
				
					
						
							
							
								 
						
							
								9df1cf3034 
								
							 
						 
						
							
							
								
								Prune function nodes that are no longer referenced due to inlining  
							
							... 
							
							
							
							llvm-svn: 4036 
							
						 
						
							2002-10-03 21:55:28 +00:00  
				
					
						
							
							
								 
						
							
								9dfb9f44cc 
								
							 
						 
						
							
							
								
								sgefa uses truely huge data structures nodes.  Only print part of them if they  
							
							... 
							
							
							
							are so big
llvm-svn: 4035 
							
						 
						
							2002-10-03 21:55:13 +00:00  
				
					
						
							
							
								 
						
							
								4ee4381a23 
								
							 
						 
						
							
							
								
								Handle bug exposed by power benchmark  
							
							... 
							
							
							
							llvm-svn: 4033 
							
						 
						
							2002-10-03 21:06:38 +00:00  
				
					
						
							
							
								 
						
							
								c9c681e4f5 
								
							 
						 
						
							
							
								
								Reimplement/port the Bottom Up Closure pass  
							
							... 
							
							
							
							llvm-svn: 4031 
							
						 
						
							2002-10-03 20:38:41 +00:00  
				
					
						
							
							
								 
						
							
								3f69054dd5 
								
							 
						 
						
							
							
								
								DataStructure.h doesn't include DSGraph.h  
							
							... 
							
							
							
							llvm-svn: 4029 
							
						 
						
							2002-10-02 22:14:38 +00:00  
				
					
						
							
							
								 
						
							
								c4d2ad21bf 
								
							 
						 
						
							
							
								
								* Implement fully general merging of array subscripts on demand!  This  
							
							... 
							
							
							
							does not handle the initial pointer index case yet though.
llvm-svn: 4012 
							
						 
						
							2002-10-02 06:24:36 +00:00  
				
					
						
							
							
								 
						
							
								4e37455a69 
								
							 
						 
						
							
							
								
								When printing DS nodes, print the mergemap index as well to allow easier  
							
							... 
							
							
							
							debugging of merging process.
llvm-svn: 4010 
							
						 
						
							2002-10-02 05:17:55 +00:00  
				
					
						
							
							
								 
						
							
								0b2a6e00d1 
								
							 
						 
						
							
							
								
								* Significant rework of DSNode to support arbitrary aliasing due to merging  
							
							... 
							
							
							
							* Now all and any bytes of a DSNode can be merged together individually.  This
  is neccesary to support the full generality of C and support aliasing
  correctly.
llvm-svn: 4008 
							
						 
						
							2002-10-02 04:57:39 +00:00  
				
					
						
							
							
								 
						
							
								d3121eb8cb 
								
							 
						 
						
							
							
								
								Initial checkin of Steensgaards context insensitive flow insensitive  
							
							... 
							
							
							
							alias analysis
llvm-svn: 3997 
							
						 
						
							2002-10-01 22:34:12 +00:00  
				
					
						
							
							
								 
						
							
								193e6924ca 
								
							 
						 
						
							
							
								
								Checkin some major reworks of data structure analysis.  This is not done,  
							
							... 
							
							
							
							nor does it work very well, but I need to get it checked in before I break
the tree unintentionally.
llvm-svn: 3996 
							
						 
						
							2002-10-01 22:33:50 +00:00  
				
					
						
							
							
								 
						
							
								1931788143 
								
							 
						 
						
							
							
								
								Minor tweak  
							
							... 
							
							
							
							llvm-svn: 3985 
							
						 
						
							2002-09-29 22:59:29 +00:00  
				
					
						
							
							
								 
						
							
								467a9e84c4 
								
							 
						 
						
							
							
								
								Fix printing of loop information  
							
							... 
							
							
							
							llvm-svn: 3977 
							
						 
						
							2002-09-29 21:43:04 +00:00  
				
					
						
							
							
								 
						
							
								647df647e1 
								
							 
						 
						
							
							
								
								First try at implementing the AliasSetTracker class. I'm sure it will need  
							
							... 
							
							
							
							revision as I start to use it though.
llvm-svn: 3954 
							
						 
						
							2002-09-26 21:49:07 +00:00  
				
					
						
							
							
								 
						
							
								3524f58309 
								
							 
						 
						
							
							
								
								Fix printing of loop information  
							
							... 
							
							
							
							llvm-svn: 3941 
							
						 
						
							2002-09-26 16:15:54 +00:00  
				
					
						
							
							
								 
						
							
								08373d1c9c 
								
							 
						 
						
							
							
								
								- Add new methods to LoopInfo: getLoopPreheader, addBasicBlockToLoop.  
							
							... 
							
							
							
							These allow extra information to be easily gathered, and loopinfo to be
    updated.
llvm-svn: 3936 
							
						 
						
							2002-09-26 05:32:50 +00:00  
				
					
						
							
							
								 
						
							
								ceae380b2c 
								
							 
						 
						
							
							
								
								Convert BasicVN to be an ImmutablePass  
							
							... 
							
							
							
							llvm-svn: 3924 
							
						 
						
							2002-09-25 22:27:25 +00:00  
				
					
						
							
							
								 
						
							
								c952e4558b 
								
							 
						 
						
							
							
								
								Make users of FindUsedTypes not have problems with linkage.  This fixes  
							
							... 
							
							
							
							Cwriter.
llvm-svn: 3900 
							
						 
						
							2002-09-24 00:07:21 +00:00  
				
					
						
							
							
								 
						
							
								e1751db3ca 
								
							 
						 
						
							
							
								
								Clean up indvar printing  
							
							... 
							
							
							
							llvm-svn: 3650 
							
						 
						
							2002-09-10 15:35:39 +00:00  
				
					
						
							
							
								 
						
							
								30214c23aa 
								
							 
						 
						
							
							
								
								* Add capability to recognize alias properties of the following common cases:  
							
							... 
							
							
							
							- A[c1] cannot alias A[c2] where constants c1 != c2
  - A[i] cannot alias B[j] if A & B are provably different arrays
This should help out array based codes.  For example, from bzip2 from spec,
3 additional loads can be GCSE'd, and _21_ additional loads can be LICMd due
to this change.
In a test example from the Spec GAP benchmark (vecffe.c), this change allows
_52_ additional loads to be GCSE'd and _224_ additional LICM'd loads.
Not bad for such a simple change.  Other testcases show no change at all
because they just don't use arrays.  Not too suprising there.
llvm-svn: 3616 
							
						 
						
							2002-09-08 18:45:18 +00:00  
				
					
						
							
							
								 
						
							
								2d42bbf5d0 
								
							 
						 
						
							
							
								
								- Renamed Type::isIntegral() to Type::isInteger()  
							
							... 
							
							
							
							- Added new method Type::isIntegral() that is the same as isInteger, but
    also accepts bool.
SCVS: ----------------------------------------------------------------------
llvm-svn: 3572 
							
						 
						
							2002-09-03 01:05:48 +00:00  
				
					
						
							
							
								 
						
							
								ed39ccae8d 
								
							 
						 
						
							
							
								
								- Eliminate the last traces of the 'analysis' namespace  
							
							... 
							
							
							
							llvm-svn: 3550 
							
						 
						
							2002-08-30 22:53:53 +00:00  
				
					
						
							
							
								 
						
							
								f2eb70fc0b 
								
							 
						 
						
							
							
								
								Minor cleanups so I can remove BasicValueNumbering.h  
							
							... 
							
							
							
							llvm-svn: 3544 
							
						 
						
							2002-08-30 22:30:36 +00:00  
				
					
						
							
							
								 
						
							
								c05581fb31 
								
							 
						 
						
							
							
								
								initial implementation of ValueNumbering interface.  
							
							... 
							
							
							
							llvm-svn: 3541 
							
						 
						
							2002-08-30 20:29:02 +00:00  
				
					
						
							
							
								 
						
							
								2dd49e525c 
								
							 
						 
						
							
							
								
								Initial implementation of value numbering for load instructions  
							
							... 
							
							
							
							llvm-svn: 3540 
							
						 
						
							2002-08-30 20:28:10 +00:00  
				
					
						
							
							
								 
						
							
								abb16604fd 
								
							 
						 
						
							
							
								
								Remove unneeded #include  
							
							... 
							
							
							
							llvm-svn: 3524 
							
						 
						
							2002-08-29 20:08:55 +00:00  
				
					
						
							
							
								 
						
							
								e87291ef83 
								
							 
						 
						
							
							
								
								Changed so it gets linked properly  
							
							... 
							
							
							
							llvm-svn: 3508 
							
						 
						
							2002-08-26 16:45:19 +00:00  
				
					
						
							
							
								 
						
							
								02fe752fbd 
								
							 
						 
						
							
							
								
								Eliminated the MemAccessInst class, folding contents into GEP class.  
							
							... 
							
							
							
							llvm-svn: 3488 
							
						 
						
							2002-08-22 23:37:24 +00:00  
				
					
						
							
							
								 
						
							
								cd709cbf53 
								
							 
						 
						
							
							
								
								Load & StoreInst no longer derive from MemAccessInst, so we don't have  
							
							... 
							
							
							
							to handle indexing anymore
llvm-svn: 3485 
							
						 
						
							2002-08-22 22:49:05 +00:00  
				
					
						
							
							
								 
						
							
								d922a84930 
								
							 
						 
						
							
							
								
								doxygenize comments  
							
							... 
							
							
							
							llvm-svn: 3481 
							
						 
						
							2002-08-22 22:46:39 +00:00  
				
					
						
							
							
								 
						
							
								3a4a335ad8 
								
							 
						 
						
							
							
								
								Add missing #include  
							
							... 
							
							
							
							llvm-svn: 3467 
							
						 
						
							2002-08-22 18:57:09 +00:00  
				
					
						
							
							
								 
						
							
								7d58f8ddc0 
								
							 
						 
						
							
							
								
								Check-in new alias analysis infrastructure  
							
							... 
							
							
							
							llvm-svn: 3465 
							
						 
						
							2002-08-22 18:25:32 +00:00  
				
					
						
							
							
								 
						
							
								c86203ace3 
								
							 
						 
						
							
							
								
								- Split Dominators.h into Dominators.h & PostDominators.h  
							
							... 
							
							
							
							llvm-svn: 3432 
							
						 
						
							2002-08-21 23:43:50 +00:00  
				
					
						
							
							
								 
						
							
								1a386b6a73 
								
							 
						 
						
							
							
								
								- Do not expose ::ID from any of the analyses anymore.  
							
							... 
							
							
							
							llvm-svn: 3417 
							
						 
						
							2002-08-21 17:09:49 +00:00  
				
					
						
							
							
								 
						
							
								c869ecbe42 
								
							 
						 
						
							
							
								
								- Do not expose ::ID from any of the analyses anymore.  
							
							... 
							
							
							
							llvm-svn: 3416 
							
						 
						
							2002-08-21 17:09:45 +00:00  
				
					
						
							
							
								 
						
							
								0d92ff0488 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3282 
							
						 
						
							2002-08-09 22:52:08 +00:00  
				
					
						
							
							
								 
						
							
								40eb9dafed 
								
							 
						 
						
							
							
								
								- Cleaned up the interface to AnalysisUsage to take analysis class names  
							
							... 
							
							
							
							instead of ::ID's.
 - Pass::getAnalysis<> now no longer takes an optional argument
llvm-svn: 3264 
							
						 
						
							2002-08-08 19:01:28 +00:00  
				
					
						
							
							
								 
						
							
								b3ce9fc449 
								
							 
						 
						
							
							
								
								Minor changes to DEBUG()'s  
							
							... 
							
							
							
							llvm-svn: 3261 
							
						 
						
							2002-08-07 21:41:11 +00:00  
				
					
						
							
							
								 
						
							
								3147fd226a 
								
							 
						 
						
							
							
								
								Reorder #includes to be right  
							
							... 
							
							
							
							llvm-svn: 3260 
							
						 
						
							2002-08-07 21:41:03 +00:00  
				
					
						
							
							
								 
						
							
								d43023a85d 
								
							 
						 
						
							
							
								
								Split dominance calculation and post dominance calculation stuff  
							
							... 
							
							
							
							Dominance calculation goes to VMCore library to be used by Verifier.
llvm-svn: 3210 
							
						 
						
							2002-08-02 16:43:03 +00:00  
				
					
						
							
							
								 
						
							
								c70601cd67 
								
							 
						 
						
							
							
								
								Changes to be GCC3.1 friendly  
							
							... 
							
							
							
							llvm-svn: 3186 
							
						 
						
							2002-07-31 19:32:12 +00:00  
				
					
						
							
							
								 
						
							
								be4826e627 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3185 
							
						 
						
							2002-07-31 19:32:01 +00:00  
				
					
						
							
							
								 
						
							
								35f0c49feb 
								
							 
						 
						
							
							
								
								Add new  -only-print-main-ds option that causes mains ds graph to be  
							
							... 
							
							
							
							printed, but no others.
llvm-svn: 3178 
							
						 
						
							2002-07-31 17:15:40 +00:00  
				
					
						
							
							
								 
						
							
								b82a496132 
								
							 
						 
						
							
							
								
								Add GlobalDSGraph -- a common graph that holds externally visible nodes.  
							
							... 
							
							
							
							llvm-svn: 3173 
							
						 
						
							2002-07-30 22:08:08 +00:00  
				
					
						
							
							
								 
						
							
								256776e91f 
								
							 
						 
						
							
							
								
								Print globals graph after either the BU or the TD pass.  
							
							... 
							
							
							
							llvm-svn: 3172 
							
						 
						
							2002-07-30 22:07:26 +00:00  
				
					
						
							
							
								 
						
							
								90c8892b4e 
								
							 
						 
						
							
							
								
								This file implements the top-down propagation pass for data structure graphs.  
							
							... 
							
							
							
							Also, we now use a separate globals graph to hold externally visible nodes.
This changes both the bottom-up and top-down propagation so that
globals and other external objects do not have to appear in every
function, but only in functions in which they are referenced or
they can be used to access something else that is referenced.
llvm-svn: 3171 
							
						 
						
							2002-07-30 22:06:40 +00:00  
				
					
						
							
							
								 
						
							
								0d66177bc8 
								
							 
						 
						
							
							
								
								Use a separate globals graph to hold externally visible nodes.  
							
							... 
							
							
							
							This changes both the bottom-up and top-down propagation so that
globals and other external objects do not have to appear in every
function, but only in functions in which they are referenced or
they can be used to access something else that is referenced.
llvm-svn: 3170 
							
						 
						
							2002-07-30 22:05:22 +00:00  
				
					
						
							
							
								 
						
							
								31aa7e72f2 
								
							 
						 
						
							
							
								
								Declare that these passes only depend on the CFG of the function  
							
							... 
							
							
							
							llvm-svn: 3157 
							
						 
						
							2002-07-30 16:27:52 +00:00  
				
					
						
							
							
								 
						
							
								f356bcc824 
								
							 
						 
						
							
							
								
								* Eliminate the Provided set.  All Passes now finally just automatically  
							
							... 
							
							
							
							provide themselves.
llvm-svn: 3124 
							
						 
						
							2002-07-29 21:03:33 +00:00  
				
					
						
							
							
								 
						
							
								2675007573 
								
							 
						 
						
							
							
								
								* Standardize how analysis results/passes as printed with the print() virtual  
							
							... 
							
							
							
							methods
* Eliminate AnalysisID:  Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
  the analyses themselves.
llvm-svn: 3116 
							
						 
						
							2002-07-27 01:12:17 +00:00  
				
					
						
							
							
								 
						
							
								96a0dfa33e 
								
							 
						 
						
							
							
								
								* Standardize how analysis results/passes as printed with the print() virtual  
							
							... 
							
							
							
							methods
* Eliminate AnalysisID:  Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
  the analyses themselves.
llvm-svn: 3115 
							
						 
						
							2002-07-27 01:12:15 +00:00  
				
					
						
							
							
								 
						
							
								c8b7092e54 
								
							 
						 
						
							
							
								
								* Add support for different "PassType's"  
							
							... 
							
							
							
							* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
  are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
  are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses
llvm-svn: 3113 
							
						 
						
							2002-07-26 21:12:46 +00:00  
				
					
						
							
							
								 
						
							
								a2c0985980 
								
							 
						 
						
							
							
								
								* Add support for different "PassType's"  
							
							... 
							
							
							
							* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
  are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
  are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses
llvm-svn: 3112 
							
						 
						
							2002-07-26 21:12:44 +00:00  
				
					
						
							
							
								 
						
							
								64eea749de 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3105 
							
						 
						
							2002-07-26 18:40:14 +00:00  
				
					
						
							
							
								 
						
							
								b62cc6785c 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3097 
							
						 
						
							2002-07-25 19:59:41 +00:00  
				
					
						
							
							
								 
						
							
								f1ca92d42d 
								
							 
						 
						
							
							
								
								GCC 3.1 changes  
							
							... 
							
							
							
							llvm-svn: 3071 
							
						 
						
							2002-07-24 22:40:36 +00:00  
				
					
						
							
							
								 
						
							
								1cd30451c0 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3069 
							
						 
						
							2002-07-24 22:33:53 +00:00  
				
					
						
							
							
								 
						
							
								4fcf153ffd 
								
							 
						 
						
							
							
								
								Changes for GCC 3.1  
							
							... 
							
							
							
							llvm-svn: 3068 
							
						 
						
							2002-07-24 22:33:50 +00:00  
				
					
						
							
							
								 
						
							
								a896b08b5c 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3002 
							
						 
						
							2002-07-23 17:52:38 +00:00  
				
					
						
							
							
								 
						
							
								2a77d8a7aa 
								
							 
						 
						
							
							
								
								Convert over to new style makefile where libraries by default build .o files  
							
							... 
							
							
							
							unless they specify BUILD_ARCHIVE to also build a .a file.
llvm-svn: 3001 
							
						 
						
							2002-07-23 17:52:24 +00:00  
				
					
						
							
							
								 
						
							
								aaf425bb4d 
								
							 
						 
						
							
							
								
								Always create a shadow node for a store instruction, even if it's storing  
							
							... 
							
							
							
							a scalar value.  Likewise for load instructions.
llvm-svn: 2990 
							
						 
						
							2002-07-22 16:35:53 +00:00  
				
					
						
							
							
								 
						
							
								f5cad15a67 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 2985 
							
						 
						
							2002-07-22 02:10:13 +00:00  
				
					
						
							
							
								 
						
							
								341ce63dd4 
								
							 
						 
						
							
							
								
								Convert Command Line option handling code to use the CommandLine 2.0 interface  
							
							... 
							
							
							
							llvm-svn: 2983 
							
						 
						
							2002-07-22 02:08:59 +00:00  
				
					
						
							
							
								 
						
							
								6635edfee4 
								
							 
						 
						
							
							
								
								Print the contents, not the pointer...  
							
							... 
							
							
							
							llvm-svn: 2981 
							
						 
						
							2002-07-22 02:06:50 +00:00  
				
					
						
							
							
								 
						
							
								20695cba3c 
								
							 
						 
						
							
							
								
								Ignore some common varargs functions.  
							
							... 
							
							
							
							llvm-svn: 2973 
							
						 
						
							2002-07-19 18:11:43 +00:00  
				
					
						
							
							
								 
						
							
								b6d2dc48c9 
								
							 
						 
						
							
							
								
								* Inline CopyFunctionCallsList  
							
							... 
							
							
							
							* Don't clone OrigCallList
* Rename removeDeadNodes -> removeTriviallyDeadNodes
* Implement new removeDeadNodes method
llvm-svn: 2970 
							
						 
						
							2002-07-18 18:22:40 +00:00  
				
					
						
							
							
								 
						
							
								4f99733c8c 
								
							 
						 
						
							
							
								
								Rename removeDeadNodes to removeTriviallyDeadNodes  
							
							... 
							
							
							
							llvm-svn: 2969 
							
						 
						
							2002-07-18 18:19:09 +00:00  
				
					
						
							
							
								 
						
							
								94c8e5da41 
								
							 
						 
						
							
							
								
								Add support for a top-down propagation pass:  
							
							... 
							
							
							
							-- Save a copy of the original call nodes in DSGraph before inlining bottom-up.
-- Also, save a list of the callers of each function in DSGraph.
llvm-svn: 2966 
							
						 
						
							2002-07-18 16:13:52 +00:00  
				
					
						
							
							
								 
						
							
								4eac78e660 
								
							 
						 
						
							
							
								
								Add support for a top-down propagation pass.  
							
							... 
							
							
							
							Each DSGraph now keeps a list of pending callers that have not
been inlined into the function represented by that graph.
It also keeps a copy of the original call nodes before the BU pass
eliminates some of them.
llvm-svn: 2965 
							
						 
						
							2002-07-18 16:12:08 +00:00  
				
					
						
							
							
								 
						
							
								db7a680aec 
								
							 
						 
						
							
							
								
								Implement cast nodes correctly.  
							
							... 
							
							
							
							llvm-svn: 2964 
							
						 
						
							2002-07-18 15:54:42 +00:00  
				
					
						
							
							
								 
						
							
								79b0c7d016 
								
							 
						 
						
							
							
								
								* s/method/function  
							
							... 
							
							
							
							llvm-svn: 2958 
							
						 
						
							2002-07-18 04:43:16 +00:00  
				
					
						
							
							
								 
						
							
								140153f357 
								
							 
						 
						
							
							
								
								The graph is more accurate when I don't completely ignore the return value.  
							
							... 
							
							
							
							llvm-svn: 2952 
							
						 
						
							2002-07-18 01:58:24 +00:00  
				
					
						
							
							
								 
						
							
								4c0d620a82 
								
							 
						 
						
							
							
								
								Lots of bug fixes, add BottomUpClosure, which has bugs, but is a start.  
							
							... 
							
							
							
							llvm-svn: 2945 
							
						 
						
							2002-07-18 00:12:30 +00:00  
				
					
						
							
							
								 
						
							
								d862545ad2 
								
							 
						 
						
							
							
								
								added std:: to string  
							
							... 
							
							
							
							llvm-svn: 2915 
							
						 
						
							2002-07-16 00:03:10 +00:00  
				
					
						
							
							
								 
						
							
								83ce4f9298 
								
							 
						 
						
							
							
								
								* Pass the DSGraph around instead of the Function to printing fns  
							
							... 
							
							
							
							* Print the globals list in the node
* Print the scalars in the scalar node
* Eliminate Scalar "label" edges in the graph
* Print fake edges lighter instead of dotted
llvm-svn: 2880 
							
						 
						
							2002-07-11 20:33:32 +00:00  
				
					
						
							
							
								 
						
							
								228163059b 
								
							 
						 
						
							
							
								
								* Nodes now keep track of any global variables in them  
							
							... 
							
							
							
							llvm-svn: 2879 
							
						 
						
							2002-07-11 20:32:22 +00:00  
				
					
						
							
							
								 
						
							
								7d0dafc0dc 
								
							 
						 
						
							
							
								
								* Nodes now keep track of any global variables in them  
							
							... 
							
							
							
							* Only dead-node-eliminate nodes with no flags
* Don't merge scalars, only merge what they point to.
llvm-svn: 2878 
							
						 
						
							2002-07-11 20:32:02 +00:00  
				
					
						
							
							
								 
						
							
								c0dab43c31 
								
							 
						 
						
							
							
								
								New implementation of data structure analysis.  Only local analysis has been  
							
							... 
							
							
							
							implemented so far.
llvm-svn: 2871 
							
						 
						
							2002-07-10 22:38:08 +00:00  
				
					
						
							
							
								 
						
							
								3e35cef186 
								
							 
						 
						
							
							
								
								Reimplement data structure analysis  
							
							... 
							
							
							
							llvm-svn: 2868 
							
						 
						
							2002-07-10 22:36:26 +00:00  
				
					
						
							
							
								 
						
							
								ae219e24ba 
								
							 
						 
						
							
							
								
								A single MachineInstr operand may now be both a def and a use.  
							
							... 
							
							
							
							llvm-svn: 2825 
							
						 
						
							2002-07-08 22:56:34 +00:00  
				
					
						
							
							
								 
						
							
								9e5b6904e5 
								
							 
						 
						
							
							
								
								Fix anand's last checkin  
							
							... 
							
							
							
							llvm-svn: 2804 
							
						 
						
							2002-06-30 16:01:15 +00:00  
				
					
						
							
							
								 
						
							
								2ac04a0083 
								
							 
						 
						
							
							
								
								changes to make it compatible with 64bit gcc  
							
							... 
							
							
							
							llvm-svn: 2795 
							
						 
						
							2002-06-25 21:18:19 +00:00  
				
					
						
							
							
								 
						
							
								ff4c42b7c3 
								
							 
						 
						
							
							
								
								changes to make it compatible with 64bit gcc  
							
							... 
							
							
							
							llvm-svn: 2789 
							
						 
						
							2002-06-25 20:35:19 +00:00  
				
					
						
							
							
								 
						
							
								4fc92edcc6 
								
							 
						 
						
							
							
								
								minor change in removing endl  
							
							... 
							
							
							
							llvm-svn: 2788 
							
						 
						
							2002-06-25 20:34:54 +00:00  
				
					
						
							
							
								 
						
							
								113f4f4609 
								
							 
						 
						
							
							
								
								MEGAPATCH checkin.  
							
							... 
							
							
							
							For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2779 
							
						 
						
							2002-06-25 16:13:24 +00:00  
				
					
						
							
							
								 
						
							
								fda72b1aad 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 2777 
							
						 
						
							2002-06-25 16:12:52 +00:00  
				
					
						
							
							
								 
						
							
								2db70cea7c 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 2755 
							
						 
						
							2002-06-03 22:10:52 +00:00  
				
					
						
							
							
								 
						
							
								afc86e9a35 
								
							 
						 
						
							
							
								
								Move debug options out of header files so that the header does not have  
							
							... 
							
							
							
							to #include CommandLine.h.
llvm-svn: 2712 
							
						 
						
							2002-05-22 17:08:27 +00:00  
				
					
						
							
							
								 
						
							
								6264c1c0ab 
								
							 
						 
						
							
							
								
								Move the DEBUG_LV option out of the public header file into a private header.  
							
							... 
							
							
							
							llvm-svn: 2711 
							
						 
						
							2002-05-22 17:07:26 +00:00  
				
					
						
							
							
								 
						
							
								99bd13b415 
								
							 
						 
						
							
							
								
								Hide debugging options  
							
							... 
							
							
							
							llvm-svn: 2676 
							
						 
						
							2002-05-20 21:39:10 +00:00  
				
					
						
							
							
								 
						
							
								da6743e60c 
								
							 
						 
						
							
							
								
								Add method to check to see if two _Instructions_ dominate each other  
							
							... 
							
							
							
							llvm-svn: 2616 
							
						 
						
							2002-05-13 22:03:16 +00:00  
				
					
						
							
							
								 
						
							
								f5cbf64ed2 
								
							 
						 
						
							
							
								
								Print out post dominance data structures more nicely  
							
							... 
							
							
							
							llvm-svn: 2562 
							
						 
						
							2002-05-08 23:11:08 +00:00  
				
					
						
							
							
								 
						
							
								15435fd550 
								
							 
						 
						
							
							
								
								Move UnifyFunctionExitNodes to Utils library: final resting place this time  
							
							... 
							
							
							
							llvm-svn: 2531 
							
						 
						
							2002-05-07 19:18:48 +00:00  
				
					
						
							
							
								 
						
							
								7608a46cbe 
								
							 
						 
						
							
							
								
								Updates to move some header files out of include/llvm/Transforms into  
							
							... 
							
							
							
							the Scalar and Utils subdirectories
llvm-svn: 2523 
							
						 
						
							2002-05-07 18:36:35 +00:00  
				
					
						
							
							
								 
						
							
								86ed92af6d 
								
							 
						 
						
							
							
								
								Mark analyses that only depend on the CFG of a function  
							
							... 
							
							
							
							llvm-svn: 2507 
							
						 
						
							2002-05-06 19:32:07 +00:00  
				
					
						
							
							
								 
						
							
								4b0cac3b0f 
								
							 
						 
						
							
							
								
								Add #include removed from ConstantHandling.h  
							
							... 
							
							
							
							llvm-svn: 2496 
							
						 
						
							2002-05-06 17:53:10 +00:00  
				
					
						
							
							
								 
						
							
								181cc32365 
								
							 
						 
						
							
							
								
								Replace all usages of Type::isPointerType with isa<PointerType>  
							
							... 
							
							
							
							llvm-svn: 2486 
							
						 
						
							2002-05-06 16:15:30 +00:00  
				
					
						
							
							
								 
						
							
								d5a847057b 
								
							 
						 
						
							
							
								
								Eliminate duplicate or unneccesary #include's  
							
							... 
							
							
							
							llvm-svn: 2397 
							
						 
						
							2002-04-29 17:42:12 +00:00  
				
					
						
							
							
								 
						
							
								ca14237696 
								
							 
						 
						
							
							
								
								Split ConstantVals.h into Constant.h and Constants.h  
							
							... 
							
							
							
							llvm-svn: 2378 
							
						 
						
							2002-04-28 19:55:58 +00:00  
				
					
						
							
							
								 
						
							
								06bea32e9e 
								
							 
						 
						
							
							
								
								Simplify and update code a bit  
							
							... 
							
							
							
							llvm-svn: 2376 
							
						 
						
							2002-04-28 19:20:10 +00:00  
				
					
						
							
							
								 
						
							
								78dd56fe62 
								
							 
						 
						
							
							
								
								Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classes  
							
							... 
							
							
							
							to the global namespace
llvm-svn: 2370 
							
						 
						
							2002-04-28 16:21:30 +00:00  
				
					
						
							
							
								 
						
							
								6a1ea6fffc 
								
							 
						 
						
							
							
								
								Module's are no longer Value subclasses  
							
							... 
							
							
							
							llvm-svn: 2351 
							
						 
						
							2002-04-28 04:50:00 +00:00  
				
					
						
							
							
								 
						
							
								503a3fcb42 
								
							 
						 
						
							
							
								
								Fix signed/unsigned comparison warning  
							
							... 
							
							
							
							llvm-svn: 2350 
							
						 
						
							2002-04-28 04:49:43 +00:00  
				
					
						
							
							
								 
						
							
								99b6f5cac4 
								
							 
						 
						
							
							
								
								Change the Dominator info and LoopInfo classes to keep track of BasicBlock's, not  
							
							... 
							
							
							
							const BasicBlocks
llvm-svn: 2337 
							
						 
						
							2002-04-28 00:15:57 +00:00  
				
					
						
							
							
								 
						
							
								f998685cd9 
								
							 
						 
						
							
							
								
								s/Method/Function  
							
							... 
							
							
							
							llvm-svn: 2336 
							
						 
						
							2002-04-27 07:27:19 +00:00  
				
					
						
							
							
								 
						
							
								c8e665431b 
								
							 
						 
						
							
							
								
								* Rename MethodPass class to FunctionPass  
							
							... 
							
							
							
							- Rename runOnMethod to runOnFunction
* Transform getAnalysisUsageInfo into getAnalysisUsage
  - Method is now const
  - It now takes one AnalysisUsage object to fill in instead of 3 vectors
    to fill in
  - Pass's now specify which other passes they _preserve_ not which ones
    they modify (be conservative!)
  - A pass can specify that it preserves all analyses (because it never
    modifies the underlying program)
* s/Method/Function/g in other random places as well
llvm-svn: 2333 
							
						 
						
							2002-04-27 06:56:12 +00:00  
				
					
						
							
							
								 
						
							
								1f4423938d 
								
							 
						 
						
							
							
								
								Add support for tracking array allocations  
							
							... 
							
							
							
							llvm-svn: 2328 
							
						 
						
							2002-04-27 02:28:41 +00:00  
				
					
						
							
							
								 
						
							
								87c8a4a032 
								
							 
						 
						
							
							
								
								Allow the inline limit to be modified on the commandline for debugging  
							
							... 
							
							
							
							llvm-svn: 2327 
							
						 
						
							2002-04-27 02:27:48 +00:00  
				
					
						
							
							
								 
						
							
								2716b5e524 
								
							 
						 
						
							
							
								
								Change Constant::getNullConstant to Constant::getNullValue  
							
							... 
							
							
							
							llvm-svn: 2323 
							
						 
						
							2002-04-27 02:25:14 +00:00  
				
					
						
							
							
								 
						
							
								a20370661f 
								
							 
						 
						
							
							
								
								Just use << isntead of forcing getStrValue  
							
							... 
							
							
							
							llvm-svn: 2294 
							
						 
						
							2002-04-18 18:14:40 +00:00  
				
					
						
							
							
								 
						
							
								a2cdf2fb10 
								
							 
						 
						
							
							
								
								Print argument scalars as ellipses instead of boxes  
							
							... 
							
							
							
							llvm-svn: 2293 
							
						 
						
							2002-04-18 18:14:19 +00:00  
				
					
						
							
							
								 
						
							
								bda898420b 
								
							 
						 
						
							
							
								
								Inline indirect function calls that are only capable of calling one function  
							
							... 
							
							
							
							llvm-svn: 2275 
							
						 
						
							2002-04-17 03:42:51 +00:00  
				
					
						
							
							
								 
						
							
								79db55028c 
								
							 
						 
						
							
							
								
								Make data structure acurately get ALL edges, even loads of null fields of  
							
							... 
							
							
							
							nodes that are not shadow nodes
This fixes em3d to be _correct_ if not optimial
llvm-svn: 2274 
							
						 
						
							2002-04-17 03:24:59 +00:00  
				
					
						
							
							
								 
						
							
								071dea7362 
								
							 
						 
						
							
							
								
								* Remove the concept of a critical shadow node  
							
							... 
							
							
							
							* Make the function pointer argument explicit for a call nodes
* Eliminate unreachable global values
* Merge call nodes that are identical
llvm-svn: 2266 
							
						 
						
							2002-04-16 20:39:59 +00:00  
				
					
						
							
							
								 
						
							
								46b08cdc7c 
								
							 
						 
						
							
							
								
								* Eliminate ArgDSNode's completely, now rely on scalar map  
							
							... 
							
							
							
							* Fold call nodes that are indistinguishable for each other.  This is a big
  win for external functions like sqrt, which would multiply dramatically
  before.
* Global nodes with no edges to or from them are now eliminated from the graph.
llvm-svn: 2257 
							
						 
						
							2002-04-16 03:44:03 +00:00  
				
					
						
							
							
								 
						
							
								ac7c298ba8 
								
							 
						 
						
							
							
								
								Print out what the root of the call graph is.  
							
							... 
							
							
							
							llvm-svn: 2223 
							
						 
						
							2002-04-10 20:31:44 +00:00  
				
					
						
							
							
								 
						
							
								2e9fa6d101 
								
							 
						 
						
							
							
								
								Move FunctionArgument out of iOther.h into Argument.h and rename class to  
							
							... 
							
							
							
							be 'Argument' instead of FunctionArgument.
llvm-svn: 2216 
							
						 
						
							2002-04-09 19:48:49 +00:00  
				
					
						
							
							
								 
						
							
								06be180225 
								
							 
						 
						
							
							
								
								Add explicit #includes of Function.h to make up for the removed #include  
							
							... 
							
							
							
							in iOther.h
llvm-svn: 2209 
							
						 
						
							2002-04-09 19:08:28 +00:00  
				
					
						
							
							
								 
						
							
								d92b01c385 
								
							 
						 
						
							
							
								
								Add #includes to make up for #includes pruned out of header files.  
							
							... 
							
							
							
							llvm-svn: 2207 
							
						 
						
							2002-04-09 18:37:46 +00:00  
				
					
						
							
							
								 
						
							
								8c7e050576 
								
							 
						 
						
							
							
								
								Don't leak all of the Loop objects created...  
							
							... 
							
							
							
							llvm-svn: 2196 
							
						 
						
							2002-04-09 05:43:19 +00:00  
				
					
						
							
							
								 
						
							
								ad4ef851b0 
								
							 
						 
						
							
							
								
								* General cleanups  
							
							... 
							
							
							
							* In calcLiveVarSetsForBB, do not leak a ValueSet every time the function
  is called!
llvm-svn: 2189 
							
						 
						
							2002-04-09 05:14:14 +00:00  
				
					
						
							
							
								 
						
							
								f739fa8541 
								
							 
						 
						
							
							
								
								s/Method/Function  
							
							... 
							
							
							
							llvm-svn: 2180 
							
						 
						
							2002-04-08 22:03:57 +00:00  
				
					
						
							
							
								 
						
							
								8e421f454d 
								
							 
						 
						
							
							
								
								isLabelType is obsolete  
							
							... 
							
							
							
							llvm-svn: 2175 
							
						 
						
							2002-04-08 21:59:08 +00:00  
				
					
						
							
							
								 
						
							
								3734fe4f35 
								
							 
						 
						
							
							
								
								Play around with #includes  
							
							... 
							
							
							
							llvm-svn: 2174 
							
						 
						
							2002-04-08 21:58:53 +00:00  
				
					
						
							
							
								 
						
							
								b52d903ca0 
								
							 
						 
						
							
							
								
								Add #includes that were pruned from already #included files  
							
							... 
							
							
							
							llvm-svn: 2173 
							
						 
						
							2002-04-08 21:56:50 +00:00  
				
					
						
							
							
								 
						
							
								65b529fe6d 
								
							 
						 
						
							
							
								
								ConstantHandling moved into VMCore library  
							
							... 
							
							
							
							llvm-svn: 2165 
							
						 
						
							2002-04-08 20:18:09 +00:00  
				
					
						
							
							
								 
						
							
								62b7fd136e 
								
							 
						 
						
							
							
								
								Change references to the Method class to be references to the Function  
							
							... 
							
							
							
							class.  The Method class is obsolete (renamed) and all references to it
are being converted over to Function.
llvm-svn: 2144 
							
						 
						
							2002-04-07 20:49:59 +00:00  
				
					
						
							
							
								 
						
							
								9ba54b2f31 
								
							 
						 
						
							
							
								
								Call nodes are never equivalent  
							
							... 
							
							
							
							Shadow nodes are never critical.
llvm-svn: 2102 
							
						 
						
							2002-04-04 19:21:51 +00:00  
				
					
						
							
							
								 
						
							
								d6c8dd1473 
								
							 
						 
						
							
							
								
								Add hack to get timing of analysis  
							
							... 
							
							
							
							llvm-svn: 2101 
							
						 
						
							2002-04-04 19:21:27 +00:00  
				
					
						
							
							
								 
						
							
								d7b6c331ea 
								
							 
						 
						
							
							
								
								* Eliminate commented out code  
							
							... 
							
							
							
							* Do not demand a shadow node when resolving
* Raise arbitrary inline limit
llvm-svn: 2100 
							
						 
						
							2002-04-04 19:21:06 +00:00  
				
					
						
							
							
								 
						
							
								4f47bb8ae6 
								
							 
						 
						
							
							
								
								Support resolving function arguments/return values to pointers that index  
							
							... 
							
							
							
							into other objects.
llvm-svn: 2094 
							
						 
						
							2002-04-01 22:20:48 +00:00  
				
					
						
							
							
								 
						
							
								7203e9f05a 
								
							 
						 
						
							
							
								
								Avoid incorrectly adding null values to the scalar map!  
							
							... 
							
							
							
							llvm-svn: 2085 
							
						 
						
							2002-04-01 00:45:09 +00:00  
				
					
						
							
							
								 
						
							
								f224b6b511 
								
							 
						 
						
							
							
								
								Critical shadow nodes no do not know their parent explictly.  
							
							... 
							
							
							
							llvm-svn: 2084 
							
						 
						
							2002-04-01 00:15:30 +00:00  
				
					
						
							
							
								 
						
							
								b4648bb38f 
								
							 
						 
						
							
							
								
								Minor cleanups (use dyn_cast instead of testing manually)  
							
							... 
							
							
							
							Shadow nodes now don't explicitly know their parent.
llvm-svn: 2083 
							
						 
						
							2002-04-01 00:14:41 +00:00  
				
					
						
							
							
								 
						
							
								6b06aa557e 
								
							 
						 
						
							
							
								
								Allow merging of identical call nodes.  Make the shadow node pointed to  
							
							... 
							
							
							
							by the call node noncritical before the call is destroyed.
llvm-svn: 2082 
							
						 
						
							2002-04-01 00:13:56 +00:00  
				
					
						
							
							
								 
						
							
								a7b3b50381 
								
							 
						 
						
							
							
								
								Increase limit for perimeter  
							
							... 
							
							
							
							llvm-svn: 2081 
							
						 
						
							2002-04-01 00:12:58 +00:00  
				
					
						
							
							
								 
						
							
								d63afb418e 
								
							 
						 
						
							
							
								
								Unify the destruction code used for node pairs vs normal nodes.  This was  
							
							... 
							
							
							
							causing a problem before because global values with incoming edges didn't
copy the incoming edges to the node they were being merged from, causing
the poolalloc pass to die.
llvm-svn: 2079 
							
						 
						
							2002-03-31 19:57:44 +00:00  
				
					
						
							
							
								 
						
							
								d45f4df2ae 
								
							 
						 
						
							
							
								
								* Move the isEquivalentTo implementations here.  They can probably be put  
							
							... 
							
							
							
							someplace nicer in the file though.
* Add new dump method for debugging
llvm-svn: 2064 
							
						 
						
							2002-03-31 07:16:08 +00:00  
				
					
						
							
							
								 
						
							
								49c3ea8c1e 
								
							 
						 
						
							
							
								
								Print out the instruction instead of just the address!  
							
							... 
							
							
							
							llvm-svn: 2063 
							
						 
						
							2002-03-31 07:15:20 +00:00  
				
					
						
							
							
								 
						
							
								ed9bfd95a9 
								
							 
						 
						
							
							
								
								* Move isEquivalentTo implementations to NodeImpl  
							
							... 
							
							
							
							* Implement a new form of node folding to catch cases missed in Addtree
* Add removeIndistinguishableNodePairs to merge calls (todo) and globals
llvm-svn: 2062 
							
						 
						
							2002-03-31 07:14:52 +00:00  
				
					
						
							
							
								 
						
							
								a2cdaba6ed 
								
							 
						 
						
							
							
								
								* Convert CallMap to be a vector, because the keys can change, and the map  
							
							... 
							
							
							
							doesn't resort!
* Be more generous with the cached matches that we allow now.
* Recursive calls should all work now!
llvm-svn: 2061 
							
						 
						
							2002-03-31 07:13:27 +00:00  
				
					
						
							
							
								 
						
							
								15deaa0ab9 
								
							 
						 
						
							
							
								
								s/Method/Function  
							
							... 
							
							
							
							llvm-svn: 2043 
							
						 
						
							2002-03-29 17:08:29 +00:00  
				
					
						
							
							
								 
						
							
								8d4894e3fa 
								
							 
						 
						
							
							
								
								Implement getEscapingAllocations & getNonEscapingAllocations  
							
							... 
							
							
							
							llvm-svn: 2021 
							
						 
						
							2002-03-28 19:33:00 +00:00  
				
					
						
							
							
								 
						
							
								c3ae15cf0b 
								
							 
						 
						
							
							
								
								* Rename UnlinkUndistinguishableShadowNodes & RemoveUnreachableShadowNodes  
							
							... 
							
							
							
							to reflect that they can eliminate arbitrary nodes.
* Rename the ShadowNodeEliminate.cpp file to EliminateNodes.cpp for the
  same reason
llvm-svn: 2020 
							
						 
						
							2002-03-28 19:16:48 +00:00  
				
					
						
							
							
								 
						
							
								8a5c470c59 
								
							 
						 
						
							
							
								
								Ooops, I did such a great job pruning nodes, that I accidentally deleted  
							
							... 
							
							
							
							ALL allocation nodes... hrm... bad.
llvm-svn: 2018 
							
						 
						
							2002-03-28 18:38:38 +00:00  
				
					
						
							
							
								 
						
							
								b1782d0c90 
								
							 
						 
						
							
							
								
								Many changes  
							
							... 
							
							
							
							* Simplify a lot of the inlining stuff.  There are still problems, but not
  many
* Break up the Function representation to have a vector for every different
  node type so it is fast to find nodes of a particular flavor.
* Do more intelligent merging of call values
* Allow elimination of unreachable shadow and allocation nodes
* Generalize indistinguishability testing to allow merging of identical calls.
* Increase shadow node merging power
llvm-svn: 2010 
							
						 
						
							2002-03-28 17:56:03 +00:00  
				
					
						
							
							
								 
						
							
								be449bc1ef 
								
							 
						 
						
							
							
								
								* Add #define to enabled debug messages  
							
							... 
							
							
							
							* Move removeEdgesTo to be a member of DSNode
* Implement (but #ifdef out) the new, spiffier, method of determining
  shadow node equivalence.  This cannot be enabled until more is
  implemented.
llvm-svn: 2004 
							
						 
						
							2002-03-27 19:48:03 +00:00  
				
					
						
							
							
								 
						
							
								d9c86c7c96 
								
							 
						 
						
							
							
								
								* Implement DSNode::removeAllIncomingEdges  
							
							... 
							
							
							
							* Implement Critical Shadow node handling
* Implement routines to determine whether an allocation node is a malloc
  or alloca
llvm-svn: 2003 
							
						 
						
							2002-03-27 19:46:05 +00:00  
				
					
						
							
							
								 
						
							
								0ad8b8f5d0 
								
							 
						 
						
							
							
								
								* Add critical node support  
							
							... 
							
							
							
							* Optimize graph after building it.  This should be unneccesary in the future
llvm-svn: 2002 
							
						 
						
							2002-03-27 19:45:12 +00:00  
				
					
						
							
							
								 
						
							
								b6c8c5138f 
								
							 
						 
						
							
							
								
								* Destroy alloca nodes when a graph gets inlined  
							
							... 
							
							
							
							* Add links to all subtrees when a shadow node gets resolved
* Add critical node handling
llvm-svn: 2001 
							
						 
						
							2002-03-27 19:44:33 +00:00  
				
					
						
							
							
								 
						
							
								b358f71d02 
								
							 
						 
						
							
							
								
								* Optimizers return true on change  
							
							... 
							
							
							
							* Implement indistinguishable shadow node elimination
llvm-svn: 1999 
							
						 
						
							2002-03-27 00:55:13 +00:00  
				
					
						
							
							
								 
						
							
								5c3280971c 
								
							 
						 
						
							
							
								
								Fix long line  
							
							... 
							
							
							
							llvm-svn: 1998 
							
						 
						
							2002-03-27 00:54:31 +00:00  
				
					
						
							
							
								 
						
							
								f8e2d060cc 
								
							 
						 
						
							
							
								
								* Because of optimization, the shadow nodes between arguments might get  
							
							... 
							
							
							
							removed.  Check to see if they are there.
* Repeat optimizations while changing
llvm-svn: 1997 
							
						 
						
							2002-03-27 00:53:57 +00:00  
				
					
						
							
							
								 
						
							
								e604d8ec65 
								
							 
						 
						
							
							
								
								Initial checkin of Datastructure analysis.  
							
							... 
							
							
							
							Has bugs, but shouldn't crash in theory.
llvm-svn: 1994 
							
						 
						
							2002-03-26 22:39:06 +00:00  
				
					
						
							
							
								 
						
							
								0df67e347a 
								
							 
						 
						
							
							
								
								change refs to Method to Function  
							
							... 
							
							
							
							Change references to MEthodArgument to FunctionArgument
llvm-svn: 1989 
							
						 
						
							2002-03-26 17:55:33 +00:00  
				
					
						
							
							
								 
						
							
								4e8c4877aa 
								
							 
						 
						
							
							
								
								Rename Method to Function  
							
							... 
							
							
							
							llvm-svn: 1957 
							
						 
						
							2002-03-23 22:51:58 +00:00  
				
					
						
							
							
								 
						
							
								218f8de01a 
								
							 
						 
						
							
							
								
								Fixed several problems with handling arguments to Phis.  
							
							... 
							
							
							
							llvm-svn: 1910 
							
						 
						
							2002-03-18 03:47:26 +00:00  
				
					
						
							
							
								 
						
							
								89637cd8e2 
								
							 
						 
						
							
							
								
								Big bug fix: killed uses were being inserted instead of erased!  
							
							... 
							
							
							
							Also added a set of debug options.
llvm-svn: 1909 
							
						 
						
							2002-03-18 03:45:41 +00:00  
				
					
						
							
							
								 
						
							
								c47c3cce6f 
								
							 
						 
						
							
							
								
								Fix test/Regression/Other/2002-03-14-ValueToLarge.ll.  Note that this  
							
							... 
							
							
							
							fix could be better, but we don't have the infrastructure to find out what
size types are yet.
llvm-svn: 1876 
							
						 
						
							2002-03-14 22:35:50 +00:00  
				
					
						
							
							
								 
						
							
								26ec881062 
								
							 
						 
						
							
							
								
								Bugfix for test/Regression/Other/2002-03-11-ExprAssertion.ll  
							
							... 
							
							
							
							llvm-svn: 1856 
							
						 
						
							2002-03-11 20:50:24 +00:00  
				
					
						
							
							
								 
						
							
								62f1e98e4f 
								
							 
						 
						
							
							
								
								Initial checkin  
							
							... 
							
							
							
							llvm-svn: 1831 
							
						 
						
							2002-03-07 20:16:38 +00:00  
				
					
						
							
							
								 
						
							
								beed742b55 
								
							 
						 
						
							
							
								
								Clean up call graph, add comments, and fix test/Regression/Other/2002-01-31-CallGraph.ll  
							
							... 
							
							
							
							llvm-svn: 1828 
							
						 
						
							2002-03-06 20:19:35 +00:00  
				
					
						
							
							
								 
						
							
								46519418b0 
								
							 
						 
						
							
							
								
								Pull interprocedural analyses out of Analysis library into their own lib  
							
							... 
							
							
							
							llvm-svn: 1827 
							
						 
						
							2002-03-06 18:44:29 +00:00  
				
					
						
							
							
								 
						
							
								d852cc32ec 
								
							 
						 
						
							
							
								
								Move call graph printing support out of Writer.h into Callgraph.h  
							
							... 
							
							
							
							remove dead global function
llvm-svn: 1825 
							
						 
						
							2002-03-06 18:00:49 +00:00  
				
					
						
							
							
								 
						
							
								8032732948 
								
							 
						 
						
							
							
								
								Take CallGraph out of the CFG namespace.  It has nothing to do with CFGs  
							
							... 
							
							
							
							llvm-svn: 1820 
							
						 
						
							2002-03-06 17:16:43 +00:00  
				
					
						
							
							
								 
						
							
								43373a6868 
								
							 
						 
						
							
							
								
								Make it compile with GCC 3.0.4  
							
							... 
							
							
							
							llvm-svn: 1786 
							
						 
						
							2002-02-24 23:01:21 +00:00  
				
					
						
							
							
								 
						
							
								83d485b310 
								
							 
						 
						
							
							
								
								* Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into  
							
							... 
							
							
							
							llvm/Support/CFG.h
* Make pred & succ iterators for intervals global functions
* Add #includes that are now neccesary because BasicBlock.h doesn't include
  InstrTypes.h anymore
llvm-svn: 1750 
							
						 
						
							2002-02-12 22:39:50 +00:00  
				
					
						
							
							
								 
						
							
								60a6591d83 
								
							 
						 
						
							
							
								
								Method.h no longer includes BasicBlock.h  
							
							... 
							
							
							
							Method::inst_* is now in llvm/Support/InstIterator.h
GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h
llvm-svn: 1746 
							
						 
						
							2002-02-12 21:07:25 +00:00  
				
					
						
							
							
								 
						
							
								7a264284f0 
								
							 
						 
						
							
							
								
								Convert BBLiveVar to be a BasicBlock annotation, this removes the BB2BBLVMap from MethodLiveVarInfo.  
							
							... 
							
							
							
							llvm-svn: 1721 
							
						 
						
							2002-02-05 06:52:25 +00:00  
				
					
						
							
							
								 
						
							
								ea13e0afa0 
								
							 
						 
						
							
							
								
								Convert operand iterator over to work like an STL iterator  
							
							... 
							
							
							
							llvm-svn: 1720 
							
						 
						
							2002-02-05 06:02:59 +00:00  
				
					
						
							
							
								 
						
							
								7e5ee4253c 
								
							 
						 
						
							
							
								
								Minor change: Methods that return ValueSet's that are guaranteed to be valid  
							
							... 
							
							
							
							return references instead of pointers.
llvm-svn: 1719 
							
						 
						
							2002-02-05 04:20:12 +00:00  
				
					
						
							
							
								 
						
							
								101a5d9197 
								
							 
						 
						
							
							
								
								Must include SetOperations to do set_*  
							
							... 
							
							
							
							llvm-svn: 1716 
							
						 
						
							2002-02-05 03:35:53 +00:00  
				
					
						
							
							
								 
						
							
								a2b661f764 
								
							 
						 
						
							
							
								
								Remove generic routines to Support/SetOperations.h  
							
							... 
							
							
							
							llvm-svn: 1715 
							
						 
						
							2002-02-05 03:35:31 +00:00  
				
					
						
							
							
								 
						
							
								dc6539bcc0 
								
							 
						 
						
							
							
								
								Remove empty files  
							
							... 
							
							
							
							llvm-svn: 1713 
							
						 
						
							2002-02-05 02:52:53 +00:00  
				
					
						
							
							
								 
						
							
								b1def732af 
								
							 
						 
						
							
							
								
								* Eliminate the LiveVarSet class, making applyTranferFuncForMInst a static  
							
							... 
							
							
							
							function in the one .cpp file that uses it.  Use ValueSet's instead.
* Prepare to delete LiveVarSet.h & LiveVarSet.cpp
* Eliminate the ValueSet class, making all old member functions into global
  templates that will eventually be moved to Support.
llvm-svn: 1711 
							
						 
						
							2002-02-05 02:51:01 +00:00  
				
					
						
							
							
								 
						
							
								30e8fb69c5 
								
							 
						 
						
							
							
								
								* Code Cleanups  
							
							... 
							
							
							
							* Introduce RAV to allow stream I/O instead of using printValue
llvm-svn: 1710 
							
						 
						
							2002-02-05 01:43:49 +00:00  
				
					
						
							
							
								 
						
							
								91c4a419e2 
								
							 
						 
						
							
							
								
								Changes neccesary due to the move of BBLiveVar.h to the lib/Analysis/LiveVar directory  
							
							... 
							
							
							
							llvm-svn: 1709 
							
						 
						
							2002-02-05 00:43:37 +00:00  
				
					
						
							
							
								 
						
							
								7c70802193 
								
							 
						 
						
							
							
								
								* Give BBLiveVar.cpp a proper file header  
							
							... 
							
							
							
							* applyFlowFunc DOES NOT NEED TO COPY the huge BB->BBLiveVar Map every time it is invoked!
* Big cleanups.
* Make BBLiveVar.h effectively an internal header file
* Prepare LiveVarMap.h for deletion
llvm-svn: 1706 
							
						 
						
							2002-02-05 00:34:50 +00:00  
				
					
						
							
							
								 
						
							
								94b8baf089 
								
							 
						 
						
							
							
								
								* Big cleanups.  
							
							... 
							
							
							
							* Make BBLiveVar.h effectively an internal header file
* Prepare LiveVarMap.h for deletion
llvm-svn: 1705 
							
						 
						
							2002-02-05 00:33:19 +00:00  
				
					
						
							
							
								 
						
							
								f468b52e3a 
								
							 
						 
						
							
							
								
								Code cleanups, no functional change  
							
							... 
							
							
							
							llvm-svn: 1704 
							
						 
						
							2002-02-04 23:31:16 +00:00  
				
					
						
							
							
								 
						
							
								439d0e557b 
								
							 
						 
						
							
							
								
								Clean up MethodLiveVarInfo  
							
							... 
							
							
							
							llvm-svn: 1703 
							
						 
						
							2002-02-04 20:49:04 +00:00  
				
					
						
							
							
								 
						
							
								494266eaf0 
								
							 
						 
						
							
							
								
								Turn live variable analysis into a real MethodPass.  
							
							... 
							
							
							
							llvm-svn: 1699 
							
						 
						
							2002-02-04 20:00:08 +00:00  
				
					
						
							
							
								 
						
							
								75b2283602 
								
							 
						 
						
							
							
								
								Remove Obsolete LoopDepthCalculator.  All users should use LoopInfo directly.  
							
							... 
							
							
							
							llvm-svn: 1697 
							
						 
						
							2002-02-04 17:49:01 +00:00  
				
					
						
							
							
								 
						
							
								519af2962d 
								
							 
						 
						
							
							
								
								REmove huge hack used by register allocator  
							
							... 
							
							
							
							llvm-svn: 1694 
							
						 
						
							2002-02-04 17:39:02 +00:00  
				
					
						
							
							
								 
						
							
								325869ac29 
								
							 
						 
						
							
							
								
								* Add #includes that were yanked out of header files  
							
							... 
							
							
							
							* Convert over to valueset interface that uses insert & erase insead of add and remove
* the -> operator really isn't that hard to use!
llvm-svn: 1687 
							
						 
						
							2002-02-04 16:35:12 +00:00  
				
					
						
							
							
								 
						
							
								7ad6519f90 
								
							 
						 
						
							
							
								
								Cut down include pollution and number of frivolous consts.  
							
							... 
							
							
							
							llvm-svn: 1683 
							
						 
						
							2002-02-04 16:31:03 +00:00  
				
					
						
							
							
								 
						
							
								bd3ad751f0 
								
							 
						 
						
							
							
								
								Eliminate ModuleAnalyzer.  It's old code that is not going to be used in the near future  
							
							... 
							
							
							
							llvm-svn: 1679 
							
						 
						
							2002-02-04 06:47:17 +00:00  
				
					
						
							
							
								 
						
							
								73645f3b94 
								
							 
						 
						
							
							
								
								Minor cleanups  
							
							... 
							
							
							
							llvm-svn: 1671 
							
						 
						
							2002-02-04 05:48:24 +00:00  
				
					
						
							
							
								 
						
							
								6f27b7d41c 
								
							 
						 
						
							
							
								
								Lots of nonfunctional code cleanups  
							
							... 
							
							
							
							llvm-svn: 1642 
							
						 
						
							2002-02-03 07:25:25 +00:00  
				
					
						
							
							
								 
						
							
								a5e103a2ae 
								
							 
						 
						
							
							
								
								Provide the right AnalysisID for postdominators  
							
							... 
							
							
							
							llvm-svn: 1616 
							
						 
						
							2002-01-31 18:29:24 +00:00  
				
					
						
							
							
								 
						
							
								ccf571a408 
								
							 
						 
						
							
							
								
								Convert analyses to new pass structure  
							
							... 
							
							
							
							llvm-svn: 1603 
							
						 
						
							2002-01-31 00:42:27 +00:00  
				
					
						
							
							
								 
						
							
								979d11db14 
								
							 
						 
						
							
							
								
								Implement loop depth calculation in terms of dominators instead of intervals  
							
							... 
							
							
							
							No problems with irreducibility now
llvm-svn: 1602 
							
						 
						
							2002-01-31 00:42:06 +00:00  
				
					
						
							
							
								 
						
							
								ee965abc36 
								
							 
						 
						
							
							
								
								Move stuff out of the Optimizations directories into the appropriate Transforms  
							
							... 
							
							
							
							directories.  Eliminate the opt namespace.
llvm-svn: 1520 
							
						 
						
							2002-01-21 23:17:48 +00:00  
				
					
						
							
							
								 
						
							
								0686e435d1 
								
							 
						 
						
							
							
								
								Implement a more powerful, simpler, pass system.  This pass system can figure  
							
							... 
							
							
							
							out how to run a collection of passes optimially given their behaviors and
charactaristics.
Convert code to use it.
llvm-svn: 1507 
							
						 
						
							2002-01-21 07:31:50 +00:00  
				
					
						
							
							
								 
						
							
								7f74a56e24 
								
							 
						 
						
							
							
								
								Changes to build successfully with GCC 3.02  
							
							... 
							
							
							
							llvm-svn: 1503 
							
						 
						
							2002-01-20 22:54:45 +00:00  
				
					
						
							
							
								 
						
							
								1a98b28bde 
								
							 
						 
						
							
							
								
								added a section on how to modify live variable code to use LLVM instructions  
							
							... 
							
							
							
							instead of machine instructions.
llvm-svn: 1451 
							
						 
						
							2001-12-13 21:25:46 +00:00  
				
					
						
							
							
								 
						
							
								cdbcb1fd17 
								
							 
						 
						
							
							
								
								Some programs are using BB's as values, until we resolve this. Disable the assert  
							
							... 
							
							
							
							llvm-svn: 1448 
							
						 
						
							2001-12-13 00:45:06 +00:00  
				
					
						
							
							
								 
						
							
								4552ee447a 
								
							 
						 
						
							
							
								
								Added more comments. Added code to destructor in MethodLiveVarInfo to delete  
							
							... 
							
							
							
							LiveVarSet caches.
llvm-svn: 1435 
							
						 
						
							2001-12-08 21:05:27 +00:00  
				
					
						
							
							
								 
						
							
								565a5c423d 
								
							 
						 
						
							
							
								
								Added comments are more documentation info  
							
							... 
							
							
							
							llvm-svn: 1434 
							
						 
						
							2001-12-08 21:04:22 +00:00  
				
					
						
							
							
								 
						
							
								be68833765 
								
							 
						 
						
							
							
								
								"fix" problems processing floating point expressions  
							
							... 
							
							
							
							llvm-svn: 1421 
							
						 
						
							2001-12-05 19:38:29 +00:00  
				
					
						
							
							
								 
						
							
								1bedac9af0 
								
							 
						 
						
							
							
								
								Fix a bug that clobbered the step value on some inputs  
							
							... 
							
							
							
							llvm-svn: 1416 
							
						 
						
							2001-12-05 06:32:30 +00:00  
				
					
						
							
							
								 
						
							
								54794fe11f 
								
							 
						 
						
							
							
								
								Fix a pessimization due to sucky LI testing  
							
							... 
							
							
							
							llvm-svn: 1412 
							
						 
						
							2001-12-04 08:12:47 +00:00  
				
					
						
							
							
								 
						
							
								2413b160ec 
								
							 
						 
						
							
							
								
								Renamed inst_const_iterator -> const_inst_iterator  
							
							... 
							
							
							
							Renamed op_const_iterator   -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()
llvm-svn: 1408 
							
						 
						
							2001-12-04 00:03:30 +00:00  
				
					
						
							
							
								 
						
							
								3462ae3ad7 
								
							 
						 
						
							
							
								
								Rename ConstPoolVal -> Constant  
							
							... 
							
							
							
							Rename ConstPool*   -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h
llvm-svn: 1407 
							
						 
						
							2001-12-03 22:26:30 +00:00  
				
					
						
							
							
								 
						
							
								fb5ae02e1a 
								
							 
						 
						
							
							
								
								Split the PHINode class out from the iOther.h file into the iPHINode.h file  
							
							... 
							
							
							
							llvm-svn: 1405 
							
						 
						
							2001-12-03 18:02:31 +00:00  
				
					
						
							
							
								 
						
							
								66d9ceaaba 
								
							 
						 
						
							
							
								
								Induction variables must be phi nodes  
							
							... 
							
							
							
							llvm-svn: 1402 
							
						 
						
							2001-12-03 17:27:42 +00:00  
				
					
						
							
							
								 
						
							
								5de2204fe8 
								
							 
						 
						
							
							
								
								Create a new #include "Support/..." directory structure to move things  
							
							... 
							
							
							
							from "llvm/Support/..." that are not llvm dependant.
Move files and fix #includes
llvm-svn: 1400 
							
						 
						
							2001-11-27 00:03:19 +00:00  
				
					
						
							
							
								 
						
							
								34dfe56c1a 
								
							 
						 
						
							
							
								
								Implement writer support for Loops, Induction Variables, and CallGraphs  
							
							... 
							
							
							
							llvm-svn: 1372 
							
						 
						
							2001-11-26 18:53:29 +00:00  
				
					
						
							
							
								 
						
							
								b4a7eb10fa 
								
							 
						 
						
							
							
								
								Make Mul work right  
							
							... 
							
							
							
							Make sub work right
llvm-svn: 1371 
							
						 
						
							2001-11-26 18:53:07 +00:00  
				
					
						
							
							
								 
						
							
								a88403bf31 
								
							 
						 
						
							
							
								
								Fix a bad assertion to be correct . The root basic block can be used by PHI nodes.  
							
							... 
							
							
							
							llvm-svn: 1370 
							
						 
						
							2001-11-26 18:52:02 +00:00  
				
					
						
							
							
								 
						
							
								03946cd9b6 
								
							 
						 
						
							
							
								
								Implement a new entry node that has edges to all external methods in the module  
							
							... 
							
							
							
							llvm-svn: 1369 
							
						 
						
							2001-11-26 18:51:25 +00:00  
				
					
						
							
							
								 
						
							
								6de9942b92 
								
							 
						 
						
							
							
								
								* Implement dominator based loop identification  
							
							... 
							
							
							
							* Implement cleaner induction variable identification
llvm-svn: 1359 
							
						 
						
							2001-11-26 18:41:20 +00:00  
				
					
						
							
							
								 
						
							
								0ae45bd3f4 
								
							 
						 
						
							
							
								
								* Implement more powerful expr analysis of cast instructions  
							
							... 
							
							
							
							llvm-svn: 1335 
							
						 
						
							2001-11-26 16:53:50 +00:00  
				
					
						
							
							
								 
						
							
								7082e110f7 
								
							 
						 
						
							
							
								
								New pass to find types in use by a program  
							
							... 
							
							
							
							llvm-svn: 1232 
							
						 
						
							2001-11-09 05:27:21 +00:00  
				
					
						
							
							
								 
						
							
								cf66422978 
								
							 
						 
						
							
							
								
								Print the method that makes an instruction invalid  
							
							... 
							
							
							
							llvm-svn: 1213 
							
						 
						
							2001-11-08 19:29:51 +00:00  
				
					
						
							
							
								 
						
							
								83f1528061 
								
							 
						 
						
							
							
								
								Initial checkin of pointer safety checker  
							
							... 
							
							
							
							llvm-svn: 1181 
							
						 
						
							2001-11-07 21:16:12 +00:00  
				
					
						
							
							
								 
						
							
								5dab57de99 
								
							 
						 
						
							
							
								
								Added function IsLeafMethod to identify leaf methods.  
							
							... 
							
							
							
							This will use the CallGraph only if one is provided.
llvm-svn: 950 
							
						 
						
							2001-10-22 13:55:46 +00:00  
				
					
						
							
							
								 
						
							
								cc91b21fe1 
								
							 
						 
						
							
							
								
								No major change - added some comments  
							
							... 
							
							
							
							llvm-svn: 848 
							
						 
						
							2001-10-16 01:25:05 +00:00  
				
					
						
							
							
								 
						
							
								24872c8838 
								
							 
						 
						
							
							
								
								Print Debug Code to stderr instead of stdout so that it doesn't mess up the assembly output  
							
							... 
							
							
							
							llvm-svn: 841 
							
						 
						
							2001-10-15 18:30:06 +00:00  
				
					
						
							
							
								 
						
							
								82605b239c 
								
							 
						 
						
							
							
								
								--added support for implicit operands  
							
							... 
							
							
							
							llvm-svn: 832 
							
						 
						
							2001-10-15 16:58:50 +00:00  
				
					
						
							
							
								 
						
							
								f7d66a73ce 
								
							 
						 
						
							
							
								
								Fix code to make GCC 2.96 happy  
							
							... 
							
							
							
							llvm-svn: 753 
							
						 
						
							2001-10-13 06:34:47 +00:00  
				
					
						
							
							
								 
						
							
								8cbbbef674 
								
							 
						 
						
							
							
								
								* Add support for Invoke instructions  
							
							... 
							
							
							
							* Add support for indirect calls
llvm-svn: 752 
							
						 
						
							2001-10-13 06:33:19 +00:00  
				
					
						
							
							
								 
						
							
								04009efe48 
								
							 
						 
						
							
							
								
								added support for implict operands in machine instruction  
							
							... 
							
							
							
							llvm-svn: 728 
							
						 
						
							2001-10-12 17:47:23 +00:00  
				
					
						
							
							
								 
						
							
								85cc5744ba 
								
							 
						 
						
							
							
								
								--added support for implicit operands in machine instructions  
							
							... 
							
							
							
							llvm-svn: 727 
							
						 
						
							2001-10-12 17:46:27 +00:00  
				
					
						
							
							
								 
						
							
								7fac070215 
								
							 
						 
						
							
							
								
								* Both Method & GlobalVariable now subclass GlobalValue  
							
							... 
							
							
							
							* ConstPoolPointerReference now represents a pointer to a GlobalValue
* Methods name references are now explicit pointers to methods
* Rename Value::GlobalVal to Value::GlobalVariableVal to avoid confusion
llvm-svn: 703 
							
						 
						
							2001-10-03 14:53:21 +00:00  
				
					
						
							
							
								 
						
							
								da55810666 
								
							 
						 
						
							
							
								
								Commit more code over to new cast style  
							
							... 
							
							
							
							llvm-svn: 697 
							
						 
						
							2001-10-02 03:41:24 +00:00  
				
					
						
							
							
								 
						
							
								3856934386 
								
							 
						 
						
							
							
								
								Convert more code to use new style casts  
							
							... 
							
							
							
							Eliminate old style casts from value.h
llvm-svn: 696 
							
						 
						
							2001-10-01 20:11:19 +00:00  
				
					
						
							
							
								 
						
							
								8f19112923 
								
							 
						 
						
							
							
								
								Add more support for new style casts  
							
							... 
							
							
							
							Convert more code to use them
llvm-svn: 695 
							
						 
						
							2001-10-01 18:26:53 +00:00  
				
					
						
							
							
								 
						
							
								4b717c0edc 
								
							 
						 
						
							
							
								
								Add support for new style casts  
							
							... 
							
							
							
							llvm-svn: 694 
							
						 
						
							2001-10-01 16:18:37 +00:00  
				
					
						
							
							
								 
						
							
								ba1c1f2fb6 
								
							 
						 
						
							
							
								
								Pull predecessor and successor iterators out of the CFG*.h files, and plop them into  
							
							... 
							
							
							
							the BasicBlock class where they should be.  pred_begin/pred_end become methods on BasicBlock,
and the cfg namespace isn't used anymore.
llvm-svn: 691 
							
						 
						
							2001-10-01 13:19:53 +00:00  
				
					
						
							
							
								 
						
							
								c8b4d12a8f 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 675 
							
						 
						
							2001-09-30 23:28:04 +00:00  
				
					
						
							
							
								 
						
							
								bb09a10929 
								
							 
						 
						
							
							
								
								Pull iterators out of CFG.h and CFGdecls and put them in Support directory  
							
							... 
							
							
							
							llvm-svn: 664 
							
						 
						
							2001-09-28 22:56:31 +00:00  
				
					
						
							
							
								 
						
							
								bbf3ae8414 
								
							 
						 
						
							
							
								
								Initial support for construction of a call graph  
							
							... 
							
							
							
							llvm-svn: 660 
							
						 
						
							2001-09-28 00:08:15 +00:00  
				
					
						
							
							
								 
						
							
								06028541ab 
								
							 
						 
						
							
							
								
								Move the sparc target to a new lib/Target directory  
							
							... 
							
							
							
							llvm-svn: 562 
							
						 
						
							2001-09-14 03:55:11 +00:00  
				
					
						
							
							
								 
						
							
								ff0c8a7511 
								
							 
						 
						
							
							
								
								This checkin represents some cleanup of the backend, implementing the following things:  
							
							... 
							
							
							
							1. The TargetMachine structure is free to decide the process a particular target uses to generate code.
2. All of the gooee details of the sparc backend are now localized in the lib/CodeGen/TargetMAchine/Sparc directory.  The Sparc.h file that is globally visible is just a stub.
3. The Sparc.h file that esxists now will dissapear entirely someday when we have multiple backends chosen by a factory of some sort.
NOTE! The BBLiveVar.cpp file dependant on the Sparc backend, and is therefore not generic/portale to other backends.  This needs to be fixed.
llvm-svn: 558 
							
						 
						
							2001-09-14 03:37:22 +00:00  
				
					
						
							
							
								 
						
							
								3ce5ac2107 
								
							 
						 
						
							
							
								
								Handle subtract in expression classifier  
							
							... 
							
							
							
							llvm-svn: 548 
							
						 
						
							2001-09-11 04:27:34 +00:00  
				
					
						
							
							
								 
						
							
								706946b40a 
								
							 
						 
						
							
							
								
								Add support for global variables  
							
							... 
							
							
							
							llvm-svn: 535 
							
						 
						
							2001-09-10 20:07:57 +00:00  
				
					
						
							
							
								 
						
							
								ce4cd006c1 
								
							 
						 
						
							
							
								
								Module analyzer no longer has to iterate over constant pool  
							
							... 
							
							
							
							llvm-svn: 441 
							
						 
						
							2001-09-07 16:31:23 +00:00  
				
					
						
							
							
								 
						
							
								c6b06c4f9b 
								
							 
						 
						
							
							
								
								Simplify code by eliminating need to hang onto constant pool references  
							
							... 
							
							
							
							llvm-svn: 440 
							
						 
						
							2001-09-07 16:31:04 +00:00  
				
					
						
							
							
								 
						
							
								8ae325420f 
								
							 
						 
						
							
							
								
								Added directory LiveVar/  
							
							... 
							
							
							
							llvm-svn: 410 
							
						 
						
							2001-08-28 23:29:31 +00:00  
				
					
						
							
							
								 
						
							
								1143eff628 
								
							 
						 
						
							
							
								
								analyze() now checks to see that we don't analyze the same method twice.  
							
							... 
							
							
							
							Needs a mechnanism to override this check (e.g., after a transformation).
llvm-svn: 391 
							
						 
						
							2001-08-28 22:36:35 +00:00  
				
					
						
							
							
								 
						
							
								439465583a 
								
							 
						 
						
							
							
								
								Make sure noone branches to the entry node of the method  
							
							... 
							
							
							
							llvm-svn: 369 
							
						 
						
							2001-08-24 14:56:34 +00:00  
				
					
						
							
							
								 
						
							
								a0484c8eeb 
								
							 
						 
						
							
							
								
								Handle case where there is no exit node from a flowgraph  
							
							... 
							
							
							
							llvm-svn: 365 
							
						 
						
							2001-08-23 17:07:19 +00:00  
				
					
						
							
							
								 
						
							
								11e97b08f0 
								
							 
						 
						
							
							
								
								LV code on machine instructions  
							
							... 
							
							
							
							llvm-svn: 360 
							
						 
						
							2001-08-20 21:12:49 +00:00  
				
					
						
							
							
								 
						
							
								ec1a5411d7 
								
							 
						 
						
							
							
								
								LV info on machine instructions  
							
							... 
							
							
							
							llvm-svn: 359 
							
						 
						
							2001-08-20 21:11:01 +00:00  
				
					
						
							
							
								 
						
							
								c4d6aca02e 
								
							 
						 
						
							
							
								
								Fix a bug when compiling 'shl ubyte * %var, ubyte 2'  
							
							... 
							
							
							
							llvm-svn: 295 
							
						 
						
							2001-07-25 22:47:32 +00:00  
				
					
						
							
							
								 
						
							
								6988791c1e 
								
							 
						 
						
							
							
								
								Changed printValue() to print constant value if the value is a constant.  
							
							... 
							
							
							
							llvm-svn: 292 
							
						 
						
							2001-07-24 18:21:21 +00:00  
				
					
						
							
							
								 
						
							
								9f18119edb 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 291 
							
						 
						
							2001-07-24 17:14:13 +00:00  
				
					
						
							
							
								 
						
							
								e2472bbf6c 
								
							 
						 
						
							
							
								
								Moved inline/llvm/Tools/* to include/llvm/Support/*  
							
							... 
							
							
							
							llvm-svn: 279 
							
						 
						
							2001-07-23 17:46:59 +00:00  
				
					
						
							
							
								 
						
							
								2c6f274188 
								
							 
						 
						
							
							
								
								More functionality, renamed API  
							
							... 
							
							
							
							llvm-svn: 241 
							
						 
						
							2001-07-21 19:07:19 +00:00  
				
					
						
							
							
								 
						
							
								85090922f4 
								
							 
						 
						
							
							
								
								Start of expression analysis support  
							
							... 
							
							
							
							llvm-svn: 219 
							
						 
						
							2001-07-20 19:17:55 +00:00  
				
					
						
							
							
								 
						
							
								197390e985 
								
							 
						 
						
							
							
								
								Fix nasty typo  
							
							... 
							
							
							
							llvm-svn: 204 
							
						 
						
							2001-07-20 04:39:07 +00:00  
				
					
						
							
							
								 
						
							
								5446f8a542 
								
							 
						 
						
							
							
								
								* The parent of a constant pool is a SymTabValue, not a value.  
							
							... 
							
							
							
							llvm-svn: 178 
							
						 
						
							2001-07-14 06:08:51 +00:00  
				
					
						
							
							
								 
						
							
								1547114cbf 
								
							 
						 
						
							
							
								
								Fixed post dominator frontiers!  Yaay!  
							
							... 
							
							
							
							llvm-svn: 157 
							
						 
						
							2001-07-08 05:54:09 +00:00  
				
					
						
							
							
								 
						
							
								c385bebc89 
								
							 
						 
						
							
							
								
								Implement support for postdominators, except in dom frontiers  
							
							... 
							
							
							
							llvm-svn: 142 
							
						 
						
							2001-07-06 16:58:22 +00:00  
				
					
						
							
							
								 
						
							
								81f3ace753 
								
							 
						 
						
							
							
								
								IntervalPartition was changed to inherit from vector<Interval*> instead of  
							
							... 
							
							
							
							contain it so that it would have full iterator access without much work.
Writer includes code to print out IntervalPartition's now.
llvm-svn: 133 
							
						 
						
							2001-07-03 15:28:35 +00:00  
				
					
						
							
							
								 
						
							
								fa3ac26d22 
								
							 
						 
						
							
							
								
								Code got moved from the lib/Assembly/Writer/IntervalWriter.cpp file to  
							
							... 
							
							
							
							here.  Updates to correct description n stuff.
llvm-svn: 129 
							
						 
						
							2001-07-03 05:36:34 +00:00  
				
					
						
							
							
								 
						
							
								a7f22e53c0 
								
							 
						 
						
							
							
								
								Add printing code for dominator info  
							
							... 
							
							
							
							llvm-svn: 125 
							
						 
						
							2001-07-02 05:46:47 +00:00  
				
					
						
							
							
								 
						
							
								081aabc330 
								
							 
						 
						
							
							
								
								Checkin of new dominator calculation routines.  These will be improved in  
							
							... 
							
							
							
							the future to do post dominators and stuff
llvm-svn: 124 
							
						 
						
							2001-07-02 05:46:38 +00:00  
				
					
						
							
							
								 
						
							
								0c94a300eb 
								
							 
						 
						
							
							
								
								Moved deleter to include/llvm/Tools/STLExtras.h  
							
							... 
							
							
							
							llvm-svn: 120 
							
						 
						
							2001-07-02 01:08:08 +00:00  
				
					
						
							
							
								 
						
							
								4cee8d8ffb 
								
							 
						 
						
							
							
								
								Miscellaneous cleanups:  
							
							... 
							
							
							
							* Convert post to pre-increment for for loops
  * Use generic programming more
  * Use new Value::cast* instructions
  * Use new Module, Method, & BasicBlock forwarding methods
  * Use new facilities in STLExtras.h
  * Use new Instruction::isPHINode() method
llvm-svn: 96 
							
						 
						
							2001-06-27 23:41:11 +00:00  
				
					
						
							
							
								 
						
							
								ed59025460 
								
							 
						 
						
							
							
								
								IntervalPartition: recode to use IntervalIterator to do all the work  
							
							... 
							
							
							
							LoopDepth.cpp: new file that calculates the depth of a loop, using
IntervalPartitions.
llvm-svn: 71 
							
						 
						
							2001-06-25 03:55:04 +00:00  
				
					
						
							
							
								 
						
							
								601012721c 
								
							 
						 
						
							
							
								
								New file due to the Intervals.h splitup  
							
							... 
							
							
							
							llvm-svn: 66 
							
						 
						
							2001-06-24 04:07:44 +00:00  
				
					
						
							
							
								 
						
							
								f64a8936e5 
								
							 
						 
						
							
							
								
								#include a different header due to Intervals.h splitting up  
							
							... 
							
							
							
							llvm-svn: 63 
							
						 
						
							2001-06-24 04:05:45 +00:00  
				
					
						
							
							
								 
						
							
								dec727e346 
								
							 
						 
						
							
							
								
								IntervalPartition & IntervalIterator classes have been split out into  
							
							... 
							
							
							
							their own .h files & .cpp file
llvm-svn: 62 
							
						 
						
							2001-06-24 04:05:21 +00:00  
				
					
						
							
							
								 
						
							
								4c16155c36 
								
							 
						 
						
							
							
								
								Prepare for split between Interval, IntervalIterator, and IntervalIPartition  
							
							... 
							
							
							
							llvm-svn: 60 
							
						 
						
							2001-06-24 03:25:01 +00:00  
				
					
						
							
							
								 
						
							
								34b62a04b6 
								
							 
						 
						
							
							
								
								Interval::HeaderNode is now accessed thorugh an accessor function  
							
							... 
							
							
							
							llvm-svn: 56 
							
						 
						
							2001-06-22 02:23:39 +00:00  
				
					
						
							
							
								 
						
							
								b20a15d334 
								
							 
						 
						
							
							
								
								Moved printing code to the Assembly/Writer library.  
							
							... 
							
							
							
							Code now detects looping intervals
llvm-svn: 52 
							
						 
						
							2001-06-21 05:27:22 +00:00  
				
					
						
							
							
								 
						
							
								d79faa35af 
								
							 
						 
						
							
							
								
								Implement the new Interval::isLoop method  
							
							... 
							
							
							
							Implement destructor to free memory
llvm-svn: 51 
							
						 
						
							2001-06-21 05:26:15 +00:00  
				
					
						
							
							
								 
						
							
								5035efaeda 
								
							 
						 
						
							
							
								
								Add capability to build a derived interval graph  
							
							... 
							
							
							
							llvm-svn: 41 
							
						 
						
							2001-06-20 22:44:32 +00:00  
				
					
						
							
							
								 
						
							
								28ae5cbcb5 
								
							 
						 
						
							
							
								
								Initial Checking of Interval handling code  
							
							... 
							
							
							
							llvm-svn: 39 
							
						 
						
							2001-06-20 20:09:55 +00:00  
				
					
						
							
							
								 
						
							
								2f7c963559 
								
							 
						 
						
							
							
								
								Initial revision  
							
							... 
							
							
							
							llvm-svn: 2 
							
						 
						
							2001-06-06 20:29:01 +00:00