llvm-6502/lib/Analysis
Chris Lattner d57e55ec0d Change the way that the TD pass inlines graphs. Instead of inlining each
graph into all of the functions it calls when we visit a graph, change it so
that the graph visitor inlines all of the callers of a graph into the current
graph when it visits it.

While we're at it, inline global information from the GG instead of from each
of the callers.  The GG contains a superset of the info that the callers do
anyway, and this way we only need to do it one time (not one for each caller).

This speeds up the TD pass substantially on several programs, and there is
still room for improvement.  For example, the TD pass used to take 147s
on perlbmk, it now takes 36s.  On povray, we went from about 5s to 1.97s.
134.perl is down from ~1s for Loc+BU+TD to .6s.

The TD pass needs a lot of improvement though, which will occur with later
patches.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20723 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21 04:55:35 +00:00
..
DataStructure Change the way that the TD pass inlines graphs. Instead of inlining each 2005-03-21 04:55:35 +00:00
IPA This mega patch converts us from using Function::a{iterator|begin|end} to 2005-03-15 04:54:21 +00:00
AliasAnalysis.cpp Fix the missing symbols problem Bill was hitting. Patch contributed by 2005-03-17 15:38:16 +00:00
AliasAnalysisCounter.cpp Add even more missing createXxxPass functions. 2005-01-08 22:01:16 +00:00
AliasAnalysisEvaluator.cpp Do not include the Function* for direct call/invoke instructions in the 2005-03-17 20:25:04 +00:00
AliasSetTracker.cpp Fix the missing symbols problem Bill was hitting. Patch contributed by 2005-03-17 15:38:16 +00:00
BasicAliasAnalysis.cpp Fix Regression/Analysis/BasicAA/2005-03-09-BrokenBasicAA.ll, a miscompilation 2005-03-09 16:29:52 +00:00
CFGPrinter.cpp For PR387:\ 2004-12-07 04:03:45 +00:00
ConstantRange.cpp Bug fixes for PR341 2004-07-15 01:29:12 +00:00
Expressions.cpp Add #include <iostream> since Value.h does not #include it any more. 2004-07-04 12:19:56 +00:00
InstCount.cpp Standardize on 'class' instead of 'struct'. Gets rid of warnings in VC++ 2004-11-16 06:58:55 +00:00
Interval.cpp Fixes for PR341 2004-07-15 02:31:46 +00:00
IntervalPartition.cpp Remove use of bind_obj, deleter, and finegrainify namespacification. 2005-02-22 23:27:21 +00:00
LoadValueNumbering.cpp Due to previous simplifications, we can simplify the data structures being 2005-01-29 07:04:10 +00:00
LoopInfo.cpp For PR387:\ 2004-12-07 04:03:45 +00:00
Makefile Change Library Names Not To Conflict With Others When Installed 2004-10-27 23:18:45 +00:00
PostDominators.cpp Add support for unreachable 2004-10-16 18:21:33 +00:00
ProfileInfo.cpp Add even more missing createXxxPass functions. 2005-01-08 22:01:16 +00:00
ProfileInfoLoader.cpp Add #include <iostream> since Value.h does not #include it any more. 2004-07-04 12:19:56 +00:00
ProfileInfoLoaderPass.cpp expose this pass to both opt and analyze 2005-03-18 05:27:57 +00:00
ScalarEvolution.cpp Export two methods for getting -X and A-B. 2005-03-09 05:34:41 +00:00
Trace.cpp Add #include <iostream> since Value.h does not #include it any more. 2004-07-04 12:19:56 +00:00
ValueNumbering.cpp Add even more missing createXxxPass functions. 2005-01-08 22:01:16 +00:00