Commits

Mark Lacey committed dc7bb1a6f37
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