Files
swift-mirror/lib/SILAnalysis/CallGraphAnalysis.cpp
Mark Lacey dc7bb1a6f3 Add support for some editing of the call graph.
Specifically, addEdgesForApply() and removeEdgesForApply() allow for
clients to notify the call graph of apply instructions that are being
added or removed by the client. This allows us to avoid dangling
pointers in the maps kept in the call graph and avoid invalidating the
entire call graph at the end of passes that choose to maintain it.

Also, markCallerEdgesOfCalleesIncomplete() makes it possible to notify
all the callees of an apply that is being removed that we no longer have
complete information about all of the callers.

What this change specifically does not do is recompute the bottom-up
ordering of SCCs or functions in the call graph.

I have some incomplete updates to the inliner to use this functionality,
and it doesn't appear to be completely broken, but at this point I would
say this is experimental and could change once we have more clients
making use of it.

Swift SVN r26097
2015-03-13 08:03:15 +00:00

14 KiB