summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2014-04-30 10:48:36 +0000
committerChandler Carruth <chandlerc@gmail.com>2014-04-30 10:48:36 +0000
commit491f476b8bf5d2b201733c27a079a9a7015ffc44 (patch)
tree98b2ad761bee8b18c106f7a9c2984e3fac56b0f3 /include
parent0a780977749191616c2ceac32acca441ab519e07 (diff)
downloadllvm-491f476b8bf5d2b201733c27a079a9a7015ffc44.tar.gz
llvm-491f476b8bf5d2b201733c27a079a9a7015ffc44.tar.bz2
llvm-491f476b8bf5d2b201733c27a079a9a7015ffc44.tar.xz
[LCG] Add the really, *really* boring edge insertion case: adding an
edge entirely within an existing SCC. Shockingly, making the connected component more connected is ... a total snooze fest. =] Anyways, its wired up, and I even added a test case to make sure it pretty much sorta works. =D git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207631 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Analysis/LazyCallGraph.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/llvm/Analysis/LazyCallGraph.h b/include/llvm/Analysis/LazyCallGraph.h
index df3925aba6..2b391e0476 100644
--- a/include/llvm/Analysis/LazyCallGraph.h
+++ b/include/llvm/Analysis/LazyCallGraph.h
@@ -186,6 +186,9 @@ public:
/// \brief Internal helper to insert a callee.
void insertEdgeInternal(Function &Callee);
+ /// \brief Internal helper to insert a callee.
+ void insertEdgeInternal(Node &CalleeN);
+
/// \brief Internal helper to remove a callee from this node.
void removeEdgeInternal(Function &Callee);
@@ -249,6 +252,12 @@ public:
/// Note that these methods sometimes have complex runtimes, so be careful
/// how you call them.
+ /// \brief Insert an edge from one node in this SCC to another in this SCC.
+ ///
+ /// By the definition of an SCC, this does not change the nature or make-up
+ /// of any SCCs.
+ void insertIntraSCCEdge(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