Coverage Report

Created: 2018-09-25 17:16

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/ADT/PostOrderIterator.h
Line
Count
Source
1
//===- llvm/ADT/PostOrderIterator.h - PostOrder iterator --------*- C++ -*-===//
2
//
3
//                     The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
//
10
// This file builds on the ADT/GraphTraits.h file to build a generic graph
11
// post order iterator.  This should work over any graph type that has a
12
// GraphTraits specialization.
13
//
14
//===----------------------------------------------------------------------===//
15
16
#ifndef LLVM_ADT_POSTORDERITERATOR_H
17
#define LLVM_ADT_POSTORDERITERATOR_H
18
19
#include "llvm/ADT/GraphTraits.h"
20
#include "llvm/ADT/Optional.h"
21
#include "llvm/ADT/SmallPtrSet.h"
22
#include "llvm/ADT/iterator_range.h"
23
#include <iterator>
24
#include <set>
25
#include <utility>
26
#include <vector>
27
28
namespace llvm {
29
30
// The po_iterator_storage template provides access to the set of already
31
// visited nodes during the po_iterator's depth-first traversal.
32
//
33
// The default implementation simply contains a set of visited nodes, while
34
// the External=true version uses a reference to an external set.
35
//
36
// It is possible to prune the depth-first traversal in several ways:
37
//
38
// - When providing an external set that already contains some graph nodes,
39
//   those nodes won't be visited again. This is useful for restarting a
40
//   post-order traversal on a graph with nodes that aren't dominated by a
41
//   single node.
42
//
43
// - By providing a custom SetType class, unwanted graph nodes can be excluded
44
//   by having the insert() function return false. This could for example
45
//   confine a CFG traversal to blocks in a specific loop.
46
//
47
// - Finally, by specializing the po_iterator_storage template itself, graph
48
//   edges can be pruned by returning false in the insertEdge() function. This
49
//   could be used to remove loop back-edges from the CFG seen by po_iterator.
50
//
51
// A specialized po_iterator_storage class can observe both the pre-order and
52
// the post-order. The insertEdge() function is called in a pre-order, while
53
// the finishPostorder() function is called just before the po_iterator moves
54
// on to the next node.
55
56
/// Default po_iterator_storage implementation with an internal set object.
57
template<class SetType, bool External>
58
class po_iterator_storage {
59
  SetType Visited;
60
61
public:
62
  // Return true if edge destination should be visited.
63
  template <typename NodeRef>
64
237M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
237M
    return Visited.insert(To).second;
66
237M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false>::insertEdge<llvm::MachineBasicBlock*>(llvm::Optional<llvm::MachineBasicBlock*>, llvm::MachineBasicBlock*)
Line
Count
Source
64
29.3M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
29.3M
    return Visited.insert(To).second;
66
29.3M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false>::insertEdge<llvm::MachineBasicBlock const*>(llvm::Optional<llvm::MachineBasicBlock const*>, llvm::MachineBasicBlock const*)
Line
Count
Source
64
15.8M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
15.8M
    return Visited.insert(To).second;
66
15.8M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false>::insertEdge<llvm::BasicBlock*>(llvm::Optional<llvm::BasicBlock*>, llvm::BasicBlock*)
Line
Count
Source
64
80.6M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
80.6M
    return Visited.insert(To).second;
66
80.6M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false>::insertEdge<llvm::BasicBlock const*>(llvm::Optional<llvm::BasicBlock const*>, llvm::BasicBlock const*)
Line
Count
Source
64
56.1M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
56.1M
    return Visited.insert(To).second;
66
56.1M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, 8u>, false>::insertEdge<llvm::DomTreeNodeBase<llvm::BasicBlock> const*>(llvm::Optional<llvm::DomTreeNodeBase<llvm::BasicBlock> const*>, llvm::DomTreeNodeBase<llvm::BasicBlock> const*)
Line
Count
Source
64
41.9M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
41.9M
    return Visited.insert(To).second;
66
41.9M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock>*, 8u>, false>::insertEdge<llvm::DomTreeNodeBase<llvm::BasicBlock>*>(llvm::Optional<llvm::DomTreeNodeBase<llvm::BasicBlock>*>, llvm::DomTreeNodeBase<llvm::BasicBlock>*)
Line
Count
Source
64
34.9k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
34.9k
    return Visited.insert(To).second;
66
34.9k
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false>::insertEdge<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*>(llvm::Optional<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*>, llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*)
Line
Count
Source
64
2.04M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
2.04M
    return Visited.insert(To).second;
66
2.04M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, 8u>, false>::insertEdge<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*>(llvm::Optional<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*>, llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*)
Line
Count
Source
64
11.3M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
11.3M
    return Visited.insert(To).second;
66
11.3M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::Type*, 8u>, false>::insertEdge<llvm::Type*>(llvm::Optional<llvm::Type*>, llvm::Type*)
Line
Count
Source
64
212k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
212k
    return Visited.insert(To).second;
66
212k
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false>::insertEdge<llvm::RegionNode*>(llvm::Optional<llvm::RegionNode*>, llvm::RegionNode*)
Line
Count
Source
64
35.4k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
35.4k
    return Visited.insert(To).second;
66
35.4k
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false>::insertEdge<llvm::VPBlockBase*>(llvm::Optional<llvm::VPBlockBase*>, llvm::VPBlockBase*)
Line
Count
Source
64
1.19k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
1.19k
    return Visited.insert(To).second;
66
1.19k
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false>::insertEdge<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>(llvm::Optional<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>, llvm::DomTreeNodeBase<llvm::VPBlockBase> const*)
Line
Count
Source
64
30
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
30
    return Visited.insert(To).second;
66
30
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false>::insertEdge<clang::CallGraphNode*>(llvm::Optional<clang::CallGraphNode*>, clang::CallGraphNode*)
Line
Count
Source
64
19.4k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
19.4k
    return Visited.insert(To).second;
66
19.4k
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false>::insertEdge<clang::CallGraphNode const*>(llvm::Optional<clang::CallGraphNode const*>, clang::CallGraphNode const*)
Line
Count
Source
64
24
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
24
    return Visited.insert(To).second;
66
24
  }
67
68
  // Called after all children of BB have been visited.
69
179M
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false>::finishPostorder<llvm::MachineBasicBlock*>(llvm::MachineBasicBlock*)
Line
Count
Source
69
20.3M
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false>::finishPostorder<llvm::MachineBasicBlock const*>(llvm::MachineBasicBlock const*)
Line
Count
Source
69
11.1M
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false>::finishPostorder<llvm::BasicBlock*>(llvm::BasicBlock*)
Line
Count
Source
69
54.4M
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false>::finishPostorder<llvm::BasicBlock const*>(llvm::BasicBlock const*)
Line
Count
Source
69
38.1M
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, 8u>, false>::finishPostorder<llvm::DomTreeNodeBase<llvm::BasicBlock> const*>(llvm::DomTreeNodeBase<llvm::BasicBlock> const*)
Line
Count
Source
69
41.9M
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock>*, 8u>, false>::finishPostorder<llvm::DomTreeNodeBase<llvm::BasicBlock>*>(llvm::DomTreeNodeBase<llvm::BasicBlock>*)
Line
Count
Source
69
34.9k
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false>::finishPostorder<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*>(llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*)
Line
Count
Source
69
2.04M
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, 8u>, false>::finishPostorder<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*>(llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*)
Line
Count
Source
69
11.3M
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::Type*, 8u>, false>::finishPostorder<llvm::Type*>(llvm::Type*)
Line
Count
Source
69
148k
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false>::finishPostorder<llvm::RegionNode*>(llvm::RegionNode*)
Line
Count
Source
69
28.5k
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false>::finishPostorder<llvm::VPBlockBase*>(llvm::VPBlockBase*)
Line
Count
Source
69
891
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false>::finishPostorder<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>(llvm::DomTreeNodeBase<llvm::VPBlockBase> const*)
Line
Count
Source
69
30
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false>::finishPostorder<clang::CallGraphNode*>(clang::CallGraphNode*)
Line
Count
Source
69
14.9k
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false>::finishPostorder<clang::CallGraphNode const*>(clang::CallGraphNode const*)
Line
Count
Source
69
15
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
70
};
71
72
/// Specialization of po_iterator_storage that references an external set.
73
template<class SetType>
74
class po_iterator_storage<SetType, true> {
75
  SetType &Visited;
76
77
public:
78
221k
  po_iterator_storage(SetType &VSet) : Visited(VSet) {}
llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true>::po_iterator_storage(llvm::SmallPtrSet<llvm::BasicBlock*, 16u>&)
Line
Count
Source
78
284
  po_iterator_storage(SetType &VSet) : Visited(VSet) {}
llvm::po_iterator_storage<clang::PostOrderCFGView::CFGBlockSet, true>::po_iterator_storage(clang::PostOrderCFGView::CFGBlockSet&)
Line
Count
Source
78
221k
  po_iterator_storage(SetType &VSet) : Visited(VSet) {}
79
1.13k
  po_iterator_storage(const po_iterator_storage &S) : Visited(S.Visited) {}
80
81
  // Return true if edge destination should be visited, called with From = 0 for
82
  // the root node.
83
  // Graph edges can be pruned by specializing this function.
84
1.20M
  template <class NodeRef> bool insertEdge(Optional<NodeRef> From, NodeRef To) {
85
1.20M
    return Visited.insert(To).second;
86
1.20M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true>::insertEdge<llvm::BasicBlock*>(llvm::Optional<llvm::BasicBlock*>, llvm::BasicBlock*)
Line
Count
Source
84
11.5k
  template <class NodeRef> bool insertEdge(Optional<NodeRef> From, NodeRef To) {
85
11.5k
    return Visited.insert(To).second;
86
11.5k
  }
bool llvm::po_iterator_storage<clang::PostOrderCFGView::CFGBlockSet, true>::insertEdge<clang::CFGBlock const*>(llvm::Optional<clang::CFGBlock const*>, clang::CFGBlock const*)
Line
Count
Source
84
1.19M
  template <class NodeRef> bool insertEdge(Optional<NodeRef> From, NodeRef To) {
85
1.19M
    return Visited.insert(To).second;
86
1.19M
  }
87
88
  // Called after all children of BB have been visited.
89
883k
  template <class NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true>::finishPostorder<llvm::BasicBlock*>(llvm::BasicBlock*)
Line
Count
Source
89
7.23k
  template <class NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<clang::PostOrderCFGView::CFGBlockSet, true>::finishPostorder<clang::CFGBlock const*>(clang::CFGBlock const*)
Line
Count
Source
89
875k
  template <class NodeRef> void finishPostorder(NodeRef BB) {}
90
};
91
92
template <class GraphT,
93
          class SetType =
94
              SmallPtrSet<typename GraphTraits<GraphT>::NodeRef, 8>,
95
          bool ExtStorage = false, class GT = GraphTraits<GraphT>>
96
class po_iterator
97
    : public std::iterator<std::forward_iterator_tag, typename GT::NodeRef>,
98
      public po_iterator_storage<SetType, ExtStorage> {
99
  using super = std::iterator<std::forward_iterator_tag, typename GT::NodeRef>;
100
  using NodeRef = typename GT::NodeRef;
101
  using ChildItTy = typename GT::ChildIteratorType;
102
103
  // VisitStack - Used to maintain the ordering.  Top = current block
104
  // First element is basic block pointer, second is the 'next child' to visit
105
  std::vector<std::pair<NodeRef, ChildItTy>> VisitStack;
106
107
29.1M
  po_iterator(NodeRef BB) {
108
29.1M
    this->insertEdge(Optional<NodeRef>(), BB);
109
29.1M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
29.1M
    traverseChild();
111
29.1M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::po_iterator(llvm::MachineBasicBlock*)
Line
Count
Source
107
3.45M
  po_iterator(NodeRef BB) {
108
3.45M
    this->insertEdge(Optional<NodeRef>(), BB);
109
3.45M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
3.45M
    traverseChild();
111
3.45M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::po_iterator(llvm::MachineBasicBlock*)
Line
Count
Source
107
226k
  po_iterator(NodeRef BB) {
108
226k
    this->insertEdge(Optional<NodeRef>(), BB);
109
226k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
226k
    traverseChild();
111
226k
  }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::po_iterator(llvm::MachineBasicBlock const*)
Line
Count
Source
107
1.88M
  po_iterator(NodeRef BB) {
108
1.88M
    this->insertEdge(Optional<NodeRef>(), BB);
109
1.88M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
1.88M
    traverseChild();
111
1.88M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::po_iterator(llvm::BasicBlock*)
Line
Count
Source
107
8.63M
  po_iterator(NodeRef BB) {
108
8.63M
    this->insertEdge(Optional<NodeRef>(), BB);
109
8.63M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
8.63M
    traverseChild();
111
8.63M
  }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::po_iterator(llvm::BasicBlock const*)
Line
Count
Source
107
5.47M
  po_iterator(NodeRef BB) {
108
5.47M
    this->insertEdge(Optional<NodeRef>(), BB);
109
5.47M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
5.47M
    traverseChild();
111
5.47M
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> >::po_iterator(llvm::DomTreeNodeBase<llvm::BasicBlock> const*)
Line
Count
Source
107
6.92M
  po_iterator(NodeRef BB) {
108
6.92M
    this->insertEdge(Optional<NodeRef>(), BB);
109
6.92M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
6.92M
    traverseChild();
111
6.92M
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> >::po_iterator(llvm::DomTreeNodeBase<llvm::BasicBlock>*)
Line
Count
Source
107
22.9k
  po_iterator(NodeRef BB) {
108
22.9k
    this->insertEdge(Optional<NodeRef>(), BB);
109
22.9k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
22.9k
    traverseChild();
111
22.9k
  }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::po_iterator(llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*)
Line
Count
Source
107
269k
  po_iterator(NodeRef BB) {
108
269k
    this->insertEdge(Optional<NodeRef>(), BB);
109
269k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
269k
    traverseChild();
111
269k
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> >::po_iterator(llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*)
Line
Count
Source
107
2.16M
  po_iterator(NodeRef BB) {
108
2.16M
    this->insertEdge(Optional<NodeRef>(), BB);
109
2.16M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
2.16M
    traverseChild();
111
2.16M
  }
llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::Type*, 8u>, false, llvm::GraphTraits<llvm::Type*> >::po_iterator(llvm::Type*)
Line
Count
Source
107
60.3k
  po_iterator(NodeRef BB) {
108
60.3k
    this->insertEdge(Optional<NodeRef>(), BB);
109
60.3k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
60.3k
    traverseChild();
111
60.3k
  }
Unexecuted instantiation: llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> >::po_iterator(llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*)
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::po_iterator(llvm::RegionNode*)
Line
Count
Source
107
10.1k
  po_iterator(NodeRef BB) {
108
10.1k
    this->insertEdge(Optional<NodeRef>(), BB);
109
10.1k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
10.1k
    traverseChild();
111
10.1k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::po_iterator(llvm::BasicBlock*)
Line
Count
Source
107
22.4k
  po_iterator(NodeRef BB) {
108
22.4k
    this->insertEdge(Optional<NodeRef>(), BB);
109
22.4k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
22.4k
    traverseChild();
111
22.4k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::po_iterator(llvm::VPBlockBase*)
Line
Count
Source
107
289
  po_iterator(NodeRef BB) {
108
289
    this->insertEdge(Optional<NodeRef>(), BB);
109
289
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
289
    traverseChild();
111
289
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::po_iterator(llvm::DomTreeNodeBase<llvm::VPBlockBase> const*)
Line
Count
Source
107
6
  po_iterator(NodeRef BB) {
108
6
    this->insertEdge(Optional<NodeRef>(), BB);
109
6
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
6
    traverseChild();
111
6
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::po_iterator(clang::CallGraphNode*)
Line
Count
Source
107
756
  po_iterator(NodeRef BB) {
108
756
    this->insertEdge(Optional<NodeRef>(), BB);
109
756
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
756
    traverseChild();
111
756
  }
llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> >::po_iterator(clang::CallGraphNode const*)
Line
Count
Source
107
1
  po_iterator(NodeRef BB) {
108
1
    this->insertEdge(Optional<NodeRef>(), BB);
109
1
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
1
    traverseChild();
111
1
  }
112
113
29.1M
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::po_iterator()
Line
Count
Source
113
3.45M
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::po_iterator()
Line
Count
Source
113
226k
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::po_iterator()
Line
Count
Source
113
1.88M
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::po_iterator()
Line
Count
Source
113
8.63M
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::po_iterator()
Line
Count
Source
113
5.47M
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> >::po_iterator()
Line
Count
Source
113
6.92M
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> >::po_iterator()
Line
Count
Source
113
22.9k
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::po_iterator()
Line
Count
Source
113
269k
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> >::po_iterator()
Line
Count
Source
113
2.16M
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::Type*, 8u>, false, llvm::GraphTraits<llvm::Type*> >::po_iterator()
Line
Count
Source
113
60.3k
  po_iterator() = default; // End is when stack is empty.
Unexecuted instantiation: llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> >::po_iterator()
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::po_iterator()
Line
Count
Source
113
10.1k
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::po_iterator()
Line
Count
Source
113
22.4k
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::po_iterator()
Line
Count
Source
113
289
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::po_iterator()
Line
Count
Source
113
6
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::po_iterator()
Line
Count
Source
113
756
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> >::po_iterator()
Line
Count
Source
113
1
  po_iterator() = default; // End is when stack is empty.
114
115
  po_iterator(NodeRef BB, SetType &S)
116
633k
      : po_iterator_storage<SetType, ExtStorage>(S) {
117
633k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
118
573k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
119
573k
      traverseChild();
120
573k
    }
121
633k
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::po_iterator(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
116
238k
      : po_iterator_storage<SetType, ExtStorage>(S) {
117
238k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
118
238k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
119
238k
      traverseChild();
120
238k
    }
121
238k
  }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::Inverse<llvm::MachineBasicBlock const*> > >::po_iterator(llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds&)
Line
Count
Source
116
142k
      : po_iterator_storage<SetType, ExtStorage>(S) {
117
142k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
118
136k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
119
136k
      traverseChild();
120
136k
    }
121
142k
  }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::po_iterator(llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds&)
Line
Count
Source
116
142k
      : po_iterator_storage<SetType, ExtStorage>(S) {
117
142k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
118
87.8k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
119
87.8k
      traverseChild();
120
87.8k
    }
121
142k
  }
llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > >::po_iterator(llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>&)
Line
Count
Source
116
142
      : po_iterator_storage<SetType, ExtStorage>(S) {
117
142
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
118
142
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
119
142
      traverseChild();
120
142
    }
121
142
  }
llvm::po_iterator<clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet, true, llvm::GraphTraits<clang::CFG const*> >::po_iterator(clang::CFGBlock const*, clang::PostOrderCFGView::CFGBlockSet&)
Line
Count
Source
116
110k
      : po_iterator_storage<SetType, ExtStorage>(S) {
117
110k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
118
110k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
119
110k
      traverseChild();
120
110k
    }
121
110k
  }
122
123
  po_iterator(SetType &S)
124
633k
      : po_iterator_storage<SetType, ExtStorage>(S) {
125
633k
  } // End is when stack is empty.
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::po_iterator(llvm::LoopBlocksTraversal&)
Line
Count
Source
124
238k
      : po_iterator_storage<SetType, ExtStorage>(S) {
125
238k
  } // End is when stack is empty.
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::Inverse<llvm::MachineBasicBlock const*> > >::po_iterator((anonymous namespace)::LoopBounds&)
Line
Count
Source
124
142k
      : po_iterator_storage<SetType, ExtStorage>(S) {
125
142k
  } // End is when stack is empty.
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::po_iterator((anonymous namespace)::LoopBounds&)
Line
Count
Source
124
142k
      : po_iterator_storage<SetType, ExtStorage>(S) {
125
142k
  } // End is when stack is empty.
llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > >::po_iterator(llvm::SmallPtrSet<llvm::BasicBlock*, 16u>&)
Line
Count
Source
124
142
      : po_iterator_storage<SetType, ExtStorage>(S) {
125
142
  } // End is when stack is empty.
llvm::po_iterator<clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet, true, llvm::GraphTraits<clang::CFG const*> >::po_iterator(clang::PostOrderCFGView::CFGBlockSet&)
Line
Count
Source
124
110k
      : po_iterator_storage<SetType, ExtStorage>(S) {
125
110k
  } // End is when stack is empty.
126
127
182M
  void traverseChild() {
128
394M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
212M
      NodeRef BB = *VisitStack.back().second++;
130
212M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
152M
        // If the block is not visited...
132
152M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
152M
      }
134
212M
    }
135
182M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::traverseChild()
Line
Count
Source
127
19.4M
  void traverseChild() {
128
43.7M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
24.3M
      NodeRef BB = *VisitStack.back().second++;
130
24.3M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
16.0M
        // If the block is not visited...
132
16.0M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
16.0M
      }
134
24.3M
    }
135
19.4M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::traverseChild()
Line
Count
Source
127
945k
  void traverseChild() {
128
2.24M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
1.30M
      NodeRef BB = *VisitStack.back().second++;
130
1.30M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
886k
        // If the block is not visited...
132
886k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
886k
      }
134
1.30M
    }
135
945k
  }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::traverseChild()
Line
Count
Source
127
11.1M
  void traverseChild() {
128
25.1M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
13.9M
      NodeRef BB = *VisitStack.back().second++;
130
13.9M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
9.31M
        // If the block is not visited...
132
9.31M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
9.31M
      }
134
13.9M
    }
135
11.1M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::traverseChild()
Line
Count
Source
127
54.4M
  void traverseChild() {
128
126M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
71.9M
      NodeRef BB = *VisitStack.back().second++;
130
71.9M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
45.8M
        // If the block is not visited...
132
45.8M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
45.8M
      }
134
71.9M
    }
135
54.4M
  }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::traverseChild()
Line
Count
Source
127
38.1M
  void traverseChild() {
128
88.8M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
50.6M
      NodeRef BB = *VisitStack.back().second++;
130
50.6M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
32.6M
        // If the block is not visited...
132
32.6M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
32.6M
      }
134
50.6M
    }
135
38.1M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::traverseChild()
Line
Count
Source
127
477k
  void traverseChild() {
128
1.35M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
877k
      NodeRef BB = *VisitStack.back().second++;
130
877k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
239k
        // If the block is not visited...
132
239k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
239k
      }
134
877k
    }
135
477k
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> >::traverseChild()
Line
Count
Source
127
41.9M
  void traverseChild() {
128
77.0M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
35.0M
      NodeRef BB = *VisitStack.back().second++;
130
35.0M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
35.0M
        // If the block is not visited...
132
35.0M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
35.0M
      }
134
35.0M
    }
135
41.9M
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> >::traverseChild()
Line
Count
Source
127
34.9k
  void traverseChild() {
128
47.0k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
12.0k
      NodeRef BB = *VisitStack.back().second++;
130
12.0k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
12.0k
        // If the block is not visited...
132
12.0k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
12.0k
      }
134
12.0k
    }
135
34.9k
  }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::traverseChild()
Line
Count
Source
127
2.04M
  void traverseChild() {
128
3.82M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
1.77M
      NodeRef BB = *VisitStack.back().second++;
130
1.77M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
1.77M
        // If the block is not visited...
132
1.77M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
1.77M
      }
134
1.77M
    }
135
2.04M
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> >::traverseChild()
Line
Count
Source
127
11.3M
  void traverseChild() {
128
20.6M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
9.22M
      NodeRef BB = *VisitStack.back().second++;
130
9.22M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
9.22M
        // If the block is not visited...
132
9.22M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
9.22M
      }
134
9.22M
    }
135
11.3M
  }
llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::Type*, 8u>, false, llvm::GraphTraits<llvm::Type*> >::traverseChild()
Line
Count
Source
127
148k
  void traverseChild() {
128
300k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
151k
      NodeRef BB = *VisitStack.back().second++;
130
151k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
88.0k
        // If the block is not visited...
132
88.0k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
88.0k
      }
134
151k
    }
135
148k
  }
Unexecuted instantiation: llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> >::traverseChild()
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::Inverse<llvm::MachineBasicBlock const*> > >::traverseChild()
Line
Count
Source
127
586k
  void traverseChild() {
128
1.43M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
846k
      NodeRef BB = *VisitStack.back().second++;
130
846k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
449k
        // If the block is not visited...
132
449k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
449k
      }
134
846k
    }
135
586k
  }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::traverseChild()
Line
Count
Source
127
652k
  void traverseChild() {
128
1.63M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
982k
      NodeRef BB = *VisitStack.back().second++;
130
982k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
564k
        // If the block is not visited...
132
564k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
564k
      }
134
982k
    }
135
652k
  }
llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > >::traverseChild()
Line
Count
Source
127
7.23k
  void traverseChild() {
128
18.6k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
11.3k
      NodeRef BB = *VisitStack.back().second++;
130
11.3k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
7.09k
        // If the block is not visited...
132
7.09k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
7.09k
      }
134
11.3k
    }
135
7.23k
  }
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::traverseChild()
Line
Count
Source
127
28.5k
  void traverseChild() {
128
53.7k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
25.2k
      NodeRef BB = *VisitStack.back().second++;
130
25.2k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
18.3k
        // If the block is not visited...
132
18.3k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
18.3k
      }
134
25.2k
    }
135
28.5k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::traverseChild()
Line
Count
Source
127
24.6k
  void traverseChild() {
128
27.9k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
3.26k
      NodeRef BB = *VisitStack.back().second++;
130
3.26k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
2.23k
        // If the block is not visited...
132
2.23k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
2.23k
      }
134
3.26k
    }
135
24.6k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::traverseChild()
Line
Count
Source
127
891
  void traverseChild() {
128
1.79k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
902
      NodeRef BB = *VisitStack.back().second++;
130
902
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
602
        // If the block is not visited...
132
602
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
602
      }
134
902
    }
135
891
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::traverseChild()
Line
Count
Source
127
30
  void traverseChild() {
128
54
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
24
      NodeRef BB = *VisitStack.back().second++;
130
24
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
24
        // If the block is not visited...
132
24
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
24
      }
134
24
    }
135
30
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::traverseChild()
Line
Count
Source
127
14.9k
  void traverseChild() {
128
33.6k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
18.7k
      NodeRef BB = *VisitStack.back().second++;
130
18.7k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
14.1k
        // If the block is not visited...
132
14.1k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
14.1k
      }
134
18.7k
    }
135
14.9k
  }
llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> >::traverseChild()
Line
Count
Source
127
15
  void traverseChild() {
128
38
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
23
      NodeRef BB = *VisitStack.back().second++;
130
23
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
14
        // If the block is not visited...
132
14
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
14
      }
134
23
    }
135
15
  }
llvm::po_iterator<clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet, true, llvm::GraphTraits<clang::CFG const*> >::traverseChild()
Line
Count
Source
127
875k
  void traverseChild() {
128
1.95M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
1.08M
      NodeRef BB = *VisitStack.back().second++;
130
1.08M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
765k
        // If the block is not visited...
132
765k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
765k
      }
134
1.08M
    }
135
875k
  }
136
137
public:
138
  using pointer = typename super::pointer;
139
140
  // Provide static "constructors"...
141
29.1M
  static po_iterator begin(GraphT G) {
142
29.1M
    return po_iterator(GT::getEntryNode(G));
143
29.1M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::begin(llvm::MachineBasicBlock*)
Line
Count
Source
141
3.45M
  static po_iterator begin(GraphT G) {
142
3.45M
    return po_iterator(GT::getEntryNode(G));
143
3.45M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::begin(llvm::MachineFunction*)
Line
Count
Source
141
226k
  static po_iterator begin(GraphT G) {
142
226k
    return po_iterator(GT::getEntryNode(G));
143
226k
  }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::begin(llvm::MachineBasicBlock const*)
Line
Count
Source
141
1.88M
  static po_iterator begin(GraphT G) {
142
1.88M
    return po_iterator(GT::getEntryNode(G));
143
1.88M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::begin(llvm::BasicBlock*)
Line
Count
Source
141
8.63M
  static po_iterator begin(GraphT G) {
142
8.63M
    return po_iterator(GT::getEntryNode(G));
143
8.63M
  }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::begin(llvm::BasicBlock const*)
Line
Count
Source
141
5.47M
  static po_iterator begin(GraphT G) {
142
5.47M
    return po_iterator(GT::getEntryNode(G));
143
5.47M
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> >::begin(llvm::DomTreeNodeBase<llvm::BasicBlock> const*)
Line
Count
Source
141
6.92M
  static po_iterator begin(GraphT G) {
142
6.92M
    return po_iterator(GT::getEntryNode(G));
143
6.92M
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> >::begin(llvm::DomTreeNodeBase<llvm::BasicBlock>*)
Line
Count
Source
141
22.9k
  static po_iterator begin(GraphT G) {
142
22.9k
    return po_iterator(GT::getEntryNode(G));
143
22.9k
  }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::begin(llvm::MachineDominatorTree*)
Line
Count
Source
141
269k
  static po_iterator begin(GraphT G) {
142
269k
    return po_iterator(GT::getEntryNode(G));
143
269k
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> >::begin(llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*)
Line
Count
Source
141
2.16M
  static po_iterator begin(GraphT G) {
142
2.16M
    return po_iterator(GT::getEntryNode(G));
143
2.16M
  }
llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::Type*, 8u>, false, llvm::GraphTraits<llvm::Type*> >::begin(llvm::Type*)
Line
Count
Source
141
60.3k
  static po_iterator begin(GraphT G) {
142
60.3k
    return po_iterator(GT::getEntryNode(G));
143
60.3k
  }
Unexecuted instantiation: llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> >::begin(llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*)
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::begin(llvm::RegionNode*)
Line
Count
Source
141
10.1k
  static po_iterator begin(GraphT G) {
142
10.1k
    return po_iterator(GT::getEntryNode(G));
143
10.1k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::begin(llvm::Function*)
Line
Count
Source
141
22.4k
  static po_iterator begin(GraphT G) {
142
22.4k
    return po_iterator(GT::getEntryNode(G));
143
22.4k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::begin(llvm::VPBlockBase*)
Line
Count
Source
141
289
  static po_iterator begin(GraphT G) {
142
289
    return po_iterator(GT::getEntryNode(G));
143
289
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::begin(llvm::DomTreeNodeBase<llvm::VPBlockBase> const*)
Line
Count
Source
141
6
  static po_iterator begin(GraphT G) {
142
6
    return po_iterator(GT::getEntryNode(G));
143
6
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::begin(clang::CallGraphNode*)
Line
Count
Source
141
756
  static po_iterator begin(GraphT G) {
142
756
    return po_iterator(GT::getEntryNode(G));
143
756
  }
llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> >::begin(clang::CallGraphNode const*)
Line
Count
Source
141
1
  static po_iterator begin(GraphT G) {
142
1
    return po_iterator(GT::getEntryNode(G));
143
1
  }
144
29.1M
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::end(llvm::MachineBasicBlock*)
Line
Count
Source
144
3.45M
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::end(llvm::MachineFunction*)
Line
Count
Source
144
226k
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::end(llvm::MachineBasicBlock const*)
Line
Count
Source
144
1.88M
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::end(llvm::BasicBlock*)
Line
Count
Source
144
8.63M
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::end(llvm::BasicBlock const*)
Line
Count
Source
144
5.47M
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> >::end(llvm::DomTreeNodeBase<llvm::BasicBlock> const*)
Line
Count
Source
144
6.92M
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> >::end(llvm::DomTreeNodeBase<llvm::BasicBlock>*)
Line
Count
Source
144
22.9k
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::end(llvm::MachineDominatorTree*)
Line
Count
Source
144
269k
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> >::end(llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*)
Line
Count
Source
144
2.16M
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::Type*, 8u>, false, llvm::GraphTraits<llvm::Type*> >::end(llvm::Type*)
Line
Count
Source
144
60.3k
  static po_iterator end(GraphT G) { return po_iterator(); }
Unexecuted instantiation: llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> >::end(llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*)
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::end(llvm::RegionNode*)
Line
Count
Source
144
10.1k
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::end(llvm::Function*)
Line
Count
Source
144
22.4k
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::end(llvm::VPBlockBase*)
Line
Count
Source
144
289
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::end(llvm::DomTreeNodeBase<llvm::VPBlockBase> const*)
Line
Count
Source
144
6
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::end(clang::CallGraphNode*)
Line
Count
Source
144
756
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> >::end(clang::CallGraphNode const*)
Line
Count
Source
144
1
  static po_iterator end(GraphT G) { return po_iterator(); }
145
146
633k
  static po_iterator begin(GraphT G, SetType &S) {
147
633k
    return po_iterator(GT::getEntryNode(G), S);
148
633k
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::begin(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
146
238k
  static po_iterator begin(GraphT G, SetType &S) {
147
238k
    return po_iterator(GT::getEntryNode(G), S);
148
238k
  }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::Inverse<llvm::MachineBasicBlock const*> > >::begin(llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds&)
Line
Count
Source
146
142k
  static po_iterator begin(GraphT G, SetType &S) {
147
142k
    return po_iterator(GT::getEntryNode(G), S);
148
142k
  }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::begin(llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds&)
Line
Count
Source
146
142k
  static po_iterator begin(GraphT G, SetType &S) {
147
142k
    return po_iterator(GT::getEntryNode(G), S);
148
142k
  }
llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > >::begin(llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>&)
Line
Count
Source
146
142
  static po_iterator begin(GraphT G, SetType &S) {
147
142
    return po_iterator(GT::getEntryNode(G), S);
148
142
  }
llvm::po_iterator<clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet, true, llvm::GraphTraits<clang::CFG const*> >::begin(clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet&)
Line
Count
Source
146
110k
  static po_iterator begin(GraphT G, SetType &S) {
147
110k
    return po_iterator(GT::getEntryNode(G), S);
148
110k
  }
149
633k
  static po_iterator end(GraphT G, SetType &S) { return po_iterator(S); }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::end(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
149
238k
  static po_iterator end(GraphT G, SetType &S) { return po_iterator(S); }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::Inverse<llvm::MachineBasicBlock const*> > >::end(llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds&)
Line
Count
Source
149
142k
  static po_iterator end(GraphT G, SetType &S) { return po_iterator(S); }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::end(llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds&)
Line
Count
Source
149
142k
  static po_iterator end(GraphT G, SetType &S) { return po_iterator(S); }
llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > >::end(llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>&)
Line
Count
Source
149
142
  static po_iterator end(GraphT G, SetType &S) { return po_iterator(S); }
llvm::po_iterator<clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet, true, llvm::GraphTraits<clang::CFG const*> >::end(clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet&)
Line
Count
Source
149
110k
  static po_iterator end(GraphT G, SetType &S) { return po_iterator(S); }
150
151
212M
  bool operator==(const po_iterator &x) const {
152
212M
    return VisitStack == x.VisitStack;
153
212M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::operator==(llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> > const&) const
Line
Count
Source
151
22.9M
  bool operator==(const po_iterator &x) const {
152
22.9M
    return VisitStack == x.VisitStack;
153
22.9M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::operator==(llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> > const&) const
Line
Count
Source
151
1.14M
  bool operator==(const po_iterator &x) const {
152
1.14M
    return VisitStack == x.VisitStack;
153
1.14M
  }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::operator==(llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> > const&) const
Line
Count
Source
151
13.0M
  bool operator==(const po_iterator &x) const {
152
13.0M
    return VisitStack == x.VisitStack;
153
13.0M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::operator==(llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> > const&) const
Line
Count
Source
151
63.0M
  bool operator==(const po_iterator &x) const {
152
63.0M
    return VisitStack == x.VisitStack;
153
63.0M
  }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::operator==(llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> > const&) const
Line
Count
Source
151
43.6M
  bool operator==(const po_iterator &x) const {
152
43.6M
    return VisitStack == x.VisitStack;
153
43.6M
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> >::operator==(llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> > const&) const
Line
Count
Source
151
48.9M
  bool operator==(const po_iterator &x) const {
152
48.9M
    return VisitStack == x.VisitStack;
153
48.9M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::operator==(llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> > const&) const
Line
Count
Source
151
716k
  bool operator==(const po_iterator &x) const {
152
716k
    return VisitStack == x.VisitStack;
153
716k
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> >::operator==(llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> > const&) const
Line
Count
Source
151
57.8k
  bool operator==(const po_iterator &x) const {
152
57.8k
    return VisitStack == x.VisitStack;
153
57.8k
  }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::operator==(llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> > const&) const
Line
Count
Source
151
2.31M
  bool operator==(const po_iterator &x) const {
152
2.31M
    return VisitStack == x.VisitStack;
153
2.31M
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> >::operator==(llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> > const&) const
Line
Count
Source
151
13.5M
  bool operator==(const po_iterator &x) const {
152
13.5M
    return VisitStack == x.VisitStack;
153
13.5M
  }
llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::Type*, 8u>, false, llvm::GraphTraits<llvm::Type*> >::operator==(llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::Type*, 8u>, false, llvm::GraphTraits<llvm::Type*> > const&) const
Line
Count
Source
151
208k
  bool operator==(const po_iterator &x) const {
152
208k
    return VisitStack == x.VisitStack;
153
208k
  }
Unexecuted instantiation: llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> >::operator==(llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> > const&) const
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::Inverse<llvm::MachineBasicBlock const*> > >::operator==(llvm::po_iterator<llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::Inverse<llvm::MachineBasicBlock const*> > > const&) const
Line
Count
Source
151
728k
  bool operator==(const po_iterator &x) const {
152
728k
    return VisitStack == x.VisitStack;
153
728k
  }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::operator==(llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> > const&) const
Line
Count
Source
151
794k
  bool operator==(const po_iterator &x) const {
152
794k
    return VisitStack == x.VisitStack;
153
794k
  }
llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > >::operator==(llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > > const&) const
Line
Count
Source
151
7.37k
  bool operator==(const po_iterator &x) const {
152
7.37k
    return VisitStack == x.VisitStack;
153
7.37k
  }
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::operator==(llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> > const&) const
Line
Count
Source
151
38.6k
  bool operator==(const po_iterator &x) const {
152
38.6k
    return VisitStack == x.VisitStack;
153
38.6k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::operator==(llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> > const&) const
Line
Count
Source
151
47.0k
  bool operator==(const po_iterator &x) const {
152
47.0k
    return VisitStack == x.VisitStack;
153
47.0k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::operator==(llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> > const&) const
Line
Count
Source
151
1.18k
  bool operator==(const po_iterator &x) const {
152
1.18k
    return VisitStack == x.VisitStack;
153
1.18k
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::operator==(llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> > const&) const
Line
Count
Source
151
36
  bool operator==(const po_iterator &x) const {
152
36
    return VisitStack == x.VisitStack;
153
36
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::operator==(llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> > const&) const
Line
Count
Source
151
15.6k
  bool operator==(const po_iterator &x) const {
152
15.6k
    return VisitStack == x.VisitStack;
153
15.6k
  }
llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> >::operator==(llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> > const&) const
Line
Count
Source
151
16
  bool operator==(const po_iterator &x) const {
152
16
    return VisitStack == x.VisitStack;
153
16
  }
llvm::po_iterator<clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet, true, llvm::GraphTraits<clang::CFG const*> >::operator==(llvm::po_iterator<clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet, true, llvm::GraphTraits<clang::CFG const*> > const&) const
Line
Count
Source
151
986k
  bool operator==(const po_iterator &x) const {
152
986k
    return VisitStack == x.VisitStack;
153
986k
  }
154
212M
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::operator!=(llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> > const&) const
Line
Count
Source
154
22.9M
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::operator!=(llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> > const&) const
Line
Count
Source
154
1.14M
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::operator!=(llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> > const&) const
Line
Count
Source
154
13.0M
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::operator!=(llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> > const&) const
Line
Count
Source
154
63.0M
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::operator!=(llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> > const&) const
Line
Count
Source
154
43.6M
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> >::operator!=(llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> > const&) const
Line
Count
Source
154
48.9M
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::operator!=(llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> > const&) const
Line
Count
Source
154
716k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> >::operator!=(llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> > const&) const
Line
Count
Source
154
57.8k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::operator!=(llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> > const&) const
Line
Count
Source
154
2.31M
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> >::operator!=(llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> > const&) const
Line
Count
Source
154
13.5M
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::Type*, 8u>, false, llvm::GraphTraits<llvm::Type*> >::operator!=(llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::Type*, 8u>, false, llvm::GraphTraits<llvm::Type*> > const&) const
Line
Count
Source
154
208k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
Unexecuted instantiation: llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> >::operator!=(llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> > const&) const
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::Inverse<llvm::MachineBasicBlock const*> > >::operator!=(llvm::po_iterator<llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::Inverse<llvm::MachineBasicBlock const*> > > const&) const
Line
Count
Source
154
728k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::operator!=(llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> > const&) const
Line
Count
Source
154
794k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > >::operator!=(llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > > const&) const
Line
Count
Source
154
7.37k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::operator!=(llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> > const&) const
Line
Count
Source
154
38.6k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::operator!=(llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> > const&) const
Line
Count
Source
154
47.0k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::operator!=(llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> > const&) const
Line
Count
Source
154
1.18k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::operator!=(llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> > const&) const
Line
Count
Source
154
36
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::operator!=(llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> > const&) const
Line
Count
Source
154
15.6k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> >::operator!=(llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> > const&) const
Line
Count
Source
154
16
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet, true, llvm::GraphTraits<clang::CFG const*> >::operator!=(llvm::po_iterator<clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet, true, llvm::GraphTraits<clang::CFG const*> > const&) const
Line
Count
Source
154
986k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
155
156
182M
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::operator*() const
Line
Count
Source
156
19.4M
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::operator*() const
Line
Count
Source
156
945k
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::operator*() const
Line
Count
Source
156
11.1M
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::operator*() const
Line
Count
Source
156
54.4M
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::operator*() const
Line
Count
Source
156
38.1M
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::operator*() const
Line
Count
Source
156
15.6k
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> >::operator*() const
Line
Count
Source
156
41.9M
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> >::operator*() const
Line
Count
Source
156
34.9k
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::operator*() const
Line
Count
Source
156
2.04M
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> >::operator*() const
Line
Count
Source
156
11.3M
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::Type*, 8u>, false, llvm::GraphTraits<llvm::Type*> >::operator*() const
Line
Count
Source
156
148k
  const NodeRef &operator*() const { return VisitStack.back().first; }
Unexecuted instantiation: llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> >::operator*() const
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::Inverse<llvm::MachineBasicBlock const*> > >::operator*() const
Line
Count
Source
156
586k
  const NodeRef &operator*() const { return VisitStack.back().first; }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::operator*() const
Line
Count
Source
156
652k
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > >::operator*() const
Line
Count
Source
156
7.23k
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::operator*() const
Line
Count
Source
156
28.5k
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::operator*() const
Line
Count
Source
156
24.6k
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::operator*() const
Line
Count
Source
156
891
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::operator*() const
Line
Count
Source
156
30
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::operator*() const
Line
Count
Source
156
14.9k
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> >::operator*() const
Line
Count
Source
156
15
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet, true, llvm::GraphTraits<clang::CFG const*> >::operator*() const
Line
Count
Source
156
1.75M
  const NodeRef &operator*() const { return VisitStack.back().first; }
157
158
  // This is a nonstandard operator-> that dereferences the pointer an extra
159
  // time... so that you can actually call methods ON the BasicBlock, because
160
  // the contained type is a pointer.  This allows BBIt->getTerminator() f.e.
161
  //
162
260
  NodeRef operator->() const { return **this; }
163
164
182M
  po_iterator &operator++() { // Preincrement
165
182M
    this->finishPostorder(VisitStack.back().first);
166
182M
    VisitStack.pop_back();
167
182M
    if (!VisitStack.empty())
168
152M
      traverseChild();
169
182M
    return *this;
170
182M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::operator++()
Line
Count
Source
164
19.4M
  po_iterator &operator++() { // Preincrement
165
19.4M
    this->finishPostorder(VisitStack.back().first);
166
19.4M
    VisitStack.pop_back();
167
19.4M
    if (!VisitStack.empty())
168
16.0M
      traverseChild();
169
19.4M
    return *this;
170
19.4M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::operator++()
Line
Count
Source
164
916k
  po_iterator &operator++() { // Preincrement
165
916k
    this->finishPostorder(VisitStack.back().first);
166
916k
    VisitStack.pop_back();
167
916k
    if (!VisitStack.empty())
168
719k
      traverseChild();
169
916k
    return *this;
170
916k
  }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::operator++()
Line
Count
Source
164
11.1M
  po_iterator &operator++() { // Preincrement
165
11.1M
    this->finishPostorder(VisitStack.back().first);
166
11.1M
    VisitStack.pop_back();
167
11.1M
    if (!VisitStack.empty())
168
9.31M
      traverseChild();
169
11.1M
    return *this;
170
11.1M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::operator++()
Line
Count
Source
164
54.4M
  po_iterator &operator++() { // Preincrement
165
54.4M
    this->finishPostorder(VisitStack.back().first);
166
54.4M
    VisitStack.pop_back();
167
54.4M
    if (!VisitStack.empty())
168
45.8M
      traverseChild();
169
54.4M
    return *this;
170
54.4M
  }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::operator++()
Line
Count
Source
164
38.1M
  po_iterator &operator++() { // Preincrement
165
38.1M
    this->finishPostorder(VisitStack.back().first);
166
38.1M
    VisitStack.pop_back();
167
38.1M
    if (!VisitStack.empty())
168
32.6M
      traverseChild();
169
38.1M
    return *this;
170
38.1M
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> >::operator++()
Line
Count
Source
164
41.9M
  po_iterator &operator++() { // Preincrement
165
41.9M
    this->finishPostorder(VisitStack.back().first);
166
41.9M
    VisitStack.pop_back();
167
41.9M
    if (!VisitStack.empty())
168
35.0M
      traverseChild();
169
41.9M
    return *this;
170
41.9M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::operator++()
Line
Count
Source
164
477k
  po_iterator &operator++() { // Preincrement
165
477k
    this->finishPostorder(VisitStack.back().first);
166
477k
    VisitStack.pop_back();
167
477k
    if (!VisitStack.empty())
168
239k
      traverseChild();
169
477k
    return *this;
170
477k
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::BasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> >::operator++()
Line
Count
Source
164
34.9k
  po_iterator &operator++() { // Preincrement
165
34.9k
    this->finishPostorder(VisitStack.back().first);
166
34.9k
    VisitStack.pop_back();
167
34.9k
    if (!VisitStack.empty())
168
12.0k
      traverseChild();
169
34.9k
    return *this;
170
34.9k
  }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::operator++()
Line
Count
Source
164
2.04M
  po_iterator &operator++() { // Preincrement
165
2.04M
    this->finishPostorder(VisitStack.back().first);
166
2.04M
    VisitStack.pop_back();
167
2.04M
    if (!VisitStack.empty())
168
1.77M
      traverseChild();
169
2.04M
    return *this;
170
2.04M
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> >::operator++()
Line
Count
Source
164
11.3M
  po_iterator &operator++() { // Preincrement
165
11.3M
    this->finishPostorder(VisitStack.back().first);
166
11.3M
    VisitStack.pop_back();
167
11.3M
    if (!VisitStack.empty())
168
9.22M
      traverseChild();
169
11.3M
    return *this;
170
11.3M
  }
llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::Type*, 8u>, false, llvm::GraphTraits<llvm::Type*> >::operator++()
Line
Count
Source
164
148k
  po_iterator &operator++() { // Preincrement
165
148k
    this->finishPostorder(VisitStack.back().first);
166
148k
    VisitStack.pop_back();
167
148k
    if (!VisitStack.empty())
168
88.0k
      traverseChild();
169
148k
    return *this;
170
148k
  }
Unexecuted instantiation: llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> >::operator++()
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::Inverse<llvm::MachineBasicBlock const*> > >::operator++()
Line
Count
Source
164
586k
  po_iterator &operator++() { // Preincrement
165
586k
    this->finishPostorder(VisitStack.back().first);
166
586k
    VisitStack.pop_back();
167
586k
    if (!VisitStack.empty())
168
449k
      traverseChild();
169
586k
    return *this;
170
586k
  }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::operator++()
Line
Count
Source
164
652k
  po_iterator &operator++() { // Preincrement
165
652k
    this->finishPostorder(VisitStack.back().first);
166
652k
    VisitStack.pop_back();
167
652k
    if (!VisitStack.empty())
168
564k
      traverseChild();
169
652k
    return *this;
170
652k
  }
llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > >::operator++()
Line
Count
Source
164
7.23k
  po_iterator &operator++() { // Preincrement
165
7.23k
    this->finishPostorder(VisitStack.back().first);
166
7.23k
    VisitStack.pop_back();
167
7.23k
    if (!VisitStack.empty())
168
7.09k
      traverseChild();
169
7.23k
    return *this;
170
7.23k
  }
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::operator++()
Line
Count
Source
164
28.5k
  po_iterator &operator++() { // Preincrement
165
28.5k
    this->finishPostorder(VisitStack.back().first);
166
28.5k
    VisitStack.pop_back();
167
28.5k
    if (!VisitStack.empty())
168
18.3k
      traverseChild();
169
28.5k
    return *this;
170
28.5k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::operator++()
Line
Count
Source
164
24.6k
  po_iterator &operator++() { // Preincrement
165
24.6k
    this->finishPostorder(VisitStack.back().first);
166
24.6k
    VisitStack.pop_back();
167
24.6k
    if (!VisitStack.empty())
168
2.23k
      traverseChild();
169
24.6k
    return *this;
170
24.6k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::operator++()
Line
Count
Source
164
891
  po_iterator &operator++() { // Preincrement
165
891
    this->finishPostorder(VisitStack.back().first);
166
891
    VisitStack.pop_back();
167
891
    if (!VisitStack.empty())
168
602
      traverseChild();
169
891
    return *this;
170
891
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::operator++()
Line
Count
Source
164
30
  po_iterator &operator++() { // Preincrement
165
30
    this->finishPostorder(VisitStack.back().first);
166
30
    VisitStack.pop_back();
167
30
    if (!VisitStack.empty())
168
24
      traverseChild();
169
30
    return *this;
170
30
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::operator++()
Line
Count
Source
164
14.9k
  po_iterator &operator++() { // Preincrement
165
14.9k
    this->finishPostorder(VisitStack.back().first);
166
14.9k
    VisitStack.pop_back();
167
14.9k
    if (!VisitStack.empty())
168
14.1k
      traverseChild();
169
14.9k
    return *this;
170
14.9k
  }
llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> >::operator++()
Line
Count
Source
164
15
  po_iterator &operator++() { // Preincrement
165
15
    this->finishPostorder(VisitStack.back().first);
166
15
    VisitStack.pop_back();
167
15
    if (!VisitStack.empty())
168
14
      traverseChild();
169
15
    return *this;
170
15
  }
llvm::po_iterator<clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet, true, llvm::GraphTraits<clang::CFG const*> >::operator++()
Line
Count
Source
164
875k
  po_iterator &operator++() { // Preincrement
165
875k
    this->finishPostorder(VisitStack.back().first);
166
875k
    VisitStack.pop_back();
167
875k
    if (!VisitStack.empty())
168
765k
      traverseChild();
169
875k
    return *this;
170
875k
  }
171
172
  po_iterator operator++(int) { // Postincrement
173
    po_iterator tmp = *this;
174
    ++*this;
175
    return tmp;
176
  }
177
};
178
179
// Provide global constructors that automatically figure out correct types...
180
//
181
template <class T>
182
29.1M
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::MachineBasicBlock*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> > llvm::po_begin<llvm::MachineBasicBlock*>(llvm::MachineBasicBlock* const&)
Line
Count
Source
182
3.45M
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::MachineFunction*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> > llvm::po_begin<llvm::MachineFunction*>(llvm::MachineFunction* const&)
Line
Count
Source
182
226k
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::MachineBasicBlock const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> > llvm::po_begin<llvm::MachineBasicBlock const*>(llvm::MachineBasicBlock const* const&)
Line
Count
Source
182
1.88M
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::BasicBlock*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> > llvm::po_begin<llvm::BasicBlock*>(llvm::BasicBlock* const&)
Line
Count
Source
182
8.63M
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::BasicBlock const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> > llvm::po_begin<llvm::BasicBlock const*>(llvm::BasicBlock const* const&)
Line
Count
Source
182
5.47M
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> > llvm::po_begin<llvm::DomTreeNodeBase<llvm::BasicBlock> const*>(llvm::DomTreeNodeBase<llvm::BasicBlock> const* const&)
Line
Count
Source
182
6.92M
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> > llvm::po_begin<llvm::DomTreeNodeBase<llvm::BasicBlock>*>(llvm::DomTreeNodeBase<llvm::BasicBlock>* const&)
Line
Count
Source
182
22.9k
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::MachineDominatorTree*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> > llvm::po_begin<llvm::MachineDominatorTree*>(llvm::MachineDominatorTree* const&)
Line
Count
Source
182
269k
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> > llvm::po_begin<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*>(llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const* const&)
Line
Count
Source
182
2.16M
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::Type*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::Type*> > llvm::po_begin<llvm::Type*>(llvm::Type* const&)
Line
Count
Source
182
60.3k
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
Unexecuted instantiation: llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> > llvm::po_begin<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*>(llvm::DomTreeNodeBase<llvm::MachineBasicBlock>* const&)
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::RegionNode*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> > llvm::po_begin<llvm::RegionNode*>(llvm::RegionNode* const&)
Line
Count
Source
182
10.1k
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::Function*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::Function*> > llvm::po_begin<llvm::Function*>(llvm::Function* const&)
Line
Count
Source
182
22.4k
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::VPBlockBase*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> > llvm::po_begin<llvm::VPBlockBase*>(llvm::VPBlockBase* const&)
Line
Count
Source
182
289
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> > llvm::po_begin<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>(llvm::DomTreeNodeBase<llvm::VPBlockBase> const* const&)
Line
Count
Source
182
6
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<llvm::GraphTraits<clang::CallGraphNode*>::NodeRef, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> > llvm::po_begin<clang::CallGraphNode*>(clang::CallGraphNode* const&)
Line
Count
Source
182
756
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<llvm::GraphTraits<clang::CallGraphNode const*>::NodeRef, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> > llvm::po_begin<clang::CallGraphNode const*>(clang::CallGraphNode const* const&)
Line
Count
Source
182
1
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
183
template <class T>
184
29.1M
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::MachineBasicBlock*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> > llvm::po_end<llvm::MachineBasicBlock*>(llvm::MachineBasicBlock* const&)
Line
Count
Source
184
3.45M
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::MachineFunction*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> > llvm::po_end<llvm::MachineFunction*>(llvm::MachineFunction* const&)
Line
Count
Source
184
226k
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::MachineBasicBlock const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> > llvm::po_end<llvm::MachineBasicBlock const*>(llvm::MachineBasicBlock const* const&)
Line
Count
Source
184
1.88M
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::BasicBlock*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> > llvm::po_end<llvm::BasicBlock*>(llvm::BasicBlock* const&)
Line
Count
Source
184
8.63M
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::BasicBlock const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> > llvm::po_end<llvm::BasicBlock const*>(llvm::BasicBlock const* const&)
Line
Count
Source
184
5.47M
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> > llvm::po_end<llvm::DomTreeNodeBase<llvm::BasicBlock> const*>(llvm::DomTreeNodeBase<llvm::BasicBlock> const* const&)
Line
Count
Source
184
6.92M
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> > llvm::po_end<llvm::DomTreeNodeBase<llvm::BasicBlock>*>(llvm::DomTreeNodeBase<llvm::BasicBlock>* const&)
Line
Count
Source
184
22.9k
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::MachineDominatorTree*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> > llvm::po_end<llvm::MachineDominatorTree*>(llvm::MachineDominatorTree* const&)
Line
Count
Source
184
269k
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> > llvm::po_end<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*>(llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const* const&)
Line
Count
Source
184
2.16M
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::Type*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::Type*> > llvm::po_end<llvm::Type*>(llvm::Type* const&)
Line
Count
Source
184
60.3k
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
Unexecuted instantiation: llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> > llvm::po_end<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*>(llvm::DomTreeNodeBase<llvm::MachineBasicBlock>* const&)
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::RegionNode*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> > llvm::po_end<llvm::RegionNode*>(llvm::RegionNode* const&)
Line
Count
Source
184
10.1k
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::Function*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::Function*> > llvm::po_end<llvm::Function*>(llvm::Function* const&)
Line
Count
Source
184
22.4k
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::VPBlockBase*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> > llvm::po_end<llvm::VPBlockBase*>(llvm::VPBlockBase* const&)
Line
Count
Source
184
289
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> > llvm::po_end<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>(llvm::DomTreeNodeBase<llvm::VPBlockBase> const* const&)
Line
Count
Source
184
6
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<llvm::GraphTraits<clang::CallGraphNode*>::NodeRef, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> > llvm::po_end<clang::CallGraphNode*>(clang::CallGraphNode* const&)
Line
Count
Source
184
756
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<llvm::GraphTraits<clang::CallGraphNode const*>::NodeRef, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> > llvm::po_end<clang::CallGraphNode const*>(clang::CallGraphNode const* const&)
Line
Count
Source
184
1
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
185
186
21.7M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
21.7M
  return make_range(po_begin(G), po_end(G));
188
21.7M
}
llvm::iterator_range<llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::MachineBasicBlock*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> > > llvm::post_order<llvm::MachineBasicBlock*>(llvm::MachineBasicBlock* const&)
Line
Count
Source
186
2.16M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
2.16M
  return make_range(po_begin(G), po_end(G));
188
2.16M
}
llvm::iterator_range<llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::MachineFunction*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> > > llvm::post_order<llvm::MachineFunction*>(llvm::MachineFunction* const&)
Line
Count
Source
186
226k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
226k
  return make_range(po_begin(G), po_end(G));
188
226k
}
llvm::iterator_range<llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::BasicBlock const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> > > llvm::post_order<llvm::BasicBlock const*>(llvm::BasicBlock const* const&)
Line
Count
Source
186
2.71M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
2.71M
  return make_range(po_begin(G), po_end(G));
188
2.71M
}
llvm::iterator_range<llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock> const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock> const*> > > llvm::post_order<llvm::DomTreeNodeBase<llvm::BasicBlock> const*>(llvm::DomTreeNodeBase<llvm::BasicBlock> const* const&)
Line
Count
Source
186
6.92M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
6.92M
  return make_range(po_begin(G), po_end(G));
188
6.92M
}
llvm::iterator_range<llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::BasicBlock*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> > > llvm::post_order<llvm::BasicBlock*>(llvm::BasicBlock* const&)
Line
Count
Source
186
7.20M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
7.20M
  return make_range(po_begin(G), po_end(G));
188
7.20M
}
llvm::iterator_range<llvm::po_iterator<llvm::DomTreeNodeBase<llvm::BasicBlock>*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::BasicBlock>*> > > llvm::post_order<llvm::DomTreeNodeBase<llvm::BasicBlock>*>(llvm::DomTreeNodeBase<llvm::BasicBlock>* const&)
Line
Count
Source
186
22.8k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
22.8k
  return make_range(po_begin(G), po_end(G));
188
22.8k
}
llvm::iterator_range<llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::MachineDominatorTree*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> > > llvm::post_order<llvm::MachineDominatorTree*>(llvm::MachineDominatorTree* const&)
Line
Count
Source
186
269k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
269k
  return make_range(po_begin(G), po_end(G));
188
269k
}
llvm::iterator_range<llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*> > > llvm::post_order<llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const*>(llvm::DomTreeNodeBase<llvm::MachineBasicBlock> const* const&)
Line
Count
Source
186
2.16M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
2.16M
  return make_range(po_begin(G), po_end(G));
188
2.16M
}
llvm::iterator_range<llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::Type*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::Type*> > > llvm::post_order<llvm::Type*>(llvm::Type* const&)
Line
Count
Source
186
60.3k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
60.3k
  return make_range(po_begin(G), po_end(G));
188
60.3k
}
Unexecuted instantiation: llvm::iterator_range<llvm::po_iterator<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*> > > llvm::post_order<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*>(llvm::DomTreeNodeBase<llvm::MachineBasicBlock>* const&)
llvm::iterator_range<llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::Function*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::Function*> > > llvm::post_order<llvm::Function*>(llvm::Function* const&)
Line
Count
Source
186
22.4k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
22.4k
  return make_range(po_begin(G), po_end(G));
188
22.4k
}
llvm::iterator_range<llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> > > llvm::post_order<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>(llvm::DomTreeNodeBase<llvm::VPBlockBase> const* const&)
Line
Count
Source
186
6
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
6
  return make_range(po_begin(G), po_end(G));
188
6
}
llvm::iterator_range<llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::VPBlockBase*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> > > llvm::post_order<llvm::VPBlockBase*>(llvm::VPBlockBase* const&)
Line
Count
Source
186
6
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
6
  return make_range(po_begin(G), po_end(G));
188
6
}
189
190
// Provide global definitions of external postorder iterators...
191
template <class T, class SetType = std::set<typename GraphTraits<T>::NodeRef>>
192
struct po_ext_iterator : public po_iterator<T, SetType, true> {
193
  po_ext_iterator(const po_iterator<T, SetType, true> &V) :
194
761k
  po_iterator<T, SetType, true>(V) {}
llvm::po_ext_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal>::po_ext_iterator(llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> > const&)
Line
Count
Source
194
476k
  po_iterator<T, SetType, true>(V) {}
MachineTraceMetrics.cpp:llvm::po_ext_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds>::po_ext_iterator(llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> > const&)
Line
Count
Source
194
284k
  po_iterator<T, SetType, true>(V) {}
195
};
196
197
template<class T, class SetType>
198
380k
po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) {
199
380k
  return po_ext_iterator<T, SetType>::begin(G, S);
200
380k
}
llvm::po_ext_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal> llvm::po_ext_begin<llvm::BasicBlock*, llvm::LoopBlocksTraversal>(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
198
238k
po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) {
199
238k
  return po_ext_iterator<T, SetType>::begin(G, S);
200
238k
}
MachineTraceMetrics.cpp:llvm::po_ext_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds> llvm::po_ext_begin<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds>(llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds&)
Line
Count
Source
198
142k
po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) {
199
142k
  return po_ext_iterator<T, SetType>::begin(G, S);
200
142k
}
201
202
template<class T, class SetType>
203
380k
po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) {
204
380k
  return po_ext_iterator<T, SetType>::end(G, S);
205
380k
}
llvm::po_ext_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal> llvm::po_ext_end<llvm::BasicBlock*, llvm::LoopBlocksTraversal>(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
203
238k
po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) {
204
238k
  return po_ext_iterator<T, SetType>::end(G, S);
205
238k
}
MachineTraceMetrics.cpp:llvm::po_ext_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds> llvm::po_ext_end<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds>(llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds&)
Line
Count
Source
203
142k
po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) {
204
142k
  return po_ext_iterator<T, SetType>::end(G, S);
205
142k
}
206
207
template <class T, class SetType>
208
142k
iterator_range<po_ext_iterator<T, SetType>> post_order_ext(const T &G, SetType &S) {
209
142k
  return make_range(po_ext_begin(G, S), po_ext_end(G, S));
210
142k
}
211
212
// Provide global definitions of inverse post order iterators...
213
template <class T, class SetType = std::set<typename GraphTraits<T>::NodeRef>,
214
          bool External = false>
215
struct ipo_iterator : public po_iterator<Inverse<T>, SetType, External> {
216
  ipo_iterator(const po_iterator<Inverse<T>, SetType, External> &V) :
217
284k
     po_iterator<Inverse<T>, SetType, External> (V) {}
MachineTraceMetrics.cpp:llvm::ipo_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true>::ipo_iterator(llvm::po_iterator<llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::Inverse<llvm::MachineBasicBlock const*> > > const&)
Line
Count
Source
217
284k
     po_iterator<Inverse<T>, SetType, External> (V) {}
llvm::ipo_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true>::ipo_iterator(llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > > const&)
Line
Count
Source
217
284
     po_iterator<Inverse<T>, SetType, External> (V) {}
218
};
219
220
template <class T>
221
ipo_iterator<T> ipo_begin(const T &G) {
222
  return ipo_iterator<T>::begin(G);
223
}
224
225
template <class T>
226
ipo_iterator<T> ipo_end(const T &G){
227
  return ipo_iterator<T>::end(G);
228
}
229
230
template <class T>
231
iterator_range<ipo_iterator<T>> inverse_post_order(const T &G) {
232
  return make_range(ipo_begin(G), ipo_end(G));
233
}
234
235
// Provide global definitions of external inverse postorder iterators...
236
template <class T, class SetType = std::set<typename GraphTraits<T>::NodeRef>>
237
struct ipo_ext_iterator : public ipo_iterator<T, SetType, true> {
238
  ipo_ext_iterator(const ipo_iterator<T, SetType, true> &V) :
239
    ipo_iterator<T, SetType, true>(V) {}
240
  ipo_ext_iterator(const po_iterator<Inverse<T>, SetType, true> &V) :
241
284k
    ipo_iterator<T, SetType, true>(V) {}
MachineTraceMetrics.cpp:llvm::ipo_ext_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds>::ipo_ext_iterator(llvm::po_iterator<llvm::Inverse<llvm::MachineBasicBlock const*>, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::Inverse<llvm::MachineBasicBlock const*> > > const&)
Line
Count
Source
241
284k
    ipo_iterator<T, SetType, true>(V) {}
llvm::ipo_ext_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 16u> >::ipo_ext_iterator(llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > > const&)
Line
Count
Source
241
284
    ipo_iterator<T, SetType, true>(V) {}
242
};
243
244
template <class T, class SetType>
245
142k
ipo_ext_iterator<T, SetType> ipo_ext_begin(const T &G, SetType &S) {
246
142k
  return ipo_ext_iterator<T, SetType>::begin(G, S);
247
142k
}
MachineTraceMetrics.cpp:llvm::ipo_ext_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds> llvm::ipo_ext_begin<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds>(llvm::MachineBasicBlock const* const&, (anonymous namespace)::LoopBounds&)
Line
Count
Source
245
142k
ipo_ext_iterator<T, SetType> ipo_ext_begin(const T &G, SetType &S) {
246
142k
  return ipo_ext_iterator<T, SetType>::begin(G, S);
247
142k
}
llvm::ipo_ext_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 16u> > llvm::ipo_ext_begin<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 16u> >(llvm::BasicBlock* const&, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>&)
Line
Count
Source
245
142
ipo_ext_iterator<T, SetType> ipo_ext_begin(const T &G, SetType &S) {
246
142
  return ipo_ext_iterator<T, SetType>::begin(G, S);
247
142
}
248
249
template <class T, class SetType>
250
142k
ipo_ext_iterator<T, SetType> ipo_ext_end(const T &G, SetType &S) {
251
142k
  return ipo_ext_iterator<T, SetType>::end(G, S);
252
142k
}
MachineTraceMetrics.cpp:llvm::ipo_ext_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds> llvm::ipo_ext_end<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds>(llvm::MachineBasicBlock const* const&, (anonymous namespace)::LoopBounds&)
Line
Count
Source
250
142k
ipo_ext_iterator<T, SetType> ipo_ext_end(const T &G, SetType &S) {
251
142k
  return ipo_ext_iterator<T, SetType>::end(G, S);
252
142k
}
llvm::ipo_ext_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 16u> > llvm::ipo_ext_end<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 16u> >(llvm::BasicBlock* const&, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>&)
Line
Count
Source
250
142
ipo_ext_iterator<T, SetType> ipo_ext_end(const T &G, SetType &S) {
251
142
  return ipo_ext_iterator<T, SetType>::end(G, S);
252
142
}
253
254
template <class T, class SetType>
255
iterator_range<ipo_ext_iterator<T, SetType>>
256
142k
inverse_post_order_ext(const T &G, SetType &S) {
257
142k
  return make_range(ipo_ext_begin(G, S), ipo_ext_end(G, S));
258
142k
}
MachineTraceMetrics.cpp:llvm::iterator_range<llvm::ipo_ext_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds> > llvm::inverse_post_order_ext<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds>(llvm::MachineBasicBlock const* const&, (anonymous namespace)::LoopBounds&)
Line
Count
Source
256
142k
inverse_post_order_ext(const T &G, SetType &S) {
257
142k
  return make_range(ipo_ext_begin(G, S), ipo_ext_end(G, S));
258
142k
}
llvm::iterator_range<llvm::ipo_ext_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 16u> > > llvm::inverse_post_order_ext<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 16u> >(llvm::BasicBlock* const&, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>&)
Line
Count
Source
256
142
inverse_post_order_ext(const T &G, SetType &S) {
257
142
  return make_range(ipo_ext_begin(G, S), ipo_ext_end(G, S));
258
142
}
259
260
//===--------------------------------------------------------------------===//
261
// Reverse Post Order CFG iterator code
262
//===--------------------------------------------------------------------===//
263
//
264
// This is used to visit basic blocks in a method in reverse post order.  This
265
// class is awkward to use because I don't know a good incremental algorithm to
266
// computer RPO from a graph.  Because of this, the construction of the
267
// ReversePostOrderTraversal object is expensive (it must walk the entire graph
268
// with a postorder iterator to build the data structures).  The moral of this
269
// story is: Don't create more ReversePostOrderTraversal classes than necessary.
270
//
271
// Because it does the traversal in its constructor, it won't invalidate when
272
// BasicBlocks are removed, *but* it may contain erased blocks. Some places
273
// rely on this behavior (i.e. GVN).
274
//
275
// This class should be used like this:
276
// {
277
//   ReversePostOrderTraversal<Function*> RPOT(FuncPtr); // Expensive to create
278
//   for (rpo_iterator I = RPOT.begin(); I != RPOT.end(); ++I) {
279
//      ...
280
//   }
281
//   for (rpo_iterator I = RPOT.begin(); I != RPOT.end(); ++I) {
282
//      ...
283
//   }
284
// }
285
//
286
287
template<class GraphT, class GT = GraphTraits<GraphT>>
288
class ReversePostOrderTraversal {
289
  using NodeRef = typename GT::NodeRef;
290
291
  std::vector<NodeRef> Blocks; // Block list in normal PO order
292
293
3.25M
  void Initialize(NodeRef BB) {
294
3.25M
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
3.25M
  }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::Initialize(llvm::MachineBasicBlock*)
Line
Count
Source
293
683k
  void Initialize(NodeRef BB) {
294
683k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
683k
  }
llvm::ReversePostOrderTraversal<llvm::MachineFunction const*, llvm::GraphTraits<llvm::MachineFunction const*> >::Initialize(llvm::MachineBasicBlock const*)
Line
Count
Source
293
4.98k
  void Initialize(NodeRef BB) {
294
4.98k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
4.98k
  }
llvm::ReversePostOrderTraversal<llvm::Function*, llvm::GraphTraits<llvm::Function*> >::Initialize(llvm::BasicBlock*)
Line
Count
Source
293
1.43M
  void Initialize(NodeRef BB) {
294
1.43M
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
1.43M
  }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::Initialize(llvm::MachineBasicBlock*)
Line
Count
Source
293
611k
  void Initialize(NodeRef BB) {
294
611k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
611k
  }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::Initialize(llvm::RegionNode*)
Line
Count
Source
293
10.1k
  void Initialize(NodeRef BB) {
294
10.1k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
10.1k
  }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::Initialize(llvm::VPBlockBase*)
Line
Count
Source
293
283
  void Initialize(NodeRef BB) {
294
283
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
283
  }
llvm::ReversePostOrderTraversal<llvm::Function const*, llvm::GraphTraits<llvm::Function const*> >::Initialize(llvm::BasicBlock const*)
Line
Count
Source
293
508k
  void Initialize(NodeRef BB) {
294
508k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
508k
  }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::Initialize(clang::CallGraphNode*)
Line
Count
Source
293
756
  void Initialize(NodeRef BB) {
294
756
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
756
  }
llvm::ReversePostOrderTraversal<clang::CallGraph const*, llvm::GraphTraits<clang::CallGraph const*> >::Initialize(clang::CallGraphNode const*)
Line
Count
Source
293
1
  void Initialize(NodeRef BB) {
294
1
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
1
  }
296
297
public:
298
  using rpo_iterator = typename std::vector<NodeRef>::reverse_iterator;
299
300
3.25M
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::ReversePostOrderTraversal(llvm::MachineFunction*)
Line
Count
Source
300
683k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction const*, llvm::GraphTraits<llvm::MachineFunction const*> >::ReversePostOrderTraversal(llvm::MachineFunction const*)
Line
Count
Source
300
4.98k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::Function*, llvm::GraphTraits<llvm::Function*> >::ReversePostOrderTraversal(llvm::Function*)
Line
Count
Source
300
1.43M
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::ReversePostOrderTraversal(llvm::MachineBasicBlock*)
Line
Count
Source
300
611k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::ReversePostOrderTraversal(llvm::Region*)
Line
Count
Source
300
10.1k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::ReversePostOrderTraversal(llvm::VPBlockBase*)
Line
Count
Source
300
283
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::Function const*, llvm::GraphTraits<llvm::Function const*> >::ReversePostOrderTraversal(llvm::Function const*)
Line
Count
Source
300
508k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::ReversePostOrderTraversal(clang::CallGraph*)
Line
Count
Source
300
756
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<clang::CallGraph const*, llvm::GraphTraits<clang::CallGraph const*> >::ReversePostOrderTraversal(clang::CallGraph const*)
Line
Count
Source
300
1
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
301
302
  // Because we want a reverse post order, use reverse iterators from the vector
303
4.45M
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::begin()
Line
Count
Source
303
703k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction const*, llvm::GraphTraits<llvm::MachineFunction const*> >::begin()
Line
Count
Source
303
4.98k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::Function*, llvm::GraphTraits<llvm::Function*> >::begin()
Line
Count
Source
303
2.34M
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::begin()
Line
Count
Source
303
875k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::begin()
Line
Count
Source
303
10.6k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::begin()
Line
Count
Source
303
766
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::Function const*, llvm::GraphTraits<llvm::Function const*> >::begin()
Line
Count
Source
303
508k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::begin()
Line
Count
Source
303
756
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<clang::CallGraph const*, llvm::GraphTraits<clang::CallGraph const*> >::begin()
Line
Count
Source
303
1
  rpo_iterator begin() { return Blocks.rbegin(); }
304
4.43M
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::end()
Line
Count
Source
304
684k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction const*, llvm::GraphTraits<llvm::MachineFunction const*> >::end()
Line
Count
Source
304
4.98k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::Function*, llvm::GraphTraits<llvm::Function*> >::end()
Line
Count
Source
304
2.34M
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::end()
Line
Count
Source
304
875k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::end()
Line
Count
Source
304
10.6k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::end()
Line
Count
Source
304
766
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::Function const*, llvm::GraphTraits<llvm::Function const*> >::end()
Line
Count
Source
304
508k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::end()
Line
Count
Source
304
756
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<clang::CallGraph const*, llvm::GraphTraits<clang::CallGraph const*> >::end()
Line
Count
Source
304
1
  rpo_iterator end() { return Blocks.rend(); }
305
};
306
307
} // end namespace llvm
308
309
#endif // LLVM_ADT_POSTORDERITERATOR_H