Coverage Report

Created: 2019-07-24 05:18

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/Support/ManagedStatic.h
Line
Count
Source
1
//===-- llvm/Support/ManagedStatic.h - Static Global wrapper ----*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file defines the ManagedStatic class and the llvm_shutdown() function.
10
//
11
//===----------------------------------------------------------------------===//
12
13
#ifndef LLVM_SUPPORT_MANAGEDSTATIC_H
14
#define LLVM_SUPPORT_MANAGEDSTATIC_H
15
16
#include <atomic>
17
#include <cstddef>
18
19
namespace llvm {
20
21
/// object_creator - Helper method for ManagedStatic.
22
template <class C> struct object_creator {
23
1.24M
  static void *call() { return new C(); }
llvm::object_creator<llvm::cl::SubCommand>::call()
Line
Count
Source
23
279k
  static void *call() { return new C(); }
llvm::object_creator<std::__1::map<llvm::Module const*, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > >, std::__1::less<llvm::Module const*>, std::__1::allocator<std::__1::pair<llvm::Module const* const, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > > > > > >::call()
Line
Count
Source
23
267
  static void *call() { return new C(); }
WebAssemblyRuntimeLibcallSignatures.cpp:llvm::object_creator<(anonymous namespace)::RuntimeLibcallSignatureTable>::call()
Line
Count
Source
23
24
  static void *call() { return new C(); }
WebAssemblyRuntimeLibcallSignatures.cpp:llvm::object_creator<(anonymous namespace)::StaticLibcallNameMap>::call()
Line
Count
Source
23
24
  static void *call() { return new C(); }
X86InstrFoldTables.cpp:llvm::object_creator<(anonymous namespace)::X86MemUnfoldTable>::call()
Line
Count
Source
23
796
  static void *call() { return new C(); }
llvm::object_creator<llvm::OptBisect>::call()
Line
Count
Source
23
42.2k
  static void *call() { return new C(); }
llvm::object_creator<llvm::PassRegistry>::call()
Line
Count
Source
23
120k
  static void *call() { return new C(); }
PassTimingInfo.cpp:llvm::object_creator<llvm::(anonymous namespace)::legacy::PassTimingInfo>::call()
Line
Count
Source
23
15
  static void *call() { return new C(); }
llvm::object_creator<llvm::sys::SmartMutex<true> >::call()
Line
Count
Source
23
212k
  static void *call() { return new C(); }
llvm::object_creator<llvm::SmallVector<std::__1::pair<llvm::PassManagerBuilder::ExtensionPointTy, std::__1::function<void (llvm::PassManagerBuilder const&, llvm::legacy::PassManagerBase&)> >, 8u> >::call()
Line
Count
Source
23
71.1k
  static void *call() { return new C(); }
CommandLine.cpp:llvm::object_creator<(anonymous namespace)::CommandLineParser>::call()
Line
Count
Source
23
139k
  static void *call() { return new C(); }
CrashRecoveryContext.cpp:llvm::object_creator<llvm::sys::ThreadLocal<(anonymous namespace)::CrashRecoveryContextImpl const> >::call()
Line
Count
Source
23
1.02k
  static void *call() { return new C(); }
llvm::object_creator<llvm::sys::ThreadLocal<llvm::CrashRecoveryContext const> >::call()
Line
Count
Source
23
1.66k
  static void *call() { return new C(); }
llvm::object_creator<llvm::sys::SmartMutex<false> >::call()
Line
Count
Source
23
1.10k
  static void *call() { return new C(); }
llvm::object_creator<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::call()
Line
Count
Source
23
25.0k
  static void *call() { return new C(); }
llvm::object_creator<llvm::DebugCounter>::call()
Line
Count
Source
23
104k
  static void *call() { return new C(); }
Error.cpp:llvm::object_creator<(anonymous namespace)::ErrorErrorCategory>::call()
Line
Count
Source
23
38.3k
  static void *call() { return new C(); }
Statistic.cpp:llvm::object_creator<(anonymous namespace)::StatisticInfo>::call()
Line
Count
Source
23
6
  static void *call() { return new C(); }
llvm::object_creator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::call()
Line
Count
Source
23
126k
  static void *call() { return new C(); }
llvm::object_creator<llvm::SignpostEmitter>::call()
Line
Count
Source
23
23
  static void *call() { return new C(); }
Timer.cpp:llvm::object_creator<(anonymous namespace)::Name2PairMap>::call()
Line
Count
Source
23
15
  static void *call() { return new C(); }
llvm::object_creator<llvm::StringMap<void*, llvm::MallocAllocator> >::call()
Line
Count
Source
23
2
  static void *call() { return new C(); }
llvm::object_creator<llvm::sys::DynamicLibrary::HandleSet>::call()
Line
Count
Source
23
389
  static void *call() { return new C(); }
Signals.cpp:llvm::object_creator<(anonymous namespace)::FilesToRemoveCleanup>::call()
Line
Count
Source
23
36.0k
  static void *call() { return new C(); }
llvm::object_creator<clang::ast_matchers::internal::MemoizedMatcher<clang::ast_matchers::internal::Matcher<clang::Decl>, &(clang::ast_matchers::isInstantiated_getInstance())>::Wrapper>::call()
Line
Count
Source
23
84
  static void *call() { return new C(); }
Unexecuted instantiation: llvm::object_creator<clang::BuildPreambleErrorCategory>::call()
SerializedDiagnosticReader.cpp:llvm::object_creator<(anonymous namespace)::SDErrorCategoryType>::call()
Line
Count
Source
23
1
  static void *call() { return new C(); }
llvm::object_creator<std::__1::set<llvm::EVT, llvm::EVT::compareRawBits, std::__1::allocator<llvm::EVT> > >::call()
Line
Count
Source
23
2.51k
  static void *call() { return new C(); }
SelectionDAG.cpp:llvm::object_creator<(anonymous namespace)::EVTArray>::call()
Line
Count
Source
23
35.7k
  static void *call() { return new C(); }
Unexecuted instantiation: CoverageMapping.cpp:llvm::object_creator<(anonymous namespace)::CoverageMappingErrorCategoryType>::call()
Unexecuted instantiation: CrossTranslationUnit.cpp:llvm::object_creator<clang::cross_tu::(anonymous namespace)::IndexErrorCategory>::call()
ASTMatchersInternal.cpp:llvm::object_creator<clang::ast_matchers::internal::(anonymous namespace)::TrueMatcherImpl>::call()
Line
Count
Source
23
878
  static void *call() { return new C(); }
Unexecuted instantiation: InstrProf.cpp:llvm::object_creator<(anonymous namespace)::InstrProfErrorCategoryType>::call()
SampleProf.cpp:llvm::object_creator<(anonymous namespace)::SampleProfErrorCategoryType>::call()
Line
Count
Source
23
149
  static void *call() { return new C(); }
Error.cpp:llvm::object_creator<(anonymous namespace)::_object_error_category>::call()
Line
Count
Source
23
2.23k
  static void *call() { return new C(); }
BitcodeReader.cpp:llvm::object_creator<(anonymous namespace)::BitcodeErrorCategoryType>::call()
Line
Count
Source
23
59
  static void *call() { return new C(); }
CodeViewError.cpp:llvm::object_creator<(anonymous namespace)::CodeViewErrorCategory>::call()
Line
Count
Source
23
188
  static void *call() { return new C(); }
llvm::object_creator<llvm::LLVMContext>::call()
Line
Count
Source
23
30
  static void *call() { return new C(); }
24
};
25
26
/// object_deleter - Helper method for ManagedStatic.
27
///
28
template <typename T> struct object_deleter {
29
1.18M
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<llvm::cl::SubCommand>::call(void*)
Line
Count
Source
29
254k
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<std::__1::map<llvm::Module const*, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > >, std::__1::less<llvm::Module const*>, std::__1::allocator<std::__1::pair<llvm::Module const* const, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > > > > > >::call(void*)
Line
Count
Source
29
262
  static void call(void *Ptr) { delete (T *)Ptr; }
WebAssemblyRuntimeLibcallSignatures.cpp:llvm::object_deleter<(anonymous namespace)::RuntimeLibcallSignatureTable>::call(void*)
Line
Count
Source
29
24
  static void call(void *Ptr) { delete (T *)Ptr; }
WebAssemblyRuntimeLibcallSignatures.cpp:llvm::object_deleter<(anonymous namespace)::StaticLibcallNameMap>::call(void*)
Line
Count
Source
29
24
  static void call(void *Ptr) { delete (T *)Ptr; }
X86InstrFoldTables.cpp:llvm::object_deleter<(anonymous namespace)::X86MemUnfoldTable>::call(void*)
Line
Count
Source
29
794
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<llvm::OptBisect>::call(void*)
Line
Count
Source
29
41.9k
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<llvm::PassRegistry>::call(void*)
Line
Count
Source
29
114k
  static void call(void *Ptr) { delete (T *)Ptr; }
PassTimingInfo.cpp:llvm::object_deleter<llvm::(anonymous namespace)::legacy::PassTimingInfo>::call(void*)
Line
Count
Source
29
14
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<llvm::sys::SmartMutex<true> >::call(void*)
Line
Count
Source
29
201k
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<llvm::SmallVector<std::__1::pair<llvm::PassManagerBuilder::ExtensionPointTy, std::__1::function<void (llvm::PassManagerBuilder const&, llvm::legacy::PassManagerBase&)> >, 8u> >::call(void*)
Line
Count
Source
29
71.0k
  static void call(void *Ptr) { delete (T *)Ptr; }
CommandLine.cpp:llvm::object_deleter<(anonymous namespace)::CommandLineParser>::call(void*)
Line
Count
Source
29
127k
  static void call(void *Ptr) { delete (T *)Ptr; }
Unexecuted instantiation: CrashRecoveryContext.cpp:llvm::object_deleter<llvm::sys::ThreadLocal<(anonymous namespace)::CrashRecoveryContextImpl const> >::call(void*)
llvm::object_deleter<llvm::sys::ThreadLocal<llvm::CrashRecoveryContext const> >::call(void*)
Line
Count
Source
29
653
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<llvm::sys::SmartMutex<false> >::call(void*)
Line
Count
Source
29
31
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::call(void*)
Line
Count
Source
29
24.7k
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<llvm::DebugCounter>::call(void*)
Line
Count
Source
29
100k
  static void call(void *Ptr) { delete (T *)Ptr; }
Error.cpp:llvm::object_deleter<(anonymous namespace)::ErrorErrorCategory>::call(void*)
Line
Count
Source
29
34.1k
  static void call(void *Ptr) { delete (T *)Ptr; }
Statistic.cpp:llvm::object_deleter<(anonymous namespace)::StatisticInfo>::call(void*)
Line
Count
Source
29
5
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::call(void*)
Line
Count
Source
29
115k
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<llvm::TimerGroup>::call(void*)
Line
Count
Source
29
21.7k
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<llvm::SignpostEmitter>::call(void*)
Line
Count
Source
29
19
  static void call(void *Ptr) { delete (T *)Ptr; }
Timer.cpp:llvm::object_deleter<(anonymous namespace)::Name2PairMap>::call(void*)
Line
Count
Source
29
14
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<llvm::StringMap<void*, llvm::MallocAllocator> >::call(void*)
Line
Count
Source
29
2
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<llvm::sys::DynamicLibrary::HandleSet>::call(void*)
Line
Count
Source
29
166
  static void call(void *Ptr) { delete (T *)Ptr; }
Signals.cpp:llvm::object_deleter<(anonymous namespace)::FilesToRemoveCleanup>::call(void*)
Line
Count
Source
29
35.8k
  static void call(void *Ptr) { delete (T *)Ptr; }
llvm::object_deleter<clang::ast_matchers::internal::MemoizedMatcher<clang::ast_matchers::internal::Matcher<clang::Decl>, &(clang::ast_matchers::isInstantiated_getInstance())>::Wrapper>::call(void*)
Line
Count
Source
29
1
  static void call(void *Ptr) { delete (T *)Ptr; }
Unexecuted instantiation: llvm::object_deleter<clang::ast_matchers::internal::MemoizedMatcher<clang::ast_matchers::internal::Matcher<clang::Stmt>, &(clang::ast_matchers::isInTemplateInstantiation_getInstance())>::Wrapper>::call(void*)
Unexecuted instantiation: llvm::object_deleter<clang::ast_matchers::internal::MemoizedMatcher<clang::ast_matchers::internal::Matcher<clang::Expr>, &(clang::ast_matchers::nullPointerConstant_getInstance())>::Wrapper>::call(void*)
Unexecuted instantiation: llvm::object_deleter<clang::BuildPreambleErrorCategory>::call(void*)
Unexecuted instantiation: SerializedDiagnosticReader.cpp:llvm::object_deleter<(anonymous namespace)::SDErrorCategoryType>::call(void*)
llvm::object_deleter<std::__1::set<llvm::EVT, llvm::EVT::compareRawBits, std::__1::allocator<llvm::EVT> > >::call(void*)
Line
Count
Source
29
2.50k
  static void call(void *Ptr) { delete (T *)Ptr; }
SelectionDAG.cpp:llvm::object_deleter<(anonymous namespace)::EVTArray>::call(void*)
Line
Count
Source
29
35.3k
  static void call(void *Ptr) { delete (T *)Ptr; }
Unexecuted instantiation: CoverageMapping.cpp:llvm::object_deleter<(anonymous namespace)::CoverageMappingErrorCategoryType>::call(void*)
Unexecuted instantiation: CrossTranslationUnit.cpp:llvm::object_deleter<clang::cross_tu::(anonymous namespace)::IndexErrorCategory>::call(void*)
ASTMatchersInternal.cpp:llvm::object_deleter<clang::ast_matchers::internal::(anonymous namespace)::TrueMatcherImpl>::call(void*)
Line
Count
Source
29
51
  static void call(void *Ptr) { delete (T *)Ptr; }
Unexecuted instantiation: InstrProf.cpp:llvm::object_deleter<(anonymous namespace)::InstrProfErrorCategoryType>::call(void*)
SampleProf.cpp:llvm::object_deleter<(anonymous namespace)::SampleProfErrorCategoryType>::call(void*)
Line
Count
Source
29
127
  static void call(void *Ptr) { delete (T *)Ptr; }
Error.cpp:llvm::object_deleter<(anonymous namespace)::_object_error_category>::call(void*)
Line
Count
Source
29
1.86k
  static void call(void *Ptr) { delete (T *)Ptr; }
Unexecuted instantiation: BitcodeReader.cpp:llvm::object_deleter<(anonymous namespace)::BitcodeErrorCategoryType>::call(void*)
CodeViewError.cpp:llvm::object_deleter<(anonymous namespace)::CodeViewErrorCategory>::call(void*)
Line
Count
Source
29
186
  static void call(void *Ptr) { delete (T *)Ptr; }
Unexecuted instantiation: llvm::object_deleter<llvm::LLVMContext>::call(void*)
30
};
31
template <typename T, size_t N> struct object_deleter<T[N]> {
32
  static void call(void *Ptr) { delete[](T *)Ptr; }
33
};
34
35
// ManagedStatic must be initialized to zero, and it must *not* have a dynamic
36
// initializer because managed statics are often created while running other
37
// dynamic initializers. In standard C++11, the best way to accomplish this is
38
// with a constexpr default constructor. However, different versions of the
39
// Visual C++ compiler have had bugs where, even though the constructor may be
40
// constexpr, a dynamic initializer may be emitted depending on optimization
41
// settings. For the affected versions of MSVC, use the old linker
42
// initialization pattern of not providing a constructor and leaving the fields
43
// uninitialized.
44
#if !defined(_MSC_VER) || defined(__clang__)
45
#define LLVM_USE_CONSTEXPR_CTOR
46
#endif
47
48
/// ManagedStaticBase - Common base class for ManagedStatic instances.
49
class ManagedStaticBase {
50
protected:
51
#ifdef LLVM_USE_CONSTEXPR_CTOR
52
  mutable std::atomic<void *> Ptr{};
53
  mutable void (*DeleterFn)(void *) = nullptr;
54
  mutable const ManagedStaticBase *Next = nullptr;
55
#else
56
  // This should only be used as a static variable, which guarantees that this
57
  // will be zero initialized.
58
  mutable std::atomic<void *> Ptr;
59
  mutable void (*DeleterFn)(void *);
60
  mutable const ManagedStaticBase *Next;
61
#endif
62
63
  void RegisterManagedStatic(void *(*creator)(), void (*deleter)(void*)) const;
64
65
public:
66
#ifdef LLVM_USE_CONSTEXPR_CTOR
67
  constexpr ManagedStaticBase() = default;
68
#endif
69
70
  /// isConstructed - Return true if this object has not been created yet.
71
197k
  bool isConstructed() const { return Ptr != nullptr; }
72
73
  void destroy() const;
74
};
75
76
/// ManagedStatic - This transparently changes the behavior of global statics to
77
/// be lazily constructed on demand (good for reducing startup times of dynamic
78
/// libraries that link in LLVM components) and for making destruction be
79
/// explicit through the llvm_shutdown() function call.
80
///
81
template <class C, class Creator = object_creator<C>,
82
          class Deleter = object_deleter<C>>
83
class ManagedStatic : public ManagedStaticBase {
84
public:
85
  // Accessors.
86
914M
  C &operator*() {
87
914M
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
914M
    if (!Tmp)
89
1.26M
      RegisterManagedStatic(Creator::call, Deleter::call);
90
914M
91
914M
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
914M
  }
llvm::ManagedStatic<llvm::cl::SubCommand, llvm::object_creator<llvm::cl::SubCommand>, llvm::object_deleter<llvm::cl::SubCommand> >::operator*()
Line
Count
Source
86
394M
  C &operator*() {
87
394M
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
394M
    if (!Tmp)
89
279k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
394M
91
394M
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
394M
  }
llvm::ManagedStatic<std::__1::map<llvm::Module const*, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > >, std::__1::less<llvm::Module const*>, std::__1::allocator<std::__1::pair<llvm::Module const* const, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > > > > >, llvm::object_creator<std::__1::map<llvm::Module const*, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > >, std::__1::less<llvm::Module const*>, std::__1::allocator<std::__1::pair<llvm::Module const* const, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > > > > > >, llvm::object_deleter<std::__1::map<llvm::Module const*, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > >, std::__1::less<llvm::Module const*>, std::__1::allocator<std::__1::pair<llvm::Module const* const, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > > > > > > >::operator*()
Line
Count
Source
86
74.1k
  C &operator*() {
87
74.1k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
74.1k
    if (!Tmp)
89
267
      RegisterManagedStatic(Creator::call, Deleter::call);
90
74.1k
91
74.1k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
74.1k
  }
WebAssemblyRuntimeLibcallSignatures.cpp:llvm::ManagedStatic<(anonymous namespace)::RuntimeLibcallSignatureTable, llvm::object_creator<(anonymous namespace)::RuntimeLibcallSignatureTable>, llvm::object_deleter<(anonymous namespace)::RuntimeLibcallSignatureTable> >::operator*()
Line
Count
Source
86
11.5k
  C &operator*() {
87
11.5k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
11.5k
    if (!Tmp)
89
24
      RegisterManagedStatic(Creator::call, Deleter::call);
90
11.5k
91
11.5k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
11.5k
  }
WebAssemblyRuntimeLibcallSignatures.cpp:llvm::ManagedStatic<(anonymous namespace)::StaticLibcallNameMap, llvm::object_creator<(anonymous namespace)::StaticLibcallNameMap>, llvm::object_deleter<(anonymous namespace)::StaticLibcallNameMap> >::operator*()
Line
Count
Source
86
226
  C &operator*() {
87
226
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
226
    if (!Tmp)
89
24
      RegisterManagedStatic(Creator::call, Deleter::call);
90
226
91
226
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
226
  }
X86InstrFoldTables.cpp:llvm::ManagedStatic<(anonymous namespace)::X86MemUnfoldTable, llvm::object_creator<(anonymous namespace)::X86MemUnfoldTable>, llvm::object_deleter<(anonymous namespace)::X86MemUnfoldTable> >::operator*()
Line
Count
Source
86
7.60k
  C &operator*() {
87
7.60k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
7.60k
    if (!Tmp)
89
796
      RegisterManagedStatic(Creator::call, Deleter::call);
90
7.60k
91
7.60k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
7.60k
  }
llvm::ManagedStatic<llvm::OptBisect, llvm::object_creator<llvm::OptBisect>, llvm::object_deleter<llvm::OptBisect> >::operator*()
Line
Count
Source
86
42.5k
  C &operator*() {
87
42.5k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
42.5k
    if (!Tmp)
89
42.2k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
42.5k
91
42.5k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
42.5k
  }
llvm::ManagedStatic<llvm::PassRegistry, llvm::object_creator<llvm::PassRegistry>, llvm::object_deleter<llvm::PassRegistry> >::operator*()
Line
Count
Source
86
179M
  C &operator*() {
87
179M
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
179M
    if (!Tmp)
89
120k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
179M
91
179M
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
179M
  }
PassTimingInfo.cpp:llvm::ManagedStatic<llvm::(anonymous namespace)::legacy::PassTimingInfo, llvm::object_creator<llvm::(anonymous namespace)::legacy::PassTimingInfo>, llvm::object_deleter<llvm::(anonymous namespace)::legacy::PassTimingInfo> >::operator*()
Line
Count
Source
86
15
  C &operator*() {
87
15
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
15
    if (!Tmp)
89
15
      RegisterManagedStatic(Creator::call, Deleter::call);
90
15
91
15
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
15
  }
llvm::ManagedStatic<llvm::sys::SmartMutex<true>, llvm::object_creator<llvm::sys::SmartMutex<true> >, llvm::object_deleter<llvm::sys::SmartMutex<true> > >::operator*()
Line
Count
Source
86
664k
  C &operator*() {
87
664k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
664k
    if (!Tmp)
89
212k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
664k
91
664k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
664k
  }
llvm::ManagedStatic<llvm::SmallVector<std::__1::pair<llvm::PassManagerBuilder::ExtensionPointTy, std::__1::function<void (llvm::PassManagerBuilder const&, llvm::legacy::PassManagerBase&)> >, 8u>, llvm::object_creator<llvm::SmallVector<std::__1::pair<llvm::PassManagerBuilder::ExtensionPointTy, std::__1::function<void (llvm::PassManagerBuilder const&, llvm::legacy::PassManagerBase&)> >, 8u> >, llvm::object_deleter<llvm::SmallVector<std::__1::pair<llvm::PassManagerBuilder::ExtensionPointTy, std::__1::function<void (llvm::PassManagerBuilder const&, llvm::legacy::PassManagerBase&)> >, 8u> > >::operator*()
Line
Count
Source
86
585k
  C &operator*() {
87
585k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
585k
    if (!Tmp)
89
71.1k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
585k
91
585k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
585k
  }
CommandLine.cpp:llvm::ManagedStatic<(anonymous namespace)::CommandLineParser, llvm::object_creator<(anonymous namespace)::CommandLineParser>, llvm::object_deleter<(anonymous namespace)::CommandLineParser> >::operator*()
Line
Count
Source
86
239M
  C &operator*() {
87
239M
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
239M
    if (!Tmp)
89
139k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
239M
91
239M
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
239M
  }
CrashRecoveryContext.cpp:llvm::ManagedStatic<llvm::sys::ThreadLocal<(anonymous namespace)::CrashRecoveryContextImpl const>, llvm::object_creator<llvm::sys::ThreadLocal<(anonymous namespace)::CrashRecoveryContextImpl const> >, llvm::object_deleter<llvm::sys::ThreadLocal<(anonymous namespace)::CrashRecoveryContextImpl const> > >::operator*()
Line
Count
Source
86
17.2k
  C &operator*() {
87
17.2k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
17.2k
    if (!Tmp)
89
1.02k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
17.2k
91
17.2k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
17.2k
  }
llvm::ManagedStatic<llvm::sys::ThreadLocal<llvm::CrashRecoveryContext const>, llvm::object_creator<llvm::sys::ThreadLocal<llvm::CrashRecoveryContext const> >, llvm::object_deleter<llvm::sys::ThreadLocal<llvm::CrashRecoveryContext const> > >::operator*()
Line
Count
Source
86
11.6k
  C &operator*() {
87
11.6k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
11.6k
    if (!Tmp)
89
1.66k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
11.6k
91
11.6k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
11.6k
  }
llvm::ManagedStatic<llvm::sys::SmartMutex<false>, llvm::object_creator<llvm::sys::SmartMutex<false> >, llvm::object_deleter<llvm::sys::SmartMutex<false> > >::operator*()
Line
Count
Source
86
1.17k
  C &operator*() {
87
1.17k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
1.17k
    if (!Tmp)
89
1.10k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
1.17k
91
1.17k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
1.17k
  }
llvm::ManagedStatic<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >, llvm::object_creator<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, llvm::object_deleter<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > >::operator*()
Line
Count
Source
86
29.5k
  C &operator*() {
87
29.5k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
29.5k
    if (!Tmp)
89
25.0k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
29.5k
91
29.5k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
29.5k
  }
llvm::ManagedStatic<llvm::DebugCounter, llvm::object_creator<llvm::DebugCounter>, llvm::object_deleter<llvm::DebugCounter> >::operator*()
Line
Count
Source
86
1.55M
  C &operator*() {
87
1.55M
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
1.55M
    if (!Tmp)
89
104k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
1.55M
91
1.55M
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
1.55M
  }
Error.cpp:llvm::ManagedStatic<(anonymous namespace)::ErrorErrorCategory, llvm::object_creator<(anonymous namespace)::ErrorErrorCategory>, llvm::object_deleter<(anonymous namespace)::ErrorErrorCategory> >::operator*()
Line
Count
Source
86
556k
  C &operator*() {
87
556k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
556k
    if (!Tmp)
89
38.3k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
556k
91
556k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
556k
  }
Statistic.cpp:llvm::ManagedStatic<(anonymous namespace)::StatisticInfo, llvm::object_creator<(anonymous namespace)::StatisticInfo>, llvm::object_deleter<(anonymous namespace)::StatisticInfo> >::operator*()
Line
Count
Source
86
7
  C &operator*() {
87
7
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
7
    if (!Tmp)
89
6
      RegisterManagedStatic(Creator::call, Deleter::call);
90
7
91
7
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
7
  }
llvm::ManagedStatic<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, llvm::object_creator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, llvm::object_deleter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::operator*()
Line
Count
Source
86
126k
  C &operator*() {
87
126k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
126k
    if (!Tmp)
89
126k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
126k
91
126k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
126k
  }
Timer.cpp:llvm::ManagedStatic<llvm::TimerGroup, (anonymous namespace)::CreateDefaultTimerGroup, llvm::object_deleter<llvm::TimerGroup> >::operator*()
Line
Count
Source
86
39.1k
  C &operator*() {
87
39.1k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
39.1k
    if (!Tmp)
89
21.7k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
39.1k
91
39.1k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
39.1k
  }
llvm::ManagedStatic<llvm::SignpostEmitter, llvm::object_creator<llvm::SignpostEmitter>, llvm::object_deleter<llvm::SignpostEmitter> >::operator*()
Line
Count
Source
86
10.7k
  C &operator*() {
87
10.7k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
10.7k
    if (!Tmp)
89
23
      RegisterManagedStatic(Creator::call, Deleter::call);
90
10.7k
91
10.7k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
10.7k
  }
Timer.cpp:llvm::ManagedStatic<(anonymous namespace)::Name2PairMap, llvm::object_creator<(anonymous namespace)::Name2PairMap>, llvm::object_deleter<(anonymous namespace)::Name2PairMap> >::operator*()
Line
Count
Source
86
15
  C &operator*() {
87
15
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
15
    if (!Tmp)
89
15
      RegisterManagedStatic(Creator::call, Deleter::call);
90
15
91
15
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
15
  }
llvm::ManagedStatic<llvm::StringMap<void*, llvm::MallocAllocator>, llvm::object_creator<llvm::StringMap<void*, llvm::MallocAllocator> >, llvm::object_deleter<llvm::StringMap<void*, llvm::MallocAllocator> > >::operator*()
Line
Count
Source
86
7
  C &operator*() {
87
7
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
7
    if (!Tmp)
89
2
      RegisterManagedStatic(Creator::call, Deleter::call);
90
7
91
7
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
7
  }
llvm::ManagedStatic<llvm::sys::DynamicLibrary::HandleSet, llvm::object_creator<llvm::sys::DynamicLibrary::HandleSet>, llvm::object_deleter<llvm::sys::DynamicLibrary::HandleSet> >::operator*()
Line
Count
Source
86
783
  C &operator*() {
87
783
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
783
    if (!Tmp)
89
389
      RegisterManagedStatic(Creator::call, Deleter::call);
90
783
91
783
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
783
  }
Signals.cpp:llvm::ManagedStatic<(anonymous namespace)::FilesToRemoveCleanup, llvm::object_creator<(anonymous namespace)::FilesToRemoveCleanup>, llvm::object_deleter<(anonymous namespace)::FilesToRemoveCleanup> >::operator*()
Line
Count
Source
86
41.3k
  C &operator*() {
87
41.3k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
41.3k
    if (!Tmp)
89
36.0k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
41.3k
91
41.3k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
41.3k
  }
llvm::ManagedStatic<clang::ast_matchers::internal::MemoizedMatcher<clang::ast_matchers::internal::Matcher<clang::Decl>, &(clang::ast_matchers::isInstantiated_getInstance())>::Wrapper, llvm::object_creator<clang::ast_matchers::internal::MemoizedMatcher<clang::ast_matchers::internal::Matcher<clang::Decl>, &(clang::ast_matchers::isInstantiated_getInstance())>::Wrapper>, llvm::object_deleter<clang::ast_matchers::internal::MemoizedMatcher<clang::ast_matchers::internal::Matcher<clang::Decl>, &(clang::ast_matchers::isInstantiated_getInstance())>::Wrapper> >::operator*()
Line
Count
Source
86
404
  C &operator*() {
87
404
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
404
    if (!Tmp)
89
84
      RegisterManagedStatic(Creator::call, Deleter::call);
90
404
91
404
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
404
  }
Unexecuted instantiation: llvm::ManagedStatic<clang::BuildPreambleErrorCategory, llvm::object_creator<clang::BuildPreambleErrorCategory>, llvm::object_deleter<clang::BuildPreambleErrorCategory> >::operator*()
SerializedDiagnosticReader.cpp:llvm::ManagedStatic<(anonymous namespace)::SDErrorCategoryType, llvm::object_creator<(anonymous namespace)::SDErrorCategoryType>, llvm::object_deleter<(anonymous namespace)::SDErrorCategoryType> >::operator*()
Line
Count
Source
86
2
  C &operator*() {
87
2
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
2
    if (!Tmp)
89
1
      RegisterManagedStatic(Creator::call, Deleter::call);
90
2
91
2
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
2
  }
llvm::ManagedStatic<std::__1::set<llvm::EVT, llvm::EVT::compareRawBits, std::__1::allocator<llvm::EVT> >, llvm::object_creator<std::__1::set<llvm::EVT, llvm::EVT::compareRawBits, std::__1::allocator<llvm::EVT> > >, llvm::object_deleter<std::__1::set<llvm::EVT, llvm::EVT::compareRawBits, std::__1::allocator<llvm::EVT> > > >::operator*()
Line
Count
Source
86
124k
  C &operator*() {
87
124k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
124k
    if (!Tmp)
89
2.51k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
124k
91
124k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
124k
  }
SelectionDAG.cpp:llvm::ManagedStatic<(anonymous namespace)::EVTArray, llvm::object_creator<(anonymous namespace)::EVTArray>, llvm::object_deleter<(anonymous namespace)::EVTArray> >::operator*()
Line
Count
Source
86
96.6M
  C &operator*() {
87
96.6M
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
96.6M
    if (!Tmp)
89
35.7k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
96.6M
91
96.6M
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
96.6M
  }
Unexecuted instantiation: CoverageMapping.cpp:llvm::ManagedStatic<(anonymous namespace)::CoverageMappingErrorCategoryType, llvm::object_creator<(anonymous namespace)::CoverageMappingErrorCategoryType>, llvm::object_deleter<(anonymous namespace)::CoverageMappingErrorCategoryType> >::operator*()
Unexecuted instantiation: CrossTranslationUnit.cpp:llvm::ManagedStatic<clang::cross_tu::(anonymous namespace)::IndexErrorCategory, llvm::object_creator<clang::cross_tu::(anonymous namespace)::IndexErrorCategory>, llvm::object_deleter<clang::cross_tu::(anonymous namespace)::IndexErrorCategory> >::operator*()
ASTMatchersInternal.cpp:llvm::ManagedStatic<clang::ast_matchers::internal::(anonymous namespace)::TrueMatcherImpl, llvm::object_creator<clang::ast_matchers::internal::(anonymous namespace)::TrueMatcherImpl>, llvm::object_deleter<clang::ast_matchers::internal::(anonymous namespace)::TrueMatcherImpl> >::operator*()
Line
Count
Source
86
24.1k
  C &operator*() {
87
24.1k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
24.1k
    if (!Tmp)
89
878
      RegisterManagedStatic(Creator::call, Deleter::call);
90
24.1k
91
24.1k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
24.1k
  }
Unexecuted instantiation: InstrProf.cpp:llvm::ManagedStatic<(anonymous namespace)::InstrProfErrorCategoryType, llvm::object_creator<(anonymous namespace)::InstrProfErrorCategoryType>, llvm::object_deleter<(anonymous namespace)::InstrProfErrorCategoryType> >::operator*()
SampleProf.cpp:llvm::ManagedStatic<(anonymous namespace)::SampleProfErrorCategoryType, llvm::object_creator<(anonymous namespace)::SampleProfErrorCategoryType>, llvm::object_deleter<(anonymous namespace)::SampleProfErrorCategoryType> >::operator*()
Line
Count
Source
86
4.87k
  C &operator*() {
87
4.87k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
4.87k
    if (!Tmp)
89
149
      RegisterManagedStatic(Creator::call, Deleter::call);
90
4.87k
91
4.87k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
4.87k
  }
Error.cpp:llvm::ManagedStatic<(anonymous namespace)::_object_error_category, llvm::object_creator<(anonymous namespace)::_object_error_category>, llvm::object_deleter<(anonymous namespace)::_object_error_category> >::operator*()
Line
Count
Source
86
15.9k
  C &operator*() {
87
15.9k
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
15.9k
    if (!Tmp)
89
2.23k
      RegisterManagedStatic(Creator::call, Deleter::call);
90
15.9k
91
15.9k
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
15.9k
  }
BitcodeReader.cpp:llvm::ManagedStatic<(anonymous namespace)::BitcodeErrorCategoryType, llvm::object_creator<(anonymous namespace)::BitcodeErrorCategoryType>, llvm::object_deleter<(anonymous namespace)::BitcodeErrorCategoryType> >::operator*()
Line
Count
Source
86
59
  C &operator*() {
87
59
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
59
    if (!Tmp)
89
59
      RegisterManagedStatic(Creator::call, Deleter::call);
90
59
91
59
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
59
  }
CodeViewError.cpp:llvm::ManagedStatic<(anonymous namespace)::CodeViewErrorCategory, llvm::object_creator<(anonymous namespace)::CodeViewErrorCategory>, llvm::object_deleter<(anonymous namespace)::CodeViewErrorCategory> >::operator*()
Line
Count
Source
86
221
  C &operator*() {
87
221
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
221
    if (!Tmp)
89
188
      RegisterManagedStatic(Creator::call, Deleter::call);
90
221
91
221
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
221
  }
llvm::ManagedStatic<llvm::LLVMContext, llvm::object_creator<llvm::LLVMContext>, llvm::object_deleter<llvm::LLVMContext> >::operator*()
Line
Count
Source
86
159
  C &operator*() {
87
159
    void *Tmp = Ptr.load(std::memory_order_acquire);
88
159
    if (!Tmp)
89
30
      RegisterManagedStatic(Creator::call, Deleter::call);
90
159
91
159
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
92
159
  }
93
94
336M
  C *operator->() { return &**this; }
llvm::ManagedStatic<std::__1::map<llvm::Module const*, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > >, std::__1::less<llvm::Module const*>, std::__1::allocator<std::__1::pair<llvm::Module const* const, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > > > > >, llvm::object_creator<std::__1::map<llvm::Module const*, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > >, std::__1::less<llvm::Module const*>, std::__1::allocator<std::__1::pair<llvm::Module const* const, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > > > > > >, llvm::object_deleter<std::__1::map<llvm::Module const*, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > >, std::__1::less<llvm::Module const*>, std::__1::allocator<std::__1::pair<llvm::Module const* const, std::__1::map<llvm::GlobalValue const*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > >, std::__1::less<llvm::GlobalValue const*>, std::__1::allocator<std::__1::pair<llvm::GlobalValue const* const, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > > > > > > > > > > >::operator->()
Line
Count
Source
94
250
  C *operator->() { return &**this; }
WebAssemblyRuntimeLibcallSignatures.cpp:llvm::ManagedStatic<(anonymous namespace)::RuntimeLibcallSignatureTable, llvm::object_creator<(anonymous namespace)::RuntimeLibcallSignatureTable>, llvm::object_deleter<(anonymous namespace)::RuntimeLibcallSignatureTable> >::operator->()
Line
Count
Source
94
11.5k
  C *operator->() { return &**this; }
WebAssemblyRuntimeLibcallSignatures.cpp:llvm::ManagedStatic<(anonymous namespace)::StaticLibcallNameMap, llvm::object_creator<(anonymous namespace)::StaticLibcallNameMap>, llvm::object_deleter<(anonymous namespace)::StaticLibcallNameMap> >::operator->()
Line
Count
Source
94
226
  C *operator->() { return &**this; }
X86InstrFoldTables.cpp:llvm::ManagedStatic<(anonymous namespace)::X86MemUnfoldTable, llvm::object_creator<(anonymous namespace)::X86MemUnfoldTable>, llvm::object_deleter<(anonymous namespace)::X86MemUnfoldTable> >::operator->()
Line
Count
Source
94
7.60k
  C *operator->() { return &**this; }
llvm::ManagedStatic<llvm::SmallVector<std::__1::pair<llvm::PassManagerBuilder::ExtensionPointTy, std::__1::function<void (llvm::PassManagerBuilder const&, llvm::legacy::PassManagerBase&)> >, 8u>, llvm::object_creator<llvm::SmallVector<std::__1::pair<llvm::PassManagerBuilder::ExtensionPointTy, std::__1::function<void (llvm::PassManagerBuilder const&, llvm::legacy::PassManagerBase&)> >, 8u> >, llvm::object_deleter<llvm::SmallVector<std::__1::pair<llvm::PassManagerBuilder::ExtensionPointTy, std::__1::function<void (llvm::PassManagerBuilder const&, llvm::legacy::PassManagerBase&)> >, 8u> > >::operator->()
Line
Count
Source
94
403k
  C *operator->() { return &**this; }
llvm::ManagedStatic<llvm::cl::SubCommand, llvm::object_creator<llvm::cl::SubCommand>, llvm::object_deleter<llvm::cl::SubCommand> >::operator->()
Line
Count
Source
94
141k
  C *operator->() { return &**this; }
CommandLine.cpp:llvm::ManagedStatic<(anonymous namespace)::CommandLineParser, llvm::object_creator<(anonymous namespace)::CommandLineParser>, llvm::object_deleter<(anonymous namespace)::CommandLineParser> >::operator->()
Line
Count
Source
94
239M
  C *operator->() { return &**this; }
CrashRecoveryContext.cpp:llvm::ManagedStatic<llvm::sys::ThreadLocal<(anonymous namespace)::CrashRecoveryContextImpl const>, llvm::object_creator<llvm::sys::ThreadLocal<(anonymous namespace)::CrashRecoveryContextImpl const> >, llvm::object_deleter<llvm::sys::ThreadLocal<(anonymous namespace)::CrashRecoveryContextImpl const> > >::operator->()
Line
Count
Source
94
17.2k
  C *operator->() { return &**this; }
llvm::ManagedStatic<llvm::sys::ThreadLocal<llvm::CrashRecoveryContext const>, llvm::object_creator<llvm::sys::ThreadLocal<llvm::CrashRecoveryContext const> >, llvm::object_deleter<llvm::sys::ThreadLocal<llvm::CrashRecoveryContext const> > >::operator->()
Line
Count
Source
94
11.6k
  C *operator->() { return &**this; }
llvm::ManagedStatic<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >, llvm::object_creator<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, llvm::object_deleter<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > >::operator->()
Line
Count
Source
94
27.3k
  C *operator->() { return &**this; }
Statistic.cpp:llvm::ManagedStatic<(anonymous namespace)::StatisticInfo, llvm::object_creator<(anonymous namespace)::StatisticInfo>, llvm::object_deleter<(anonymous namespace)::StatisticInfo> >::operator->()
Line
Count
Source
94
2
  C *operator->() { return &**this; }
llvm::ManagedStatic<llvm::SignpostEmitter, llvm::object_creator<llvm::SignpostEmitter>, llvm::object_deleter<llvm::SignpostEmitter> >::operator->()
Line
Count
Source
94
10.7k
  C *operator->() { return &**this; }
Timer.cpp:llvm::ManagedStatic<(anonymous namespace)::Name2PairMap, llvm::object_creator<(anonymous namespace)::Name2PairMap>, llvm::object_deleter<(anonymous namespace)::Name2PairMap> >::operator->()
Line
Count
Source
94
9
  C *operator->() { return &**this; }
llvm::ManagedStatic<llvm::sys::DynamicLibrary::HandleSet, llvm::object_creator<llvm::sys::DynamicLibrary::HandleSet>, llvm::object_deleter<llvm::sys::DynamicLibrary::HandleSet> >::operator->()
Line
Count
Source
94
251
  C *operator->() { return &**this; }
llvm::ManagedStatic<llvm::StringMap<void*, llvm::MallocAllocator>, llvm::object_creator<llvm::StringMap<void*, llvm::MallocAllocator> >, llvm::object_deleter<llvm::StringMap<void*, llvm::MallocAllocator> > >::operator->()
Line
Count
Source
94
4
  C *operator->() { return &**this; }
llvm::ManagedStatic<clang::ast_matchers::internal::MemoizedMatcher<clang::ast_matchers::internal::Matcher<clang::Decl>, &(clang::ast_matchers::isInstantiated_getInstance())>::Wrapper, llvm::object_creator<clang::ast_matchers::internal::MemoizedMatcher<clang::ast_matchers::internal::Matcher<clang::Decl>, &(clang::ast_matchers::isInstantiated_getInstance())>::Wrapper>, llvm::object_deleter<clang::ast_matchers::internal::MemoizedMatcher<clang::ast_matchers::internal::Matcher<clang::Decl>, &(clang::ast_matchers::isInstantiated_getInstance())>::Wrapper> >::operator->()
Line
Count
Source
94
404
  C *operator->() { return &**this; }
llvm::ManagedStatic<std::__1::set<llvm::EVT, llvm::EVT::compareRawBits, std::__1::allocator<llvm::EVT> >, llvm::object_creator<std::__1::set<llvm::EVT, llvm::EVT::compareRawBits, std::__1::allocator<llvm::EVT> > >, llvm::object_deleter<std::__1::set<llvm::EVT, llvm::EVT::compareRawBits, std::__1::allocator<llvm::EVT> > > >::operator->()
Line
Count
Source
94
124k
  C *operator->() { return &**this; }
SelectionDAG.cpp:llvm::ManagedStatic<(anonymous namespace)::EVTArray, llvm::object_creator<(anonymous namespace)::EVTArray>, llvm::object_deleter<(anonymous namespace)::EVTArray> >::operator->()
Line
Count
Source
94
96.6M
  C *operator->() { return &**this; }
Unexecuted instantiation: CrossTranslationUnit.cpp:llvm::ManagedStatic<clang::cross_tu::(anonymous namespace)::IndexErrorCategory, llvm::object_creator<clang::cross_tu::(anonymous namespace)::IndexErrorCategory>, llvm::object_deleter<clang::cross_tu::(anonymous namespace)::IndexErrorCategory> >::operator->()
95
96
  const C &operator*() const {
97
    void *Tmp = Ptr.load(std::memory_order_acquire);
98
    if (!Tmp)
99
      RegisterManagedStatic(Creator::call, Deleter::call);
100
101
    return *static_cast<C *>(Ptr.load(std::memory_order_relaxed));
102
  }
103
104
  const C *operator->() const { return &**this; }
105
};
106
107
/// llvm_shutdown - Deallocate and destroy all ManagedStatic variables.
108
void llvm_shutdown();
109
110
/// llvm_shutdown_obj - This is a simple helper class that calls
111
/// llvm_shutdown() when it is destroyed.
112
struct llvm_shutdown_obj {
113
  llvm_shutdown_obj() = default;
114
  ~llvm_shutdown_obj() { llvm_shutdown(); }
115
};
116
117
} // end namespace llvm
118
119
#endif // LLVM_SUPPORT_MANAGEDSTATIC_H