diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2014-05-01 12:18:20 +0000 |
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2014-05-01 12:18:20 +0000 |
| commit | 7cc4ed8202fac742632dadfa067d3d8d2ba4302c (patch) | |
| tree | 342fd1972bf54f53233a8b5ffdbe8bf98a5a776f /llvm/include | |
| parent | 034d0d6805fbb658f0d3fff1fef345dcd00fd358 (diff) | |
| download | bcm5719-llvm-7cc4ed8202fac742632dadfa067d3d8d2ba4302c.tar.gz bcm5719-llvm-7cc4ed8202fac742632dadfa067d3d8d2ba4302c.zip | |
[LCG] Add the other simple edge insertion API to the call graph. This
just connects an SCC to one of its descendants directly. Not much of an
impact. The last one is the hard one -- connecting an SCC to one of its
ancestors, and thereby forming a cycle such that we have to merge all
the SCCs participating in the cycle.
llvm-svn: 207751
Diffstat (limited to 'llvm/include')
| -rw-r--r-- | llvm/include/llvm/Analysis/LazyCallGraph.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/include/llvm/Analysis/LazyCallGraph.h b/llvm/include/llvm/Analysis/LazyCallGraph.h index df4fddf8669..121054b7048 100644 --- a/llvm/include/llvm/Analysis/LazyCallGraph.h +++ b/llvm/include/llvm/Analysis/LazyCallGraph.h @@ -267,6 +267,14 @@ public: /// of any SCCs. void insertIntraSCCEdge(Node &CallerN, Node &CalleeN); + /// \brief Insert an edge whose tail is in this SCC and head is in some + /// child SCC. + /// + /// There must be an existing path from the caller to the callee. This + /// operation is inexpensive and does not change the set of SCCs in the + /// graph. + void insertOutgoingEdge(Node &CallerN, Node &CalleeN); + /// \brief Remove an edge whose source is in this SCC and target is *not*. /// /// This removes an inter-SCC edge. All inter-SCC edges originating from |

