Coverage Report

Created: 2018-07-12 09:57

/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
227M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
227M
    return Visited.insert(To).second;
66
227M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false>::insertEdge<llvm::MachineBasicBlock*>(llvm::Optional<llvm::MachineBasicBlock*>, llvm::MachineBasicBlock*)
Line
Count
Source
64
28.0M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
28.0M
    return Visited.insert(To).second;
66
28.0M
  }
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.4M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
15.4M
    return Visited.insert(To).second;
66
15.4M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false>::insertEdge<llvm::BasicBlock*>(llvm::Optional<llvm::BasicBlock*>, llvm::BasicBlock*)
Line
Count
Source
64
78.2M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
78.2M
    return Visited.insert(To).second;
66
78.2M
  }
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
51.9M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
51.9M
    return Visited.insert(To).second;
66
51.9M
  }
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
40.7M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
40.7M
    return Visited.insert(To).second;
66
40.7M
  }
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
33.3k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
33.3k
    return Visited.insert(To).second;
66
33.3k
  }
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
1.99M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
1.99M
    return Visited.insert(To).second;
66
1.99M
  }
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.1M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
11.1M
    return Visited.insert(To).second;
66
11.1M
  }
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.3k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
35.3k
    return Visited.insert(To).second;
66
35.3k
  }
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.10k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
1.10k
    return Visited.insert(To).second;
66
1.10k
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false>::insertEdge<clang::CallGraphNode*>(llvm::Optional<clang::CallGraphNode*>, clang::CallGraphNode*)
Line
Count
Source
64
17.8k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
65
17.8k
    return Visited.insert(To).second;
66
17.8k
  }
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
172M
  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
19.5M
  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
10.9M
  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
52.8M
  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
35.2M
  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
40.7M
  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
33.3k
  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
1.99M
  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.1M
  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.4k
  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
831
  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.1k
  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
215k
  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
260
  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
215k
  po_iterator_storage(SetType &VSet) : Visited(VSet) {}
79
1.04k
  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.17M
  template <class NodeRef> bool insertEdge(Optional<NodeRef> From, NodeRef To) {
85
1.17M
    return Visited.insert(To).second;
86
1.17M
  }
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.7k
  template <class NodeRef> bool insertEdge(Optional<NodeRef> From, NodeRef To) {
85
11.7k
    return Visited.insert(To).second;
86
11.7k
  }
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.16M
  template <class NodeRef> bool insertEdge(Optional<NodeRef> From, NodeRef To) {
85
1.16M
    return Visited.insert(To).second;
86
1.16M
  }
87
88
  // Called after all children of BB have been visited.
89
863k
  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.35k
  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
856k
  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
27.8M
  po_iterator(NodeRef BB) {
108
27.8M
    this->insertEdge(Optional<NodeRef>(), BB);
109
27.8M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
27.8M
    traverseChild();
111
27.8M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::po_iterator(llvm::MachineBasicBlock*)
Line
Count
Source
107
3.25M
  po_iterator(NodeRef BB) {
108
3.25M
    this->insertEdge(Optional<NodeRef>(), BB);
109
3.25M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
3.25M
    traverseChild();
111
3.25M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::po_iterator(llvm::MachineBasicBlock*)
Line
Count
Source
107
225k
  po_iterator(NodeRef BB) {
108
225k
    this->insertEdge(Optional<NodeRef>(), BB);
109
225k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
225k
    traverseChild();
111
225k
  }
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.84M
  po_iterator(NodeRef BB) {
108
1.84M
    this->insertEdge(Optional<NodeRef>(), BB);
109
1.84M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
1.84M
    traverseChild();
111
1.84M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::po_iterator(llvm::BasicBlock*)
Line
Count
Source
107
8.29M
  po_iterator(NodeRef BB) {
108
8.29M
    this->insertEdge(Optional<NodeRef>(), BB);
109
8.29M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
8.29M
    traverseChild();
111
8.29M
  }
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.12M
  po_iterator(NodeRef BB) {
108
5.12M
    this->insertEdge(Optional<NodeRef>(), BB);
109
5.12M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
5.12M
    traverseChild();
111
5.12M
  }
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.66M
  po_iterator(NodeRef BB) {
108
6.66M
    this->insertEdge(Optional<NodeRef>(), BB);
109
6.66M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
6.66M
    traverseChild();
111
6.66M
  }
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
21.4k
  po_iterator(NodeRef BB) {
108
21.4k
    this->insertEdge(Optional<NodeRef>(), BB);
109
21.4k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
21.4k
    traverseChild();
111
21.4k
  }
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
266k
  po_iterator(NodeRef BB) {
108
266k
    this->insertEdge(Optional<NodeRef>(), BB);
109
266k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
266k
    traverseChild();
111
266k
  }
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.11M
  po_iterator(NodeRef BB) {
108
2.11M
    this->insertEdge(Optional<NodeRef>(), BB);
109
2.11M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
2.11M
    traverseChild();
111
2.11M
  }
llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::Type*, 8u>, false, llvm::GraphTraits<llvm::Type*> >::po_iterator(llvm::Type*)
Line
Count
Source
107
60.4k
  po_iterator(NodeRef BB) {
108
60.4k
    this->insertEdge(Optional<NodeRef>(), BB);
109
60.4k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
60.4k
    traverseChild();
111
60.4k
  }
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.0k
  po_iterator(NodeRef BB) {
108
10.0k
    this->insertEdge(Optional<NodeRef>(), BB);
109
10.0k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
10.0k
    traverseChild();
111
10.0k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::po_iterator(llvm::BasicBlock*)
Line
Count
Source
107
20.9k
  po_iterator(NodeRef BB) {
108
20.9k
    this->insertEdge(Optional<NodeRef>(), BB);
109
20.9k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
20.9k
    traverseChild();
111
20.9k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::po_iterator(llvm::VPBlockBase*)
Line
Count
Source
107
277
  po_iterator(NodeRef BB) {
108
277
    this->insertEdge(Optional<NodeRef>(), BB);
109
277
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
277
    traverseChild();
111
277
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::po_iterator(clang::CallGraphNode*)
Line
Count
Source
107
718
  po_iterator(NodeRef BB) {
108
718
    this->insertEdge(Optional<NodeRef>(), BB);
109
718
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
110
718
    traverseChild();
111
718
  }
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
27.8M
  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.25M
  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
225k
  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.84M
  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.29M
  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.12M
  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.66M
  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
21.4k
  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
266k
  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.11M
  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.4k
  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.0k
  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
20.9k
  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
277
  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
718
  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
612k
      : po_iterator_storage<SetType, ExtStorage>(S) {
117
612k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
118
554k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
119
554k
      traverseChild();
120
554k
    }
121
612k
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::po_iterator(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
116
233k
      : po_iterator_storage<SetType, ExtStorage>(S) {
117
233k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
118
233k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
119
233k
      traverseChild();
120
233k
    }
121
233k
  }
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
135k
      : po_iterator_storage<SetType, ExtStorage>(S) {
117
135k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
118
130k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
119
130k
      traverseChild();
120
130k
    }
121
135k
  }
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
135k
      : po_iterator_storage<SetType, ExtStorage>(S) {
117
135k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
118
83.1k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
119
83.1k
      traverseChild();
120
83.1k
    }
121
135k
  }
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
130
      : po_iterator_storage<SetType, ExtStorage>(S) {
117
130
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
118
130
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
119
130
      traverseChild();
120
130
    }
121
130
  }
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
107k
      : po_iterator_storage<SetType, ExtStorage>(S) {
117
107k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
118
107k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
119
107k
      traverseChild();
120
107k
    }
121
107k
  }
122
123
  po_iterator(SetType &S)
124
612k
      : po_iterator_storage<SetType, ExtStorage>(S) {
125
612k
  } // 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
233k
      : po_iterator_storage<SetType, ExtStorage>(S) {
125
233k
  } // 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
135k
      : po_iterator_storage<SetType, ExtStorage>(S) {
125
135k
  } // 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
135k
      : po_iterator_storage<SetType, ExtStorage>(S) {
125
135k
  } // 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
130
      : po_iterator_storage<SetType, ExtStorage>(S) {
125
130
  } // 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
107k
      : po_iterator_storage<SetType, ExtStorage>(S) {
125
107k
  } // End is when stack is empty.
126
127
175M
  void traverseChild() {
128
378M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
203M
      NodeRef BB = *VisitStack.back().second++;
130
203M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
146M
        // If the block is not visited...
132
146M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
146M
      }
134
203M
    }
135
175M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::traverseChild()
Line
Count
Source
127
18.6M
  void traverseChild() {
128
41.9M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
23.3M
      NodeRef BB = *VisitStack.back().second++;
130
23.3M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
15.3M
        // If the block is not visited...
132
15.3M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
15.3M
      }
134
23.3M
    }
135
18.6M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::traverseChild()
Line
Count
Source
127
936k
  void traverseChild() {
128
2.21M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
1.28M
      NodeRef BB = *VisitStack.back().second++;
130
1.28M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
872k
        // If the block is not visited...
132
872k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
872k
      }
134
1.28M
    }
135
936k
  }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::traverseChild()
Line
Count
Source
127
10.9M
  void traverseChild() {
128
24.5M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
13.6M
      NodeRef BB = *VisitStack.back().second++;
130
13.6M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
9.07M
        // If the block is not visited...
132
9.07M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
9.07M
      }
134
13.6M
    }
135
10.9M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::traverseChild()
Line
Count
Source
127
52.7M
  void traverseChild() {
128
122M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
69.9M
      NodeRef BB = *VisitStack.back().second++;
130
69.9M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
44.4M
        // If the block is not visited...
132
44.4M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
44.4M
      }
134
69.9M
    }
135
52.7M
  }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::traverseChild()
Line
Count
Source
127
35.2M
  void traverseChild() {
128
82.0M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
46.7M
      NodeRef BB = *VisitStack.back().second++;
130
46.7M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
30.1M
        // If the block is not visited...
132
30.1M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
30.1M
      }
134
46.7M
    }
135
35.2M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::traverseChild()
Line
Count
Source
127
465k
  void traverseChild() {
128
1.32M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
855k
      NodeRef BB = *VisitStack.back().second++;
130
855k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
232k
        // If the block is not visited...
132
232k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
232k
      }
134
855k
    }
135
465k
  }
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
40.7M
  void traverseChild() {
128
74.7M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
34.0M
      NodeRef BB = *VisitStack.back().second++;
130
34.0M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
34.0M
        // If the block is not visited...
132
34.0M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
34.0M
      }
134
34.0M
    }
135
40.7M
  }
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
33.3k
  void traverseChild() {
128
45.1k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
11.8k
      NodeRef BB = *VisitStack.back().second++;
130
11.8k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
11.8k
        // If the block is not visited...
132
11.8k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
11.8k
      }
134
11.8k
    }
135
33.3k
  }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::traverseChild()
Line
Count
Source
127
1.99M
  void traverseChild() {
128
3.71M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
1.72M
      NodeRef BB = *VisitStack.back().second++;
130
1.72M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
1.72M
        // If the block is not visited...
132
1.72M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
1.72M
      }
134
1.72M
    }
135
1.99M
  }
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.1M
  void traverseChild() {
128
20.0M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
8.99M
      NodeRef BB = *VisitStack.back().second++;
130
8.99M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
8.99M
        // If the block is not visited...
132
8.99M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
8.99M
      }
134
8.99M
    }
135
11.1M
  }
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.1k
        // If the block is not visited...
132
88.1k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
88.1k
      }
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
561k
  void traverseChild() {
128
1.37M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
810k
      NodeRef BB = *VisitStack.back().second++;
130
810k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
431k
        // If the block is not visited...
132
431k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
431k
      }
134
810k
    }
135
561k
  }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::traverseChild()
Line
Count
Source
127
623k
  void traverseChild() {
128
1.56M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
938k
      NodeRef BB = *VisitStack.back().second++;
130
938k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
540k
        // If the block is not visited...
132
540k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
540k
      }
134
938k
    }
135
623k
  }
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.35k
  void traverseChild() {
128
18.9k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
11.5k
      NodeRef BB = *VisitStack.back().second++;
130
11.5k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
7.22k
        // If the block is not visited...
132
7.22k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
7.22k
      }
134
11.5k
    }
135
7.35k
  }
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::traverseChild()
Line
Count
Source
127
28.4k
  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.4k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::traverseChild()
Line
Count
Source
127
23.1k
  void traverseChild() {
128
26.4k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
3.21k
      NodeRef BB = *VisitStack.back().second++;
130
3.21k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
2.20k
        // If the block is not visited...
132
2.20k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
2.20k
      }
134
3.21k
    }
135
23.1k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::traverseChild()
Line
Count
Source
127
831
  void traverseChild() {
128
1.66k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
831
      NodeRef BB = *VisitStack.back().second++;
130
831
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
554
        // If the block is not visited...
132
554
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
554
      }
134
831
    }
135
831
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::traverseChild()
Line
Count
Source
127
14.1k
  void traverseChild() {
128
31.2k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
17.0k
      NodeRef BB = *VisitStack.back().second++;
130
17.0k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
13.4k
        // If the block is not visited...
132
13.4k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
13.4k
      }
134
17.0k
    }
135
14.1k
  }
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
856k
  void traverseChild() {
128
1.91M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
129
1.05M
      NodeRef BB = *VisitStack.back().second++;
130
1.05M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
131
748k
        // If the block is not visited...
132
748k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
133
748k
      }
134
1.05M
    }
135
856k
  }
136
137
public:
138
  using pointer = typename super::pointer;
139
140
  // Provide static "constructors"...
141
27.8M
  static po_iterator begin(GraphT G) {
142
27.8M
    return po_iterator(GT::getEntryNode(G));
143
27.8M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::begin(llvm::MachineBasicBlock*)
Line
Count
Source
141
3.25M
  static po_iterator begin(GraphT G) {
142
3.25M
    return po_iterator(GT::getEntryNode(G));
143
3.25M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::begin(llvm::MachineFunction*)
Line
Count
Source
141
225k
  static po_iterator begin(GraphT G) {
142
225k
    return po_iterator(GT::getEntryNode(G));
143
225k
  }
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.84M
  static po_iterator begin(GraphT G) {
142
1.84M
    return po_iterator(GT::getEntryNode(G));
143
1.84M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::begin(llvm::BasicBlock*)
Line
Count
Source
141
8.29M
  static po_iterator begin(GraphT G) {
142
8.29M
    return po_iterator(GT::getEntryNode(G));
143
8.29M
  }
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.12M
  static po_iterator begin(GraphT G) {
142
5.12M
    return po_iterator(GT::getEntryNode(G));
143
5.12M
  }
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.66M
  static po_iterator begin(GraphT G) {
142
6.66M
    return po_iterator(GT::getEntryNode(G));
143
6.66M
  }
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
21.4k
  static po_iterator begin(GraphT G) {
142
21.4k
    return po_iterator(GT::getEntryNode(G));
143
21.4k
  }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::begin(llvm::MachineDominatorTree*)
Line
Count
Source
141
266k
  static po_iterator begin(GraphT G) {
142
266k
    return po_iterator(GT::getEntryNode(G));
143
266k
  }
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.11M
  static po_iterator begin(GraphT G) {
142
2.11M
    return po_iterator(GT::getEntryNode(G));
143
2.11M
  }
llvm::po_iterator<llvm::Type*, llvm::SmallPtrSet<llvm::Type*, 8u>, false, llvm::GraphTraits<llvm::Type*> >::begin(llvm::Type*)
Line
Count
Source
141
60.4k
  static po_iterator begin(GraphT G) {
142
60.4k
    return po_iterator(GT::getEntryNode(G));
143
60.4k
  }
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.0k
  static po_iterator begin(GraphT G) {
142
10.0k
    return po_iterator(GT::getEntryNode(G));
143
10.0k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::begin(llvm::Function*)
Line
Count
Source
141
20.9k
  static po_iterator begin(GraphT G) {
142
20.9k
    return po_iterator(GT::getEntryNode(G));
143
20.9k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::begin(llvm::VPBlockBase*)
Line
Count
Source
141
277
  static po_iterator begin(GraphT G) {
142
277
    return po_iterator(GT::getEntryNode(G));
143
277
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::begin(clang::CallGraphNode*)
Line
Count
Source
141
718
  static po_iterator begin(GraphT G) {
142
718
    return po_iterator(GT::getEntryNode(G));
143
718
  }
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
27.8M
  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.25M
  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
225k
  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.84M
  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.29M
  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.12M
  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.66M
  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
21.4k
  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
266k
  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.11M
  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.4k
  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.0k
  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
20.9k
  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
277
  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
718
  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
612k
  static po_iterator begin(GraphT G, SetType &S) {
147
612k
    return po_iterator(GT::getEntryNode(G), S);
148
612k
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::begin(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
146
233k
  static po_iterator begin(GraphT G, SetType &S) {
147
233k
    return po_iterator(GT::getEntryNode(G), S);
148
233k
  }
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
135k
  static po_iterator begin(GraphT G, SetType &S) {
147
135k
    return po_iterator(GT::getEntryNode(G), S);
148
135k
  }
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
135k
  static po_iterator begin(GraphT G, SetType &S) {
147
135k
    return po_iterator(GT::getEntryNode(G), S);
148
135k
  }
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
130
  static po_iterator begin(GraphT G, SetType &S) {
147
130
    return po_iterator(GT::getEntryNode(G), S);
148
130
  }
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
107k
  static po_iterator begin(GraphT G, SetType &S) {
147
107k
    return po_iterator(GT::getEntryNode(G), S);
148
107k
  }
149
612k
  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
233k
  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
135k
  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
135k
  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
130
  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
107k
  static po_iterator end(GraphT G, SetType &S) { return po_iterator(S); }
150
151
203M
  bool operator==(const po_iterator &x) const {
152
203M
    return VisitStack == x.VisitStack;
153
203M
  }
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
21.8M
  bool operator==(const po_iterator &x) const {
152
21.8M
    return VisitStack == x.VisitStack;
153
21.8M
  }
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.13M
  bool operator==(const po_iterator &x) const {
152
1.13M
    return VisitStack == x.VisitStack;
153
1.13M
  }
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
12.7M
  bool operator==(const po_iterator &x) const {
152
12.7M
    return VisitStack == x.VisitStack;
153
12.7M
  }
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
61.0M
  bool operator==(const po_iterator &x) const {
152
61.0M
    return VisitStack == x.VisitStack;
153
61.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
40.4M
  bool operator==(const po_iterator &x) const {
152
40.4M
    return VisitStack == x.VisitStack;
153
40.4M
  }
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
47.3M
  bool operator==(const po_iterator &x) const {
152
47.3M
    return VisitStack == x.VisitStack;
153
47.3M
  }
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
699k
  bool operator==(const po_iterator &x) const {
152
699k
    return VisitStack == x.VisitStack;
153
699k
  }
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
54.7k
  bool operator==(const po_iterator &x) const {
152
54.7k
    return VisitStack == x.VisitStack;
153
54.7k
  }
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.25M
  bool operator==(const po_iterator &x) const {
152
2.25M
    return VisitStack == x.VisitStack;
153
2.25M
  }
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.2M
  bool operator==(const po_iterator &x) const {
152
13.2M
    return VisitStack == x.VisitStack;
153
13.2M
  }
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
696k
  bool operator==(const po_iterator &x) const {
152
696k
    return VisitStack == x.VisitStack;
153
696k
  }
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
758k
  bool operator==(const po_iterator &x) const {
152
758k
    return VisitStack == x.VisitStack;
153
758k
  }
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.48k
  bool operator==(const po_iterator &x) const {
152
7.48k
    return VisitStack == x.VisitStack;
153
7.48k
  }
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.5k
  bool operator==(const po_iterator &x) const {
152
38.5k
    return VisitStack == x.VisitStack;
153
38.5k
  }
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
44.1k
  bool operator==(const po_iterator &x) const {
152
44.1k
    return VisitStack == x.VisitStack;
153
44.1k
  }
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.10k
  bool operator==(const po_iterator &x) const {
152
1.10k
    return VisitStack == x.VisitStack;
153
1.10k
  }
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
14.8k
  bool operator==(const po_iterator &x) const {
152
14.8k
    return VisitStack == x.VisitStack;
153
14.8k
  }
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
964k
  bool operator==(const po_iterator &x) const {
152
964k
    return VisitStack == x.VisitStack;
153
964k
  }
154
203M
  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
21.8M
  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.13M
  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
12.7M
  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
61.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
40.4M
  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
47.3M
  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
699k
  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
54.7k
  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.25M
  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.2M
  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
696k
  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
758k
  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.48k
  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.5k
  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
44.1k
  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.10k
  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
14.8k
  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
964k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
155
156
175M
  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
18.6M
  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
936k
  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
10.9M
  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
52.7M
  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
35.2M
  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.3k
  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
40.7M
  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
33.3k
  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
1.99M
  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.1M
  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
561k
  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
623k
  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.35k
  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.4k
  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
23.1k
  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
831
  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.1k
  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.71M
  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
175M
  po_iterator &operator++() { // Preincrement
165
175M
    this->finishPostorder(VisitStack.back().first);
166
175M
    VisitStack.pop_back();
167
175M
    if (!VisitStack.empty())
168
146M
      traverseChild();
169
175M
    return *this;
170
175M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::operator++()
Line
Count
Source
164
18.6M
  po_iterator &operator++() { // Preincrement
165
18.6M
    this->finishPostorder(VisitStack.back().first);
166
18.6M
    VisitStack.pop_back();
167
18.6M
    if (!VisitStack.empty())
168
15.3M
      traverseChild();
169
18.6M
    return *this;
170
18.6M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::operator++()
Line
Count
Source
164
906k
  po_iterator &operator++() { // Preincrement
165
906k
    this->finishPostorder(VisitStack.back().first);
166
906k
    VisitStack.pop_back();
167
906k
    if (!VisitStack.empty())
168
710k
      traverseChild();
169
906k
    return *this;
170
906k
  }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::operator++()
Line
Count
Source
164
10.9M
  po_iterator &operator++() { // Preincrement
165
10.9M
    this->finishPostorder(VisitStack.back().first);
166
10.9M
    VisitStack.pop_back();
167
10.9M
    if (!VisitStack.empty())
168
9.07M
      traverseChild();
169
10.9M
    return *this;
170
10.9M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::operator++()
Line
Count
Source
164
52.7M
  po_iterator &operator++() { // Preincrement
165
52.7M
    this->finishPostorder(VisitStack.back().first);
166
52.7M
    VisitStack.pop_back();
167
52.7M
    if (!VisitStack.empty())
168
44.4M
      traverseChild();
169
52.7M
    return *this;
170
52.7M
  }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::operator++()
Line
Count
Source
164
35.2M
  po_iterator &operator++() { // Preincrement
165
35.2M
    this->finishPostorder(VisitStack.back().first);
166
35.2M
    VisitStack.pop_back();
167
35.2M
    if (!VisitStack.empty())
168
30.1M
      traverseChild();
169
35.2M
    return *this;
170
35.2M
  }
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
40.7M
  po_iterator &operator++() { // Preincrement
165
40.7M
    this->finishPostorder(VisitStack.back().first);
166
40.7M
    VisitStack.pop_back();
167
40.7M
    if (!VisitStack.empty())
168
34.0M
      traverseChild();
169
40.7M
    return *this;
170
40.7M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::operator++()
Line
Count
Source
164
465k
  po_iterator &operator++() { // Preincrement
165
465k
    this->finishPostorder(VisitStack.back().first);
166
465k
    VisitStack.pop_back();
167
465k
    if (!VisitStack.empty())
168
232k
      traverseChild();
169
465k
    return *this;
170
465k
  }
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
33.3k
  po_iterator &operator++() { // Preincrement
165
33.3k
    this->finishPostorder(VisitStack.back().first);
166
33.3k
    VisitStack.pop_back();
167
33.3k
    if (!VisitStack.empty())
168
11.8k
      traverseChild();
169
33.3k
    return *this;
170
33.3k
  }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::operator++()
Line
Count
Source
164
1.99M
  po_iterator &operator++() { // Preincrement
165
1.99M
    this->finishPostorder(VisitStack.back().first);
166
1.99M
    VisitStack.pop_back();
167
1.99M
    if (!VisitStack.empty())
168
1.72M
      traverseChild();
169
1.99M
    return *this;
170
1.99M
  }
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.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
8.99M
      traverseChild();
169
11.1M
    return *this;
170
11.1M
  }
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
561k
  po_iterator &operator++() { // Preincrement
165
561k
    this->finishPostorder(VisitStack.back().first);
166
561k
    VisitStack.pop_back();
167
561k
    if (!VisitStack.empty())
168
431k
      traverseChild();
169
561k
    return *this;
170
561k
  }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::operator++()
Line
Count
Source
164
623k
  po_iterator &operator++() { // Preincrement
165
623k
    this->finishPostorder(VisitStack.back().first);
166
623k
    VisitStack.pop_back();
167
623k
    if (!VisitStack.empty())
168
540k
      traverseChild();
169
623k
    return *this;
170
623k
  }
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.35k
  po_iterator &operator++() { // Preincrement
165
7.35k
    this->finishPostorder(VisitStack.back().first);
166
7.35k
    VisitStack.pop_back();
167
7.35k
    if (!VisitStack.empty())
168
7.22k
      traverseChild();
169
7.35k
    return *this;
170
7.35k
  }
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::operator++()
Line
Count
Source
164
28.4k
  po_iterator &operator++() { // Preincrement
165
28.4k
    this->finishPostorder(VisitStack.back().first);
166
28.4k
    VisitStack.pop_back();
167
28.4k
    if (!VisitStack.empty())
168
18.3k
      traverseChild();
169
28.4k
    return *this;
170
28.4k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::operator++()
Line
Count
Source
164
23.1k
  po_iterator &operator++() { // Preincrement
165
23.1k
    this->finishPostorder(VisitStack.back().first);
166
23.1k
    VisitStack.pop_back();
167
23.1k
    if (!VisitStack.empty())
168
2.20k
      traverseChild();
169
23.1k
    return *this;
170
23.1k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::operator++()
Line
Count
Source
164
831
  po_iterator &operator++() { // Preincrement
165
831
    this->finishPostorder(VisitStack.back().first);
166
831
    VisitStack.pop_back();
167
831
    if (!VisitStack.empty())
168
554
      traverseChild();
169
831
    return *this;
170
831
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::operator++()
Line
Count
Source
164
14.1k
  po_iterator &operator++() { // Preincrement
165
14.1k
    this->finishPostorder(VisitStack.back().first);
166
14.1k
    VisitStack.pop_back();
167
14.1k
    if (!VisitStack.empty())
168
13.4k
      traverseChild();
169
14.1k
    return *this;
170
14.1k
  }
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
856k
  po_iterator &operator++() { // Preincrement
165
856k
    this->finishPostorder(VisitStack.back().first);
166
856k
    VisitStack.pop_back();
167
856k
    if (!VisitStack.empty())
168
748k
      traverseChild();
169
856k
    return *this;
170
856k
  }
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
27.8M
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.25M
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
225k
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.84M
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.29M
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.12M
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.66M
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
21.4k
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
266k
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.11M
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.4k
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.0k
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
20.9k
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
277
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
718
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
27.8M
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.25M
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
225k
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.84M
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.29M
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.12M
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.66M
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
21.4k
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
266k
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.11M
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.4k
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.0k
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
20.9k
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
277
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
718
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.0M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
21.0M
  return make_range(po_begin(G), po_end(G));
188
21.0M
}
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.11M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
2.11M
  return make_range(po_begin(G), po_end(G));
188
2.11M
}
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
225k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
225k
  return make_range(po_begin(G), po_end(G));
188
225k
}
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.65M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
2.65M
  return make_range(po_begin(G), po_end(G));
188
2.65M
}
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.66M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
6.66M
  return make_range(po_begin(G), po_end(G));
188
6.66M
}
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
6.93M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
6.93M
  return make_range(po_begin(G), po_end(G));
188
6.93M
}
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
21.4k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
21.4k
  return make_range(po_begin(G), po_end(G));
188
21.4k
}
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
266k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
266k
  return make_range(po_begin(G), po_end(G));
188
266k
}
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.11M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
2.11M
  return make_range(po_begin(G), po_end(G));
188
2.11M
}
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.4k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
60.4k
  return make_range(po_begin(G), po_end(G));
188
60.4k
}
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
20.9k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
187
20.9k
  return make_range(po_begin(G), po_end(G));
188
20.9k
}
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
737k
  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
466k
  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
270k
  po_iterator<T, SetType, true>(V) {}
195
};
196
197
template<class T, class SetType>
198
368k
po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) {
199
368k
  return po_ext_iterator<T, SetType>::begin(G, S);
200
368k
}
llvm::po_ext_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal> llvm::po_ext_begin<llvm::BasicBlock*, llvm::LoopBlocksTraversal>(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
198
233k
po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) {
199
233k
  return po_ext_iterator<T, SetType>::begin(G, S);
200
233k
}
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
135k
po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) {
199
135k
  return po_ext_iterator<T, SetType>::begin(G, S);
200
135k
}
201
202
template<class T, class SetType>
203
368k
po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) {
204
368k
  return po_ext_iterator<T, SetType>::end(G, S);
205
368k
}
llvm::po_ext_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal> llvm::po_ext_end<llvm::BasicBlock*, llvm::LoopBlocksTraversal>(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
203
233k
po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) {
204
233k
  return po_ext_iterator<T, SetType>::end(G, S);
205
233k
}
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
135k
po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) {
204
135k
  return po_ext_iterator<T, SetType>::end(G, S);
205
135k
}
206
207
template <class T, class SetType>
208
135k
iterator_range<po_ext_iterator<T, SetType>> post_order_ext(const T &G, SetType &S) {
209
135k
  return make_range(po_ext_begin(G, S), po_ext_end(G, S));
210
135k
}
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
270k
     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
270k
     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
260
     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
270k
    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
270k
    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
260
    ipo_iterator<T, SetType, true>(V) {}
242
};
243
244
template <class T, class SetType>
245
135k
ipo_ext_iterator<T, SetType> ipo_ext_begin(const T &G, SetType &S) {
246
135k
  return ipo_ext_iterator<T, SetType>::begin(G, S);
247
135k
}
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
135k
ipo_ext_iterator<T, SetType> ipo_ext_begin(const T &G, SetType &S) {
246
135k
  return ipo_ext_iterator<T, SetType>::begin(G, S);
247
135k
}
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
130
ipo_ext_iterator<T, SetType> ipo_ext_begin(const T &G, SetType &S) {
246
130
  return ipo_ext_iterator<T, SetType>::begin(G, S);
247
130
}
248
249
template <class T, class SetType>
250
135k
ipo_ext_iterator<T, SetType> ipo_ext_end(const T &G, SetType &S) {
251
135k
  return ipo_ext_iterator<T, SetType>::end(G, S);
252
135k
}
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
135k
ipo_ext_iterator<T, SetType> ipo_ext_end(const T &G, SetType &S) {
251
135k
  return ipo_ext_iterator<T, SetType>::end(G, S);
252
135k
}
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
130
ipo_ext_iterator<T, SetType> ipo_ext_end(const T &G, SetType &S) {
251
130
  return ipo_ext_iterator<T, SetType>::end(G, S);
252
130
}
253
254
template <class T, class SetType>
255
iterator_range<ipo_ext_iterator<T, SetType>>
256
135k
inverse_post_order_ext(const T &G, SetType &S) {
257
135k
  return make_range(ipo_ext_begin(G, S), ipo_ext_end(G, S));
258
135k
}
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
135k
inverse_post_order_ext(const T &G, SetType &S) {
257
135k
  return make_range(ipo_ext_begin(G, S), ipo_ext_end(G, S));
258
135k
}
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
130
inverse_post_order_ext(const T &G, SetType &S) {
257
130
  return make_range(ipo_ext_begin(G, S), ipo_ext_end(G, S));
258
130
}
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
2.78M
  void Initialize(NodeRef BB) {
294
2.78M
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
2.78M
  }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::Initialize(llvm::MachineBasicBlock*)
Line
Count
Source
293
549k
  void Initialize(NodeRef BB) {
294
549k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
549k
  }
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.35M
  void Initialize(NodeRef BB) {
294
1.35M
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
1.35M
  }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::Initialize(llvm::MachineBasicBlock*)
Line
Count
Source
293
597k
  void Initialize(NodeRef BB) {
294
597k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
597k
  }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::Initialize(llvm::RegionNode*)
Line
Count
Source
293
10.0k
  void Initialize(NodeRef BB) {
294
10.0k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
10.0k
  }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::Initialize(llvm::VPBlockBase*)
Line
Count
Source
293
277
  void Initialize(NodeRef BB) {
294
277
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
277
  }
llvm::ReversePostOrderTraversal<llvm::Function const*, llvm::GraphTraits<llvm::Function const*> >::Initialize(llvm::BasicBlock const*)
Line
Count
Source
293
264k
  void Initialize(NodeRef BB) {
294
264k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
264k
  }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::Initialize(clang::CallGraphNode*)
Line
Count
Source
293
718
  void Initialize(NodeRef BB) {
294
718
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
295
718
  }
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
2.78M
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::ReversePostOrderTraversal(llvm::MachineFunction*)
Line
Count
Source
300
549k
  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.35M
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::ReversePostOrderTraversal(llvm::MachineBasicBlock*)
Line
Count
Source
300
597k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::ReversePostOrderTraversal(llvm::Region*)
Line
Count
Source
300
10.0k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::ReversePostOrderTraversal(llvm::VPBlockBase*)
Line
Count
Source
300
277
  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
264k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::ReversePostOrderTraversal(clang::CallGraph*)
Line
Count
Source
300
718
  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.42M
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::begin()
Line
Count
Source
303
567k
  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.72M
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::begin()
Line
Count
Source
303
853k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::begin()
Line
Count
Source
303
10.5k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::begin()
Line
Count
Source
303
722
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::Function const*, llvm::GraphTraits<llvm::Function const*> >::begin()
Line
Count
Source
303
264k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::begin()
Line
Count
Source
303
718
  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.40M
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::end()
Line
Count
Source
304
549k
  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.72M
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::end()
Line
Count
Source
304
853k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::end()
Line
Count
Source
304
10.5k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::end()
Line
Count
Source
304
722
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::Function const*, llvm::GraphTraits<llvm::Function const*> >::end()
Line
Count
Source
304
264k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::end()
Line
Count
Source
304
718
  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