History log of /external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd81d94322a39503e4a3e87b6ee03d4fcb3465fb 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
49837ef8111fbeace7ae6379ca733c8f8fa94cfe 09-Nov-2013 Chandler Carruth <chandlerc@gmail.com> Move the old pass manager infrastructure into a legacy namespace and
give the files a legacy prefix in the right directory. Use forwarding
headers in the old locations to paper over the name change for most
clients during the transitional period.

No functionality changed here! This is just clearing some space to
reduce renaming churn later on with a new system.

Even when the new stuff starts to go in, it is going to be hidden behind
a flag and off-by-default as it is still WIP and under development.

This patch is specifically designed so that very little out-of-tree code
has to change. I'm going to work as hard as I can to keep that the case.
Only direct forward declarations of the PassManager class are impacted
by this change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
3251e81d793a293b78f4914be6093b405c24fc2a 07-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Move CallGraphSCCPass.h into the Analysis tree; that's where the
implementation lives already.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
0b8c9a80f20772c3793201ab5b251d3520b9cea3 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.

There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.

The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.

I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).

I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
40b6fdb81e12b40dd41c9f9f07befb60ec7291c3 15-Nov-2012 Owen Anderson <resistor@mac.com> Add doInitialization and doFinalization methods to ModulePass's, to allow them to be re-initialized and reused on multiple Module's.

Patch by Pedro Artigas.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
7d539716e2ef6c953bed51cfab5edba98b557657 29-Jun-2012 Nuno Lopes <nunoplopes@sapo.pt> RefreshCallGraph: ignore 'invoke intrinsic'. IntrinsicInst doesnt not recognize invoke, and shouldnt at this point, since the rest of LLVM codebase doesnt expect invoke of intrinsics

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
0e122d1c2422285c872f68fc0ae1f7e5d2739572 29-Aug-2011 Andrew Trick <atrick@apple.com> Reapply r138695. Fix PassManager stack depths.

Patch by Xiaoyi Guo!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
8592a0cda4cf4ae76c5a29230fb330d0e952bb62 27-Aug-2011 Andrew Trick <atrick@apple.com> Reverting r138695 to see if it fixes clang self host.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
b84619223051fd965cc64e70c8f6b70f7ae6ae85 27-Aug-2011 Andrew Trick <atrick@apple.com> Fix PassManager stack depths.

Patch by Xiaoyi Guo!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
1f6a329f79b3568d379142f921f59c4143ddaa14 12-Aug-2011 Duncan Sands <baldrick@free.fr> Silence a bunch (but not all) "variable written but not read" warnings
when building with assertions disabled.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
e669d83a21d7ebf01d3c9e37a20c7348b5a77c11 09-Jun-2011 John McCall <rjmccall@apple.com> Teach the CallGraph to ignore calls to intrinsics.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
ab2cee6d51c11553d723b377c7c4df23f918fad2 04-Sep-2010 Chris Lattner <sabre@nondot.org> dead method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
8a757aeac436ecd27e28a39b10032fd6fda33780 19-Aug-2010 Dan Gohman <gohman@apple.com> Revert r111199; it breaks -debug-pass=Structure output.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
65bffec2c2dc87a5974930ec17931721bc485f9a 17-Aug-2010 Dan Gohman <gohman@apple.com> Make dumpPassStructure be a PMDataManager abstraction, rather than
a Pass abstraction, since that's the level it's actually used at.
Rename Pass' dumpPassStructure to dumpPass.

This eliminates an awkward use of getAsPass() to convert a PMDataManager*
into a Pass* just to permit a dumpPassStructure call.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
90c579de5a383cee278acc3f7e7b9d0a656e6a35 06-Aug-2010 Owen Anderson <resistor@mac.com> Reapply r110396, with fixes to appease the Linux buildbot gods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
1f74590e9d1b9cf0f1f81a156efea73f76546e05 06-Aug-2010 Owen Anderson <resistor@mac.com> Revert r110396 to fix buildbots.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
9ccaf53ada99c63737547c0235baeb8454b04e80 06-Aug-2010 Owen Anderson <resistor@mac.com> Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
ce4a62639f64d2f24577ad4e872f01cd7d6bc82f 28-Jul-2010 Gabor Greif <ggreif@gmail.com> use Value* constructor of CallSite to create potentially improper site, and test that

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
bccb41afc8542f01358341451cac85a7115d8763 01-May-2010 Chris Lattner <sabre@nondot.org> fix PR5009 by making CGSCCPM realize that a call was devirtualized
if an indirect call site was removed and a direct one was added, not
just if an indirect call site was modified to be direct.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
6da12e6767100d3f874c2e05aae74e4fe24357b1 01-May-2010 Chris Lattner <sabre@nondot.org> Implement rdar://6295824 and PR6724 with two tiny changes
that can have a big effect :). The first is to enable the
iterative SCC passmanager juice that kicks in when the
scc passmgr detects that a function pass has devirtualized
a call. In this case, it will rerun all the passes it
manages on the SCC, up to the iteration count limit (4). This
is useful because a function pass may devirualize a call, and
we want the inliner to inline it, or pruneeh to infer stuff
about it, etc.

The second patch is to add *all* call sites to the
DevirtualizedCalls list the inliner uses. This list is
about to get renamed, but the jist of this is that the
inliner now reconsiders *all* inlined call sites as candidates
for further inlining. The intuition is this that in cases
like this:

f() { g(1); } g(int x) { h(x); }

We analyze this bottom up, and may decide that it isn't
profitable to inline H into G. Next step, we decide that it is
profitable to inline G into F, and do so, which means that F
now calls H. Even though the call from G -> H may not have been
profitable to inline, the call from F -> H may be (in this case
because a constant allows folding etc).

In my spot checks, this doesn't have a big impact on code. For
example, the LLC output for 252.eon grew from 0.02% (from
317252 to 317308) and 176.gcc actually shrunk by .3% (from 1525612
to 1520964 bytes). 252.eon never iterated in the SCC Passmgr,
176.gcc iterated at most 1 time.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
b61789d4dd851c2481d0ad95c7a710d567fb86f7 22-Apr-2010 Chris Lattner <sabre@nondot.org> add a DEBUG call so that -debug lists when CGSCCPM iterates.

Fix RefreshCallGraph to use CGN->replaceCallEdge instead of hand
rolling its own loop. replaceCallEdge properly maintains the
reference counts of the nodes, fixing a crash exposed by the
iterative callgraph stuff.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
08e322db8a544d100f7518cfbd39ef8c13067698 21-Apr-2010 Chris Lattner <sabre@nondot.org> Implement (but don't enable) PR6724 and rdar://6295824. In short,
we have RefreshCallGraph detect when a function pass devirtualizes
a call, and have CGSCCPassMgr iterate (up to a count) when this
happens. This allows (in the example) GVN to devirtualize the
call in foo, then the inliner to inline it away.

This is not currently enabled because I haven't done any analysis
on the (potentially substantial) code size or performance impact of
doing this, and guess what, it exposes callgraph updating bugs in
various passes. This is progress though, and you can play with it
by passing -max-cg-scc-iterations=5 to opt.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
ca5e4f8e19f32c9ee6e93bc05c37095fb4cedb26 17-Apr-2010 Chris Lattner <sabre@nondot.org> reenable r101565, removing a problematic assertion.
CGSCC can delete nodes in regions of the callgraph that
have already been visited. If new CG nodes are allocated
to the same pointer, we shouldn't abort, just handle it
correctly by assigning a new number. This should restore
stability by removing invalidated pointers that *will* be
reused from the densemap in the iterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
7e3e3252a187d10df89701fec292ef159362880e 17-Apr-2010 Chris Lattner <sabre@nondot.org> disable r101565: an assert is getting triggered. More lurking badness no doubt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
bde0bb5f882ae708ca70a42bdd3a9805e63f6fb7 17-Apr-2010 Chris Lattner <sabre@nondot.org> building on the new CallGraphSCC abstraction, teach CallGraphSCCPassManager
to keep the node entries in scc_iterator up to date instead of dangling as
the SCC mutates.

This is a really terrible problem which was causing -g to affect codegen
because it would permute the memory image of the compiler process.

Thanks to Dale for expertly hunting it down.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101565 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
a3dfc646b4d772979f8994c07eeee6af57480d34 17-Apr-2010 Chris Lattner <sabre@nondot.org> move ReplaceNode out of line, rename scc_iterator::fini -> isAtEnd().

No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
2decb22222cac46bb1d9163e7b89d7e5be8ef65f 17-Apr-2010 Chris Lattner <sabre@nondot.org> introduce a new CallGraphSCC class, and pass it around
to CallGraphSCCPass's instead of passing around a
std::vector<CallGraphNode*>. No functionality change,
but now we have a much tidier interface.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
c93760c3e55db7e5fadbbf0f75fa3587cd8bb9dc 16-Apr-2010 Chris Lattner <sabre@nondot.org> move PrintCallGraphPass out of the middle of CGPassManager.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
5c8aa950fe3484b6e115647328c196f8be64f9ed 03-Apr-2010 David Greene <greened@obbligato.org> Ok, third time's the charm. No changes from last time except the CMake
source addition. Apparently the buildbots were wrong about failures.

---

Add some switches helpful for debugging:

-print-before=<Pass Name>

Dump IR before running pass <Pass Name>.

-print-before-all

Dump IR before running each pass.

-print-after-all

Dump IR after running each pass.

These are helpful when tracking down a miscompilation. It is easy to
get IR dumps and do diffs on them, etc.

To make this work well, add a new getPrinterPass API to Pass so that
each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass
suitable for dumping out the kind of object the Pass works on.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
cf5862d8ac9562e633e6ef7cb55e67c2b7ca9c0a 02-Apr-2010 Evan Cheng <evan.cheng@apple.com> Revert 100204. It broke a bunch of tests and apparently changed what passes are run during codegen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
434bd8551d71384648f2e155d76b5ddbc4d1b258 02-Apr-2010 David Greene <greened@obbligato.org> Let's try this again. Re-apply 100143 including an apparent missing
<string> include. For some reason the buildbot choked on this while my
builds did not. It's probably due to a difference in system headers.

---

Add some switches helpful for debugging:

-print-before=<Pass Name>

Dump IR before running pass <Pass Name>.

-print-before-all

Dump IR before running each pass.

-print-after-all

Dump IR after running each pass.

These are helpful when tracking down a miscompilation. It is easy to
get IR dumps and do diffs on them, etc.

To make this work well, add a new getPrinterPass API to Pass so that
each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass
suitable for dumping out the kind of object the Pass works on.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
1d8f83d0a00e912c55ec0974eba6122666cc6fa1 02-Apr-2010 Eric Christopher <echristo@apple.com> Revert r100143.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
8ef3acba00c9c42d450fa52c7d3faebce1e507dd 02-Apr-2010 David Greene <greened@obbligato.org> Add some switches helpful for debugging:

-print-before=<Pass Name>

Dump IR before running pass <Pass Name>.

-print-before-all

Dump IR before running each pass.

-print-after-all

Dump IR after running each pass.

These are helpful when tracking down a miscompilation. It is easy to
get IR dumps and do diffs on them, etc.

To make this work well, add a new getPrinterPass API to Pass so that
each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass
suitable for dumping out the kind of object the Pass works on.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
a782e75d487006cafffdc256b3c623307fee4dcf 30-Mar-2010 Chris Lattner <sabre@nondot.org> reapply my timer rewrite with a change for PassManager to store
timers by pointer instead of by-value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99871 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
0d2725ad696afb60c86076469031783669809739 30-Mar-2010 Chris Lattner <sabre@nondot.org> revert r99862 which is causing FNT failures.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
9fa0eff30a0d4fcbc84ac3ada4c47620b5449043 30-Mar-2010 Chris Lattner <sabre@nondot.org> fairly major rewrite of various timing related stuff.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
5a66cb9a4450e5b7b0f5f586ab47a529c478223b 22-Jan-2010 Chris Lattner <sabre@nondot.org> eliminate dynamic_cast from this file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
77c95ed74a4d5f122b3c9810209a0190dbf17504 22-Jan-2010 Chris Lattner <sabre@nondot.org> eliminate a bunch more unneeded dynamic_cast's.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
3660ecabbb85b31308f38938ce3f56f0a330a84b 22-Jan-2010 Chris Lattner <sabre@nondot.org> eliminate a bunch of dynamic_cast's.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
2e48e53d980ee9af1bc96d8ffd9d089cb8d3b5ef 24-Dec-2009 David Greene <greened@obbligato.org> Change dbgs() back to errs() for assert messages as Chris requested.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
c81ce58306ce8d087ed3f5accd3212d2d08eb0a9 23-Dec-2009 David Greene <greened@obbligato.org> Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92035 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
5c12adaa8b92800d835ddd5c97723c6eb5628b5b 28-Sep-2009 Dan Gohman <gohman@apple.com> Extend the StartPassTimer and StopPassTimer functions so that the
code that stops the timer doesn't have to search to find the timer
object before it stops the timer. This avoids a lock acquisition
and a few other things done with the timer running.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
9554c613282c28fbe94bc8b0a5ba736f046643b8 15-Sep-2009 Chris Lattner <sabre@nondot.org> make -debug-pass=Executions show information about what call graph nodes
are in the SCC for each execution of a CGSCC pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
db2659be58a5d9a820eeb5884f284143f6676f86 11-Sep-2009 Dale Johannesen <dalej@apple.com> Fix uppercaseo.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
d3bd0821b00f1100ab98454264c8775ace826f0d 02-Sep-2009 Chris Lattner <sabre@nondot.org> revert my patch, duncan points out what is wrong with my logic. Add
a comment so that I don't change this in the future :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
b8bcbd61a8a8ea3960da47734579150f514abfbb 02-Sep-2009 Chris Lattner <sabre@nondot.org> one more try at making this simpler, hopefully it won't break everything :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
b3020d7a08b951adff8d102b27aaa0bc2a7156da 02-Sep-2009 Duncan Sands <baldrick@free.fr> Complicate Chris's simplification, avoiding complaints
about singular iterators when building with expensive
checks turned on.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
8bff7c960c0e52258158edcbb96cfe528f335f34 01-Sep-2009 Chris Lattner <sabre@nondot.org> debug intrinsics do not go in the callgraph, this fixes a couple
clang regtest failures.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80724 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
44a18370e0fe77a1b31698e945a9ce9f691364fb 01-Sep-2009 Chris Lattner <sabre@nondot.org> Fix a regression I introduced in r80708, found by llvm-test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
da230cb876edf0d4fa8eefc289b8addfb722cd07 01-Sep-2009 Chris Lattner <sabre@nondot.org> remove CallGraphNode::replaceCallSite, it is redundant with other APIs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
5a6a363527f9f66ff23f2d281f4fdc6c2084f2d3 01-Sep-2009 Chris Lattner <sabre@nondot.org> doxygenate RefreshCallGraph, add a new 'verification mode', and run it after
CGSCC passes make change to ensure they are updating the callgraph correctly
(when assertions are enabled).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
17146b867f72c2ca020e2ba8b0b6cbba93a1f7c8 01-Sep-2009 Chris Lattner <sabre@nondot.org> simpler solution to iterator invalidation "problem" found
by expensive checking.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
c142bb294b689b5eb4d842dfe18ea755bc65c79f 01-Sep-2009 Duncan Sands <baldrick@free.fr> Do not manipulate invalid iterators. This fixes the
llvm-gcc build when expensive checking is turned on.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
a541b0fde2ab6b8b037edf113d42da41a2c5aae9 01-Sep-2009 Chris Lattner <sabre@nondot.org> Change CallGraphNode to maintain it's Function as an AssertingVH
for sanity. This didn't turn up any bugs.

Change CallGraphNode to maintain its "callsite" information in the
call edges list as a WeakVH instead of as an instruction*. This fixes
a broad class of dangling pointer bugs, and makes CallGraph have a number
of useful invariants again. This fixes the class of problem indicated
by PR4029 and PR3601.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
2038cf31684089fe745a3971e32f4d208b68a0a4 31-Aug-2009 Chris Lattner <sabre@nondot.org> cleanups pointed out by duncan


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
be577659d3c1222cc58c33628c0baddb94d241ab 31-Aug-2009 Chris Lattner <sabre@nondot.org> Step #1 to giving Callgraph some sane invariants. The problems with callgraph
stem from the fact that we have two types of passes that need to update it:

1. callgraphscc and module passes that are explicitly aware of it
2. Functionpasses (and loop passes etc) that are interlaced with CGSCC passes
by the CGSCC Passmgr.

In the case of #1, we can reasonably expect the passes to update the call
graph just like any analysis. However, functionpasses are not and generally
should not be CG aware. This has caused us no end of problems, so this takes
a new approach. Logically, the CGSCC Pass manager can rescan every function
after it runs a function pass over it to see if the functionpass made any
updates to the IR that affect the callgraph. This allows it to catch new calls
introduced by the functionpass.

In practice, doing this would be slow. This implementation keeps track of
whether or not the current scc is dirtied by a function pass, and, if so,
delays updating the callgraph until it is actually needed again. This was
we avoid extraneous rescans, but we still have good invariants when the
callgraph is needed.

Step #2 of the "give Callgraph some sane invariants" is to change CallGraphNode
to use a CallBackVH for the callsite entry of the CallGraphNode. This way
we can immediately remove entries from the callgraph when a FunctionPass is
active instead of having dangling pointers. The current pass tries to tolerate
these dangling pointers, but it is just an evil hack.

This is related to PR3601/4835/4029. This also reverts r80541, a hack working
around the sad lack of invariants.





git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
f3a1c15b750c63accd3597b42d73792458b247a9 31-Aug-2009 Chris Lattner <sabre@nondot.org> cleanups, factor some code out to a helper function


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
5095e3d1d1caef8d573534d369e37277c623064c 31-Aug-2009 Chris Lattner <sabre@nondot.org> Fix some nasty callgraph dangling pointer problems in
argpromotion and structretpromote. Basically, when replacing
a function, they used the 'changeFunction' api which changes
the entry in the function map (and steals/reuses the callgraph
node).

This has some interesting effects: first, the problem is that it doesn't
update the "callee" edges in any callees of the function in the call graph.
Second, this covers for a major problem in all the CGSCC pass stuff, which
is that it is completely broken when functions are deleted if they *don't*
reuse a CGN. (there is a cute little fixme about this though :).

This patch changes the protocol that CGSCC passes must obey: now the CGSCC
pass manager copies the SCC and preincrements its iterator to avoid passes
invalidating it. This allows CGSCC passes to mutate the current SCC. However
multiple passes may be run on that SCC, so if passes do this, they are now
required to *update* the SCC to be current when they return.

Other less interesting parts of this patch are that it makes passes update
the CG more directly, eliminates changeFunction, and requires clients of
replaceCallSite to specify the new callee CGN if they are changing it.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
45cfe545ec8177262dabc70580ce05feaa1c3880 23-Aug-2009 Chris Lattner <sabre@nondot.org> Change Pass::print to take a raw ostream instead of std::ostream,
update all code that this affects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
460f656475738d1a95a6be95346908ce1597df25 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Remove Value::getName{Start,End}, the last of the old Name APIs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
8968a0776801c5662863b3a461550aa361f69ba3 13-Feb-2009 Nick Lewycky <nicholas@mxc.ca> Reapply r64300:

Make sure the SCC pass manager initializes any contained
function pass managers. Without this, simplify-libcalls
would add nocapture attributes when run on its own, but
not when run as part of -std-compile-opts or similar.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
905c7e9a0459ffdffbee3e6fffe0dbf5e5c9583c 11-Feb-2009 Bill Wendling <isanbard@gmail.com> Revert r64300 and r64301. These were causing the following errors respectively:

During llvm-gcc bootstrap:

Undefined symbols:
"llvm::FPPassManager::doFinalization(llvm::Module&)", referenced from:
(anonymous namespace)::CGPassManager::doFinalization(llvm::CallGraph&, llvm::Module&)
in libLLVMipa.a(CallGraphSCCPass.o)
"llvm::FPPassManager::doInitialization(llvm::Module&)", referenced from:
(anonymous namespace)::CGPassManager::doInitialization(llvm::CallGraph&, llvm::Module&)
in libLLVMipa.a(CallGraphSCCPass.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[3]: *** [/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/obj-llvm/Release/bin/opt] Error 1

During an LLVM release build:

/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/Release/bin/tblgen -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86 -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target -gen-register-desc -o /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Target/X86/Release/X86GenRegisterInfo.inc.tmp /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86/X86.td
llvm[3]: Building X86.td instruction names with tblgen
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/Release/bin/tblgen -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86 -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target -gen-instr-enums -o /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Target/X86/Release/X86GenInstrNames.inc.tmp /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86/X86.td
llvm[3]: Building X86.td instruction information with tblgen
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/Release/bin/tblgen -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86 -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target -gen-instr-desc -o /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Target/X86/Release/X86GenInstrInfo.inc.tmp /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86/X86.td
llvm[3]: Building X86.td assembly writer with tblgen
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/Release/bin/tblgen -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86 -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target -gen-asm-writer -o /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Target/X86/Release/X86GenAsmWriter.inc.tmp /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86/X86.td
llvm[3]: Compiling InstructionCombining.cpp for Release build
if /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~dst/Developer/usr/bin/llvm-g++-4.2 -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Transforms/Scalar -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O3 -fno-exceptions -Woverloaded-virtual -pedantic -Wall -W -Wwrite-strings -Wno-long-long -Wunused -Wno-unused-parameter -fstrict-aliasing -Wstrict-aliasing -c -MMD -MP -MF "/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar/Release/InstructionCombining.d.tmp" -MT "/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar/Release/InstructionCombining.lo" -MT "/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar/Release/InstructionCombining.o" -MT "/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar/Release/InstructionCombining.d" /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Transforms/Scalar/InstructionCombining.cpp -o /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar/Release/InstructionCombining.o ; \
then /bin/mv -f "/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar/Release/InstructionCombining.d.tmp" "/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Trans



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
af068750a71780a2f1780f056af0c21208a408dd 11-Feb-2009 Duncan Sands <baldrick@free.fr> Make sure the SCC pass manager initializes any contained
function pass managers. Without this, simplify-libcalls
would add nocapture attributes when run on its own, but
not when run as part of -std-compile-opts or similar.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
ae73dc1448d25b02cabc7c64c86c64371453dda8 04-Sep-2008 Dan Gohman <gohman@apple.com> Tidy up several unbeseeming casts from pointer to intptr_t.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
0dabb7e8f3e371cf0d6a9747b5bd4b555cc32c95 08-Aug-2008 Chris Lattner <sabre@nondot.org> Don't call getAnalysisUsage unless -debug-pass is enabled. This speeds
up the passmgr by avoiding useless work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
844731a7f1909f55935e3514c9e713a62d67662e 13-May-2008 Dan Gohman <gohman@apple.com> Clean up the use of static and anonymous namespaces. This turned up
several things that were neither in an anonymous namespace nor static
but not intended to be global.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
201ebe3899dc699ae081b557a6bffc53a4dda147 03-May-2008 Devang Patel <dpatel@apple.com> Add assert.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
4ee451de366474b9c228b4e5fa573795a715216d 29-Dec-2007 Chris Lattner <sabre@nondot.org> Remove attribution from file headers, per discussion on llvmdev.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
6b4af744b844ba5cf319614b6a27d213548706ee 10-Aug-2007 Devang Patel <dpatel@apple.com> Do not overuse std::string. Pass around char * directly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
c2bbfc18e9adbbdcf5b3375d8d25e2452f7df7f1 01-Aug-2007 Dan Gohman <gohman@apple.com> More explicit keywords.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
58e0ef1e90c3f6dbae213612b44e56f7d6d65ea7 19-Jul-2007 Devang Patel <dpatel@apple.com> Verify loop info.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
20d824b7dfea987775586d9de56c7448cc2cc44d 19-Jul-2007 Duncan Sands <baldrick@free.fr> Replace mysterious code causing a g++-4.2 warning
with hopefully correct code that pleases g++-4.2.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
25e681ac221e83a7ebead99b4d3d88f1b3ab49bd 22-Jun-2007 Devang Patel <dpatel@apple.com> CallGraphSCCPass manager may require other passes.
Use schedulePass() to accomodate these requirement instead of directly
assigning a manager to new CallGraph PassManager.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
1997473cf72957d0e70322e2fe6fe2ab141c58a6 03-May-2007 Devang Patel <dpatel@apple.com> Drop 'const'


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
3e15bf33e024b9df9e89351a165acfdb1dde51ed 02-May-2007 Devang Patel <dpatel@apple.com> Use 'static const char' instead of 'static const int'.
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
794fd75c67a2cdc128d67342c6d88a504d186896 01-May-2007 Devang Patel <dpatel@apple.com> Do not use typeinfo to identify pass in pass manager.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
bed2946a96ecb15b0b636fa74cb26ce61b1c648e 16-Apr-2007 Anton Korobeynikov <asl@math.spbu.ru> Removed tabs everywhere except autogenerated & external files. Add make
target for tabs checking.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
7f99761143cdf1ad23729708e3dcaa055b189406 05-Mar-2007 Devang Patel <dpatel@apple.com> Avoid constructing std::strings unless pass debugging is ON.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
84da80d10b472332d079c58d21aa48b82e636274 27-Feb-2007 Devang Patel <dpatel@apple.com> Make getPassManagerType() const.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
95ced11b1a913c0c8ee0efacadddf48da25aef97 01-Feb-2007 Devang Patel <dpatel@apple.com> Dump function names when debug-pass=Executions is used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33772 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
505f36aedec873d99bdaabb8836eac704185f086 01-Feb-2007 Devang Patel <dpatel@apple.com> Pretty print pass manager


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33766 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
f5b17fd938afe39a47ef5aef1b04cb6f437e3b98 30-Jan-2007 Devang Patel <dpatel@apple.com> Use StartPassTimer() and StopPassManager()


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
f82aa1cf73b6cdd0c6713ad365bae1204755ee2f 29-Jan-2007 Devang Patel <dpatel@apple.com> Measure timings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
129ccd9def1cb98a0442140b407f9e91e323829a 26-Jan-2007 Devang Patel <dpatel@apple.com> Remove dead code.
CallGraphSCCPass does not need to implement runOnModule().
It supports runOnSCC().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
d9f10c3d11997bc7e3d1b3da3baabae47445d5c6 23-Jan-2007 Devang Patel <dpatel@apple.com> Fix typo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
97fd2439f2b30b575cdd67eef52e03937d483680 23-Jan-2007 Devang Patel <dpatel@apple.com> Add CallGraphSCCPass::assignPassManager().
This enables CalLGraphPassManager.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
75f9abf51706242a745e05841598f68e64143494 17-Jan-2007 Devang Patel <dpatel@apple.com> Add CGPassManager.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
2b37d7cf28b1382420b5e4007042feeb66d21ac8 21-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Remove trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
b12914bfc0f76a7a48357162d5f4c39a1343e69b 20-Sep-2004 Chris Lattner <sabre@nondot.org> 'Pass' should now not be derived from by clients. Instead, they should derive
from ModulePass. Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
551ccae044b0ff658fe629dd67edd5ffe75d10e8 02-Sep-2004 Reid Spencer <rspencer@reidspencer.com> Changes For Bug 352
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
72035995d50084676b2f9c1db0869f81f2faccf4 20-Apr-2004 Chris Lattner <sabre@nondot.org> Pass the callgraph not the module


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
a10df5028211fc897751d23e91d035db47d23fac 20-Apr-2004 Chris Lattner <sabre@nondot.org> Add the ability for SCC passes to initialize and finalize themselves


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13084 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
d0fde30ce850b78371fd1386338350591f9ff494 11-Nov-2003 Brian Gaeke <gaeke@uiuc.edu> Put all LLVM code into the llvm namespace, as per bug 109.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
b576c94c15af9a440f69d9d03c2afead7971118c 20-Oct-2003 John Criswell <criswell@uiuc.edu> Added LLVM project notice to the top of every C++ source file.
Header files will be on the way.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
55b2eb3ef828819a623444ce966e70ad86ad6da4 31-Aug-2003 Chris Lattner <sabre@nondot.org> Rename TarjanSCCIterator -> scc_iterator
* Increases consistency with other iterators (e.g. df_iterator, po_iterator...)
* It's shorter
* We don't name classes by the implementation, we name it for the interface!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
6c5fd8e0551f99ce46908fedd502b0dbf5864c74 31-Aug-2003 Chris Lattner <sabre@nondot.org> The tarjan iterator now returns a reference to the current SCC, not a possibly null pointer!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
4a81067a84e18c44898149f5afdbaa3e18b3e821 31-Aug-2003 Chris Lattner <sabre@nondot.org> Initial checkin of the CallGraphSCCPass class


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp