Skip to content

Commit

Permalink
[XRay] Use DenseMap::{operator[],try_emplace} (NFC) (#107178)
Browse files Browse the repository at this point in the history
I'm planning to deprecate DenseMap::FindAndConstruct in favor of
operator[].  I'm using try_emplace because "Vertices[I.first];" on its
own might look like a nop statement.
  • Loading branch information
kazutakahirata authored Sep 4, 2024
1 parent 50febde commit 58f2896
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions llvm/include/llvm/XRay/Graph.h
Original file line number Diff line number Diff line change
Expand Up @@ -378,20 +378,17 @@ class Graph {

/// Looks up the vertex with identifier I, if it does not exist it default
/// constructs it.
VertexAttribute &operator[](const VertexIdentifier &I) {
return Vertices.FindAndConstruct(I).second;
}
VertexAttribute &operator[](const VertexIdentifier &I) { return Vertices[I]; }

/// Looks up the edge with identifier I, if it does not exist it default
/// constructs it, if it's endpoints do not exist it also default constructs
/// them.
EdgeAttribute &operator[](const EdgeIdentifier &I) {
auto &P = Edges.FindAndConstruct(I);
Vertices.FindAndConstruct(I.first);
Vertices.FindAndConstruct(I.second);
Vertices.try_emplace(I.first);
Vertices.try_emplace(I.second);
InNeighbors[I.second].insert(I.first);
OutNeighbors[I.first].insert(I.second);
return P.second;
return Edges[I];
}

/// Looks up a vertex with Identifier I, or an error if it does not exist.
Expand Down Expand Up @@ -479,8 +476,8 @@ class Graph {
auto EI = Val.first;
const auto &p = Edges.insert(std::move(Val));
if (p.second) {
Vertices.FindAndConstruct(EI.first);
Vertices.FindAndConstruct(EI.second);
Vertices.try_emplace(EI.first);
Vertices.try_emplace(EI.second);
InNeighbors[EI.second].insert(EI.first);
OutNeighbors[EI.first].insert(EI.second);
};
Expand Down

0 comments on commit 58f2896

Please sign in to comment.