Change the way that the TD pass inlines graphs. Instead of inlining each
authorChris Lattner <sabre@nondot.org>
Mon, 21 Mar 2005 04:55:35 +0000 (04:55 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 21 Mar 2005 04:55:35 +0000 (04:55 +0000)
commitd57e55ec0dcf0974857e9c1823e84c2777dd82d7
tree5dd865bed4928896e0d60507cdc127b80afed7f9
parent7757b9fe9f28fba46345069272046958460ffaa3
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
lib/Analysis/DataStructure/TopDownClosure.cpp