Coverage Report

Created: 2019-03-24 22:13

/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
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file builds on the ADT/GraphTraits.h file to build a generic graph
10
// post order iterator.  This should work over any graph type that has a
11
// GraphTraits specialization.
12
//
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_ADT_POSTORDERITERATOR_H
16
#define LLVM_ADT_POSTORDERITERATOR_H
17
18
#include "llvm/ADT/GraphTraits.h"
19
#include "llvm/ADT/Optional.h"
20
#include "llvm/ADT/SmallPtrSet.h"
21
#include "llvm/ADT/iterator_range.h"
22
#include <iterator>
23
#include <set>
24
#include <utility>
25
#include <vector>
26
27
namespace llvm {
28
29
// The po_iterator_storage template provides access to the set of already
30
// visited nodes during the po_iterator's depth-first traversal.
31
//
32
// The default implementation simply contains a set of visited nodes, while
33
// the External=true version uses a reference to an external set.
34
//
35
// It is possible to prune the depth-first traversal in several ways:
36
//
37
// - When providing an external set that already contains some graph nodes,
38
//   those nodes won't be visited again. This is useful for restarting a
39
//   post-order traversal on a graph with nodes that aren't dominated by a
40
//   single node.
41
//
42
// - By providing a custom SetType class, unwanted graph nodes can be excluded
43
//   by having the insert() function return false. This could for example
44
//   confine a CFG traversal to blocks in a specific loop.
45
//
46
// - Finally, by specializing the po_iterator_storage template itself, graph
47
//   edges can be pruned by returning false in the insertEdge() function. This
48
//   could be used to remove loop back-edges from the CFG seen by po_iterator.
49
//
50
// A specialized po_iterator_storage class can observe both the pre-order and
51
// the post-order. The insertEdge() function is called in a pre-order, while
52
// the finishPostorder() function is called just before the po_iterator moves
53
// on to the next node.
54
55
/// Default po_iterator_storage implementation with an internal set object.
56
template<class SetType, bool External>
57
class po_iterator_storage {
58
  SetType Visited;
59
60
public:
61
  // Return true if edge destination should be visited.
62
  template <typename NodeRef>
63
239M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
239M
    return Visited.insert(To).second;
65
239M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false>::insertEdge<llvm::MachineBasicBlock*>(llvm::Optional<llvm::MachineBasicBlock*>, llvm::MachineBasicBlock*)
Line
Count
Source
63
33.8M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
33.8M
    return Visited.insert(To).second;
65
33.8M
  }
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
63
15.5M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
15.5M
    return Visited.insert(To).second;
65
15.5M
  }
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
63
2.04M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
2.04M
    return Visited.insert(To).second;
65
2.04M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false>::insertEdge<llvm::BasicBlock*>(llvm::Optional<llvm::BasicBlock*>, llvm::BasicBlock*)
Line
Count
Source
63
80.8M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
80.8M
    return Visited.insert(To).second;
65
80.8M
  }
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
63
54.6M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
54.6M
    return Visited.insert(To).second;
65
54.6M
  }
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
63
41.4M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
41.4M
    return Visited.insert(To).second;
65
41.4M
  }
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
63
38.2k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
38.2k
    return Visited.insert(To).second;
65
38.2k
  }
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
63
11.1M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
11.1M
    return Visited.insert(To).second;
65
11.1M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false>::insertEdge<llvm::RegionNode*>(llvm::Optional<llvm::RegionNode*>, llvm::RegionNode*)
Line
Count
Source
63
36.0k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
36.0k
    return Visited.insert(To).second;
65
36.0k
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false>::insertEdge<llvm::VPBlockBase*>(llvm::Optional<llvm::VPBlockBase*>, llvm::VPBlockBase*)
Line
Count
Source
63
1.53k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
1.53k
    return Visited.insert(To).second;
65
1.53k
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false>::insertEdge<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>(llvm::Optional<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>, llvm::DomTreeNodeBase<llvm::VPBlockBase> const*)
Line
Count
Source
63
86
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
86
    return Visited.insert(To).second;
65
86
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false>::insertEdge<clang::CallGraphNode*>(llvm::Optional<clang::CallGraphNode*>, clang::CallGraphNode*)
Line
Count
Source
63
22.1k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
22.1k
    return Visited.insert(To).second;
65
22.1k
  }
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
63
31
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
31
    return Visited.insert(To).second;
65
31
  }
66
67
  // Called after all children of BB have been visited.
68
181M
  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
68
23.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
68
11.0M
  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
68
2.04M
  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
68
54.5M
  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
68
37.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
68
41.4M
  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
68
38.2k
  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
68
11.1M
  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
68
29.0k
  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
68
1.14k
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false>::finishPostorder<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>(llvm::DomTreeNodeBase<llvm::VPBlockBase> const*)
Line
Count
Source
68
86
  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
68
16.4k
  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
68
18
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
69
};
70
71
/// Specialization of po_iterator_storage that references an external set.
72
template<class SetType>
73
class po_iterator_storage<SetType, true> {
74
  SetType &Visited;
75
76
public:
77
213k
  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
77
316
  po_iterator_storage(SetType &VSet) : Visited(VSet) {}
llvm::po_iterator_storage<clang::PostOrderCFGView::CFGBlockSet, true>::po_iterator_storage(clang::PostOrderCFGView::CFGBlockSet&)
Line
Count
Source
77
213k
  po_iterator_storage(SetType &VSet) : Visited(VSet) {}
78
1.26k
  po_iterator_storage(const po_iterator_storage &S) : Visited(S.Visited) {}
79
80
  // Return true if edge destination should be visited, called with From = 0 for
81
  // the root node.
82
  // Graph edges can be pruned by specializing this function.
83
1.14M
  template <class NodeRef> bool insertEdge(Optional<NodeRef> From, NodeRef To) {
84
1.14M
    return Visited.insert(To).second;
85
1.14M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true>::insertEdge<llvm::BasicBlock*>(llvm::Optional<llvm::BasicBlock*>, llvm::BasicBlock*)
Line
Count
Source
83
11.8k
  template <class NodeRef> bool insertEdge(Optional<NodeRef> From, NodeRef To) {
84
11.8k
    return Visited.insert(To).second;
85
11.8k
  }
bool llvm::po_iterator_storage<clang::PostOrderCFGView::CFGBlockSet, true>::insertEdge<clang::CFGBlock const*>(llvm::Optional<clang::CFGBlock const*>, clang::CFGBlock const*)
Line
Count
Source
83
1.13M
  template <class NodeRef> bool insertEdge(Optional<NodeRef> From, NodeRef To) {
84
1.13M
    return Visited.insert(To).second;
85
1.13M
  }
86
87
  // Called after all children of BB have been visited.
88
840k
  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
88
7.42k
  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
88
833k
  template <class NodeRef> void finishPostorder(NodeRef BB) {}
89
};
90
91
template <class GraphT,
92
          class SetType =
93
              SmallPtrSet<typename GraphTraits<GraphT>::NodeRef, 8>,
94
          bool ExtStorage = false, class GT = GraphTraits<GraphT>>
95
class po_iterator
96
    : public std::iterator<std::forward_iterator_tag, typename GT::NodeRef>,
97
      public po_iterator_storage<SetType, ExtStorage> {
98
  using super = std::iterator<std::forward_iterator_tag, typename GT::NodeRef>;
99
  using NodeRef = typename GT::NodeRef;
100
  using ChildItTy = typename GT::ChildIteratorType;
101
102
  // VisitStack - Used to maintain the ordering.  Top = current block
103
  // First element is basic block pointer, second is the 'next child' to visit
104
  std::vector<std::pair<NodeRef, ChildItTy>> VisitStack;
105
106
29.4M
  po_iterator(NodeRef BB) {
107
29.4M
    this->insertEdge(Optional<NodeRef>(), BB);
108
29.4M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
29.4M
    traverseChild();
110
29.4M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::po_iterator(llvm::MachineBasicBlock*)
Line
Count
Source
106
3.52M
  po_iterator(NodeRef BB) {
107
3.52M
    this->insertEdge(Optional<NodeRef>(), BB);
108
3.52M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
3.52M
    traverseChild();
110
3.52M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::po_iterator(llvm::MachineBasicBlock*)
Line
Count
Source
106
494k
  po_iterator(NodeRef BB) {
107
494k
    this->insertEdge(Optional<NodeRef>(), BB);
108
494k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
494k
    traverseChild();
110
494k
  }
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
106
1.92M
  po_iterator(NodeRef BB) {
107
1.92M
    this->insertEdge(Optional<NodeRef>(), BB);
108
1.92M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
1.92M
    traverseChild();
110
1.92M
  }
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
106
280k
  po_iterator(NodeRef BB) {
107
280k
    this->insertEdge(Optional<NodeRef>(), BB);
108
280k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
280k
    traverseChild();
110
280k
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::po_iterator(llvm::BasicBlock*)
Line
Count
Source
106
8.40M
  po_iterator(NodeRef BB) {
107
8.40M
    this->insertEdge(Optional<NodeRef>(), BB);
108
8.40M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
8.40M
    traverseChild();
110
8.40M
  }
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
106
5.52M
  po_iterator(NodeRef BB) {
107
5.52M
    this->insertEdge(Optional<NodeRef>(), BB);
108
5.52M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
5.52M
    traverseChild();
110
5.52M
  }
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
106
6.99M
  po_iterator(NodeRef BB) {
107
6.99M
    this->insertEdge(Optional<NodeRef>(), BB);
108
6.99M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
6.99M
    traverseChild();
110
6.99M
  }
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
106
25.1k
  po_iterator(NodeRef BB) {
107
25.1k
    this->insertEdge(Optional<NodeRef>(), BB);
108
25.1k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
25.1k
    traverseChild();
110
25.1k
  }
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
106
2.19M
  po_iterator(NodeRef BB) {
107
2.19M
    this->insertEdge(Optional<NodeRef>(), BB);
108
2.19M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
2.19M
    traverseChild();
110
2.19M
  }
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
106
10.3k
  po_iterator(NodeRef BB) {
107
10.3k
    this->insertEdge(Optional<NodeRef>(), BB);
108
10.3k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
10.3k
    traverseChild();
110
10.3k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::po_iterator(llvm::BasicBlock*)
Line
Count
Source
106
24.6k
  po_iterator(NodeRef BB) {
107
24.6k
    this->insertEdge(Optional<NodeRef>(), BB);
108
24.6k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
24.6k
    traverseChild();
110
24.6k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::po_iterator(llvm::VPBlockBase*)
Line
Count
Source
106
360
  po_iterator(NodeRef BB) {
107
360
    this->insertEdge(Optional<NodeRef>(), BB);
108
360
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
360
    traverseChild();
110
360
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::po_iterator(llvm::DomTreeNodeBase<llvm::VPBlockBase> const*)
Line
Count
Source
106
20
  po_iterator(NodeRef BB) {
107
20
    this->insertEdge(Optional<NodeRef>(), BB);
108
20
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
20
    traverseChild();
110
20
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::po_iterator(clang::CallGraphNode*)
Line
Count
Source
106
828
  po_iterator(NodeRef BB) {
107
828
    this->insertEdge(Optional<NodeRef>(), BB);
108
828
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
828
    traverseChild();
110
828
  }
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
106
1
  po_iterator(NodeRef BB) {
107
1
    this->insertEdge(Optional<NodeRef>(), BB);
108
1
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
1
    traverseChild();
110
1
  }
111
112
29.4M
  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
112
3.52M
  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
112
494k
  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
112
1.92M
  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
112
280k
  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
112
8.40M
  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
112
5.52M
  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
112
6.99M
  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
112
25.1k
  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
112
2.19M
  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
112
10.3k
  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
112
24.6k
  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
112
360
  po_iterator() = default; // End is when stack is empty.
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::po_iterator()
Line
Count
Source
112
20
  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
112
828
  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
112
1
  po_iterator() = default; // End is when stack is empty.
113
114
  po_iterator(NodeRef BB, SetType &S)
115
1.25M
      : po_iterator_storage<SetType, ExtStorage>(S) {
116
1.25M
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
117
1.19M
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
118
1.19M
      traverseChild();
119
1.19M
    }
120
1.25M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::po_iterator(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
115
859k
      : po_iterator_storage<SetType, ExtStorage>(S) {
116
859k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
117
859k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
118
859k
      traverseChild();
119
859k
    }
120
859k
  }
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
115
144k
      : po_iterator_storage<SetType, ExtStorage>(S) {
116
144k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
117
139k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
118
139k
      traverseChild();
119
139k
    }
120
144k
  }
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
115
144k
      : po_iterator_storage<SetType, ExtStorage>(S) {
116
144k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
117
89.0k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
118
89.0k
      traverseChild();
119
89.0k
    }
120
144k
  }
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
115
158
      : po_iterator_storage<SetType, ExtStorage>(S) {
116
158
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
117
158
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
118
158
      traverseChild();
119
158
    }
120
158
  }
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
115
106k
      : po_iterator_storage<SetType, ExtStorage>(S) {
116
106k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
117
106k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
118
106k
      traverseChild();
119
106k
    }
120
106k
  }
121
122
  po_iterator(SetType &S)
123
1.25M
      : po_iterator_storage<SetType, ExtStorage>(S) {
124
1.25M
  } // 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
123
859k
      : po_iterator_storage<SetType, ExtStorage>(S) {
124
859k
  } // 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
123
144k
      : po_iterator_storage<SetType, ExtStorage>(S) {
124
144k
  } // 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
123
144k
      : po_iterator_storage<SetType, ExtStorage>(S) {
124
144k
  } // 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
123
158
      : po_iterator_storage<SetType, ExtStorage>(S) {
124
158
  } // 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
123
106k
      : po_iterator_storage<SetType, ExtStorage>(S) {
124
106k
  } // End is when stack is empty.
125
126
186M
  void traverseChild() {
127
405M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
219M
      NodeRef BB = *VisitStack.back().second++;
129
219M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
156M
        // If the block is not visited...
131
156M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
156M
      }
133
219M
    }
134
186M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::traverseChild()
Line
Count
Source
126
19.2M
  void traverseChild() {
127
43.1M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
23.9M
      NodeRef BB = *VisitStack.back().second++;
129
23.9M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
15.7M
        // If the block is not visited...
131
15.7M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
15.7M
      }
133
23.9M
    }
134
19.2M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::traverseChild()
Line
Count
Source
126
4.32M
  void traverseChild() {
127
10.2M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
5.94M
      NodeRef BB = *VisitStack.back().second++;
129
5.94M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
3.92M
        // If the block is not visited...
131
3.92M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
3.92M
      }
133
5.94M
    }
134
4.32M
  }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::traverseChild()
Line
Count
Source
126
11.0M
  void traverseChild() {
127
24.6M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
13.6M
      NodeRef BB = *VisitStack.back().second++;
129
13.6M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
9.07M
        // If the block is not visited...
131
9.07M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
9.07M
      }
133
13.6M
    }
134
11.0M
  }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::traverseChild()
Line
Count
Source
126
2.04M
  void traverseChild() {
127
3.81M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
1.76M
      NodeRef BB = *VisitStack.back().second++;
129
1.76M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
1.76M
        // If the block is not visited...
131
1.76M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
1.76M
      }
133
1.76M
    }
134
2.04M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::traverseChild()
Line
Count
Source
126
54.4M
  void traverseChild() {
127
126M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
72.3M
      NodeRef BB = *VisitStack.back().second++;
129
72.3M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
46.0M
        // If the block is not visited...
131
46.0M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
46.0M
      }
133
72.3M
    }
134
54.4M
  }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::traverseChild()
Line
Count
Source
126
37.2M
  void traverseChild() {
127
86.3M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
49.1M
      NodeRef BB = *VisitStack.back().second++;
129
49.1M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
31.7M
        // If the block is not visited...
131
31.7M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
31.7M
      }
133
49.1M
    }
134
37.2M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::traverseChild()
Line
Count
Source
126
3.39M
  void traverseChild() {
127
9.20M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
5.81M
      NodeRef BB = *VisitStack.back().second++;
129
5.81M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
2.53M
        // If the block is not visited...
131
2.53M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
2.53M
      }
133
5.81M
    }
134
3.39M
  }
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
126
41.4M
  void traverseChild() {
127
75.9M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
34.4M
      NodeRef BB = *VisitStack.back().second++;
129
34.4M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
34.4M
        // If the block is not visited...
131
34.4M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
34.4M
      }
133
34.4M
    }
134
41.4M
  }
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
126
38.2k
  void traverseChild() {
127
51.3k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
13.1k
      NodeRef BB = *VisitStack.back().second++;
129
13.1k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
13.1k
        // If the block is not visited...
131
13.1k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
13.1k
      }
133
13.1k
    }
134
38.2k
  }
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
126
11.1M
  void traverseChild() {
127
20.1M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
8.98M
      NodeRef BB = *VisitStack.back().second++;
129
8.98M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
8.98M
        // If the block is not visited...
131
8.98M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
8.98M
      }
133
8.98M
    }
134
11.1M
  }
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
126
569k
  void traverseChild() {
127
1.40M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
834k
      NodeRef BB = *VisitStack.back().second++;
129
834k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
429k
        // If the block is not visited...
131
429k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
429k
      }
133
834k
    }
134
569k
  }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::traverseChild()
Line
Count
Source
126
662k
  void traverseChild() {
127
1.67M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
1.00M
      NodeRef BB = *VisitStack.back().second++;
129
1.00M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
573k
        // If the block is not visited...
131
573k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
573k
      }
133
1.00M
    }
134
662k
  }
llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > >::traverseChild()
Line
Count
Source
126
7.42k
  void traverseChild() {
127
19.0k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
11.6k
      NodeRef BB = *VisitStack.back().second++;
129
11.6k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
7.26k
        // If the block is not visited...
131
7.26k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
7.26k
      }
133
11.6k
    }
134
7.42k
  }
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::traverseChild()
Line
Count
Source
126
29.0k
  void traverseChild() {
127
54.7k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
25.7k
      NodeRef BB = *VisitStack.back().second++;
129
25.7k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
18.6k
        // If the block is not visited...
131
18.6k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
18.6k
      }
133
25.7k
    }
134
29.0k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::traverseChild()
Line
Count
Source
126
27.1k
  void traverseChild() {
127
30.6k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
3.56k
      NodeRef BB = *VisitStack.back().second++;
129
3.56k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
2.45k
        // If the block is not visited...
131
2.45k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
2.45k
      }
133
3.56k
    }
134
27.1k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::traverseChild()
Line
Count
Source
126
1.14k
  void traverseChild() {
127
2.31k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
1.17k
      NodeRef BB = *VisitStack.back().second++;
129
1.17k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
784
        // If the block is not visited...
131
784
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
784
      }
133
1.17k
    }
134
1.14k
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::traverseChild()
Line
Count
Source
126
86
  void traverseChild() {
127
152
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
66
      NodeRef BB = *VisitStack.back().second++;
129
66
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
66
        // If the block is not visited...
131
66
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
66
      }
133
66
    }
134
86
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::traverseChild()
Line
Count
Source
126
16.4k
  void traverseChild() {
127
37.7k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
21.3k
      NodeRef BB = *VisitStack.back().second++;
129
21.3k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
15.5k
        // If the block is not visited...
131
15.5k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
15.5k
      }
133
21.3k
    }
134
16.4k
  }
llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> >::traverseChild()
Line
Count
Source
126
18
  void traverseChild() {
127
48
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
30
      NodeRef BB = *VisitStack.back().second++;
129
30
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
17
        // If the block is not visited...
131
17
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
17
      }
133
30
    }
134
18
  }
llvm::po_iterator<clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet, true, llvm::GraphTraits<clang::CFG const*> >::traverseChild()
Line
Count
Source
126
833k
  void traverseChild() {
127
1.85M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
1.02M
      NodeRef BB = *VisitStack.back().second++;
129
1.02M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
726k
        // If the block is not visited...
131
726k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
726k
      }
133
1.02M
    }
134
833k
  }
135
136
public:
137
  using pointer = typename super::pointer;
138
139
  // Provide static "constructors"...
140
29.4M
  static po_iterator begin(GraphT G) {
141
29.4M
    return po_iterator(GT::getEntryNode(G));
142
29.4M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::begin(llvm::MachineBasicBlock*)
Line
Count
Source
140
3.52M
  static po_iterator begin(GraphT G) {
141
3.52M
    return po_iterator(GT::getEntryNode(G));
142
3.52M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::begin(llvm::MachineFunction*)
Line
Count
Source
140
494k
  static po_iterator begin(GraphT G) {
141
494k
    return po_iterator(GT::getEntryNode(G));
142
494k
  }
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
140
1.92M
  static po_iterator begin(GraphT G) {
141
1.92M
    return po_iterator(GT::getEntryNode(G));
142
1.92M
  }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::begin(llvm::MachineDominatorTree*)
Line
Count
Source
140
280k
  static po_iterator begin(GraphT G) {
141
280k
    return po_iterator(GT::getEntryNode(G));
142
280k
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::begin(llvm::BasicBlock*)
Line
Count
Source
140
8.40M
  static po_iterator begin(GraphT G) {
141
8.40M
    return po_iterator(GT::getEntryNode(G));
142
8.40M
  }
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
140
5.52M
  static po_iterator begin(GraphT G) {
141
5.52M
    return po_iterator(GT::getEntryNode(G));
142
5.52M
  }
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
140
6.99M
  static po_iterator begin(GraphT G) {
141
6.99M
    return po_iterator(GT::getEntryNode(G));
142
6.99M
  }
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
140
25.1k
  static po_iterator begin(GraphT G) {
141
25.1k
    return po_iterator(GT::getEntryNode(G));
142
25.1k
  }
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
140
2.19M
  static po_iterator begin(GraphT G) {
141
2.19M
    return po_iterator(GT::getEntryNode(G));
142
2.19M
  }
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
140
10.3k
  static po_iterator begin(GraphT G) {
141
10.3k
    return po_iterator(GT::getEntryNode(G));
142
10.3k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::begin(llvm::Function*)
Line
Count
Source
140
24.6k
  static po_iterator begin(GraphT G) {
141
24.6k
    return po_iterator(GT::getEntryNode(G));
142
24.6k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::begin(llvm::VPBlockBase*)
Line
Count
Source
140
360
  static po_iterator begin(GraphT G) {
141
360
    return po_iterator(GT::getEntryNode(G));
142
360
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::begin(llvm::DomTreeNodeBase<llvm::VPBlockBase> const*)
Line
Count
Source
140
20
  static po_iterator begin(GraphT G) {
141
20
    return po_iterator(GT::getEntryNode(G));
142
20
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::begin(clang::CallGraphNode*)
Line
Count
Source
140
828
  static po_iterator begin(GraphT G) {
141
828
    return po_iterator(GT::getEntryNode(G));
142
828
  }
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
140
1
  static po_iterator begin(GraphT G) {
141
1
    return po_iterator(GT::getEntryNode(G));
142
1
  }
143
29.4M
  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
143
3.52M
  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
143
494k
  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
143
1.92M
  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
143
280k
  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
143
8.40M
  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
143
5.52M
  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
143
6.99M
  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
143
25.1k
  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
143
2.19M
  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
143
10.3k
  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
143
24.6k
  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
143
360
  static po_iterator end(GraphT G) { return po_iterator(); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::end(llvm::DomTreeNodeBase<llvm::VPBlockBase> const*)
Line
Count
Source
143
20
  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
143
828
  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
143
1
  static po_iterator end(GraphT G) { return po_iterator(); }
144
145
1.25M
  static po_iterator begin(GraphT G, SetType &S) {
146
1.25M
    return po_iterator(GT::getEntryNode(G), S);
147
1.25M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::begin(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
145
859k
  static po_iterator begin(GraphT G, SetType &S) {
146
859k
    return po_iterator(GT::getEntryNode(G), S);
147
859k
  }
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
145
144k
  static po_iterator begin(GraphT G, SetType &S) {
146
144k
    return po_iterator(GT::getEntryNode(G), S);
147
144k
  }
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
145
144k
  static po_iterator begin(GraphT G, SetType &S) {
146
144k
    return po_iterator(GT::getEntryNode(G), S);
147
144k
  }
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
145
158
  static po_iterator begin(GraphT G, SetType &S) {
146
158
    return po_iterator(GT::getEntryNode(G), S);
147
158
  }
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
145
106k
  static po_iterator begin(GraphT G, SetType &S) {
146
106k
    return po_iterator(GT::getEntryNode(G), S);
147
106k
  }
148
1.25M
  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
148
859k
  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
148
144k
  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
148
144k
  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
148
158
  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
148
106k
  static po_iterator end(GraphT G, SetType &S) { return po_iterator(S); }
149
150
217M
  bool operator==(const po_iterator &x) const {
151
217M
    return VisitStack == x.VisitStack;
152
217M
  }
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
150
22.7M
  bool operator==(const po_iterator &x) const {
151
22.7M
    return VisitStack == x.VisitStack;
152
22.7M
  }
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
150
4.80M
  bool operator==(const po_iterator &x) const {
151
4.80M
    return VisitStack == x.VisitStack;
152
4.80M
  }
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
150
12.9M
  bool operator==(const po_iterator &x) const {
151
12.9M
    return VisitStack == x.VisitStack;
152
12.9M
  }
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
150
2.32M
  bool operator==(const po_iterator &x) const {
151
2.32M
    return VisitStack == x.VisitStack;
152
2.32M
  }
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
150
62.8M
  bool operator==(const po_iterator &x) const {
151
62.8M
    return VisitStack == x.VisitStack;
152
62.8M
  }
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
150
42.7M
  bool operator==(const po_iterator &x) const {
151
42.7M
    return VisitStack == x.VisitStack;
152
42.7M
  }
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
150
48.4M
  bool operator==(const po_iterator &x) const {
151
48.4M
    return VisitStack == x.VisitStack;
152
48.4M
  }
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
150
4.24M
  bool operator==(const po_iterator &x) const {
151
4.24M
    return VisitStack == x.VisitStack;
152
4.24M
  }
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
150
63.3k
  bool operator==(const po_iterator &x) const {
151
63.3k
    return VisitStack == x.VisitStack;
152
63.3k
  }
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
150
13.3M
  bool operator==(const po_iterator &x) const {
151
13.3M
    return VisitStack == x.VisitStack;
152
13.3M
  }
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
150
714k
  bool operator==(const po_iterator &x) const {
151
714k
    return VisitStack == x.VisitStack;
152
714k
  }
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
150
807k
  bool operator==(const po_iterator &x) const {
151
807k
    return VisitStack == x.VisitStack;
152
807k
  }
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
150
7.58k
  bool operator==(const po_iterator &x) const {
151
7.58k
    return VisitStack == x.VisitStack;
152
7.58k
  }
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
150
39.4k
  bool operator==(const po_iterator &x) const {
151
39.4k
    return VisitStack == x.VisitStack;
152
39.4k
  }
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
150
51.8k
  bool operator==(const po_iterator &x) const {
151
51.8k
    return VisitStack == x.VisitStack;
152
51.8k
  }
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
150
1.50k
  bool operator==(const po_iterator &x) const {
151
1.50k
    return VisitStack == x.VisitStack;
152
1.50k
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::operator==(llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> > const&) const
Line
Count
Source
150
106
  bool operator==(const po_iterator &x) const {
151
106
    return VisitStack == x.VisitStack;
152
106
  }
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
150
17.2k
  bool operator==(const po_iterator &x) const {
151
17.2k
    return VisitStack == x.VisitStack;
152
17.2k
  }
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
150
19
  bool operator==(const po_iterator &x) const {
151
19
    return VisitStack == x.VisitStack;
152
19
  }
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
150
939k
  bool operator==(const po_iterator &x) const {
151
939k
    return VisitStack == x.VisitStack;
152
939k
  }
153
217M
  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
153
22.7M
  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
153
4.80M
  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
153
12.9M
  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
153
2.32M
  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
153
62.8M
  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
153
42.7M
  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
153
48.4M
  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
153
4.24M
  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
153
63.3k
  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
153
13.3M
  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
153
714k
  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
153
807k
  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
153
7.58k
  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
153
39.4k
  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
153
51.8k
  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
153
1.50k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::operator!=(llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> > const&) const
Line
Count
Source
153
106
  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
153
17.2k
  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
153
19
  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
153
939k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
154
155
184M
  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
155
19.2M
  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
155
4.32M
  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
155
11.0M
  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
155
2.04M
  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
155
54.4M
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::operator*() const
Line
Count
Source
155
37.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
155
15.2k
  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
155
41.4M
  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
155
38.2k
  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
155
11.1M
  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
155
569k
  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
155
662k
  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
155
7.42k
  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
155
29.0k
  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
155
27.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
155
1.14k
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::operator*() const
Line
Count
Source
155
86
  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
155
16.4k
  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
155
18
  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
155
1.66M
  const NodeRef &operator*() const { return VisitStack.back().first; }
156
157
  // This is a nonstandard operator-> that dereferences the pointer an extra
158
  // time... so that you can actually call methods ON the BasicBlock, because
159
  // the contained type is a pointer.  This allows BBIt->getTerminator() f.e.
160
  //
161
557
  NodeRef operator->() const { return **this; }
162
163
186M
  po_iterator &operator++() { // Preincrement
164
186M
    this->finishPostorder(VisitStack.back().first);
165
186M
    VisitStack.pop_back();
166
186M
    if (!VisitStack.empty())
167
155M
      traverseChild();
168
186M
    return *this;
169
186M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::operator++()
Line
Count
Source
163
19.2M
  po_iterator &operator++() { // Preincrement
164
19.2M
    this->finishPostorder(VisitStack.back().first);
165
19.2M
    VisitStack.pop_back();
166
19.2M
    if (!VisitStack.empty())
167
15.7M
      traverseChild();
168
19.2M
    return *this;
169
19.2M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::operator++()
Line
Count
Source
163
4.31M
  po_iterator &operator++() { // Preincrement
164
4.31M
    this->finishPostorder(VisitStack.back().first);
165
4.31M
    VisitStack.pop_back();
166
4.31M
    if (!VisitStack.empty())
167
3.82M
      traverseChild();
168
4.31M
    return *this;
169
4.31M
  }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::operator++()
Line
Count
Source
163
11.0M
  po_iterator &operator++() { // Preincrement
164
11.0M
    this->finishPostorder(VisitStack.back().first);
165
11.0M
    VisitStack.pop_back();
166
11.0M
    if (!VisitStack.empty())
167
9.07M
      traverseChild();
168
11.0M
    return *this;
169
11.0M
  }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::operator++()
Line
Count
Source
163
2.04M
  po_iterator &operator++() { // Preincrement
164
2.04M
    this->finishPostorder(VisitStack.back().first);
165
2.04M
    VisitStack.pop_back();
166
2.04M
    if (!VisitStack.empty())
167
1.76M
      traverseChild();
168
2.04M
    return *this;
169
2.04M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::operator++()
Line
Count
Source
163
54.4M
  po_iterator &operator++() { // Preincrement
164
54.4M
    this->finishPostorder(VisitStack.back().first);
165
54.4M
    VisitStack.pop_back();
166
54.4M
    if (!VisitStack.empty())
167
46.0M
      traverseChild();
168
54.4M
    return *this;
169
54.4M
  }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::operator++()
Line
Count
Source
163
37.2M
  po_iterator &operator++() { // Preincrement
164
37.2M
    this->finishPostorder(VisitStack.back().first);
165
37.2M
    VisitStack.pop_back();
166
37.2M
    if (!VisitStack.empty())
167
31.7M
      traverseChild();
168
37.2M
    return *this;
169
37.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
163
41.4M
  po_iterator &operator++() { // Preincrement
164
41.4M
    this->finishPostorder(VisitStack.back().first);
165
41.4M
    VisitStack.pop_back();
166
41.4M
    if (!VisitStack.empty())
167
34.4M
      traverseChild();
168
41.4M
    return *this;
169
41.4M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::operator++()
Line
Count
Source
163
3.39M
  po_iterator &operator++() { // Preincrement
164
3.39M
    this->finishPostorder(VisitStack.back().first);
165
3.39M
    VisitStack.pop_back();
166
3.39M
    if (!VisitStack.empty())
167
2.53M
      traverseChild();
168
3.39M
    return *this;
169
3.39M
  }
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
163
38.2k
  po_iterator &operator++() { // Preincrement
164
38.2k
    this->finishPostorder(VisitStack.back().first);
165
38.2k
    VisitStack.pop_back();
166
38.2k
    if (!VisitStack.empty())
167
13.1k
      traverseChild();
168
38.2k
    return *this;
169
38.2k
  }
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
163
11.1M
  po_iterator &operator++() { // Preincrement
164
11.1M
    this->finishPostorder(VisitStack.back().first);
165
11.1M
    VisitStack.pop_back();
166
11.1M
    if (!VisitStack.empty())
167
8.98M
      traverseChild();
168
11.1M
    return *this;
169
11.1M
  }
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
163
569k
  po_iterator &operator++() { // Preincrement
164
569k
    this->finishPostorder(VisitStack.back().first);
165
569k
    VisitStack.pop_back();
166
569k
    if (!VisitStack.empty())
167
429k
      traverseChild();
168
569k
    return *this;
169
569k
  }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::operator++()
Line
Count
Source
163
662k
  po_iterator &operator++() { // Preincrement
164
662k
    this->finishPostorder(VisitStack.back().first);
165
662k
    VisitStack.pop_back();
166
662k
    if (!VisitStack.empty())
167
573k
      traverseChild();
168
662k
    return *this;
169
662k
  }
llvm::po_iterator<llvm::Inverse<llvm::BasicBlock*>, llvm::SmallPtrSet<llvm::BasicBlock*, 16u>, true, llvm::GraphTraits<llvm::Inverse<llvm::BasicBlock*> > >::operator++()
Line
Count
Source
163
7.42k
  po_iterator &operator++() { // Preincrement
164
7.42k
    this->finishPostorder(VisitStack.back().first);
165
7.42k
    VisitStack.pop_back();
166
7.42k
    if (!VisitStack.empty())
167
7.26k
      traverseChild();
168
7.42k
    return *this;
169
7.42k
  }
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::operator++()
Line
Count
Source
163
29.0k
  po_iterator &operator++() { // Preincrement
164
29.0k
    this->finishPostorder(VisitStack.back().first);
165
29.0k
    VisitStack.pop_back();
166
29.0k
    if (!VisitStack.empty())
167
18.6k
      traverseChild();
168
29.0k
    return *this;
169
29.0k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::operator++()
Line
Count
Source
163
27.1k
  po_iterator &operator++() { // Preincrement
164
27.1k
    this->finishPostorder(VisitStack.back().first);
165
27.1k
    VisitStack.pop_back();
166
27.1k
    if (!VisitStack.empty())
167
2.45k
      traverseChild();
168
27.1k
    return *this;
169
27.1k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::operator++()
Line
Count
Source
163
1.14k
  po_iterator &operator++() { // Preincrement
164
1.14k
    this->finishPostorder(VisitStack.back().first);
165
1.14k
    VisitStack.pop_back();
166
1.14k
    if (!VisitStack.empty())
167
784
      traverseChild();
168
1.14k
    return *this;
169
1.14k
  }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> >::operator++()
Line
Count
Source
163
86
  po_iterator &operator++() { // Preincrement
164
86
    this->finishPostorder(VisitStack.back().first);
165
86
    VisitStack.pop_back();
166
86
    if (!VisitStack.empty())
167
66
      traverseChild();
168
86
    return *this;
169
86
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::operator++()
Line
Count
Source
163
16.4k
  po_iterator &operator++() { // Preincrement
164
16.4k
    this->finishPostorder(VisitStack.back().first);
165
16.4k
    VisitStack.pop_back();
166
16.4k
    if (!VisitStack.empty())
167
15.5k
      traverseChild();
168
16.4k
    return *this;
169
16.4k
  }
llvm::po_iterator<clang::CallGraphNode const*, llvm::SmallPtrSet<clang::CallGraphNode const*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode const*> >::operator++()
Line
Count
Source
163
18
  po_iterator &operator++() { // Preincrement
164
18
    this->finishPostorder(VisitStack.back().first);
165
18
    VisitStack.pop_back();
166
18
    if (!VisitStack.empty())
167
17
      traverseChild();
168
18
    return *this;
169
18
  }
llvm::po_iterator<clang::CFG const*, clang::PostOrderCFGView::CFGBlockSet, true, llvm::GraphTraits<clang::CFG const*> >::operator++()
Line
Count
Source
163
833k
  po_iterator &operator++() { // Preincrement
164
833k
    this->finishPostorder(VisitStack.back().first);
165
833k
    VisitStack.pop_back();
166
833k
    if (!VisitStack.empty())
167
726k
      traverseChild();
168
833k
    return *this;
169
833k
  }
170
171
  po_iterator operator++(int) { // Postincrement
172
    po_iterator tmp = *this;
173
    ++*this;
174
    return tmp;
175
  }
176
};
177
178
// Provide global constructors that automatically figure out correct types...
179
//
180
template <class T>
181
29.4M
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
181
3.52M
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
181
494k
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
181
1.92M
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
181
280k
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
181
8.40M
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
181
5.52M
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
181
6.99M
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
181
25.1k
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
181
2.19M
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
181
10.3k
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
181
24.6k
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
181
360
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> > llvm::po_begin<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>(llvm::DomTreeNodeBase<llvm::VPBlockBase> const* const&)
Line
Count
Source
181
20
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
181
828
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
181
1
po_iterator<T> po_begin(const T &G) { return po_iterator<T>::begin(G); }
182
template <class T>
183
29.4M
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
183
3.52M
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
183
494k
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
183
1.92M
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
183
280k
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
183
8.40M
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
183
5.52M
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
183
6.99M
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
183
25.1k
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
183
2.19M
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
183
10.3k
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
183
24.6k
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
183
360
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> > llvm::po_end<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>(llvm::DomTreeNodeBase<llvm::VPBlockBase> const* const&)
Line
Count
Source
183
20
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
183
828
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
183
1
po_iterator<T> po_end  (const T &G) { return po_iterator<T>::end(G); }
184
185
22.2M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
22.2M
  return make_range(po_begin(G), po_end(G));
187
22.2M
}
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
185
2.19M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
2.19M
  return make_range(po_begin(G), po_end(G));
187
2.19M
}
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
185
494k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
494k
  return make_range(po_begin(G), po_end(G));
187
494k
}
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
185
280k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
280k
  return make_range(po_begin(G), po_end(G));
187
280k
}
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
185
2.75M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
2.75M
  return make_range(po_begin(G), po_end(G));
187
2.75M
}
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
185
6.99M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
6.99M
  return make_range(po_begin(G), po_end(G));
187
6.99M
}
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
185
7.26M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
7.26M
  return make_range(po_begin(G), po_end(G));
187
7.26M
}
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
185
25.0k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
25.0k
  return make_range(po_begin(G), po_end(G));
187
25.0k
}
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
185
2.19M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
2.19M
  return make_range(po_begin(G), po_end(G));
187
2.19M
}
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
185
24.6k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
24.6k
  return make_range(po_begin(G), po_end(G));
187
24.6k
}
llvm::iterator_range<llvm::po_iterator<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*> > > llvm::post_order<llvm::DomTreeNodeBase<llvm::VPBlockBase> const*>(llvm::DomTreeNodeBase<llvm::VPBlockBase> const* const&)
Line
Count
Source
185
20
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
20
  return make_range(po_begin(G), po_end(G));
187
20
}
llvm::iterator_range<llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::GraphTraits<llvm::VPBlockBase*>::NodeRef, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> > > llvm::post_order<llvm::VPBlockBase*>(llvm::VPBlockBase* const&)
Line
Count
Source
185
20
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
20
  return make_range(po_begin(G), po_end(G));
187
20
}
188
189
// Provide global definitions of external postorder iterators...
190
template <class T, class SetType = std::set<typename GraphTraits<T>::NodeRef>>
191
struct po_ext_iterator : public po_iterator<T, SetType, true> {
192
  po_ext_iterator(const po_iterator<T, SetType, true> &V) :
193
2.00M
  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
193
1.71M
  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
193
289k
  po_iterator<T, SetType, true>(V) {}
194
};
195
196
template<class T, class SetType>
197
1.00M
po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) {
198
1.00M
  return po_ext_iterator<T, SetType>::begin(G, S);
199
1.00M
}
llvm::po_ext_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal> llvm::po_ext_begin<llvm::BasicBlock*, llvm::LoopBlocksTraversal>(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
197
859k
po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) {
198
859k
  return po_ext_iterator<T, SetType>::begin(G, S);
199
859k
}
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
197
144k
po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) {
198
144k
  return po_ext_iterator<T, SetType>::begin(G, S);
199
144k
}
200
201
template<class T, class SetType>
202
1.00M
po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) {
203
1.00M
  return po_ext_iterator<T, SetType>::end(G, S);
204
1.00M
}
llvm::po_ext_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal> llvm::po_ext_end<llvm::BasicBlock*, llvm::LoopBlocksTraversal>(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
202
859k
po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) {
203
859k
  return po_ext_iterator<T, SetType>::end(G, S);
204
859k
}
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
202
144k
po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) {
203
144k
  return po_ext_iterator<T, SetType>::end(G, S);
204
144k
}
205
206
template <class T, class SetType>
207
144k
iterator_range<po_ext_iterator<T, SetType>> post_order_ext(const T &G, SetType &S) {
208
144k
  return make_range(po_ext_begin(G, S), po_ext_end(G, S));
209
144k
}
210
211
// Provide global definitions of inverse post order iterators...
212
template <class T, class SetType = std::set<typename GraphTraits<T>::NodeRef>,
213
          bool External = false>
214
struct ipo_iterator : public po_iterator<Inverse<T>, SetType, External> {
215
  ipo_iterator(const po_iterator<Inverse<T>, SetType, External> &V) :
216
290k
     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
216
289k
     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
216
316
     po_iterator<Inverse<T>, SetType, External> (V) {}
217
};
218
219
template <class T>
220
ipo_iterator<T> ipo_begin(const T &G) {
221
  return ipo_iterator<T>::begin(G);
222
}
223
224
template <class T>
225
ipo_iterator<T> ipo_end(const T &G){
226
  return ipo_iterator<T>::end(G);
227
}
228
229
template <class T>
230
iterator_range<ipo_iterator<T>> inverse_post_order(const T &G) {
231
  return make_range(ipo_begin(G), ipo_end(G));
232
}
233
234
// Provide global definitions of external inverse postorder iterators...
235
template <class T, class SetType = std::set<typename GraphTraits<T>::NodeRef>>
236
struct ipo_ext_iterator : public ipo_iterator<T, SetType, true> {
237
  ipo_ext_iterator(const ipo_iterator<T, SetType, true> &V) :
238
    ipo_iterator<T, SetType, true>(V) {}
239
  ipo_ext_iterator(const po_iterator<Inverse<T>, SetType, true> &V) :
240
290k
    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
240
289k
    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
240
316
    ipo_iterator<T, SetType, true>(V) {}
241
};
242
243
template <class T, class SetType>
244
145k
ipo_ext_iterator<T, SetType> ipo_ext_begin(const T &G, SetType &S) {
245
145k
  return ipo_ext_iterator<T, SetType>::begin(G, S);
246
145k
}
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
244
144k
ipo_ext_iterator<T, SetType> ipo_ext_begin(const T &G, SetType &S) {
245
144k
  return ipo_ext_iterator<T, SetType>::begin(G, S);
246
144k
}
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
244
158
ipo_ext_iterator<T, SetType> ipo_ext_begin(const T &G, SetType &S) {
245
158
  return ipo_ext_iterator<T, SetType>::begin(G, S);
246
158
}
247
248
template <class T, class SetType>
249
145k
ipo_ext_iterator<T, SetType> ipo_ext_end(const T &G, SetType &S) {
250
145k
  return ipo_ext_iterator<T, SetType>::end(G, S);
251
145k
}
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
249
144k
ipo_ext_iterator<T, SetType> ipo_ext_end(const T &G, SetType &S) {
250
144k
  return ipo_ext_iterator<T, SetType>::end(G, S);
251
144k
}
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
249
158
ipo_ext_iterator<T, SetType> ipo_ext_end(const T &G, SetType &S) {
250
158
  return ipo_ext_iterator<T, SetType>::end(G, S);
251
158
}
252
253
template <class T, class SetType>
254
iterator_range<ipo_ext_iterator<T, SetType>>
255
145k
inverse_post_order_ext(const T &G, SetType &S) {
256
145k
  return make_range(ipo_ext_begin(G, S), ipo_ext_end(G, S));
257
145k
}
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
255
144k
inverse_post_order_ext(const T &G, SetType &S) {
256
144k
  return make_range(ipo_ext_begin(G, S), ipo_ext_end(G, S));
257
144k
}
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
255
158
inverse_post_order_ext(const T &G, SetType &S) {
256
158
  return make_range(ipo_ext_begin(G, S), ipo_ext_end(G, S));
257
158
}
258
259
//===--------------------------------------------------------------------===//
260
// Reverse Post Order CFG iterator code
261
//===--------------------------------------------------------------------===//
262
//
263
// This is used to visit basic blocks in a method in reverse post order.  This
264
// class is awkward to use because I don't know a good incremental algorithm to
265
// computer RPO from a graph.  Because of this, the construction of the
266
// ReversePostOrderTraversal object is expensive (it must walk the entire graph
267
// with a postorder iterator to build the data structures).  The moral of this
268
// story is: Don't create more ReversePostOrderTraversal classes than necessary.
269
//
270
// Because it does the traversal in its constructor, it won't invalidate when
271
// BasicBlocks are removed, *but* it may contain erased blocks. Some places
272
// rely on this behavior (i.e. GVN).
273
//
274
// This class should be used like this:
275
// {
276
//   ReversePostOrderTraversal<Function*> RPOT(FuncPtr); // Expensive to create
277
//   for (rpo_iterator I = RPOT.begin(); I != RPOT.end(); ++I) {
278
//      ...
279
//   }
280
//   for (rpo_iterator I = RPOT.begin(); I != RPOT.end(); ++I) {
281
//      ...
282
//   }
283
// }
284
//
285
286
template<class GraphT, class GT = GraphTraits<GraphT>>
287
class ReversePostOrderTraversal {
288
  using NodeRef = typename GT::NodeRef;
289
290
  std::vector<NodeRef> Blocks; // Block list in normal PO order
291
292
2.98M
  void Initialize(NodeRef BB) {
293
2.98M
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
2.98M
  }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::Initialize(llvm::MachineBasicBlock*)
Line
Count
Source
292
699k
  void Initialize(NodeRef BB) {
293
699k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
699k
  }
llvm::ReversePostOrderTraversal<llvm::MachineFunction const*, llvm::GraphTraits<llvm::MachineFunction const*> >::Initialize(llvm::MachineBasicBlock const*)
Line
Count
Source
292
5.04k
  void Initialize(NodeRef BB) {
293
5.04k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
5.04k
  }
llvm::ReversePostOrderTraversal<llvm::Function*, llvm::GraphTraits<llvm::Function*> >::Initialize(llvm::BasicBlock*)
Line
Count
Source
292
1.14M
  void Initialize(NodeRef BB) {
293
1.14M
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
1.14M
  }
llvm::ReversePostOrderTraversal<llvm::Function const*, llvm::GraphTraits<llvm::Function const*> >::Initialize(llvm::BasicBlock const*)
Line
Count
Source
292
496k
  void Initialize(NodeRef BB) {
293
496k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
496k
  }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::Initialize(llvm::MachineBasicBlock*)
Line
Count
Source
292
627k
  void Initialize(NodeRef BB) {
293
627k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
627k
  }
llvm::ReversePostOrderTraversal<llvm::BasicBlock*, llvm::GraphTraits<llvm::BasicBlock*> >::Initialize(llvm::BasicBlock*)
Line
Count
Source
292
72
  void Initialize(NodeRef BB) {
293
72
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
72
  }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::Initialize(llvm::RegionNode*)
Line
Count
Source
292
10.3k
  void Initialize(NodeRef BB) {
293
10.3k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
10.3k
  }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::Initialize(llvm::VPBlockBase*)
Line
Count
Source
292
340
  void Initialize(NodeRef BB) {
293
340
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
340
  }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::Initialize(clang::CallGraphNode*)
Line
Count
Source
292
828
  void Initialize(NodeRef BB) {
293
828
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
828
  }
llvm::ReversePostOrderTraversal<clang::CallGraph const*, llvm::GraphTraits<clang::CallGraph const*> >::Initialize(clang::CallGraphNode const*)
Line
Count
Source
292
1
  void Initialize(NodeRef BB) {
293
1
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
1
  }
295
296
public:
297
  using rpo_iterator = typename std::vector<NodeRef>::reverse_iterator;
298
  using const_rpo_iterator = typename std::vector<NodeRef>::const_reverse_iterator;
299
300
2.98M
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::ReversePostOrderTraversal(llvm::MachineFunction*)
Line
Count
Source
300
699k
  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
5.04k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::Function*, llvm::GraphTraits<llvm::Function*> >::ReversePostOrderTraversal(llvm::Function*)
Line
Count
Source
300
1.14M
  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
496k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::ReversePostOrderTraversal(llvm::MachineBasicBlock*)
Line
Count
Source
300
627k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::BasicBlock*, llvm::GraphTraits<llvm::BasicBlock*> >::ReversePostOrderTraversal(llvm::BasicBlock*)
Line
Count
Source
300
72
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::ReversePostOrderTraversal(llvm::Region*)
Line
Count
Source
300
10.3k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::ReversePostOrderTraversal(llvm::VPBlockBase*)
Line
Count
Source
300
340
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::ReversePostOrderTraversal(clang::CallGraph*)
Line
Count
Source
300
828
  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.17M
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::begin()
Line
Count
Source
303
699k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction const*, llvm::GraphTraits<llvm::MachineFunction const*> >::begin()
Line
Count
Source
303
5.04k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::Function*, llvm::GraphTraits<llvm::Function*> >::begin()
Line
Count
Source
303
2.05M
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::begin()
Line
Count
Source
303
899k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::BasicBlock*, llvm::GraphTraits<llvm::BasicBlock*> >::begin()
Line
Count
Source
303
72
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::begin()
Line
Count
Source
303
11.0k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::begin()
Line
Count
Source
303
960
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::Function const*, llvm::GraphTraits<llvm::Function const*> >::begin()
Line
Count
Source
303
495k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::begin()
Line
Count
Source
303
828
  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
121
  const_rpo_iterator begin() const { return Blocks.crbegin(); }
305
4.17M
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::end()
Line
Count
Source
305
699k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction const*, llvm::GraphTraits<llvm::MachineFunction const*> >::end()
Line
Count
Source
305
5.04k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::Function*, llvm::GraphTraits<llvm::Function*> >::end()
Line
Count
Source
305
2.05M
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::end()
Line
Count
Source
305
899k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::BasicBlock*, llvm::GraphTraits<llvm::BasicBlock*> >::end()
Line
Count
Source
305
72
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::end()
Line
Count
Source
305
11.0k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::end()
Line
Count
Source
305
960
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::Function const*, llvm::GraphTraits<llvm::Function const*> >::end()
Line
Count
Source
305
495k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::end()
Line
Count
Source
305
828
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<clang::CallGraph const*, llvm::GraphTraits<clang::CallGraph const*> >::end()
Line
Count
Source
305
1
  rpo_iterator end() { return Blocks.rend(); }
306
121
  const_rpo_iterator end() const { return Blocks.crend(); }
307
};
308
309
} // end namespace llvm
310
311
#endif // LLVM_ADT_POSTORDERITERATOR_H