diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2014-04-23 23:20:36 +0000 |
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2014-04-23 23:20:36 +0000 |
| commit | 2a898e0df693c0b677b9d1e88f31cf23360c62eb (patch) | |
| tree | a6b21ab9eab4fd808cfb8683b0f2f67aac210e5a | |
| parent | 8a068e6c430755ef3d8e92dcf4264af50529ce3e (diff) | |
| download | bcm5719-llvm-2a898e0df693c0b677b9d1e88f31cf23360c62eb.tar.gz bcm5719-llvm-2a898e0df693c0b677b9d1e88f31cf23360c62eb.zip | |
[LCG] Make the insertion and query paths into the LCG which cannot fail
return references to better model this property.
No functionality changed.
llvm-svn: 207047
| -rw-r--r-- | llvm/include/llvm/Analysis/LazyCallGraph.h | 14 | ||||
| -rw-r--r-- | llvm/lib/Analysis/LazyCallGraph.cpp | 8 |
2 files changed, 11 insertions, 11 deletions
diff --git a/llvm/include/llvm/Analysis/LazyCallGraph.h b/llvm/include/llvm/Analysis/LazyCallGraph.h index 0bbf591a6c6..1b0e1dbf279 100644 --- a/llvm/include/llvm/Analysis/LazyCallGraph.h +++ b/llvm/include/llvm/Analysis/LazyCallGraph.h @@ -142,9 +142,9 @@ public: return NI->get<Node *>(); Function *F = NI->get<Function *>(); - Node *ChildN = G->get(*F); - *NI = ChildN; - return ChildN; + Node &ChildN = G->get(*F); + *NI = &ChildN; + return &ChildN; } pointer operator->() const { return operator*(); } @@ -332,10 +332,10 @@ public: /// \brief Get a graph node for a given function, scanning it to populate the /// graph data as necessary. - Node *get(Function &F) { + Node &get(Function &F) { Node *&N = NodeMap[&F]; if (N) - return N; + return *N; return insertInto(F, N); } @@ -345,7 +345,7 @@ public: /// \brief Update the call graph after deleting an edge. void removeEdge(Function &Caller, Function &Callee) { - return removeEdge(*get(Caller), Callee); + return removeEdge(get(Caller), Callee); } private: @@ -387,7 +387,7 @@ private: /// \brief Helper to insert a new function, with an already looked-up entry in /// the NodeMap. - Node *insertInto(Function &F, Node *&MappedN); + Node &insertInto(Function &F, Node *&MappedN); /// \brief Helper to update pointers back to the graph object during moves. void updateGraphPtrs(); diff --git a/llvm/lib/Analysis/LazyCallGraph.cpp b/llvm/lib/Analysis/LazyCallGraph.cpp index d31793803ac..128448e4c93 100644 --- a/llvm/lib/Analysis/LazyCallGraph.cpp +++ b/llvm/lib/Analysis/LazyCallGraph.cpp @@ -362,8 +362,8 @@ void LazyCallGraph::removeEdge(Node &CallerN, Function &Callee) { CallerC->removeInternalEdge(*this, CallerN, *CalleeN); } -LazyCallGraph::Node *LazyCallGraph::insertInto(Function &F, Node *&MappedN) { - return new (MappedN = BPA.Allocate()) Node(*this, F); +LazyCallGraph::Node &LazyCallGraph::insertInto(Function &F, Node *&MappedN) { + return *new (MappedN = BPA.Allocate()) Node(*this, F); } void LazyCallGraph::updateGraphPtrs() { @@ -435,8 +435,8 @@ LazyCallGraph::SCC *LazyCallGraph::getNextSCCInPostOrder() { // Reset the DFS numbering. NextDFSNumber = 1; - Node *N = get(*SCCEntryNodes.pop_back_val()); - DFSStack.push_back(std::make_pair(N, N->begin())); + Node &N = get(*SCCEntryNodes.pop_back_val()); + DFSStack.push_back(std::make_pair(&N, N.begin())); } auto SI = DFSStack.rbegin(); |

