Coverage Report

Created: 2017-10-03 07:32

/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/include/llvm/IR/ValueMap.h
Line
Count
Source (jump to first uncovered line)
1
//===- ValueMap.h - Safe map from Values to data ----------------*- C++ -*-===//
2
//
3
//                     The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
//
10
// This file defines the ValueMap class.  ValueMap maps Value* or any subclass
11
// to an arbitrary other type.  It provides the DenseMap interface but updates
12
// itself to remain safe when keys are RAUWed or deleted.  By default, when a
13
// key is RAUWed from V1 to V2, the old mapping V1->target is removed, and a new
14
// mapping V2->target is added.  If V2 already existed, its old target is
15
// overwritten.  When a key is deleted, its mapping is removed.
16
//
17
// You can override a ValueMap's Config parameter to control exactly what
18
// happens on RAUW and destruction and to get called back on each event.  It's
19
// legal to call back into the ValueMap from a Config's callbacks.  Config
20
// parameters should inherit from ValueMapConfig<KeyT> to get default
21
// implementations of all the methods ValueMap uses.  See ValueMapConfig for
22
// documentation of the functions you can override.
23
//
24
//===----------------------------------------------------------------------===//
25
26
#ifndef LLVM_IR_VALUEMAP_H
27
#define LLVM_IR_VALUEMAP_H
28
29
#include "llvm/ADT/DenseMap.h"
30
#include "llvm/ADT/DenseMapInfo.h"
31
#include "llvm/ADT/None.h"
32
#include "llvm/ADT/Optional.h"
33
#include "llvm/IR/TrackingMDRef.h"
34
#include "llvm/IR/ValueHandle.h"
35
#include "llvm/Support/Casting.h"
36
#include "llvm/Support/Mutex.h"
37
#include "llvm/Support/UniqueLock.h"
38
#include <algorithm>
39
#include <cassert>
40
#include <cstddef>
41
#include <iterator>
42
#include <type_traits>
43
#include <utility>
44
45
namespace llvm {
46
47
template<typename KeyT, typename ValueT, typename Config>
48
class ValueMapCallbackVH;
49
template<typename DenseMapT, typename KeyT>
50
class ValueMapIterator;
51
template<typename DenseMapT, typename KeyT>
52
class ValueMapConstIterator;
53
54
/// This class defines the default behavior for configurable aspects of
55
/// ValueMap<>.  User Configs should inherit from this class to be as compatible
56
/// as possible with future versions of ValueMap.
57
template<typename KeyT, typename MutexT = sys::Mutex>
58
struct ValueMapConfig {
59
  using mutex_type = MutexT;
60
61
  /// If FollowRAUW is true, the ValueMap will update mappings on RAUW. If it's
62
  /// false, the ValueMap will leave the original mapping in place.
63
  enum { FollowRAUW = true };
64
65
  // All methods will be called with a first argument of type ExtraData.  The
66
  // default implementations in this class take a templated first argument so
67
  // that users' subclasses can use any type they want without having to
68
  // override all the defaults.
69
  struct ExtraData {};
70
71
  template<typename ExtraDataT>
72
156k
  static void onRAUW(const ExtraDataT & /*Data*/, KeyT /*Old*/, KeyT /*New*/) {}
void llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> >::onRAUW<llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::Function*, llvm::Function*)
Line
Count
Source
72
2
  static void onRAUW(const ExtraDataT & /*Data*/, KeyT /*Old*/, KeyT /*New*/) {}
void llvm::ValueMapConfig<llvm::GlobalValue*, llvm::sys::SmartMutex<false> >::onRAUW<llvm::ValueMapConfig<llvm::GlobalValue*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::GlobalValue*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::GlobalValue*, llvm::GlobalValue*)
Line
Count
Source
72
1
  static void onRAUW(const ExtraDataT & /*Data*/, KeyT /*Old*/, KeyT /*New*/) {}
Unexecuted instantiation: void llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> >::onRAUW<llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::GlobalValue const*, llvm::GlobalValue const*)
void llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> >::onRAUW<llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::Value*, llvm::Value*)
Line
Count
Source
72
3
  static void onRAUW(const ExtraDataT & /*Data*/, KeyT /*Old*/, KeyT /*New*/) {}
Unexecuted instantiation: void llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> >::onRAUW<llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::Constant*, llvm::Constant*)
Unexecuted instantiation: void llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> >::onRAUW<llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::GlobalVariable*, llvm::GlobalVariable*)
Unexecuted instantiation: void llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> >::onRAUW<llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::AllocaInst const*, llvm::AllocaInst const*)
void llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> >::onRAUW<llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::Value const*, llvm::Value const*)
Line
Count
Source
72
156k
  static void onRAUW(const ExtraDataT & /*Data*/, KeyT /*Old*/, KeyT /*New*/) {}
73
  template<typename ExtraDataT>
74
209k
  static void onDelete(const ExtraDataT &/*Data*/, KeyT /*Old*/) {}
void llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> >::onDelete<llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::Function*)
Line
Count
Source
74
2
  static void onDelete(const ExtraDataT &/*Data*/, KeyT /*Old*/) {}
void llvm::ValueMapConfig<llvm::GlobalValue*, llvm::sys::SmartMutex<false> >::onDelete<llvm::ValueMapConfig<llvm::GlobalValue*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::GlobalValue*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::GlobalValue*)
Line
Count
Source
74
1
  static void onDelete(const ExtraDataT &/*Data*/, KeyT /*Old*/) {}
Unexecuted instantiation: void llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> >::onDelete<llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::GlobalValue const*)
void llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> >::onDelete<llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::Value*)
Line
Count
Source
74
194k
  static void onDelete(const ExtraDataT &/*Data*/, KeyT /*Old*/) {}
Unexecuted instantiation: void llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> >::onDelete<llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::Constant*)
Unexecuted instantiation: void llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> >::onDelete<llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::GlobalVariable*)
Unexecuted instantiation: void llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> >::onDelete<llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::AllocaInst const*)
void llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> >::onDelete<llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> >::ExtraData const&, llvm::Value const*)
Line
Count
Source
74
14.7k
  static void onDelete(const ExtraDataT &/*Data*/, KeyT /*Old*/) {}
75
76
  /// Returns a mutex that should be acquired around any changes to the map.
77
  /// This is only acquired from the CallbackVH (and held around calls to onRAUW
78
  /// and onDelete) and not inside other ValueMap methods.  NULL means that no
79
  /// mutex is necessary.
80
  template<typename ExtraDataT>
81
365k
  static mutex_type *getMutex(const ExtraDataT &/*Data*/) { return nullptr; }
Unexecuted instantiation: llvm::sys::SmartMutex<false>* llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> >::getMutex<llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> >::ExtraData const&)
Unexecuted instantiation: llvm::sys::SmartMutex<false>* llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> >::getMutex<llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> >::ExtraData const&)
llvm::sys::SmartMutex<false>* llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> >::getMutex<llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> >::ExtraData const&)
Line
Count
Source
81
194k
  static mutex_type *getMutex(const ExtraDataT &/*Data*/) { return nullptr; }
Unexecuted instantiation: llvm::sys::SmartMutex<false>* llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> >::getMutex<llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> >::ExtraData const&)
llvm::sys::SmartMutex<false>* llvm::ValueMapConfig<llvm::GlobalValue*, llvm::sys::SmartMutex<false> >::getMutex<llvm::ValueMapConfig<llvm::GlobalValue*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::GlobalValue*, llvm::sys::SmartMutex<false> >::ExtraData const&)
Line
Count
Source
81
2
  static mutex_type *getMutex(const ExtraDataT &/*Data*/) { return nullptr; }
llvm::sys::SmartMutex<false>* llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> >::getMutex<llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> >::ExtraData const&)
Line
Count
Source
81
4
  static mutex_type *getMutex(const ExtraDataT &/*Data*/) { return nullptr; }
llvm::sys::SmartMutex<false>* llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> >::getMutex<llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> >::ExtraData const&)
Line
Count
Source
81
170k
  static mutex_type *getMutex(const ExtraDataT &/*Data*/) { return nullptr; }
Unexecuted instantiation: llvm::sys::SmartMutex<false>* llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> >::getMutex<llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> >::ExtraData>(llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> >::ExtraData const&)
82
};
83
84
/// See the file comment.
85
template<typename KeyT, typename ValueT, typename Config =ValueMapConfig<KeyT>>
86
class ValueMap {
87
  friend class ValueMapCallbackVH<KeyT, ValueT, Config>;
88
89
  using ValueMapCVH = ValueMapCallbackVH<KeyT, ValueT, Config>;
90
  using MapT = DenseMap<ValueMapCVH, ValueT, DenseMapInfo<ValueMapCVH>>;
91
  using MDMapT = DenseMap<const Metadata *, TrackingMDRef>;
92
  using ExtraData = typename Config::ExtraData;
93
94
  MapT Map;
95
  Optional<MDMapT> MDMap;
96
  ExtraData Data;
97
  bool MayMapMetadata = true;
98
99
public:
100
  using key_type = KeyT;
101
  using mapped_type = ValueT;
102
  using value_type = std::pair<KeyT, ValueT>;
103
  using size_type = unsigned;
104
105
  explicit ValueMap(unsigned NumInitBuckets = 64)
106
2.42M
      : Map(NumInitBuckets), Data() {}
llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::ValueMap(unsigned int)
Line
Count
Source
106
865k
      : Map(NumInitBuckets), Data() {}
llvm::ValueMap<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::ValueMap(unsigned int)
Line
Count
Source
106
233
      : Map(NumInitBuckets), Data() {}
llvm::ValueMap<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >::ValueMap(unsigned int)
Line
Count
Source
106
233
      : Map(NumInitBuckets), Data() {}
llvm::ValueMap<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::ValueMap(unsigned int)
Line
Count
Source
106
833k
      : Map(NumInitBuckets), Data() {}
llvm::ValueMap<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::ValueMap(unsigned int)
Line
Count
Source
106
32.9k
      : Map(NumInitBuckets), Data() {}
llvm::ValueMap<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >::ValueMap(unsigned int)
Line
Count
Source
106
661k
      : Map(NumInitBuckets), Data() {}
llvm::ValueMap<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >::ValueMap(unsigned int)
Line
Count
Source
106
33.5k
      : Map(NumInitBuckets), Data() {}
llvm::ValueMap<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>::ValueMap(unsigned int)
Line
Count
Source
106
46
      : Map(NumInitBuckets), Data() {}
MergeFunctions.cpp:llvm::ValueMap<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >::ValueMap(unsigned int)
Line
Count
Source
106
45
      : Map(NumInitBuckets), Data() {}
107
  explicit ValueMap(const ExtraData &Data, unsigned NumInitBuckets = 64)
108
      : Map(NumInitBuckets), Data(Data) {}
109
  ValueMap(const ValueMap &) = delete;
110
  ValueMap &operator=(const ValueMap &) = delete;
111
112
  bool hasMD() const { return bool(MDMap); }
113
2.26k
  MDMapT &MD() {
114
2.26k
    if (!MDMap)
115
136
      MDMap.emplace();
116
2.26k
    return *MDMap;
117
2.26k
  }
118
1.75k
  Optional<MDMapT> &getMDMap() { return MDMap; }
119
120
  bool mayMapMetadata() const { return MayMapMetadata; }
121
366
  void enableMapMetadata() { MayMapMetadata = true; }
122
366
  void disableMapMetadata() { MayMapMetadata = false; }
123
124
  /// Get the mapped metadata, if it's in the map.
125
882k
  Optional<Metadata *> getMappedMD(const Metadata *MD) const {
126
882k
    if (!MDMap)
127
875k
      return None;
128
6.62k
    auto Where = MDMap->find(MD);
129
6.62k
    if (Where == MDMap->end())
130
3.66k
      return None;
131
2.95k
    return Where->second.get();
132
882k
  }
133
134
  using iterator = ValueMapIterator<MapT, KeyT>;
135
  using const_iterator = ValueMapConstIterator<MapT, KeyT>;
136
137
449k
  inline iterator begin() { return iterator(Map.begin()); }
llvm::ValueMap<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::begin()
Line
Count
Source
137
24
  inline iterator begin() { return iterator(Map.begin()); }
llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::begin()
Line
Count
Source
137
449k
  inline iterator begin() { return iterator(Map.begin()); }
138
16.4M
  inline iterator end() { return iterator(Map.end()); }
MergeFunctions.cpp:llvm::ValueMap<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >::end()
Line
Count
Source
138
6
  inline iterator end() { return iterator(Map.end()); }
llvm::ValueMap<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::end()
Line
Count
Source
138
47
  inline iterator end() { return iterator(Map.end()); }
llvm::ValueMap<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >::end()
Line
Count
Source
138
115
  inline iterator end() { return iterator(Map.end()); }
llvm::ValueMap<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::end()
Line
Count
Source
138
550k
  inline iterator end() { return iterator(Map.end()); }
llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::end()
Line
Count
Source
138
15.8M
  inline iterator end() { return iterator(Map.end()); }
llvm::ValueMap<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >::end()
Line
Count
Source
138
8.66k
  inline iterator end() { return iterator(Map.end()); }
139
276k
  inline const_iterator begin() const { return const_iterator(Map.begin()); }
llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::begin() const
Line
Count
Source
139
340
  inline const_iterator begin() const { return const_iterator(Map.begin()); }
llvm::ValueMap<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::begin() const
Line
Count
Source
139
276k
  inline const_iterator begin() const { return const_iterator(Map.begin()); }
140
276k
  inline const_iterator end() const { return const_iterator(Map.end()); }
llvm::ValueMap<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::end() const
Line
Count
Source
140
276k
  inline const_iterator end() const { return const_iterator(Map.end()); }
llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::end() const
Line
Count
Source
140
340
  inline const_iterator end() const { return const_iterator(Map.end()); }
141
142
10.9k
  bool empty() const { return Map.empty(); }
llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::empty() const
Line
Count
Source
142
10.6k
  bool empty() const { return Map.empty(); }
llvm::ValueMap<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::empty() const
Line
Count
Source
142
230
  bool empty() const { return Map.empty(); }
143
  size_type size() const { return Map.size(); }
144
145
  /// Grow the map so that it has at least Size buckets. Does not shrink
146
  void resize(size_t Size) { Map.resize(Size); }
147
148
10.5M
  void clear() {
149
10.5M
    Map.clear();
150
10.5M
    MDMap.reset();
151
10.5M
  }
llvm::ValueMap<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>::clear()
Line
Count
Source
148
45
  void clear() {
149
45
    Map.clear();
150
45
    MDMap.reset();
151
45
  }
llvm::ValueMap<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::clear()
Line
Count
Source
148
10.5M
  void clear() {
149
10.5M
    Map.clear();
150
10.5M
    MDMap.reset();
151
10.5M
  }
llvm::ValueMap<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >::clear()
Line
Count
Source
148
22
  void clear() {
149
22
    Map.clear();
150
22
    MDMap.reset();
151
22
  }
152
153
  /// Return 1 if the specified key is in the map, 0 otherwise.
154
240
  size_type count(const KeyT &Val) const {
155
240
    return Map.find_as(Val) == Map.end() ? 
0176
:
164
;
156
240
  }
157
158
15.9M
  iterator find(const KeyT &Val) {
159
15.9M
    return iterator(Map.find_as(Val));
160
15.9M
  }
llvm::ValueMap<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >::find(llvm::Constant* const&)
Line
Count
Source
158
115
  iterator find(const KeyT &Val) {
159
115
    return iterator(Map.find_as(Val));
160
115
  }
MergeFunctions.cpp:llvm::ValueMap<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >::find(llvm::Function* const&)
Line
Count
Source
158
14
  iterator find(const KeyT &Val) {
159
14
    return iterator(Map.find_as(Val));
160
14
  }
llvm::ValueMap<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::find(llvm::GlobalVariable* const&)
Line
Count
Source
158
23
  iterator find(const KeyT &Val) {
159
23
    return iterator(Map.find_as(Val));
160
23
  }
llvm::ValueMap<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::find(llvm::Value* const&)
Line
Count
Source
158
550k
  iterator find(const KeyT &Val) {
159
550k
    return iterator(Map.find_as(Val));
160
550k
  }
llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::find(llvm::Value const* const&)
Line
Count
Source
158
15.4M
  iterator find(const KeyT &Val) {
159
15.4M
    return iterator(Map.find_as(Val));
160
15.4M
  }
llvm::ValueMap<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >::find(llvm::AllocaInst const* const&)
Line
Count
Source
158
8.66k
  iterator find(const KeyT &Val) {
159
8.66k
    return iterator(Map.find_as(Val));
160
8.66k
  }
161
  const_iterator find(const KeyT &Val) const {
162
    return const_iterator(Map.find_as(Val));
163
  }
164
165
  /// lookup - Return the entry for the specified key, or a default
166
  /// constructed value if no such entry exists.
167
1.99M
  ValueT lookup(const KeyT &Val) const {
168
1.99M
    typename MapT::const_iterator I = Map.find_as(Val);
169
1.99M
    return I != Map.end() ? 
I->second1.73M
:
ValueT()257k
;
170
1.99M
  }
llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::lookup(llvm::Value const* const&) const
Line
Count
Source
167
1.97M
  ValueT lookup(const KeyT &Val) const {
168
1.97M
    typename MapT::const_iterator I = Map.find_as(Val);
169
1.97M
    return I != Map.end() ? 
I->second1.72M
:
ValueT()253k
;
170
1.97M
  }
llvm::ValueMap<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >::lookup(llvm::AllocaInst const* const&) const
Line
Count
Source
167
13.6k
  ValueT lookup(const KeyT &Val) const {
168
13.6k
    typename MapT::const_iterator I = Map.find_as(Val);
169
13.6k
    return I != Map.end() ? 
I->second8.96k
:
ValueT()4.72k
;
170
13.6k
  }
171
172
  // Inserts key,value pair into the map if the key isn't already in the map.
173
  // If the key is already in the map, it returns false and doesn't update the
174
  // value.
175
  std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
176
    auto MapResult = Map.insert(std::make_pair(Wrap(KV.first), KV.second));
177
    return std::make_pair(iterator(MapResult.first), MapResult.second);
178
  }
179
180
254k
  std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
181
254k
    auto MapResult =
182
254k
        Map.insert(std::make_pair(Wrap(KV.first), std::move(KV.second)));
183
254k
    return std::make_pair(iterator(MapResult.first), MapResult.second);
184
254k
  }
Unexecuted instantiation: llvm::ValueMap<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >::insert(std::__1::pair<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> > >&&)
Unexecuted instantiation: llvm::ValueMap<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::insert(std::__1::pair<llvm::Value*, llvm::Value*>&&)
llvm::ValueMap<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::insert(std::__1::pair<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags>&&)
Line
Count
Source
180
92.7k
  std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
181
92.7k
    auto MapResult =
182
92.7k
        Map.insert(std::make_pair(Wrap(KV.first), std::move(KV.second)));
183
92.7k
    return std::make_pair(iterator(MapResult.first), MapResult.second);
184
92.7k
  }
Unexecuted instantiation: llvm::ValueMap<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >::insert(std::__1::pair<llvm::Constant*, llvm::Value*>&&)
Unexecuted instantiation: llvm::ValueMap<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::insert(std::__1::pair<llvm::GlobalVariable*, llvm::GlobalVariable*>&&)
MergeFunctions.cpp:llvm::ValueMap<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >::insert(std::__1::pair<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long> >&&)
Line
Count
Source
180
100
  std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
181
100
    auto MapResult =
182
100
        Map.insert(std::make_pair(Wrap(KV.first), std::move(KV.second)));
183
100
    return std::make_pair(iterator(MapResult.first), MapResult.second);
184
100
  }
llvm::ValueMap<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>::insert(std::__1::pair<llvm::GlobalValue*, unsigned long long>&&)
Line
Count
Source
180
16
  std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
181
16
    auto MapResult =
182
16
        Map.insert(std::make_pair(Wrap(KV.first), std::move(KV.second)));
183
16
    return std::make_pair(iterator(MapResult.first), MapResult.second);
184
16
  }
llvm::ValueMap<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >::insert(std::__1::pair<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind>&&)
Line
Count
Source
180
5.51k
  std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
181
5.51k
    auto MapResult =
182
5.51k
        Map.insert(std::make_pair(Wrap(KV.first), std::move(KV.second)));
183
5.51k
    return std::make_pair(iterator(MapResult.first), MapResult.second);
184
5.51k
  }
llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::insert(std::__1::pair<llvm::Value const*, llvm::WeakTrackingVH>&&)
Line
Count
Source
180
156k
  std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
181
156k
    auto MapResult =
182
156k
        Map.insert(std::make_pair(Wrap(KV.first), std::move(KV.second)));
183
156k
    return std::make_pair(iterator(MapResult.first), MapResult.second);
184
156k
  }
185
186
  /// insert - Range insertion of pairs.
187
  template<typename InputIt>
188
  void insert(InputIt I, InputIt E) {
189
    for (; I != E; ++I)
190
      insert(*I);
191
  }
192
193
502
  bool erase(const KeyT &Val) {
194
502
    typename MapT::iterator I = Map.find_as(Val);
195
502
    if (I == Map.end())
196
0
      return false;
197
502
198
502
    Map.erase(I);
199
502
    return true;
200
502
  }
201
339
  void erase(iterator I) {
202
339
    return Map.erase(I.base());
203
339
  }
MergeFunctions.cpp:llvm::ValueMap<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >::erase(llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long> > >, llvm::Function*>)
Line
Count
Source
201
10
  void erase(iterator I) {
202
10
    return Map.erase(I.base());
203
10
  }
llvm::ValueMap<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::erase(llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*> >, llvm::GlobalVariable*>)
Line
Count
Source
201
26
  void erase(iterator I) {
202
26
    return Map.erase(I.base());
203
26
  }
llvm::ValueMap<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >::erase(llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind> >, llvm::AllocaInst const*>)
Line
Count
Source
201
303
  void erase(iterator I) {
202
303
    return Map.erase(I.base());
203
303
  }
204
205
  value_type& FindAndConstruct(const KeyT &Key) {
206
    return Map.FindAndConstruct(Wrap(Key));
207
  }
208
209
17.0M
  ValueT &operator[](const KeyT &Key) {
210
17.0M
    return Map[Wrap(Key)];
211
17.0M
  }
llvm::ValueMap<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::operator[](llvm::GlobalVariable* const&)
Line
Count
Source
209
26
  ValueT &operator[](const KeyT &Key) {
210
26
    return Map[Wrap(Key)];
211
26
  }
llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::operator[](llvm::Value const* const&)
Line
Count
Source
209
16.6M
  ValueT &operator[](const KeyT &Key) {
210
16.6M
    return Map[Wrap(Key)];
211
16.6M
  }
llvm::ValueMap<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::operator[](llvm::Value* const&)
Line
Count
Source
209
446k
  ValueT &operator[](const KeyT &Key) {
210
446k
    return Map[Wrap(Key)];
211
446k
  }
llvm::ValueMap<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >::operator[](llvm::GlobalValue const* const&)
Line
Count
Source
209
1.09k
  ValueT &operator[](const KeyT &Key) {
210
1.09k
    return Map[Wrap(Key)];
211
1.09k
  }
llvm::ValueMap<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >::operator[](llvm::Constant* const&)
Line
Count
Source
209
78
  ValueT &operator[](const KeyT &Key) {
210
78
    return Map[Wrap(Key)];
211
78
  }
212
213
  /// isPointerIntoBucketsArray - Return true if the specified pointer points
214
  /// somewhere into the ValueMap's array of buckets (i.e. either to a key or
215
  /// value in the ValueMap).
216
  bool isPointerIntoBucketsArray(const void *Ptr) const {
217
    return Map.isPointerIntoBucketsArray(Ptr);
218
  }
219
220
  /// getPointerIntoBucketsArray() - Return an opaque pointer into the buckets
221
  /// array.  In conjunction with the previous method, this can be used to
222
  /// determine whether an insertion caused the ValueMap to reallocate.
223
  const void *getPointerIntoBucketsArray() const {
224
    return Map.getPointerIntoBucketsArray();
225
  }
226
227
private:
228
  // Takes a key being looked up in the map and wraps it into a
229
  // ValueMapCallbackVH, the actual key type of the map.  We use a helper
230
  // function because ValueMapCVH is constructed with a second parameter.
231
17.3M
  ValueMapCVH Wrap(KeyT key) const {
232
17.3M
    // The only way the resulting CallbackVH could try to modify *this (making
233
17.3M
    // the const_cast incorrect) is if it gets inserted into the map.  But then
234
17.3M
    // this function must have been called from a non-const method, making the
235
17.3M
    // const_cast ok.
236
17.3M
    return ValueMapCVH(key, const_cast<ValueMap*>(this));
237
17.3M
  }
llvm::ValueMap<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::Wrap(llvm::GlobalVariable*) const
Line
Count
Source
231
26
  ValueMapCVH Wrap(KeyT key) const {
232
26
    // The only way the resulting CallbackVH could try to modify *this (making
233
26
    // the const_cast incorrect) is if it gets inserted into the map.  But then
234
26
    // this function must have been called from a non-const method, making the
235
26
    // const_cast ok.
236
26
    return ValueMapCVH(key, const_cast<ValueMap*>(this));
237
26
  }
llvm::ValueMap<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >::Wrap(llvm::Constant*) const
Line
Count
Source
231
78
  ValueMapCVH Wrap(KeyT key) const {
232
78
    // The only way the resulting CallbackVH could try to modify *this (making
233
78
    // the const_cast incorrect) is if it gets inserted into the map.  But then
234
78
    // this function must have been called from a non-const method, making the
235
78
    // const_cast ok.
236
78
    return ValueMapCVH(key, const_cast<ValueMap*>(this));
237
78
  }
llvm::ValueMap<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>::Wrap(llvm::GlobalValue*) const
Line
Count
Source
231
16
  ValueMapCVH Wrap(KeyT key) const {
232
16
    // The only way the resulting CallbackVH could try to modify *this (making
233
16
    // the const_cast incorrect) is if it gets inserted into the map.  But then
234
16
    // this function must have been called from a non-const method, making the
235
16
    // const_cast ok.
236
16
    return ValueMapCVH(key, const_cast<ValueMap*>(this));
237
16
  }
MergeFunctions.cpp:llvm::ValueMap<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >::Wrap(llvm::Function*) const
Line
Count
Source
231
100
  ValueMapCVH Wrap(KeyT key) const {
232
100
    // The only way the resulting CallbackVH could try to modify *this (making
233
100
    // the const_cast incorrect) is if it gets inserted into the map.  But then
234
100
    // this function must have been called from a non-const method, making the
235
100
    // const_cast ok.
236
100
    return ValueMapCVH(key, const_cast<ValueMap*>(this));
237
100
  }
llvm::ValueMap<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >::Wrap(llvm::GlobalValue const*) const
Line
Count
Source
231
1.09k
  ValueMapCVH Wrap(KeyT key) const {
232
1.09k
    // The only way the resulting CallbackVH could try to modify *this (making
233
1.09k
    // the const_cast incorrect) is if it gets inserted into the map.  But then
234
1.09k
    // this function must have been called from a non-const method, making the
235
1.09k
    // const_cast ok.
236
1.09k
    return ValueMapCVH(key, const_cast<ValueMap*>(this));
237
1.09k
  }
llvm::ValueMap<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::Wrap(llvm::Value*) const
Line
Count
Source
231
446k
  ValueMapCVH Wrap(KeyT key) const {
232
446k
    // The only way the resulting CallbackVH could try to modify *this (making
233
446k
    // the const_cast incorrect) is if it gets inserted into the map.  But then
234
446k
    // this function must have been called from a non-const method, making the
235
446k
    // const_cast ok.
236
446k
    return ValueMapCVH(key, const_cast<ValueMap*>(this));
237
446k
  }
llvm::ValueMap<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::Wrap(llvm::Value*) const
Line
Count
Source
231
92.7k
  ValueMapCVH Wrap(KeyT key) const {
232
92.7k
    // The only way the resulting CallbackVH could try to modify *this (making
233
92.7k
    // the const_cast incorrect) is if it gets inserted into the map.  But then
234
92.7k
    // this function must have been called from a non-const method, making the
235
92.7k
    // const_cast ok.
236
92.7k
    return ValueMapCVH(key, const_cast<ValueMap*>(this));
237
92.7k
  }
llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::Wrap(llvm::Value const*) const
Line
Count
Source
231
16.7M
  ValueMapCVH Wrap(KeyT key) const {
232
16.7M
    // The only way the resulting CallbackVH could try to modify *this (making
233
16.7M
    // the const_cast incorrect) is if it gets inserted into the map.  But then
234
16.7M
    // this function must have been called from a non-const method, making the
235
16.7M
    // const_cast ok.
236
16.7M
    return ValueMapCVH(key, const_cast<ValueMap*>(this));
237
16.7M
  }
llvm::ValueMap<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >::Wrap(llvm::AllocaInst const*) const
Line
Count
Source
231
5.51k
  ValueMapCVH Wrap(KeyT key) const {
232
5.51k
    // The only way the resulting CallbackVH could try to modify *this (making
233
5.51k
    // the const_cast incorrect) is if it gets inserted into the map.  But then
234
5.51k
    // this function must have been called from a non-const method, making the
235
5.51k
    // const_cast ok.
236
5.51k
    return ValueMapCVH(key, const_cast<ValueMap*>(this));
237
5.51k
  }
238
};
239
240
// This CallbackVH updates its ValueMap when the contained Value changes,
241
// according to the user's preferences expressed through the Config object.
242
template <typename KeyT, typename ValueT, typename Config>
243
class ValueMapCallbackVH final : public CallbackVH {
244
  friend class ValueMap<KeyT, ValueT, Config>;
245
  friend struct DenseMapInfo<ValueMapCallbackVH>;
246
247
  using ValueMapT = ValueMap<KeyT, ValueT, Config>;
248
  using KeySansPointerT = typename std::remove_pointer<KeyT>::type;
249
250
  ValueMapT *Map;
251
252
  ValueMapCallbackVH(KeyT Key, ValueMapT *Map)
253
      : CallbackVH(const_cast<Value*>(static_cast<const Value*>(Key))),
254
17.3M
        Map(Map) {}
llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::Constant*, llvm::ValueMap<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >*)
Line
Count
Source
254
78
        Map(Map) {}
llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::GlobalVariable*, llvm::ValueMap<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >*)
Line
Count
Source
254
26
        Map(Map) {}
llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::Value const*, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >*)
Line
Count
Source
254
16.7M
        Map(Map) {}
llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::Value*, llvm::ValueMap<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >*)
Line
Count
Source
254
92.7k
        Map(Map) {}
llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::Value*, llvm::ValueMap<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >*)
Line
Count
Source
254
446k
        Map(Map) {}
llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::GlobalValue const*, llvm::ValueMap<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >*)
Line
Count
Source
254
1.09k
        Map(Map) {}
llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::AllocaInst const*, llvm::ValueMap<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >*)
Line
Count
Source
254
5.51k
        Map(Map) {}
MergeFunctions.cpp:llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::Function*, llvm::ValueMap<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >*)
Line
Count
Source
254
100
        Map(Map) {}
llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>::ValueMapCallbackVH(llvm::GlobalValue*, llvm::ValueMap<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>*)
Line
Count
Source
254
16
        Map(Map) {}
255
256
  // Private constructor used to create empty/tombstone DenseMap keys.
257
101M
  ValueMapCallbackVH(Value *V) : CallbackVH(V), Map(nullptr) {}
llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::Value*)
Line
Count
Source
257
987
  ValueMapCallbackVH(Value *V) : CallbackVH(V), Map(nullptr) {}
llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::Value*)
Line
Count
Source
257
93.1M
  ValueMapCallbackVH(Value *V) : CallbackVH(V), Map(nullptr) {}
MergeFunctions.cpp:llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::Value*)
Line
Count
Source
257
485
  ValueMapCallbackVH(Value *V) : CallbackVH(V), Map(nullptr) {}
llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>::ValueMapCallbackVH(llvm::Value*)
Line
Count
Source
257
193
  ValueMapCallbackVH(Value *V) : CallbackVH(V), Map(nullptr) {}
llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::Value*)
Line
Count
Source
257
163k
  ValueMapCallbackVH(Value *V) : CallbackVH(V), Map(nullptr) {}
llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::Value*)
Line
Count
Source
257
1.20k
  ValueMapCallbackVH(Value *V) : CallbackVH(V), Map(nullptr) {}
llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::Value*)
Line
Count
Source
257
4.00M
  ValueMapCallbackVH(Value *V) : CallbackVH(V), Map(nullptr) {}
llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::Value*)
Line
Count
Source
257
2.58M
  ValueMapCallbackVH(Value *V) : CallbackVH(V), Map(nullptr) {}
llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >::ValueMapCallbackVH(llvm::Value*)
Line
Count
Source
257
1.98M
  ValueMapCallbackVH(Value *V) : CallbackVH(V), Map(nullptr) {}
258
259
public:
260
37.4M
  KeyT Unwrap() const { return cast_or_null<KeySansPointerT>(getValPtr()); }
llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::Unwrap() const
Line
Count
Source
260
36.3M
  KeyT Unwrap() const { return cast_or_null<KeySansPointerT>(getValPtr()); }
llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::Unwrap() const
Line
Count
Source
260
835k
  KeyT Unwrap() const { return cast_or_null<KeySansPointerT>(getValPtr()); }
MergeFunctions.cpp:llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >::Unwrap() const
Line
Count
Source
260
118
  KeyT Unwrap() const { return cast_or_null<KeySansPointerT>(getValPtr()); }
llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>::Unwrap() const
Line
Count
Source
260
35
  KeyT Unwrap() const { return cast_or_null<KeySansPointerT>(getValPtr()); }
llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >::Unwrap() const
Line
Count
Source
260
1.09k
  KeyT Unwrap() const { return cast_or_null<KeySansPointerT>(getValPtr()); }
llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::Unwrap() const
Line
Count
Source
260
266k
  KeyT Unwrap() const { return cast_or_null<KeySansPointerT>(getValPtr()); }
llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >::Unwrap() const
Line
Count
Source
260
115
  KeyT Unwrap() const { return cast_or_null<KeySansPointerT>(getValPtr()); }
llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::Unwrap() const
Line
Count
Source
260
141
  KeyT Unwrap() const { return cast_or_null<KeySansPointerT>(getValPtr()); }
llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >::Unwrap() const
Line
Count
Source
260
6.67k
  KeyT Unwrap() const { return cast_or_null<KeySansPointerT>(getValPtr()); }
261
262
209k
  void deleted() override {
263
209k
    // Make a copy that won't get changed even when *this is destroyed.
264
209k
    ValueMapCallbackVH Copy(*this);
265
209k
    typename Config::mutex_type *M = Config::getMutex(Copy.Map->Data);
266
209k
    unique_lock<typename Config::mutex_type> Guard;
267
209k
    if (M)
268
0
      Guard = unique_lock<typename Config::mutex_type>(*M);
269
209k
    Config::onDelete(Copy.Map->Data, Copy.Unwrap());  // May destroy *this.
270
209k
    Copy.Map->Map.erase(Copy);  // Definitely destroys *this.
271
209k
  }
Unexecuted instantiation: llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >::deleted()
MergeFunctions.cpp:llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >::deleted()
Line
Count
Source
262
2
  void deleted() override {
263
2
    // Make a copy that won't get changed even when *this is destroyed.
264
2
    ValueMapCallbackVH Copy(*this);
265
2
    typename Config::mutex_type *M = Config::getMutex(Copy.Map->Data);
266
2
    unique_lock<typename Config::mutex_type> Guard;
267
2
    if (M)
268
0
      Guard = unique_lock<typename Config::mutex_type>(*M);
269
2
    Config::onDelete(Copy.Map->Data, Copy.Unwrap());  // May destroy *this.
270
2
    Copy.Map->Map.erase(Copy);  // Definitely destroys *this.
271
2
  }
llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>::deleted()
Line
Count
Source
262
1
  void deleted() override {
263
1
    // Make a copy that won't get changed even when *this is destroyed.
264
1
    ValueMapCallbackVH Copy(*this);
265
1
    typename Config::mutex_type *M = Config::getMutex(Copy.Map->Data);
266
1
    unique_lock<typename Config::mutex_type> Guard;
267
1
    if (M)
268
0
      Guard = unique_lock<typename Config::mutex_type>(*M);
269
1
    Config::onDelete(Copy.Map->Data, Copy.Unwrap());  // May destroy *this.
270
1
    Copy.Map->Map.erase(Copy);  // Definitely destroys *this.
271
1
  }
llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::deleted()
Line
Count
Source
262
14.7k
  void deleted() override {
263
14.7k
    // Make a copy that won't get changed even when *this is destroyed.
264
14.7k
    ValueMapCallbackVH Copy(*this);
265
14.7k
    typename Config::mutex_type *M = Config::getMutex(Copy.Map->Data);
266
14.7k
    unique_lock<typename Config::mutex_type> Guard;
267
14.7k
    if (M)
268
0
      Guard = unique_lock<typename Config::mutex_type>(*M);
269
14.7k
    Config::onDelete(Copy.Map->Data, Copy.Unwrap());  // May destroy *this.
270
14.7k
    Copy.Map->Map.erase(Copy);  // Definitely destroys *this.
271
14.7k
  }
Unexecuted instantiation: llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >::deleted()
llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::deleted()
Line
Count
Source
262
194k
  void deleted() override {
263
194k
    // Make a copy that won't get changed even when *this is destroyed.
264
194k
    ValueMapCallbackVH Copy(*this);
265
194k
    typename Config::mutex_type *M = Config::getMutex(Copy.Map->Data);
266
194k
    unique_lock<typename Config::mutex_type> Guard;
267
194k
    if (M)
268
0
      Guard = unique_lock<typename Config::mutex_type>(*M);
269
194k
    Config::onDelete(Copy.Map->Data, Copy.Unwrap());  // May destroy *this.
270
194k
    Copy.Map->Map.erase(Copy);  // Definitely destroys *this.
271
194k
  }
Unexecuted instantiation: llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::deleted()
Unexecuted instantiation: llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >::deleted()
Unexecuted instantiation: llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::deleted()
272
273
156k
  void allUsesReplacedWith(Value *new_key) override {
274
156k
    assert(isa<KeySansPointerT>(new_key) &&
275
156k
           "Invalid RAUW on key of ValueMap<>");
276
156k
    // Make a copy that won't get changed even when *this is destroyed.
277
156k
    ValueMapCallbackVH Copy(*this);
278
156k
    typename Config::mutex_type *M = Config::getMutex(Copy.Map->Data);
279
156k
    unique_lock<typename Config::mutex_type> Guard;
280
156k
    if (M)
281
0
      Guard = unique_lock<typename Config::mutex_type>(*M);
282
156k
283
156k
    KeyT typed_new_key = cast<KeySansPointerT>(new_key);
284
156k
    // Can destroy *this:
285
156k
    Config::onRAUW(Copy.Map->Data, Copy.Unwrap(), typed_new_key);
286
156k
    if (
Config::FollowRAUW156k
) {
287
156k
      typename ValueMapT::MapT::iterator I = Copy.Map->Map.find(Copy);
288
156k
      // I could == Copy.Map->Map.end() if the onRAUW callback already
289
156k
      // removed the old mapping.
290
156k
      if (
I != Copy.Map->Map.end()156k
) {
291
156k
        ValueT Target(std::move(I->second));
292
156k
        Copy.Map->Map.erase(I);  // Definitely destroys *this.
293
156k
        Copy.Map->insert(std::make_pair(typed_new_key, std::move(Target)));
294
156k
      }
295
156k
    }
296
156k
  }
llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>::allUsesReplacedWith(llvm::Value*)
Line
Count
Source
273
1
  void allUsesReplacedWith(Value *new_key) override {
274
1
    assert(isa<KeySansPointerT>(new_key) &&
275
1
           "Invalid RAUW on key of ValueMap<>");
276
1
    // Make a copy that won't get changed even when *this is destroyed.
277
1
    ValueMapCallbackVH Copy(*this);
278
1
    typename Config::mutex_type *M = Config::getMutex(Copy.Map->Data);
279
1
    unique_lock<typename Config::mutex_type> Guard;
280
1
    if (M)
281
0
      Guard = unique_lock<typename Config::mutex_type>(*M);
282
1
283
1
    KeyT typed_new_key = cast<KeySansPointerT>(new_key);
284
1
    // Can destroy *this:
285
1
    Config::onRAUW(Copy.Map->Data, Copy.Unwrap(), typed_new_key);
286
1
    if (
Config::FollowRAUW1
) {
287
0
      typename ValueMapT::MapT::iterator I = Copy.Map->Map.find(Copy);
288
0
      // I could == Copy.Map->Map.end() if the onRAUW callback already
289
0
      // removed the old mapping.
290
0
      if (
I != Copy.Map->Map.end()0
) {
291
0
        ValueT Target(std::move(I->second));
292
0
        Copy.Map->Map.erase(I);  // Definitely destroys *this.
293
0
        Copy.Map->insert(std::make_pair(typed_new_key, std::move(Target)));
294
0
      }
295
0
    }
296
1
  }
llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::allUsesReplacedWith(llvm::Value*)
Line
Count
Source
273
156k
  void allUsesReplacedWith(Value *new_key) override {
274
156k
    assert(isa<KeySansPointerT>(new_key) &&
275
156k
           "Invalid RAUW on key of ValueMap<>");
276
156k
    // Make a copy that won't get changed even when *this is destroyed.
277
156k
    ValueMapCallbackVH Copy(*this);
278
156k
    typename Config::mutex_type *M = Config::getMutex(Copy.Map->Data);
279
156k
    unique_lock<typename Config::mutex_type> Guard;
280
156k
    if (M)
281
0
      Guard = unique_lock<typename Config::mutex_type>(*M);
282
156k
283
156k
    KeyT typed_new_key = cast<KeySansPointerT>(new_key);
284
156k
    // Can destroy *this:
285
156k
    Config::onRAUW(Copy.Map->Data, Copy.Unwrap(), typed_new_key);
286
156k
    if (
Config::FollowRAUW156k
) {
287
156k
      typename ValueMapT::MapT::iterator I = Copy.Map->Map.find(Copy);
288
156k
      // I could == Copy.Map->Map.end() if the onRAUW callback already
289
156k
      // removed the old mapping.
290
156k
      if (
I != Copy.Map->Map.end()156k
) {
291
156k
        ValueT Target(std::move(I->second));
292
156k
        Copy.Map->Map.erase(I);  // Definitely destroys *this.
293
156k
        Copy.Map->insert(std::make_pair(typed_new_key, std::move(Target)));
294
156k
      }
295
156k
    }
296
156k
  }
Unexecuted instantiation: llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >::allUsesReplacedWith(llvm::Value*)
Unexecuted instantiation: llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >::allUsesReplacedWith(llvm::Value*)
Unexecuted instantiation: llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >::allUsesReplacedWith(llvm::Value*)
Unexecuted instantiation: llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >::allUsesReplacedWith(llvm::Value*)
Unexecuted instantiation: llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::allUsesReplacedWith(llvm::Value*)
Unexecuted instantiation: llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >::allUsesReplacedWith(llvm::Value*)
MergeFunctions.cpp:llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >::allUsesReplacedWith(llvm::Value*)
Line
Count
Source
273
2
  void allUsesReplacedWith(Value *new_key) override {
274
2
    assert(isa<KeySansPointerT>(new_key) &&
275
2
           "Invalid RAUW on key of ValueMap<>");
276
2
    // Make a copy that won't get changed even when *this is destroyed.
277
2
    ValueMapCallbackVH Copy(*this);
278
2
    typename Config::mutex_type *M = Config::getMutex(Copy.Map->Data);
279
2
    unique_lock<typename Config::mutex_type> Guard;
280
2
    if (M)
281
0
      Guard = unique_lock<typename Config::mutex_type>(*M);
282
2
283
2
    KeyT typed_new_key = cast<KeySansPointerT>(new_key);
284
2
    // Can destroy *this:
285
2
    Config::onRAUW(Copy.Map->Data, Copy.Unwrap(), typed_new_key);
286
2
    if (
Config::FollowRAUW2
) {
287
2
      typename ValueMapT::MapT::iterator I = Copy.Map->Map.find(Copy);
288
2
      // I could == Copy.Map->Map.end() if the onRAUW callback already
289
2
      // removed the old mapping.
290
2
      if (
I != Copy.Map->Map.end()2
) {
291
2
        ValueT Target(std::move(I->second));
292
2
        Copy.Map->Map.erase(I);  // Definitely destroys *this.
293
2
        Copy.Map->insert(std::make_pair(typed_new_key, std::move(Target)));
294
2
      }
295
2
    }
296
2
  }
297
};
298
299
template<typename KeyT, typename ValueT, typename Config>
300
struct DenseMapInfo<ValueMapCallbackVH<KeyT, ValueT, Config>> {
301
  using VH = ValueMapCallbackVH<KeyT, ValueT, Config>;
302
303
57.6M
  static inline VH getEmptyKey() {
304
57.6M
    return VH(DenseMapInfo<Value *>::getEmptyKey());
305
57.6M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >::getEmptyKey()
Line
Count
Source
303
2.46M
  static inline VH getEmptyKey() {
304
2.46M
    return VH(DenseMapInfo<Value *>::getEmptyKey());
305
2.46M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >::getEmptyKey()
Line
Count
Source
303
52.3M
  static inline VH getEmptyKey() {
304
52.3M
    return VH(DenseMapInfo<Value *>::getEmptyKey());
305
52.3M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >::getEmptyKey()
Line
Count
Source
303
100k
  static inline VH getEmptyKey() {
304
100k
    return VH(DenseMapInfo<Value *>::getEmptyKey());
305
100k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >::getEmptyKey()
Line
Count
Source
303
610
  static inline VH getEmptyKey() {
304
610
    return VH(DenseMapInfo<Value *>::getEmptyKey());
305
610
  }
MergeFunctions.cpp:llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >::getEmptyKey()
Line
Count
Source
303
308
  static inline VH getEmptyKey() {
304
308
    return VH(DenseMapInfo<Value *>::getEmptyKey());
305
308
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config> >::getEmptyKey()
Line
Count
Source
303
126
  static inline VH getEmptyKey() {
304
126
    return VH(DenseMapInfo<Value *>::getEmptyKey());
305
126
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > > >::getEmptyKey()
Line
Count
Source
303
1.32M
  static inline VH getEmptyKey() {
304
1.32M
    return VH(DenseMapInfo<Value *>::getEmptyKey());
305
1.32M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >::getEmptyKey()
Line
Count
Source
303
1.42M
  static inline VH getEmptyKey() {
304
1.42M
    return VH(DenseMapInfo<Value *>::getEmptyKey());
305
1.42M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > >::getEmptyKey()
Line
Count
Source
303
770
  static inline VH getEmptyKey() {
304
770
    return VH(DenseMapInfo<Value *>::getEmptyKey());
305
770
  }
306
307
44.2M
  static inline VH getTombstoneKey() {
308
44.2M
    return VH(DenseMapInfo<Value *>::getTombstoneKey());
309
44.2M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >::getTombstoneKey()
Line
Count
Source
307
62.1k
  static inline VH getTombstoneKey() {
308
62.1k
    return VH(DenseMapInfo<Value *>::getTombstoneKey());
309
62.1k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >::getTombstoneKey()
Line
Count
Source
307
40.8M
  static inline VH getTombstoneKey() {
308
40.8M
    return VH(DenseMapInfo<Value *>::getTombstoneKey());
309
40.8M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >::getTombstoneKey()
Line
Count
Source
307
377
  static inline VH getTombstoneKey() {
308
377
    return VH(DenseMapInfo<Value *>::getTombstoneKey());
309
377
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > >::getTombstoneKey()
Line
Count
Source
307
439
  static inline VH getTombstoneKey() {
308
439
    return VH(DenseMapInfo<Value *>::getTombstoneKey());
309
439
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >::getTombstoneKey()
Line
Count
Source
307
1.54M
  static inline VH getTombstoneKey() {
308
1.54M
    return VH(DenseMapInfo<Value *>::getTombstoneKey());
309
1.54M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >::getTombstoneKey()
Line
Count
Source
307
1.15M
  static inline VH getTombstoneKey() {
308
1.15M
    return VH(DenseMapInfo<Value *>::getTombstoneKey());
309
1.15M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > > >::getTombstoneKey()
Line
Count
Source
307
662k
  static inline VH getTombstoneKey() {
308
662k
    return VH(DenseMapInfo<Value *>::getTombstoneKey());
309
662k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config> >::getTombstoneKey()
Line
Count
Source
307
67
  static inline VH getTombstoneKey() {
308
67
    return VH(DenseMapInfo<Value *>::getTombstoneKey());
309
67
  }
MergeFunctions.cpp:llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >::getTombstoneKey()
Line
Count
Source
307
177
  static inline VH getTombstoneKey() {
308
177
    return VH(DenseMapInfo<Value *>::getTombstoneKey());
309
177
  }
310
311
19.5M
  static unsigned getHashValue(const VH &Val) {
312
19.5M
    return DenseMapInfo<KeyT>::getHashValue(Val.Unwrap());
313
19.5M
  }
MergeFunctions.cpp:llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
311
104
  static unsigned getHashValue(const VH &Val) {
312
104
    return DenseMapInfo<KeyT>::getHashValue(Val.Unwrap());
313
104
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
311
93.1k
  static unsigned getHashValue(const VH &Val) {
312
93.1k
    return DenseMapInfo<KeyT>::getHashValue(Val.Unwrap());
313
93.1k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
311
18.7M
  static unsigned getHashValue(const VH &Val) {
312
18.7M
    return DenseMapInfo<KeyT>::getHashValue(Val.Unwrap());
313
18.7M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config> >::getHashValue(llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config> const&)
Line
Count
Source
311
17
  static unsigned getHashValue(const VH &Val) {
312
17
    return DenseMapInfo<KeyT>::getHashValue(Val.Unwrap());
313
17
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
311
1.09k
  static unsigned getHashValue(const VH &Val) {
312
1.09k
    return DenseMapInfo<KeyT>::getHashValue(Val.Unwrap());
313
1.09k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
311
6.08k
  static unsigned getHashValue(const VH &Val) {
312
6.08k
    return DenseMapInfo<KeyT>::getHashValue(Val.Unwrap());
313
6.08k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
311
26
  static unsigned getHashValue(const VH &Val) {
312
26
    return DenseMapInfo<KeyT>::getHashValue(Val.Unwrap());
313
26
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
311
78
  static unsigned getHashValue(const VH &Val) {
312
78
    return DenseMapInfo<KeyT>::getHashValue(Val.Unwrap());
313
78
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
311
640k
  static unsigned getHashValue(const VH &Val) {
312
640k
    return DenseMapInfo<KeyT>::getHashValue(Val.Unwrap());
313
640k
  }
314
315
17.9M
  static unsigned getHashValue(const KeyT &Val) {
316
17.9M
    return DenseMapInfo<KeyT>::getHashValue(Val);
317
17.9M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::GlobalVariable* const&)
Line
Count
Source
315
23
  static unsigned getHashValue(const KeyT &Val) {
316
23
    return DenseMapInfo<KeyT>::getHashValue(Val);
317
23
  }
MergeFunctions.cpp:llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::Function* const&)
Line
Count
Source
315
14
  static unsigned getHashValue(const KeyT &Val) {
316
14
    return DenseMapInfo<KeyT>::getHashValue(Val);
317
14
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::Value* const&)
Line
Count
Source
315
550k
  static unsigned getHashValue(const KeyT &Val) {
316
550k
    return DenseMapInfo<KeyT>::getHashValue(Val);
317
550k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::Constant* const&)
Line
Count
Source
315
115
  static unsigned getHashValue(const KeyT &Val) {
316
115
    return DenseMapInfo<KeyT>::getHashValue(Val);
317
115
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::AllocaInst const* const&)
Line
Count
Source
315
22.3k
  static unsigned getHashValue(const KeyT &Val) {
316
22.3k
    return DenseMapInfo<KeyT>::getHashValue(Val);
317
22.3k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >::getHashValue(llvm::Value const* const&)
Line
Count
Source
315
17.3M
  static unsigned getHashValue(const KeyT &Val) {
316
17.3M
    return DenseMapInfo<KeyT>::getHashValue(Val);
317
17.3M
  }
318
319
481M
  static bool isEqual(const VH &LHS, const VH &RHS) {
320
481M
    return LHS == RHS;
321
481M
  }
MergeFunctions.cpp:llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > const&, llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
319
6.18k
  static bool isEqual(const VH &LHS, const VH &RHS) {
320
6.18k
    return LHS == RHS;
321
6.18k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config> >::isEqual(llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config> const&, llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config> const&)
Line
Count
Source
319
6.32k
  static bool isEqual(const VH &LHS, const VH &RHS) {
320
6.32k
    return LHS == RHS;
321
6.32k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > const&, llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
319
25.6M
  static bool isEqual(const VH &LHS, const VH &RHS) {
320
25.6M
    return LHS == RHS;
321
25.6M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > const&, llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
319
110M
  static bool isEqual(const VH &LHS, const VH &RHS) {
320
110M
    return LHS == RHS;
321
110M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > const&, llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
319
31.9k
  static bool isEqual(const VH &LHS, const VH &RHS) {
320
31.9k
    return LHS == RHS;
321
31.9k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > const&, llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
319
32.1k
  static bool isEqual(const VH &LHS, const VH &RHS) {
320
32.1k
    return LHS == RHS;
321
32.1k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > const&, llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
319
4.32M
  static bool isEqual(const VH &LHS, const VH &RHS) {
320
4.32M
    return LHS == RHS;
321
4.32M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > const&, llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
319
256M
  static bool isEqual(const VH &LHS, const VH &RHS) {
320
256M
    return LHS == RHS;
321
256M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > > const&, llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
319
84.7M
  static bool isEqual(const VH &LHS, const VH &RHS) {
320
84.7M
    return LHS == RHS;
321
84.7M
  }
322
323
22.0M
  static bool isEqual(const KeyT &LHS, const VH &RHS) {
324
22.0M
    return LHS == RHS.getValPtr();
325
22.0M
  }
MergeFunctions.cpp:llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::Function* const&, llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
323
14
  static bool isEqual(const KeyT &LHS, const VH &RHS) {
324
14
    return LHS == RHS.getValPtr();
325
14
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::Value const* const&, llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
323
21.4M
  static bool isEqual(const KeyT &LHS, const VH &RHS) {
324
21.4M
    return LHS == RHS.getValPtr();
325
21.4M
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::AllocaInst const* const&, llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
323
24.4k
  static bool isEqual(const KeyT &LHS, const VH &RHS) {
324
24.4k
    return LHS == RHS.getValPtr();
325
24.4k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::Value* const&, llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
323
642k
  static bool isEqual(const KeyT &LHS, const VH &RHS) {
324
642k
    return LHS == RHS.getValPtr();
325
642k
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::GlobalVariable* const&, llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
323
24
  static bool isEqual(const KeyT &LHS, const VH &RHS) {
324
24
    return LHS == RHS.getValPtr();
325
24
  }
llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > >::isEqual(llvm::Constant* const&, llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > const&)
Line
Count
Source
323
121
  static bool isEqual(const KeyT &LHS, const VH &RHS) {
324
121
    return LHS == RHS.getValPtr();
325
121
  }
326
};
327
328
template<typename DenseMapT, typename KeyT>
329
class ValueMapIterator :
330
    public std::iterator<std::forward_iterator_tag,
331
                         std::pair<KeyT, typename DenseMapT::mapped_type>,
332
                         ptrdiff_t> {
333
  using BaseT = typename DenseMapT::iterator;
334
  using ValueT = typename DenseMapT::mapped_type;
335
336
  BaseT I;
337
338
public:
339
16
  ValueMapIterator() : I() {}
340
33.0M
  ValueMapIterator(BaseT I) : I(I) {}
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*>::ValueMapIterator(llvm::DenseMapIterator<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH>, false>)
Line
Count
Source
340
31.8M
  ValueMapIterator(BaseT I) : I(I) {}
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*> >, llvm::GlobalVariable*>::ValueMapIterator(llvm::DenseMapIterator<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*>, false>)
Line
Count
Source
340
94
  ValueMapIterator(BaseT I) : I(I) {}
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*> >, llvm::Constant*>::ValueMapIterator(llvm::DenseMapIterator<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*>, false>)
Line
Count
Source
340
230
  ValueMapIterator(BaseT I) : I(I) {}
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags> >, llvm::Value*>::ValueMapIterator(llvm::DenseMapIterator<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags>, false>)
Line
Count
Source
340
1.19M
  ValueMapIterator(BaseT I) : I(I) {}
Unexecuted instantiation: llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::Value*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::Value*> >, llvm::Value*>::ValueMapIterator(llvm::DenseMapIterator<llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::Value*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::Value*, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::Value*>, false>)
Unexecuted instantiation: llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> > > >, llvm::GlobalValue const*>::ValueMapIterator(llvm::DenseMapIterator<llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalValue const*, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> >, llvm::ValueMapConfig<llvm::GlobalValue const*, llvm::sys::SmartMutex<false> > >, std::__1::unique_ptr<llvm::GlobalValuePseudoSourceValue const, std::__1::default_delete<llvm::GlobalValuePseudoSourceValue const> > >, false>)
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind> >, llvm::AllocaInst const*>::ValueMapIterator(llvm::DenseMapIterator<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind>, false>)
Line
Count
Source
340
22.8k
  ValueMapIterator(BaseT I) : I(I) {}
MergeFunctions.cpp:llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long> > >, llvm::Function*>::ValueMapIterator(llvm::DenseMapIterator<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long> >, false>)
Line
Count
Source
340
120
  ValueMapIterator(BaseT I) : I(I) {}
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>, unsigned long long, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config> >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>, unsigned long long> >, llvm::GlobalValue*>::ValueMapIterator(llvm::DenseMapIterator<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>, unsigned long long, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config> >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>, unsigned long long>, false>)
Line
Count
Source
340
16
  ValueMapIterator(BaseT I) : I(I) {}
341
342
339
  BaseT base() const { return I; }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind> >, llvm::AllocaInst const*>::base() const
Line
Count
Source
342
303
  BaseT base() const { return I; }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*> >, llvm::GlobalVariable*>::base() const
Line
Count
Source
342
26
  BaseT base() const { return I; }
MergeFunctions.cpp:llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long> > >, llvm::Function*>::base() const
Line
Count
Source
342
10
  BaseT base() const { return I; }
343
344
  struct ValueTypeProxy {
345
    const KeyT first;
346
    ValueT& second;
347
348
17.5M
    ValueTypeProxy *operator->() { return this; }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*>::ValueTypeProxy::operator->()
Line
Count
Source
348
17.3M
    ValueTypeProxy *operator->() { return this; }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind> >, llvm::AllocaInst const*>::ValueTypeProxy::operator->()
Line
Count
Source
348
584
    ValueTypeProxy *operator->() { return this; }
MergeFunctions.cpp:llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long> > >, llvm::Function*>::ValueTypeProxy::operator->()
Line
Count
Source
348
10
    ValueTypeProxy *operator->() { return this; }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*> >, llvm::GlobalVariable*>::ValueTypeProxy::operator->()
Line
Count
Source
348
115
    ValueTypeProxy *operator->() { return this; }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*> >, llvm::Constant*>::ValueTypeProxy::operator->()
Line
Count
Source
348
37
    ValueTypeProxy *operator->() { return this; }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>, unsigned long long, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config> >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>, unsigned long long> >, llvm::GlobalValue*>::ValueTypeProxy::operator->()
Line
Count
Source
348
16
    ValueTypeProxy *operator->() { return this; }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags> >, llvm::Value*>::ValueTypeProxy::operator->()
Line
Count
Source
348
127k
    ValueTypeProxy *operator->() { return this; }
349
350
122
    operator std::pair<KeyT, ValueT>() const {
351
122
      return std::make_pair(first, second);
352
122
    }
353
  };
354
355
17.5M
  ValueTypeProxy operator*() const {
356
17.5M
    ValueTypeProxy Result = {I->first.Unwrap(), I->second};
357
17.5M
    return Result;
358
17.5M
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>, unsigned long long, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config> >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>, unsigned long long> >, llvm::GlobalValue*>::operator*() const
Line
Count
Source
355
16
  ValueTypeProxy operator*() const {
356
16
    ValueTypeProxy Result = {I->first.Unwrap(), I->second};
357
16
    return Result;
358
16
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*> >, llvm::Constant*>::operator*() const
Line
Count
Source
355
37
  ValueTypeProxy operator*() const {
356
37
    ValueTypeProxy Result = {I->first.Unwrap(), I->second};
357
37
    return Result;
358
37
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*> >, llvm::GlobalVariable*>::operator*() const
Line
Count
Source
355
115
  ValueTypeProxy operator*() const {
356
115
    ValueTypeProxy Result = {I->first.Unwrap(), I->second};
357
115
    return Result;
358
115
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind> >, llvm::AllocaInst const*>::operator*() const
Line
Count
Source
355
584
  ValueTypeProxy operator*() const {
356
584
    ValueTypeProxy Result = {I->first.Unwrap(), I->second};
357
584
    return Result;
358
584
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags> >, llvm::Value*>::operator*() const
Line
Count
Source
355
127k
  ValueTypeProxy operator*() const {
356
127k
    ValueTypeProxy Result = {I->first.Unwrap(), I->second};
357
127k
    return Result;
358
127k
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*>::operator*() const
Line
Count
Source
355
17.3M
  ValueTypeProxy operator*() const {
356
17.3M
    ValueTypeProxy Result = {I->first.Unwrap(), I->second};
357
17.3M
    return Result;
358
17.3M
  }
MergeFunctions.cpp:llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long> > >, llvm::Function*>::operator*() const
Line
Count
Source
355
10
  ValueTypeProxy operator*() const {
356
10
    ValueTypeProxy Result = {I->first.Unwrap(), I->second};
357
10
    return Result;
358
10
  }
359
360
17.5M
  ValueTypeProxy operator->() const {
361
17.5M
    return operator*();
362
17.5M
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags> >, llvm::Value*>::operator->() const
Line
Count
Source
360
127k
  ValueTypeProxy operator->() const {
361
127k
    return operator*();
362
127k
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>, unsigned long long, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config> >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalValue*, unsigned long long, llvm::GlobalNumberState::Config>, unsigned long long> >, llvm::GlobalValue*>::operator->() const
Line
Count
Source
360
16
  ValueTypeProxy operator->() const {
361
16
    return operator*();
362
16
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind> >, llvm::AllocaInst const*>::operator->() const
Line
Count
Source
360
584
  ValueTypeProxy operator->() const {
361
584
    return operator*();
362
584
  }
MergeFunctions.cpp:llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long> > >, llvm::Function*>::operator->() const
Line
Count
Source
360
10
  ValueTypeProxy operator->() const {
361
10
    return operator*();
362
10
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*> >, llvm::GlobalVariable*>::operator->() const
Line
Count
Source
360
115
  ValueTypeProxy operator->() const {
361
115
    return operator*();
362
115
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*> >, llvm::Constant*>::operator->() const
Line
Count
Source
360
37
  ValueTypeProxy operator->() const {
361
37
    return operator*();
362
37
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*>::operator->() const
Line
Count
Source
360
17.3M
  ValueTypeProxy operator->() const {
361
17.3M
    return operator*();
362
17.3M
  }
363
364
197k
  bool operator==(const ValueMapIterator &RHS) const {
365
197k
    return I == RHS.I;
366
197k
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind> >, llvm::AllocaInst const*>::operator==(llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind> >, llvm::AllocaInst const*> const&) const
Line
Count
Source
364
303
  bool operator==(const ValueMapIterator &RHS) const {
365
303
    return I == RHS.I;
366
303
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*>::operator==(llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*> const&) const
Line
Count
Source
364
196k
  bool operator==(const ValueMapIterator &RHS) const {
365
196k
    return I == RHS.I;
366
196k
  }
367
19.3M
  bool operator!=(const ValueMapIterator &RHS) const {
368
19.3M
    return I != RHS.I;
369
19.3M
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*>::operator!=(llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*> const&) const
Line
Count
Source
367
18.8M
  bool operator!=(const ValueMapIterator &RHS) const {
368
18.8M
    return I != RHS.I;
369
18.8M
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*> >, llvm::Constant*>::operator!=(llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Constant*, llvm::Value*, llvm::ValueMapConfig<llvm::Constant*, llvm::sys::SmartMutex<false> > >, llvm::Value*> >, llvm::Constant*> const&) const
Line
Count
Source
367
115
  bool operator!=(const ValueMapIterator &RHS) const {
368
115
    return I != RHS.I;
369
115
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*> >, llvm::GlobalVariable*>::operator!=(llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*> >, llvm::GlobalVariable*> const&) const
Line
Count
Source
367
99
  bool operator!=(const ValueMapIterator &RHS) const {
368
99
    return I != RHS.I;
369
99
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags> >, llvm::Value*>::operator!=(llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags> >, llvm::Value*> const&) const
Line
Count
Source
367
550k
  bool operator!=(const ValueMapIterator &RHS) const {
368
550k
    return I != RHS.I;
369
550k
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind> >, llvm::AllocaInst const*>::operator!=(llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::AllocaInst const*, llvm::StackProtector::SSPLayoutKind, llvm::ValueMapConfig<llvm::AllocaInst const*, llvm::sys::SmartMutex<false> > >, llvm::StackProtector::SSPLayoutKind> >, llvm::AllocaInst const*> const&) const
Line
Count
Source
367
8.36k
  bool operator!=(const ValueMapIterator &RHS) const {
368
8.36k
    return I != RHS.I;
369
8.36k
  }
MergeFunctions.cpp:llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long> > >, llvm::Function*>::operator!=(llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Function*, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, llvm::ValueMapConfig<llvm::Function*, llvm::sys::SmartMutex<false> > >, std::__1::__tree_const_iterator<(anonymous namespace)::FunctionNode, std::__1::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long> > >, llvm::Function*> const&) const
Line
Count
Source
367
6
  bool operator!=(const ValueMapIterator &RHS) const {
368
6
    return I != RHS.I;
369
6
  }
370
371
3.17M
  inline ValueMapIterator& operator++() {  // Preincrement
372
3.17M
    ++I;
373
3.17M
    return *this;
374
3.17M
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*>::operator++()
Line
Count
Source
371
3.17M
  inline ValueMapIterator& operator++() {  // Preincrement
372
3.17M
    ++I;
373
3.17M
    return *this;
374
3.17M
  }
llvm::ValueMapIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::GlobalVariable*, llvm::GlobalVariable*, llvm::ValueMapConfig<llvm::GlobalVariable*, llvm::sys::SmartMutex<false> > >, llvm::GlobalVariable*> >, llvm::GlobalVariable*>::operator++()
Line
Count
Source
371
52
  inline ValueMapIterator& operator++() {  // Preincrement
372
52
    ++I;
373
52
    return *this;
374
52
  }
375
  ValueMapIterator operator++(int) {  // Postincrement
376
    ValueMapIterator tmp = *this; ++*this; return tmp;
377
  }
378
};
379
380
template<typename DenseMapT, typename KeyT>
381
class ValueMapConstIterator :
382
    public std::iterator<std::forward_iterator_tag,
383
                         std::pair<KeyT, typename DenseMapT::mapped_type>,
384
                         ptrdiff_t> {
385
  using BaseT = typename DenseMapT::const_iterator;
386
  using ValueT = typename DenseMapT::mapped_type;
387
388
  BaseT I;
389
390
public:
391
  ValueMapConstIterator() : I() {}
392
553k
  ValueMapConstIterator(BaseT I) : I(I) {}
llvm::ValueMapConstIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags> >, llvm::Value*>::ValueMapConstIterator(llvm::DenseMapIterator<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags>, true>)
Line
Count
Source
392
552k
  ValueMapConstIterator(BaseT I) : I(I) {}
llvm::ValueMapConstIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*>::ValueMapConstIterator(llvm::DenseMapIterator<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH>, true>)
Line
Count
Source
392
680
  ValueMapConstIterator(BaseT I) : I(I) {}
393
  ValueMapConstIterator(ValueMapIterator<DenseMapT, KeyT> Other)
394
    : I(Other.base()) {}
395
396
  BaseT base() const { return I; }
397
398
  struct ValueTypeProxy {
399
    const KeyT first;
400
    const ValueT& second;
401
    ValueTypeProxy *operator->() { return this; }
402
45.8k
    operator std::pair<KeyT, ValueT>() const {
403
45.8k
      return std::make_pair(first, second);
404
45.8k
    }
405
  };
406
407
50.2k
  ValueTypeProxy operator*() const {
408
50.2k
    ValueTypeProxy Result = {I->first.Unwrap(), I->second};
409
50.2k
    return Result;
410
50.2k
  }
llvm::ValueMapConstIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*>::operator*() const
Line
Count
Source
407
4.39k
  ValueTypeProxy operator*() const {
408
4.39k
    ValueTypeProxy Result = {I->first.Unwrap(), I->second};
409
4.39k
    return Result;
410
4.39k
  }
llvm::ValueMapConstIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags> >, llvm::Value*>::operator*() const
Line
Count
Source
407
45.8k
  ValueTypeProxy operator*() const {
408
45.8k
    ValueTypeProxy Result = {I->first.Unwrap(), I->second};
409
45.8k
    return Result;
410
45.8k
  }
411
412
  ValueTypeProxy operator->() const {
413
    return operator*();
414
  }
415
416
  bool operator==(const ValueMapConstIterator &RHS) const {
417
    return I == RHS.I;
418
  }
419
326k
  bool operator!=(const ValueMapConstIterator &RHS) const {
420
326k
    return I != RHS.I;
421
326k
  }
llvm::ValueMapConstIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*>::operator!=(llvm::ValueMapConstIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*> const&) const
Line
Count
Source
419
4.73k
  bool operator!=(const ValueMapConstIterator &RHS) const {
420
4.73k
    return I != RHS.I;
421
4.73k
  }
llvm::ValueMapConstIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags> >, llvm::Value*>::operator!=(llvm::ValueMapConstIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags> >, llvm::Value*> const&) const
Line
Count
Source
419
322k
  bool operator!=(const ValueMapConstIterator &RHS) const {
420
322k
    return I != RHS.I;
421
322k
  }
422
423
50.2k
  inline ValueMapConstIterator& operator++() {  // Preincrement
424
50.2k
    ++I;
425
50.2k
    return *this;
426
50.2k
  }
llvm::ValueMapConstIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value*, llvm::SCEVWrapPredicate::IncrementWrapFlags, llvm::ValueMapConfig<llvm::Value*, llvm::sys::SmartMutex<false> > >, llvm::SCEVWrapPredicate::IncrementWrapFlags> >, llvm::Value*>::operator++()
Line
Count
Source
423
45.8k
  inline ValueMapConstIterator& operator++() {  // Preincrement
424
45.8k
    ++I;
425
45.8k
    return *this;
426
45.8k
  }
llvm::ValueMapConstIterator<llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > > >, llvm::detail::DenseMapPair<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >, llvm::WeakTrackingVH> >, llvm::Value const*>::operator++()
Line
Count
Source
423
4.39k
  inline ValueMapConstIterator& operator++() {  // Preincrement
424
4.39k
    ++I;
425
4.39k
    return *this;
426
4.39k
  }
427
  ValueMapConstIterator operator++(int) {  // Postincrement
428
    ValueMapConstIterator tmp = *this; ++*this; return tmp;
429
  }
430
};
431
432
} // end namespace llvm
433
434
#endif // LLVM_IR_VALUEMAP_H