llvm-6502/lib/Analysis
Vikram S. Adve 78bbec7fcb Implement 2 important changes: (1) rematerialization from the globals graph,
and (2) faster inlining by cloning only reachable nodes.  In particular:
(1) Added DSGraph::cloneReachableSubgraph and DSGraph::cloneReachableNodes
    to clone the subgraph reachable from a set of root nodes, into the
    current graph, merging the global nodes into thos in the current graph.
    The TD pass now uses this for faster inlining, and so does the
    next function.
(2) Added DSGraph::updateFromGlobalGraph() to rematerialize nodes from the
    globals graph into the current graph in both BU and TD passes.
(3) `I' flags are removed from all nodes in the globals graph, because they
    are difficult to maintain correctly and are not needed anyway.
(4) Aux. function calls are only removed to the globals graph if they
    will never be resovled.  (This is what fixed gap.)  The immediate
    reason is that if we took these out of a function (and moved them to
    the globals graph) we would need to rematerialize these nodes into the
    function graph for every function in the BU pass.  The longer term
    problem is that we would need to find a way to remove them from the
    globals graph iff they have been resolved on all paths through the
    call graph.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7187 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-16 21:36:31 +00:00
..
DataStructure Implement 2 important changes: (1) rematerialization from the globals graph, 2003-07-16 21:36:31 +00:00
IPA Adjust for new DSGraph API 2003-06-30 03:14:54 +00:00
LiveVar Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly() 2003-05-27 00:06:48 +00:00
AliasAnalysis.cpp Add new -no-aa implementation 2003-02-26 19:57:10 +00:00
AliasAnalysisCounter.cpp Avoid divide by zero errors 2003-06-17 15:07:20 +00:00
AliasAnalysisEvaluator.cpp Count operands to instructions as well as just results. This allows for global variables to be checked as well 2003-06-29 00:07:11 +00:00
AliasSetTracker.cpp Fix miscompilation in Fhourstones and bug: LICM/2003-05-02-LoadHoist.ll 2003-05-03 03:42:08 +00:00
BasicAliasAnalysis.cpp Reuse the values if they are constants: this is important so that we index into the right structure field 2003-07-03 06:42:38 +00:00
ConstantRange.cpp Minor bug fix. 2002-09-03 23:12:40 +00:00
Expressions.cpp The word separate' only has one e'. 2003-07-14 17:26:34 +00:00
InductionVariable.cpp Remove unneccesary &* 2003-04-23 16:36:11 +00:00
InstCount.cpp Add total instruction, bb, & function counts 2002-12-07 23:24:24 +00:00
Interval.cpp *** empty log message *** 2002-07-31 19:32:01 +00:00
IntervalPartition.cpp Fix spelling of `propagate'. 2002-10-29 23:06:16 +00:00
LoadValueNumbering.cpp If the alias analysis algorithm we are using can provide MUST alias information, 2003-06-29 00:53:34 +00:00
LoopInfo.cpp Fix bug: Analysis/LoopInfo/2003-05-15-NestingProblem.ll 2003-05-15 18:03:51 +00:00
Makefile Use PARALLEL_DIRS. 2002-10-11 16:08:17 +00:00
PostDominators.cpp Handle post dominance correctly in the case where blocks do not have a path to 2002-10-04 14:50:20 +00:00
PrintSCC.cpp Simple passes that print out SCCs in the CFGs or in the CallGraph of a module. 2002-11-04 14:20:22 +00:00
ValueNumbering.cpp Use new isCommutative interface, which gives us SetEQ and SetNE for free. 2002-10-31 04:20:07 +00:00