llvm-6502/lib/Analysis/DataStructure
Chris Lattner 0b14487591 * Add a new commandline argument to control the "global roots hack". Default
it to be off.  If it looks like it's completely unnecessary after testing, I
  will remove it completely (which is the hope).
* Callers of the DSNode "copy ctor" can not choose to not copy links.
* Make node collapsing not create a garbage node in some cases, avoiding a
  memory allocation, and a subsequent DNE.
* When merging types, allow two functions of different types to be merged
  without collapsing.
* Use DSNodeHandle::isNull more often instead of DSNodeHandle::getNode() == 0,
  as it is much more efficient.
*** Implement the new, more efficient reachability cloner class
    In addition to only cloning nodes that are reachable from interesting
    roots, this also fixes the huge inefficiency we had where we cloned lots
    of nodes, only to merge them away immediately after they were cloned.
    Now we only actually allocate a node if there isn't one to merge it into.
* Eliminate the now-obsolete cloneReachable* and clonePartiallyInto methods
* Rewrite updateFromGlobalsGraph to use the reachability cloner
* Rewrite mergeInGraph to use the reachability cloner
* Disable the scalar map scanning code in removeTriviallyDeadNodes.  In large
  SCC's, this is extremely expensive.  We need a better data structure for the
  scalar map, because we really want to scan the unique node handles, not ALL
  of the scalars.
* Remove the incorrect SANER_CODE_FOR_CHECKING_IF_ALL_REFERRERS_ARE_FROM_SCALARMAP code.
* Move the code for eliminating integer nodes from the trivially dead
  eliminator to the dead node eliminator.
* removeDeadNodes no longer uses removeTriviallyDeadNodes, as it contains a
  superset of the node removal power.
* Only futz around with the globals graph in removeDeadNodes if it is modified


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10987 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-27 22:03:40 +00:00
..
BottomUpClosure.cpp Get clone flags right, so we don't build InlinedGlobals only to clear them 2004-01-27 21:50:41 +00:00
CompleteBottomUp.cpp Get clone flags right, so we don't build InlinedGlobals only to clear them 2004-01-27 21:50:41 +00:00
DataStructure.cpp * Add a new commandline argument to control the "global roots hack". Default 2004-01-27 22:03:40 +00:00
DataStructureAA.cpp minor cleanups 2004-01-27 21:51:19 +00:00
DataStructureOpt.cpp Fine-grainify namespaces for this library 2003-11-12 23:11:14 +00:00
DataStructureStats.cpp Fine-grainify namespaces for this library 2003-11-12 23:11:14 +00:00
DSCallSiteIterator.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
GraphChecker.cpp Fine-grainify namespaces for this library 2003-11-12 23:11:14 +00:00
IPModRef.cpp Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
Local.cpp minor cleanups 2004-01-27 21:51:19 +00:00
Makefile Added LLVM copyright notice to Makefiles. 2003-10-20 22:26:57 +00:00
MemoryDepAnalysis.cpp Cleanups 2003-11-12 00:40:34 +00:00
Parallelize.cpp Finegrainify namespacification 2003-11-21 21:54:22 +00:00
PgmDependenceGraph.cpp Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
Printer.cpp Allow disabling of ALL printing overhead when performing timings 2004-01-22 13:42:43 +00:00
Steensgaard.cpp Initial support for implementing clonePartiallyInto in terms of cloneReachableSubgraph, though this support is currently disabled. 2004-01-23 01:44:53 +00:00
TopDownClosure.cpp Rewrite to use the reachability cloner interface. Also, make this much more 2004-01-27 21:53:14 +00:00