Coverage Report

Created: 2019-07-24 05:18

/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
237M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
237M
    return Visited.insert(To).second;
65
237M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false>::insertEdge<llvm::MachineBasicBlock*>(llvm::Optional<llvm::MachineBasicBlock*>, llvm::MachineBasicBlock*)
Line
Count
Source
63
35.5M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
35.5M
    return Visited.insert(To).second;
65
35.5M
  }
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.7M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
15.7M
    return Visited.insert(To).second;
65
15.7M
  }
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.6M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
80.6M
    return Visited.insert(To).second;
65
80.6M
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false>::insertEdge<llvm::BasicBlock const*>(llvm::Optional<llvm::BasicBlock const*>, llvm::BasicBlock const*)
Line
Count
Source
63
50.0M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
50.0M
    return Visited.insert(To).second;
65
50.0M
  }
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
42.7k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
42.7k
    return Visited.insert(To).second;
65
42.7k
  }
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.4M
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
11.4M
    return Visited.insert(To).second;
65
11.4M
  }
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.5k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
36.5k
    return Visited.insert(To).second;
65
36.5k
  }
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.66k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
1.66k
    return Visited.insert(To).second;
65
1.66k
  }
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
111
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
111
    return Visited.insert(To).second;
65
111
  }
bool llvm::po_iterator_storage<llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false>::insertEdge<clang::CallGraphNode*>(llvm::Optional<clang::CallGraphNode*>, clang::CallGraphNode*)
Line
Count
Source
63
23.2k
  bool insertEdge(Optional<NodeRef> From, NodeRef To) {
64
23.2k
    return Visited.insert(To).second;
65
23.2k
  }
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
179M
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false>::finishPostorder<llvm::MachineBasicBlock*>(llvm::MachineBasicBlock*)
Line
Count
Source
68
24.7M
  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.1M
  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
34.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
42.7k
  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.4M
  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.4k
  template <typename NodeRef> void finishPostorder(NodeRef BB) {}
void llvm::po_iterator_storage<llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false>::finishPostorder<llvm::VPBlockBase*>(llvm::VPBlockBase*)
Line
Count
Source
68
1.24k
  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
111
  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
17.0k
  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
220k
  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
318
  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
219k
  po_iterator_storage(SetType &VSet) : Visited(VSet) {}
78
1.27k
  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.16M
  template <class NodeRef> bool insertEdge(Optional<NodeRef> From, NodeRef To) {
84
1.16M
    return Visited.insert(To).second;
85
1.16M
  }
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.15M
  template <class NodeRef> bool insertEdge(Optional<NodeRef> From, NodeRef To) {
84
1.15M
    return Visited.insert(To).second;
85
1.15M
  }
86
87
  // Called after all children of BB have been visited.
88
859k
  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.45k
  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
851k
  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
30.2M
  po_iterator(NodeRef BB) {
107
30.2M
    this->insertEdge(Optional<NodeRef>(), BB);
108
30.2M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
30.2M
    traverseChild();
110
30.2M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::po_iterator(llvm::MachineBasicBlock*)
Line
Count
Source
106
3.74M
  po_iterator(NodeRef BB) {
107
3.74M
    this->insertEdge(Optional<NodeRef>(), BB);
108
3.74M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
3.74M
    traverseChild();
110
3.74M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::po_iterator(llvm::MachineBasicBlock*)
Line
Count
Source
106
607k
  po_iterator(NodeRef BB) {
107
607k
    this->insertEdge(Optional<NodeRef>(), BB);
108
607k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
607k
    traverseChild();
110
607k
  }
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
2.04M
  po_iterator(NodeRef BB) {
107
2.04M
    this->insertEdge(Optional<NodeRef>(), BB);
108
2.04M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
2.04M
    traverseChild();
110
2.04M
  }
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
284k
  po_iterator(NodeRef BB) {
107
284k
    this->insertEdge(Optional<NodeRef>(), BB);
108
284k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
284k
    traverseChild();
110
284k
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::po_iterator(llvm::BasicBlock*)
Line
Count
Source
106
8.62M
  po_iterator(NodeRef BB) {
107
8.62M
    this->insertEdge(Optional<NodeRef>(), BB);
108
8.62M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
8.62M
    traverseChild();
110
8.62M
  }
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.34M
  po_iterator(NodeRef BB) {
107
5.34M
    this->insertEdge(Optional<NodeRef>(), BB);
108
5.34M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
5.34M
    traverseChild();
110
5.34M
  }
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
7.18M
  po_iterator(NodeRef BB) {
107
7.18M
    this->insertEdge(Optional<NodeRef>(), BB);
108
7.18M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
7.18M
    traverseChild();
110
7.18M
  }
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
29.0k
  po_iterator(NodeRef BB) {
107
29.0k
    this->insertEdge(Optional<NodeRef>(), BB);
108
29.0k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
29.0k
    traverseChild();
110
29.0k
  }
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.33M
  po_iterator(NodeRef BB) {
107
2.33M
    this->insertEdge(Optional<NodeRef>(), BB);
108
2.33M
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
2.33M
    traverseChild();
110
2.33M
  }
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.5k
  po_iterator(NodeRef BB) {
107
10.5k
    this->insertEdge(Optional<NodeRef>(), BB);
108
10.5k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
10.5k
    traverseChild();
110
10.5k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::po_iterator(llvm::BasicBlock*)
Line
Count
Source
106
28.6k
  po_iterator(NodeRef BB) {
107
28.6k
    this->insertEdge(Optional<NodeRef>(), BB);
108
28.6k
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
28.6k
    traverseChild();
110
28.6k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::po_iterator(llvm::VPBlockBase*)
Line
Count
Source
106
382
  po_iterator(NodeRef BB) {
107
382
    this->insertEdge(Optional<NodeRef>(), BB);
108
382
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
382
    traverseChild();
110
382
  }
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
25
  po_iterator(NodeRef BB) {
107
25
    this->insertEdge(Optional<NodeRef>(), BB);
108
25
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
25
    traverseChild();
110
25
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::po_iterator(clang::CallGraphNode*)
Line
Count
Source
106
882
  po_iterator(NodeRef BB) {
107
882
    this->insertEdge(Optional<NodeRef>(), BB);
108
882
    VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
109
882
    traverseChild();
110
882
  }
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
30.2M
  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.74M
  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
607k
  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
2.04M
  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
284k
  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.62M
  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.34M
  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
7.18M
  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
29.0k
  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.33M
  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.5k
  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
28.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
382
  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
25
  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
882
  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.21M
      : po_iterator_storage<SetType, ExtStorage>(S) {
116
1.21M
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
117
1.16M
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
118
1.16M
      traverseChild();
119
1.16M
    }
120
1.21M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::po_iterator(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
115
856k
      : po_iterator_storage<SetType, ExtStorage>(S) {
116
856k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
117
856k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
118
856k
      traverseChild();
119
856k
    }
120
856k
  }
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
122k
      : po_iterator_storage<SetType, ExtStorage>(S) {
116
122k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
117
117k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
118
117k
      traverseChild();
119
117k
    }
120
122k
  }
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
122k
      : po_iterator_storage<SetType, ExtStorage>(S) {
116
122k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
117
80.2k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
118
80.2k
      traverseChild();
119
80.2k
    }
120
122k
  }
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
159
      : po_iterator_storage<SetType, ExtStorage>(S) {
116
159
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
117
159
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
118
159
      traverseChild();
119
159
    }
120
159
  }
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
109k
      : po_iterator_storage<SetType, ExtStorage>(S) {
116
109k
    if (this->insertEdge(Optional<NodeRef>(), BB)) {
117
109k
      VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
118
109k
      traverseChild();
119
109k
    }
120
109k
  }
121
122
  po_iterator(SetType &S)
123
1.21M
      : po_iterator_storage<SetType, ExtStorage>(S) {
124
1.21M
  } // 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
856k
      : po_iterator_storage<SetType, ExtStorage>(S) {
124
856k
  } // 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
122k
      : po_iterator_storage<SetType, ExtStorage>(S) {
124
122k
  } // 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
122k
      : po_iterator_storage<SetType, ExtStorage>(S) {
124
122k
  } // 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
159
      : po_iterator_storage<SetType, ExtStorage>(S) {
124
159
  } // 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
109k
      : po_iterator_storage<SetType, ExtStorage>(S) {
124
109k
  } // End is when stack is empty.
125
126
184M
  void traverseChild() {
127
400M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
215M
      NodeRef BB = *VisitStack.back().second++;
129
215M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
153M
        // If the block is not visited...
131
153M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
153M
      }
133
215M
    }
134
184M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::traverseChild()
Line
Count
Source
126
19.6M
  void traverseChild() {
127
43.8M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
24.1M
      NodeRef BB = *VisitStack.back().second++;
129
24.1M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
15.9M
        // If the block is not visited...
131
15.9M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
15.9M
      }
133
24.1M
    }
134
19.6M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::traverseChild()
Line
Count
Source
126
5.13M
  void traverseChild() {
127
12.1M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
7.03M
      NodeRef BB = *VisitStack.back().second++;
129
7.03M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
4.63M
        // If the block is not visited...
131
4.63M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
4.63M
      }
133
7.03M
    }
134
5.13M
  }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::traverseChild()
Line
Count
Source
126
11.1M
  void traverseChild() {
127
24.7M
    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.08M
        // If the block is not visited...
131
9.08M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
9.08M
      }
133
13.6M
    }
134
11.1M
  }
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.79M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
1.75M
      NodeRef BB = *VisitStack.back().second++;
129
1.75M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
1.75M
        // If the block is not visited...
131
1.75M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
1.75M
      }
133
1.75M
    }
134
2.04M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::traverseChild()
Line
Count
Source
126
54.5M
  void traverseChild() {
127
126M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
72.0M
      NodeRef BB = *VisitStack.back().second++;
129
72.0M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
45.8M
        // If the block is not visited...
131
45.8M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
45.8M
      }
133
72.0M
    }
134
54.5M
  }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::traverseChild()
Line
Count
Source
126
34.2M
  void traverseChild() {
127
78.9M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
44.7M
      NodeRef BB = *VisitStack.back().second++;
129
44.7M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
28.9M
        // If the block is not visited...
131
28.9M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
28.9M
      }
133
44.7M
    }
134
34.2M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::traverseChild()
Line
Count
Source
126
3.29M
  void traverseChild() {
127
8.95M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
5.65M
      NodeRef BB = *VisitStack.back().second++;
129
5.65M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
2.43M
        // If the block is not visited...
131
2.43M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
2.43M
      }
133
5.65M
    }
134
3.29M
  }
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.7M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
34.2M
      NodeRef BB = *VisitStack.back().second++;
129
34.2M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
34.2M
        // If the block is not visited...
131
34.2M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
34.2M
      }
133
34.2M
    }
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
42.7k
  void traverseChild() {
127
56.4k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
13.6k
      NodeRef BB = *VisitStack.back().second++;
129
13.6k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
13.6k
        // If the block is not visited...
131
13.6k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
13.6k
      }
133
13.6k
    }
134
42.7k
  }
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.4M
  void traverseChild() {
127
20.5M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
9.09M
      NodeRef BB = *VisitStack.back().second++;
129
9.09M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
9.09M
        // If the block is not visited...
131
9.09M
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
9.09M
      }
133
9.09M
    }
134
11.4M
  }
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
541k
  void traverseChild() {
127
1.32M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
787k
      NodeRef BB = *VisitStack.back().second++;
129
787k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
423k
        // If the block is not visited...
131
423k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
423k
      }
133
787k
    }
134
541k
  }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::traverseChild()
Line
Count
Source
126
529k
  void traverseChild() {
127
1.30M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
774k
      NodeRef BB = *VisitStack.back().second++;
129
774k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
448k
        // If the block is not visited...
131
448k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
448k
      }
133
774k
    }
134
529k
  }
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.45k
  void traverseChild() {
127
19.1k
    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.29k
        // If the block is not visited...
131
7.29k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
7.29k
      }
133
11.6k
    }
134
7.45k
  }
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::traverseChild()
Line
Count
Source
126
29.4k
  void traverseChild() {
127
55.4k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
26.0k
      NodeRef BB = *VisitStack.back().second++;
129
26.0k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
18.9k
        // If the block is not visited...
131
18.9k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
18.9k
      }
133
26.0k
    }
134
29.4k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::traverseChild()
Line
Count
Source
126
31.5k
  void traverseChild() {
127
35.7k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
4.18k
      NodeRef BB = *VisitStack.back().second++;
129
4.18k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
2.89k
        // If the block is not visited...
131
2.89k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
2.89k
      }
133
4.18k
    }
134
31.5k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::traverseChild()
Line
Count
Source
126
1.24k
  void traverseChild() {
127
2.52k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
1.28k
      NodeRef BB = *VisitStack.back().second++;
129
1.28k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
858
        // If the block is not visited...
131
858
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
858
      }
133
1.28k
    }
134
1.24k
  }
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
111
  void traverseChild() {
127
197
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
86
      NodeRef BB = *VisitStack.back().second++;
129
86
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
86
        // If the block is not visited...
131
86
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
86
      }
133
86
    }
134
111
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::traverseChild()
Line
Count
Source
126
17.0k
  void traverseChild() {
127
39.4k
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
22.3k
      NodeRef BB = *VisitStack.back().second++;
129
22.3k
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
16.1k
        // If the block is not visited...
131
16.1k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
16.1k
      }
133
22.3k
    }
134
17.0k
  }
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
851k
  void traverseChild() {
127
1.89M
    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
128
1.04M
      NodeRef BB = *VisitStack.back().second++;
129
1.04M
      if (this->insertEdge(Optional<NodeRef>(VisitStack.back().first), BB)) {
130
742k
        // If the block is not visited...
131
742k
        VisitStack.push_back(std::make_pair(BB, GT::child_begin(BB)));
132
742k
      }
133
1.04M
    }
134
851k
  }
135
136
public:
137
  using pointer = typename super::pointer;
138
139
  // Provide static "constructors"...
140
30.2M
  static po_iterator begin(GraphT G) {
141
30.2M
    return po_iterator(GT::getEntryNode(G));
142
30.2M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::begin(llvm::MachineBasicBlock*)
Line
Count
Source
140
3.74M
  static po_iterator begin(GraphT G) {
141
3.74M
    return po_iterator(GT::getEntryNode(G));
142
3.74M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::begin(llvm::MachineFunction*)
Line
Count
Source
140
607k
  static po_iterator begin(GraphT G) {
141
607k
    return po_iterator(GT::getEntryNode(G));
142
607k
  }
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
2.04M
  static po_iterator begin(GraphT G) {
141
2.04M
    return po_iterator(GT::getEntryNode(G));
142
2.04M
  }
llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*> >::begin(llvm::MachineDominatorTree*)
Line
Count
Source
140
284k
  static po_iterator begin(GraphT G) {
141
284k
    return po_iterator(GT::getEntryNode(G));
142
284k
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock*> >::begin(llvm::BasicBlock*)
Line
Count
Source
140
8.62M
  static po_iterator begin(GraphT G) {
141
8.62M
    return po_iterator(GT::getEntryNode(G));
142
8.62M
  }
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.34M
  static po_iterator begin(GraphT G) {
141
5.34M
    return po_iterator(GT::getEntryNode(G));
142
5.34M
  }
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
7.18M
  static po_iterator begin(GraphT G) {
141
7.18M
    return po_iterator(GT::getEntryNode(G));
142
7.18M
  }
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
29.0k
  static po_iterator begin(GraphT G) {
141
29.0k
    return po_iterator(GT::getEntryNode(G));
142
29.0k
  }
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.33M
  static po_iterator begin(GraphT G) {
141
2.33M
    return po_iterator(GT::getEntryNode(G));
142
2.33M
  }
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.5k
  static po_iterator begin(GraphT G) {
141
10.5k
    return po_iterator(GT::getEntryNode(G));
142
10.5k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::begin(llvm::Function*)
Line
Count
Source
140
28.6k
  static po_iterator begin(GraphT G) {
141
28.6k
    return po_iterator(GT::getEntryNode(G));
142
28.6k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::begin(llvm::VPBlockBase*)
Line
Count
Source
140
382
  static po_iterator begin(GraphT G) {
141
382
    return po_iterator(GT::getEntryNode(G));
142
382
  }
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
25
  static po_iterator begin(GraphT G) {
141
25
    return po_iterator(GT::getEntryNode(G));
142
25
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::begin(clang::CallGraphNode*)
Line
Count
Source
140
882
  static po_iterator begin(GraphT G) {
141
882
    return po_iterator(GT::getEntryNode(G));
142
882
  }
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
30.2M
  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.74M
  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
607k
  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
2.04M
  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
284k
  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.62M
  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.34M
  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
7.18M
  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
29.0k
  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.33M
  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.5k
  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
28.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
382
  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
25
  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
882
  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.21M
  static po_iterator begin(GraphT G, SetType &S) {
146
1.21M
    return po_iterator(GT::getEntryNode(G), S);
147
1.21M
  }
llvm::po_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal, true, llvm::GraphTraits<llvm::BasicBlock*> >::begin(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
145
856k
  static po_iterator begin(GraphT G, SetType &S) {
146
856k
    return po_iterator(GT::getEntryNode(G), S);
147
856k
  }
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
122k
  static po_iterator begin(GraphT G, SetType &S) {
146
122k
    return po_iterator(GT::getEntryNode(G), S);
147
122k
  }
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
122k
  static po_iterator begin(GraphT G, SetType &S) {
146
122k
    return po_iterator(GT::getEntryNode(G), S);
147
122k
  }
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
159
  static po_iterator begin(GraphT G, SetType &S) {
146
159
    return po_iterator(GT::getEntryNode(G), S);
147
159
  }
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
109k
  static po_iterator begin(GraphT G, SetType &S) {
146
109k
    return po_iterator(GT::getEntryNode(G), S);
147
109k
  }
148
1.21M
  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
856k
  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
122k
  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
122k
  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
159
  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
109k
  static po_iterator end(GraphT G, SetType &S) { return po_iterator(S); }
149
150
216M
  bool operator==(const po_iterator &x) const {
151
216M
    return VisitStack == x.VisitStack;
152
216M
  }
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
23.3M
  bool operator==(const po_iterator &x) const {
151
23.3M
    return VisitStack == x.VisitStack;
152
23.3M
  }
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
5.73M
  bool operator==(const po_iterator &x) const {
151
5.73M
    return VisitStack == x.VisitStack;
152
5.73M
  }
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
13.1M
  bool operator==(const po_iterator &x) const {
151
13.1M
    return VisitStack == x.VisitStack;
152
13.1M
  }
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
63.1M
  bool operator==(const po_iterator &x) const {
151
63.1M
    return VisitStack == x.VisitStack;
152
63.1M
  }
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
39.5M
  bool operator==(const po_iterator &x) const {
151
39.5M
    return VisitStack == x.VisitStack;
152
39.5M
  }
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.6M
  bool operator==(const po_iterator &x) const {
151
48.6M
    return VisitStack == x.VisitStack;
152
48.6M
  }
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.14M
  bool operator==(const po_iterator &x) const {
151
4.14M
    return VisitStack == x.VisitStack;
152
4.14M
  }
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
71.8k
  bool operator==(const po_iterator &x) const {
151
71.8k
    return VisitStack == x.VisitStack;
152
71.8k
  }
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.7M
  bool operator==(const po_iterator &x) const {
151
13.7M
    return VisitStack == x.VisitStack;
152
13.7M
  }
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
664k
  bool operator==(const po_iterator &x) const {
151
664k
    return VisitStack == x.VisitStack;
152
664k
  }
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
651k
  bool operator==(const po_iterator &x) const {
151
651k
    return VisitStack == x.VisitStack;
152
651k
  }
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.60k
  bool operator==(const po_iterator &x) const {
151
7.60k
    return VisitStack == x.VisitStack;
152
7.60k
  }
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.9k
  bool operator==(const po_iterator &x) const {
151
39.9k
    return VisitStack == x.VisitStack;
152
39.9k
  }
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
60.1k
  bool operator==(const po_iterator &x) const {
151
60.1k
    return VisitStack == x.VisitStack;
152
60.1k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::operator==(llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> > const&) const
Line
Count
Source
150
1.62k
  bool operator==(const po_iterator &x) const {
151
1.62k
    return VisitStack == x.VisitStack;
152
1.62k
  }
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
136
  bool operator==(const po_iterator &x) const {
151
136
    return VisitStack == x.VisitStack;
152
136
  }
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.9k
  bool operator==(const po_iterator &x) const {
151
17.9k
    return VisitStack == x.VisitStack;
152
17.9k
  }
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
961k
  bool operator==(const po_iterator &x) const {
151
961k
    return VisitStack == x.VisitStack;
152
961k
  }
153
216M
  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
23.3M
  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
5.73M
  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
13.1M
  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
63.1M
  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
39.5M
  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.6M
  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.14M
  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
71.8k
  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.7M
  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
664k
  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
651k
  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.60k
  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.9k
  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
60.1k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::operator!=(llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> > const&) const
Line
Count
Source
153
1.62k
  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
136
  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.9k
  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
961k
  bool operator!=(const po_iterator &x) const { return !(*this == x); }
154
155
182M
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::operator*() const
Line
Count
Source
155
19.6M
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::operator*() const
Line
Count
Source
155
5.13M
  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.1M
  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.5M
  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
34.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
42.7k
  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.4M
  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
541k
  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
529k
  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.45k
  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.4k
  const NodeRef &operator*() const { return VisitStack.back().first; }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::operator*() const
Line
Count
Source
155
31.5k
  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.24k
  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
111
  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
17.0k
  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.70M
  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
184M
  po_iterator &operator++() { // Preincrement
164
184M
    this->finishPostorder(VisitStack.back().first);
165
184M
    VisitStack.pop_back();
166
184M
    if (!VisitStack.empty())
167
153M
      traverseChild();
168
184M
    return *this;
169
184M
  }
llvm::po_iterator<llvm::MachineBasicBlock*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineBasicBlock*> >::operator++()
Line
Count
Source
163
19.6M
  po_iterator &operator++() { // Preincrement
164
19.6M
    this->finishPostorder(VisitStack.back().first);
165
19.6M
    VisitStack.pop_back();
166
19.6M
    if (!VisitStack.empty())
167
15.9M
      traverseChild();
168
19.6M
    return *this;
169
19.6M
  }
llvm::po_iterator<llvm::MachineFunction*, llvm::SmallPtrSet<llvm::MachineBasicBlock*, 8u>, false, llvm::GraphTraits<llvm::MachineFunction*> >::operator++()
Line
Count
Source
163
5.12M
  po_iterator &operator++() { // Preincrement
164
5.12M
    this->finishPostorder(VisitStack.back().first);
165
5.12M
    VisitStack.pop_back();
166
5.12M
    if (!VisitStack.empty())
167
4.52M
      traverseChild();
168
5.12M
    return *this;
169
5.12M
  }
llvm::po_iterator<llvm::MachineBasicBlock const*, llvm::SmallPtrSet<llvm::MachineBasicBlock const*, 8u>, false, llvm::GraphTraits<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
9.08M
      traverseChild();
168
11.1M
    return *this;
169
11.1M
  }
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.75M
      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.5M
  po_iterator &operator++() { // Preincrement
164
54.5M
    this->finishPostorder(VisitStack.back().first);
165
54.5M
    VisitStack.pop_back();
166
54.5M
    if (!VisitStack.empty())
167
45.8M
      traverseChild();
168
54.5M
    return *this;
169
54.5M
  }
llvm::po_iterator<llvm::BasicBlock const*, llvm::SmallPtrSet<llvm::BasicBlock const*, 8u>, false, llvm::GraphTraits<llvm::BasicBlock const*> >::operator++()
Line
Count
Source
163
34.2M
  po_iterator &operator++() { // Preincrement
164
34.2M
    this->finishPostorder(VisitStack.back().first);
165
34.2M
    VisitStack.pop_back();
166
34.2M
    if (!VisitStack.empty())
167
28.9M
      traverseChild();
168
34.2M
    return *this;
169
34.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.2M
      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.29M
  po_iterator &operator++() { // Preincrement
164
3.29M
    this->finishPostorder(VisitStack.back().first);
165
3.29M
    VisitStack.pop_back();
166
3.29M
    if (!VisitStack.empty())
167
2.43M
      traverseChild();
168
3.29M
    return *this;
169
3.29M
  }
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
42.7k
  po_iterator &operator++() { // Preincrement
164
42.7k
    this->finishPostorder(VisitStack.back().first);
165
42.7k
    VisitStack.pop_back();
166
42.7k
    if (!VisitStack.empty())
167
13.6k
      traverseChild();
168
42.7k
    return *this;
169
42.7k
  }
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.4M
  po_iterator &operator++() { // Preincrement
164
11.4M
    this->finishPostorder(VisitStack.back().first);
165
11.4M
    VisitStack.pop_back();
166
11.4M
    if (!VisitStack.empty())
167
9.09M
      traverseChild();
168
11.4M
    return *this;
169
11.4M
  }
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
541k
  po_iterator &operator++() { // Preincrement
164
541k
    this->finishPostorder(VisitStack.back().first);
165
541k
    VisitStack.pop_back();
166
541k
    if (!VisitStack.empty())
167
423k
      traverseChild();
168
541k
    return *this;
169
541k
  }
MachineTraceMetrics.cpp:llvm::po_iterator<llvm::MachineBasicBlock const*, (anonymous namespace)::LoopBounds, true, llvm::GraphTraits<llvm::MachineBasicBlock const*> >::operator++()
Line
Count
Source
163
529k
  po_iterator &operator++() { // Preincrement
164
529k
    this->finishPostorder(VisitStack.back().first);
165
529k
    VisitStack.pop_back();
166
529k
    if (!VisitStack.empty())
167
448k
      traverseChild();
168
529k
    return *this;
169
529k
  }
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.45k
  po_iterator &operator++() { // Preincrement
164
7.45k
    this->finishPostorder(VisitStack.back().first);
165
7.45k
    VisitStack.pop_back();
166
7.45k
    if (!VisitStack.empty())
167
7.29k
      traverseChild();
168
7.45k
    return *this;
169
7.45k
  }
llvm::po_iterator<llvm::RegionNode*, llvm::SmallPtrSet<llvm::RegionNode*, 8u>, false, llvm::GraphTraits<llvm::RegionNode*> >::operator++()
Line
Count
Source
163
29.4k
  po_iterator &operator++() { // Preincrement
164
29.4k
    this->finishPostorder(VisitStack.back().first);
165
29.4k
    VisitStack.pop_back();
166
29.4k
    if (!VisitStack.empty())
167
18.9k
      traverseChild();
168
29.4k
    return *this;
169
29.4k
  }
llvm::po_iterator<llvm::Function*, llvm::SmallPtrSet<llvm::BasicBlock*, 8u>, false, llvm::GraphTraits<llvm::Function*> >::operator++()
Line
Count
Source
163
31.5k
  po_iterator &operator++() { // Preincrement
164
31.5k
    this->finishPostorder(VisitStack.back().first);
165
31.5k
    VisitStack.pop_back();
166
31.5k
    if (!VisitStack.empty())
167
2.89k
      traverseChild();
168
31.5k
    return *this;
169
31.5k
  }
llvm::po_iterator<llvm::VPBlockBase*, llvm::SmallPtrSet<llvm::VPBlockBase*, 8u>, false, llvm::GraphTraits<llvm::VPBlockBase*> >::operator++()
Line
Count
Source
163
1.24k
  po_iterator &operator++() { // Preincrement
164
1.24k
    this->finishPostorder(VisitStack.back().first);
165
1.24k
    VisitStack.pop_back();
166
1.24k
    if (!VisitStack.empty())
167
858
      traverseChild();
168
1.24k
    return *this;
169
1.24k
  }
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
111
  po_iterator &operator++() { // Preincrement
164
111
    this->finishPostorder(VisitStack.back().first);
165
111
    VisitStack.pop_back();
166
111
    if (!VisitStack.empty())
167
86
      traverseChild();
168
111
    return *this;
169
111
  }
llvm::po_iterator<clang::CallGraphNode*, llvm::SmallPtrSet<clang::CallGraphNode*, 8u>, false, llvm::GraphTraits<clang::CallGraphNode*> >::operator++()
Line
Count
Source
163
17.0k
  po_iterator &operator++() { // Preincrement
164
17.0k
    this->finishPostorder(VisitStack.back().first);
165
17.0k
    VisitStack.pop_back();
166
17.0k
    if (!VisitStack.empty())
167
16.1k
      traverseChild();
168
17.0k
    return *this;
169
17.0k
  }
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
851k
  po_iterator &operator++() { // Preincrement
164
851k
    this->finishPostorder(VisitStack.back().first);
165
851k
    VisitStack.pop_back();
166
851k
    if (!VisitStack.empty())
167
742k
      traverseChild();
168
851k
    return *this;
169
851k
  }
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
30.2M
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.74M
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
607k
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
2.04M
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
284k
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.62M
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.34M
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
7.18M
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
29.0k
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.33M
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.5k
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
28.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
382
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
25
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
882
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
30.2M
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.74M
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
607k
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
2.04M
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
284k
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.62M
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.34M
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
7.18M
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
29.0k
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.33M
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.5k
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
28.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
382
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
25
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
882
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.8M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
22.8M
  return make_range(po_begin(G), po_end(G));
187
22.8M
}
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.33M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
2.33M
  return make_range(po_begin(G), po_end(G));
187
2.33M
}
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
607k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
607k
  return make_range(po_begin(G), po_end(G));
187
607k
}
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
284k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
284k
  return make_range(po_begin(G), po_end(G));
187
284k
}
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.52M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
2.52M
  return make_range(po_begin(G), po_end(G));
187
2.52M
}
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
7.18M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
7.18M
  return make_range(po_begin(G), po_end(G));
187
7.18M
}
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.46M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
7.46M
  return make_range(po_begin(G), po_end(G));
187
7.46M
}
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
29.0k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
29.0k
  return make_range(po_begin(G), po_end(G));
187
29.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.33M
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
2.33M
  return make_range(po_begin(G), po_end(G));
187
2.33M
}
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
28.6k
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
28.6k
  return make_range(po_begin(G), po_end(G));
187
28.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
25
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
25
  return make_range(po_begin(G), po_end(G));
187
25
}
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
25
template <class T> iterator_range<po_iterator<T>> post_order(const T &G) {
186
25
  return make_range(po_begin(G), po_end(G));
187
25
}
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
1.95M
  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
245k
  po_iterator<T, SetType, true>(V) {}
194
};
195
196
template<class T, class SetType>
197
978k
po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) {
198
978k
  return po_ext_iterator<T, SetType>::begin(G, S);
199
978k
}
llvm::po_ext_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal> llvm::po_ext_begin<llvm::BasicBlock*, llvm::LoopBlocksTraversal>(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
197
856k
po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) {
198
856k
  return po_ext_iterator<T, SetType>::begin(G, S);
199
856k
}
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
122k
po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) {
198
122k
  return po_ext_iterator<T, SetType>::begin(G, S);
199
122k
}
200
201
template<class T, class SetType>
202
978k
po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) {
203
978k
  return po_ext_iterator<T, SetType>::end(G, S);
204
978k
}
llvm::po_ext_iterator<llvm::BasicBlock*, llvm::LoopBlocksTraversal> llvm::po_ext_end<llvm::BasicBlock*, llvm::LoopBlocksTraversal>(llvm::BasicBlock*, llvm::LoopBlocksTraversal&)
Line
Count
Source
202
856k
po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) {
203
856k
  return po_ext_iterator<T, SetType>::end(G, S);
204
856k
}
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
122k
po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) {
203
122k
  return po_ext_iterator<T, SetType>::end(G, S);
204
122k
}
205
206
template <class T, class SetType>
207
122k
iterator_range<po_ext_iterator<T, SetType>> post_order_ext(const T &G, SetType &S) {
208
122k
  return make_range(po_ext_begin(G, S), po_ext_end(G, S));
209
122k
}
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
245k
     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
245k
     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
318
     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
245k
    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
245k
    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
318
    ipo_iterator<T, SetType, true>(V) {}
241
};
242
243
template <class T, class SetType>
244
122k
ipo_ext_iterator<T, SetType> ipo_ext_begin(const T &G, SetType &S) {
245
122k
  return ipo_ext_iterator<T, SetType>::begin(G, S);
246
122k
}
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
122k
ipo_ext_iterator<T, SetType> ipo_ext_begin(const T &G, SetType &S) {
245
122k
  return ipo_ext_iterator<T, SetType>::begin(G, S);
246
122k
}
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
159
ipo_ext_iterator<T, SetType> ipo_ext_begin(const T &G, SetType &S) {
245
159
  return ipo_ext_iterator<T, SetType>::begin(G, S);
246
159
}
247
248
template <class T, class SetType>
249
122k
ipo_ext_iterator<T, SetType> ipo_ext_end(const T &G, SetType &S) {
250
122k
  return ipo_ext_iterator<T, SetType>::end(G, S);
251
122k
}
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
122k
ipo_ext_iterator<T, SetType> ipo_ext_end(const T &G, SetType &S) {
250
122k
  return ipo_ext_iterator<T, SetType>::end(G, S);
251
122k
}
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
159
ipo_ext_iterator<T, SetType> ipo_ext_end(const T &G, SetType &S) {
250
159
  return ipo_ext_iterator<T, SetType>::end(G, S);
251
159
}
252
253
template <class T, class SetType>
254
iterator_range<ipo_ext_iterator<T, SetType>>
255
122k
inverse_post_order_ext(const T &G, SetType &S) {
256
122k
  return make_range(ipo_ext_begin(G, S), ipo_ext_end(G, S));
257
122k
}
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
122k
inverse_post_order_ext(const T &G, SetType &S) {
256
122k
  return make_range(ipo_ext_begin(G, S), ipo_ext_end(G, S));
257
122k
}
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
159
inverse_post_order_ext(const T &G, SetType &S) {
256
159
  return make_range(ipo_ext_begin(G, S), ipo_ext_end(G, S));
257
159
}
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
3.09M
  void Initialize(NodeRef BB) {
293
3.09M
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
3.09M
  }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::Initialize(llvm::MachineBasicBlock*)
Line
Count
Source
292
750k
  void Initialize(NodeRef BB) {
293
750k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
750k
  }
llvm::ReversePostOrderTraversal<llvm::MachineFunction const*, llvm::GraphTraits<llvm::MachineFunction const*> >::Initialize(llvm::MachineBasicBlock const*)
Line
Count
Source
292
5.05k
  void Initialize(NodeRef BB) {
293
5.05k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
5.05k
  }
llvm::ReversePostOrderTraversal<llvm::Function*, llvm::GraphTraits<llvm::Function*> >::Initialize(llvm::BasicBlock*)
Line
Count
Source
292
1.15M
  void Initialize(NodeRef BB) {
293
1.15M
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
1.15M
  }
llvm::ReversePostOrderTraversal<llvm::Function const*, llvm::GraphTraits<llvm::Function const*> >::Initialize(llvm::BasicBlock const*)
Line
Count
Source
292
515k
  void Initialize(NodeRef BB) {
293
515k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
515k
  }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::Initialize(llvm::MachineBasicBlock*)
Line
Count
Source
292
650k
  void Initialize(NodeRef BB) {
293
650k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
650k
  }
llvm::ReversePostOrderTraversal<llvm::BasicBlock*, llvm::GraphTraits<llvm::BasicBlock*> >::Initialize(llvm::BasicBlock*)
Line
Count
Source
292
90
  void Initialize(NodeRef BB) {
293
90
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
90
  }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::Initialize(llvm::RegionNode*)
Line
Count
Source
292
10.5k
  void Initialize(NodeRef BB) {
293
10.5k
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
10.5k
  }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::Initialize(llvm::VPBlockBase*)
Line
Count
Source
292
357
  void Initialize(NodeRef BB) {
293
357
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
357
  }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::Initialize(clang::CallGraphNode*)
Line
Count
Source
292
882
  void Initialize(NodeRef BB) {
293
882
    std::copy(po_begin(BB), po_end(BB), std::back_inserter(Blocks));
294
882
  }
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
3.09M
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::ReversePostOrderTraversal(llvm::MachineFunction*)
Line
Count
Source
300
750k
  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.05k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::Function*, llvm::GraphTraits<llvm::Function*> >::ReversePostOrderTraversal(llvm::Function*)
Line
Count
Source
300
1.15M
  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
516k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::ReversePostOrderTraversal(llvm::MachineBasicBlock*)
Line
Count
Source
300
650k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::BasicBlock*, llvm::GraphTraits<llvm::BasicBlock*> >::ReversePostOrderTraversal(llvm::BasicBlock*)
Line
Count
Source
300
90
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::ReversePostOrderTraversal(llvm::Region*)
Line
Count
Source
300
10.5k
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::ReversePostOrderTraversal(llvm::VPBlockBase*)
Line
Count
Source
300
357
  ReversePostOrderTraversal(GraphT G) { Initialize(GT::getEntryNode(G)); }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::ReversePostOrderTraversal(clang::CallGraph*)
Line
Count
Source
300
882
  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.31M
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::begin()
Line
Count
Source
303
750k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction const*, llvm::GraphTraits<llvm::MachineFunction const*> >::begin()
Line
Count
Source
303
5.05k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::Function*, llvm::GraphTraits<llvm::Function*> >::begin()
Line
Count
Source
303
2.09M
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::begin()
Line
Count
Source
303
939k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::Function const*, llvm::GraphTraits<llvm::Function const*> >::begin()
Line
Count
Source
303
515k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::BasicBlock*, llvm::GraphTraits<llvm::BasicBlock*> >::begin()
Line
Count
Source
303
90
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::begin()
Line
Count
Source
303
11.3k
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::begin()
Line
Count
Source
303
989
  rpo_iterator begin() { return Blocks.rbegin(); }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::begin()
Line
Count
Source
303
882
  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
152
  const_rpo_iterator begin() const { return Blocks.crbegin(); }
305
4.31M
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction*, llvm::GraphTraits<llvm::MachineFunction*> >::end()
Line
Count
Source
305
750k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::MachineFunction const*, llvm::GraphTraits<llvm::MachineFunction const*> >::end()
Line
Count
Source
305
5.05k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::Function*, llvm::GraphTraits<llvm::Function*> >::end()
Line
Count
Source
305
2.09M
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::MachineBasicBlock*, llvm::GraphTraits<llvm::MachineBasicBlock*> >::end()
Line
Count
Source
305
939k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::Function const*, llvm::GraphTraits<llvm::Function const*> >::end()
Line
Count
Source
305
515k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::BasicBlock*, llvm::GraphTraits<llvm::BasicBlock*> >::end()
Line
Count
Source
305
90
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::Region*, llvm::GraphTraits<llvm::Region*> >::end()
Line
Count
Source
305
11.3k
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<llvm::VPBlockBase*, llvm::GraphTraits<llvm::VPBlockBase*> >::end()
Line
Count
Source
305
989
  rpo_iterator end() { return Blocks.rend(); }
llvm::ReversePostOrderTraversal<clang::CallGraph*, llvm::GraphTraits<clang::CallGraph*> >::end()
Line
Count
Source
305
882
  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
152
  const_rpo_iterator end() const { return Blocks.crend(); }
307
};
308
309
} // end namespace llvm
310
311
#endif // LLVM_ADT_POSTORDERITERATOR_H