Coverage Report

Created: 2020-06-26 05:44

/home/arjun/llvm-project/mlir/include/mlir/Support/StorageUniquer.h
Line
Count
Source (jump to first uncovered line)
1
//===- StorageUniquer.h - Common Storage Class Uniquer ----------*- 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
#ifndef MLIR_SUPPORT_STORAGEUNIQUER_H
10
#define MLIR_SUPPORT_STORAGEUNIQUER_H
11
12
#include "mlir/Support/LLVM.h"
13
#include "llvm/ADT/DenseSet.h"
14
#include "llvm/Support/Allocator.h"
15
16
namespace mlir {
17
namespace detail {
18
struct StorageUniquerImpl;
19
20
/// Trait to check if ImplTy provides a 'getKey' method with types 'Args'.
21
template <typename ImplTy, typename... Args>
22
using has_impltype_getkey_t = decltype(ImplTy::getKey(std::declval<Args>()...));
23
24
/// Trait to check if ImplTy provides a 'hashKey' method for 'T'.
25
template <typename ImplTy, typename T>
26
using has_impltype_hash_t = decltype(ImplTy::hashKey(std::declval<T>()));
27
} // namespace detail
28
29
/// A utility class to get, or create instances of storage classes. These
30
/// storage classes must respect the following constraints:
31
///    - Derive from StorageUniquer::BaseStorage.
32
///    - Provide an unsigned 'kind' value to be used as part of the unique'ing
33
///      process.
34
///
35
/// For non-parametric storage classes, i.e. those that are solely uniqued by
36
/// their kind, nothing else is needed. Instances of these classes can be
37
/// created by calling `get` without trailing arguments.
38
///
39
/// Otherwise, the parametric storage classes may be created with `get`,
40
/// and must respect the following:
41
///    - Define a type alias, KeyTy, to a type that uniquely identifies the
42
///      instance of the storage class within its kind.
43
///      * The key type must be constructible from the values passed into the
44
///        getComplex call after the kind.
45
///      * If the KeyTy does not have an llvm::DenseMapInfo specialization, the
46
///        storage class must define a hashing method:
47
///         'static unsigned hashKey(const KeyTy &)'
48
///
49
///    - Provide a method, 'bool operator==(const KeyTy &) const', to
50
///      compare the storage instance against an instance of the key type.
51
///
52
///    - Provide a static construction method:
53
///        'DerivedStorage *construct(StorageAllocator &, const KeyTy &key)'
54
///      that builds a unique instance of the derived storage. The arguments to
55
///      this function are an allocator to store any uniqued data and the key
56
///      type for this storage.
57
///
58
///    - Provide a cleanup method:
59
///        'void cleanup()'
60
///      that is called when erasing a storage instance. This should cleanup any
61
///      fields of the storage as necessary and not attempt to free the memory
62
///      of the storage itself.
63
class StorageUniquer {
64
public:
65
  StorageUniquer();
66
  ~StorageUniquer();
67
68
  /// Set the flag specifying if multi-threading is disabled within the uniquer.
69
  void disableMultithreading(bool disable = true);
70
71
  /// This class acts as the base storage that all storage classes must derived
72
  /// from.
73
  class BaseStorage {
74
  public:
75
    /// Get the kind classification of this storage.
76
0
    unsigned getKind() const { return kind; }
77
78
  protected:
79
0
    BaseStorage() : kind(0) {}
80
81
  private:
82
    /// Allow access to the kind field.
83
    friend detail::StorageUniquerImpl;
84
85
    /// Classification of the subclass, used for type checking.
86
    unsigned kind;
87
  };
88
89
  /// This is a utility allocator used to allocate memory for instances of
90
  /// derived types.
91
  class StorageAllocator {
92
  public:
93
    /// Copy the specified array of elements into memory managed by our bump
94
    /// pointer allocator.  This assumes the elements are all PODs.
95
0
    template <typename T> ArrayRef<T> copyInto(ArrayRef<T> elements) {
96
0
      if (elements.empty())
97
0
        return llvm::None;
98
0
      auto result = allocator.Allocate<T>(elements.size());
99
0
      std::uninitialized_copy(elements.begin(), elements.end(), result);
100
0
      return ArrayRef<T>(result, elements.size());
101
0
    }
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8copyIntoIcEEN4llvm8ArrayRefIT_EES6_
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8copyIntoINS_9AttributeEEEN4llvm8ArrayRefIT_EES7_
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8copyIntoINS_4TypeEEEN4llvm8ArrayRefIT_EES7_
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8copyIntoIlEEN4llvm8ArrayRefIT_EES6_
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8copyIntoINS_9AffineMapEEEN4llvm8ArrayRefIT_EES7_
102
103
    /// Copy the provided string into memory managed by our bump pointer
104
    /// allocator.
105
0
    StringRef copyInto(StringRef str) {
106
0
      auto result = copyInto(ArrayRef<char>(str.data(), str.size()));
107
0
      return StringRef(result.data(), str.size());
108
0
    }
109
110
    /// Allocate an instance of the provided type.
111
0
    template <typename T> T *allocate() { return allocator.Allocate<T>(); }
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail20AffineDimExprStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail25AffineConstantExprStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail25AffineBinaryOpExprStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail25AffineMapAttributeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail21ArrayAttributeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail26IntegerSetAttributeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail22OpaqueAttributeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail22StringAttributeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail20TypeAttributeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail35DenseStringElementsAttributeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail36DenseIntOrFPElementsAttributeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail30OpaqueElementsAttributeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail30SparseElementsAttributeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail20BoolAttributeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail23CallSiteLocationStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail26FileLineColLocationStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail19NameLocationStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail21OpaqueLocationStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_11TypeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail18IntegerTypeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_16AttributeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail17OpaqueTypeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail19FunctionTypeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail17VectorTypeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail23RankedTensorTypeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail25UnrankedTensorTypeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail17MemRefTypeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail25UnrankedMemRefTypeStorageEEEPT_v
Unexecuted instantiation: _ZN4mlir14StorageUniquer16StorageAllocator8allocateINS_6detail18ComplexTypeStorageEEEPT_v
112
113
    /// Allocate 'size' bytes of 'alignment' aligned memory.
114
0
    void *allocate(size_t size, size_t alignment) {
115
0
      return allocator.Allocate(size, alignment);
116
0
    }
117
118
  private:
119
    /// The raw allocator for type storage objects.
120
    llvm::BumpPtrAllocator allocator;
121
  };
122
123
  /// Gets a uniqued instance of 'Storage'. 'initFn' is an optional parameter
124
  /// that can be used to initialize a newly inserted storage instance. This
125
  /// function is used for derived types that have complex storage or uniquing
126
  /// constraints.
127
  template <typename Storage, typename Arg, typename... Args>
128
  Storage *get(function_ref<void(Storage *)> initFn, unsigned kind, Arg &&arg,
129
0
               Args &&... args) {
130
0
    // Construct a value of the derived key type.
131
0
    auto derivedKey =
132
0
        getKey<Storage>(std::forward<Arg>(arg), std::forward<Args>(args)...);
133
0
134
0
    // Create a hash of the kind and the derived key.
135
0
    unsigned hashValue = getHash<Storage>(kind, derivedKey);
136
0
137
0
    // Generate an equality function for the derived storage.
138
0
    auto isEqual = [&derivedKey](const BaseStorage *existing) {
139
0
      return static_cast<const Storage &>(*existing) == derivedKey;
140
0
    };
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail20AffineDimExprStorageERjJEEEPT_N4llvm12function_refIFvS6_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESI_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25AffineConstantExprStorageERlJEEEPT_N4llvm12function_refIFvS6_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESI_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25AffineBinaryOpExprStorageERKNS_10AffineExprEJRS4_EEEPT_N4llvm12function_refIFvS9_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESL_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25AffineMapAttributeStorageERNS_9AffineMapEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESJ_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail21ArrayAttributeStorageERN4llvm8ArrayRefINS_9AttributeEEEJEEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESL_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail26DictionaryAttributeStorageERN4llvm8ArrayRefISt4pairINS_10IdentifierENS_9AttributeEEEEJEEEPT_NS4_12function_refIFvSD_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESO_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail21FloatAttributeStorageERNS_4TypeEJRdEEEPT_N4llvm12function_refIFvS8_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESK_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail21FloatAttributeStorageERNS_4TypeEJRN4llvm7APFloatEEEEPT_NS6_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESL_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25SymbolRefAttributeStorageERN4llvm9StringRefEJRNS4_8NoneTypeEEEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESL_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25SymbolRefAttributeStorageERN4llvm9StringRefEJRNS4_8ArrayRefINS_17FlatSymbolRefAttrEEEEEEPT_NS4_12function_refIFvSC_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESN_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail23IntegerAttributeStorageERNS_4TypeEJRN4llvm5APIntEEEEPT_NS6_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESL_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail26IntegerSetAttributeStorageERNS_10IntegerSetEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESJ_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail22OpaqueAttributeStorageERNS_10IdentifierEJRN4llvm9StringRefERNS_4TypeEEEEPT_NS6_12function_refIFvSC_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESN_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail22StringAttributeStorageERN4llvm9StringRefEJRNS_4TypeEEEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESL_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail20TypeAttributeStorageERNS_4TypeEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESJ_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail35DenseStringElementsAttributeStorageERNS_10ShapedTypeEJRN4llvm8ArrayRefINS6_9StringRefEEERbEEEPT_NS6_12function_refIFvSD_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESO_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail36DenseIntOrFPElementsAttributeStorageERNS_10ShapedTypeEJRN4llvm8ArrayRefIcEERbEEEPT_NS6_12function_refIFvSC_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESN_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail30OpaqueElementsAttributeStorageERNS_10ShapedTypeEJRPNS_7DialectERN4llvm9StringRefEEEEPT_NS9_12function_refIFvSD_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESO_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail30SparseElementsAttributeStorageERNS_10ShapedTypeEJRNS_20DenseIntElementsAttrERNS_17DenseElementsAttrEEEEPT_N4llvm12function_refIFvSB_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESN_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail23CallSiteLocationStorageERNS_8LocationEJS5_EEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESJ_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail26FileLineColLocationStorageERNS_10IdentifierEJRjS6_EEEPT_N4llvm12function_refIFvS8_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESK_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail20FusedLocationStorageERN4llvm8ArrayRefINS_8LocationEEEJRNS_9AttributeEEEEPT_NS4_12function_refIFvSC_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESN_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail19NameLocationStorageERNS_10IdentifierEJRNS_8LocationEEEEPT_N4llvm12function_refIFvS9_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESL_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail21OpaqueLocationStorageERmJRNS_6TypeIDERNS_8LocationEEEEPT_N4llvm12function_refIFvSA_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESM_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail18IntegerTypeStorageEiJNS_11IntegerType19SignednessSemanticsEEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESJ_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail20BoolAttributeStorageEPNS_11MLIRContextEJbEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESJ_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail26DictionaryAttributeStorageEN4llvm8ArrayRefISt4pairINS_10IdentifierENS_9AttributeEEEEJEEEPT_NS4_12function_refIFvSC_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESN_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail18IntegerTypeStorageERjJRNS_11IntegerType19SignednessSemanticsEEEEPT_N4llvm12function_refIFvS9_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESL_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail18ComplexTypeStorageERNS_4TypeEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESJ_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail17VectorTypeStorageERN4llvm8ArrayRefIlEEJRNS_4TypeEEEEPT_NS4_12function_refIFvSB_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESM_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail23RankedTensorTypeStorageERN4llvm8ArrayRefIlEEJRNS_4TypeEEEEPT_NS4_12function_refIFvSB_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESM_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25UnrankedTensorTypeStorageERNS_4TypeEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESJ_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail17MemRefTypeStorageERN4llvm8ArrayRefIlEEJRNS_4TypeERNS4_11SmallVectorINS_9AffineMapELj2EEERjEEEPT_NS4_12function_refIFvSG_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESR_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25UnrankedMemRefTypeStorageERNS_4TypeEJRjEEEPT_N4llvm12function_refIFvS8_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESK_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail16TupleTypeStorageERN4llvm8ArrayRefINS_4TypeEEEJEEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESL_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail19FunctionTypeStorageERN4llvm8ArrayRefINS_4TypeEEEJS8_EEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESL_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail17OpaqueTypeStorageERNS_10IdentifierEJRN4llvm9StringRefEEEEPT_NS6_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlPKNS0_11BaseStorageEE_clESL_
141
0
142
0
    // Generate a constructor function for the derived storage.
143
0
    auto ctorFn = [&](StorageAllocator &allocator) {
144
0
      auto *storage = Storage::construct(allocator, derivedKey);
145
0
      if (initFn)
146
0
        initFn(storage);
147
0
      return storage;
148
0
    };
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail20AffineDimExprStorageERjJEEEPT_N4llvm12function_refIFvS6_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESH_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25AffineConstantExprStorageERlJEEEPT_N4llvm12function_refIFvS6_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESH_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25AffineBinaryOpExprStorageERKNS_10AffineExprEJRS4_EEEPT_N4llvm12function_refIFvS9_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESK_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25AffineMapAttributeStorageERNS_9AffineMapEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESI_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail21ArrayAttributeStorageERN4llvm8ArrayRefINS_9AttributeEEEJEEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESK_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail26DictionaryAttributeStorageERN4llvm8ArrayRefISt4pairINS_10IdentifierENS_9AttributeEEEEJEEEPT_NS4_12function_refIFvSD_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESN_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail21FloatAttributeStorageERNS_4TypeEJRdEEEPT_N4llvm12function_refIFvS8_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESJ_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail21FloatAttributeStorageERNS_4TypeEJRN4llvm7APFloatEEEEPT_NS6_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESK_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25SymbolRefAttributeStorageERN4llvm9StringRefEJRNS4_8NoneTypeEEEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESK_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25SymbolRefAttributeStorageERN4llvm9StringRefEJRNS4_8ArrayRefINS_17FlatSymbolRefAttrEEEEEEPT_NS4_12function_refIFvSC_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESM_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail23IntegerAttributeStorageERNS_4TypeEJRN4llvm5APIntEEEEPT_NS6_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESK_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail26IntegerSetAttributeStorageERNS_10IntegerSetEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESI_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail22OpaqueAttributeStorageERNS_10IdentifierEJRN4llvm9StringRefERNS_4TypeEEEEPT_NS6_12function_refIFvSC_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESM_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail22StringAttributeStorageERN4llvm9StringRefEJRNS_4TypeEEEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESK_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail20TypeAttributeStorageERNS_4TypeEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESI_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail35DenseStringElementsAttributeStorageERNS_10ShapedTypeEJRN4llvm8ArrayRefINS6_9StringRefEEERbEEEPT_NS6_12function_refIFvSD_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESN_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail36DenseIntOrFPElementsAttributeStorageERNS_10ShapedTypeEJRN4llvm8ArrayRefIcEERbEEEPT_NS6_12function_refIFvSC_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESM_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail30OpaqueElementsAttributeStorageERNS_10ShapedTypeEJRPNS_7DialectERN4llvm9StringRefEEEEPT_NS9_12function_refIFvSD_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESN_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail30SparseElementsAttributeStorageERNS_10ShapedTypeEJRNS_20DenseIntElementsAttrERNS_17DenseElementsAttrEEEEPT_N4llvm12function_refIFvSB_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESM_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail23CallSiteLocationStorageERNS_8LocationEJS5_EEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESI_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail26FileLineColLocationStorageERNS_10IdentifierEJRjS6_EEEPT_N4llvm12function_refIFvS8_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESJ_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail20FusedLocationStorageERN4llvm8ArrayRefINS_8LocationEEEJRNS_9AttributeEEEEPT_NS4_12function_refIFvSC_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESM_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail19NameLocationStorageERNS_10IdentifierEJRNS_8LocationEEEEPT_N4llvm12function_refIFvS9_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESK_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail21OpaqueLocationStorageERmJRNS_6TypeIDERNS_8LocationEEEEPT_N4llvm12function_refIFvSA_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESL_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail18IntegerTypeStorageEiJNS_11IntegerType19SignednessSemanticsEEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESI_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail20BoolAttributeStorageEPNS_11MLIRContextEJbEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESI_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail26DictionaryAttributeStorageEN4llvm8ArrayRefISt4pairINS_10IdentifierENS_9AttributeEEEEJEEEPT_NS4_12function_refIFvSC_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESM_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail18IntegerTypeStorageERjJRNS_11IntegerType19SignednessSemanticsEEEEPT_N4llvm12function_refIFvS9_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESK_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail18ComplexTypeStorageERNS_4TypeEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESI_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail17VectorTypeStorageERN4llvm8ArrayRefIlEEJRNS_4TypeEEEEPT_NS4_12function_refIFvSB_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESL_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail23RankedTensorTypeStorageERN4llvm8ArrayRefIlEEJRNS_4TypeEEEEPT_NS4_12function_refIFvSB_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESL_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25UnrankedTensorTypeStorageERNS_4TypeEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESI_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail17MemRefTypeStorageERN4llvm8ArrayRefIlEEJRNS_4TypeERNS4_11SmallVectorINS_9AffineMapELj2EEERjEEEPT_NS4_12function_refIFvSG_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESQ_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail25UnrankedMemRefTypeStorageERNS_4TypeEJRjEEEPT_N4llvm12function_refIFvS8_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESJ_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail16TupleTypeStorageERN4llvm8ArrayRefINS_4TypeEEEJEEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESK_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail19FunctionTypeStorageERN4llvm8ArrayRefINS_4TypeEEEJS8_EEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESK_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_6detail17OpaqueTypeStorageERNS_10IdentifierEJRN4llvm9StringRefEEEEPT_NS6_12function_refIFvSA_EEEjOT0_DpOT1_ENKUlRNS0_16StorageAllocatorEE_clESK_
149
0
150
0
    // Get an instance for the derived storage.
151
0
    return static_cast<Storage *>(getImpl(kind, hashValue, isEqual, ctorFn));
152
0
  }
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail20AffineDimExprStorageERjJEEEPT_N4llvm12function_refIFvS6_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail25AffineConstantExprStorageERlJEEEPT_N4llvm12function_refIFvS6_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail25AffineBinaryOpExprStorageERKNS_10AffineExprEJRS4_EEEPT_N4llvm12function_refIFvS9_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail25AffineMapAttributeStorageERNS_9AffineMapEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail21ArrayAttributeStorageERN4llvm8ArrayRefINS_9AttributeEEEJEEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail26DictionaryAttributeStorageERN4llvm8ArrayRefISt4pairINS_10IdentifierENS_9AttributeEEEEJEEEPT_NS4_12function_refIFvSD_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail21FloatAttributeStorageERNS_4TypeEJRdEEEPT_N4llvm12function_refIFvS8_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail21FloatAttributeStorageERNS_4TypeEJRN4llvm7APFloatEEEEPT_NS6_12function_refIFvSA_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail25SymbolRefAttributeStorageERN4llvm9StringRefEJRNS4_8NoneTypeEEEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail25SymbolRefAttributeStorageERN4llvm9StringRefEJRNS4_8ArrayRefINS_17FlatSymbolRefAttrEEEEEEPT_NS4_12function_refIFvSC_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail23IntegerAttributeStorageERNS_4TypeEJRN4llvm5APIntEEEEPT_NS6_12function_refIFvSA_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail26IntegerSetAttributeStorageERNS_10IntegerSetEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail22OpaqueAttributeStorageERNS_10IdentifierEJRN4llvm9StringRefERNS_4TypeEEEEPT_NS6_12function_refIFvSC_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail22StringAttributeStorageERN4llvm9StringRefEJRNS_4TypeEEEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail20TypeAttributeStorageERNS_4TypeEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail35DenseStringElementsAttributeStorageERNS_10ShapedTypeEJRN4llvm8ArrayRefINS6_9StringRefEEERbEEEPT_NS6_12function_refIFvSD_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail36DenseIntOrFPElementsAttributeStorageERNS_10ShapedTypeEJRN4llvm8ArrayRefIcEERbEEEPT_NS6_12function_refIFvSC_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail30OpaqueElementsAttributeStorageERNS_10ShapedTypeEJRPNS_7DialectERN4llvm9StringRefEEEEPT_NS9_12function_refIFvSD_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail30SparseElementsAttributeStorageERNS_10ShapedTypeEJRNS_20DenseIntElementsAttrERNS_17DenseElementsAttrEEEEPT_N4llvm12function_refIFvSB_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail23CallSiteLocationStorageERNS_8LocationEJS5_EEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail26FileLineColLocationStorageERNS_10IdentifierEJRjS6_EEEPT_N4llvm12function_refIFvS8_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail20FusedLocationStorageERN4llvm8ArrayRefINS_8LocationEEEJRNS_9AttributeEEEEPT_NS4_12function_refIFvSC_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail19NameLocationStorageERNS_10IdentifierEJRNS_8LocationEEEEPT_N4llvm12function_refIFvS9_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail21OpaqueLocationStorageERmJRNS_6TypeIDERNS_8LocationEEEEPT_N4llvm12function_refIFvSA_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail18IntegerTypeStorageEiJNS_11IntegerType19SignednessSemanticsEEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail20BoolAttributeStorageEPNS_11MLIRContextEJbEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail26DictionaryAttributeStorageEN4llvm8ArrayRefISt4pairINS_10IdentifierENS_9AttributeEEEEJEEEPT_NS4_12function_refIFvSC_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail18IntegerTypeStorageERjJRNS_11IntegerType19SignednessSemanticsEEEEPT_N4llvm12function_refIFvS9_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail18ComplexTypeStorageERNS_4TypeEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail17VectorTypeStorageERN4llvm8ArrayRefIlEEJRNS_4TypeEEEEPT_NS4_12function_refIFvSB_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail23RankedTensorTypeStorageERN4llvm8ArrayRefIlEEJRNS_4TypeEEEEPT_NS4_12function_refIFvSB_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail25UnrankedTensorTypeStorageERNS_4TypeEJEEEPT_N4llvm12function_refIFvS7_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail17MemRefTypeStorageERN4llvm8ArrayRefIlEEJRNS_4TypeERNS4_11SmallVectorINS_9AffineMapELj2EEERjEEEPT_NS4_12function_refIFvSG_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail25UnrankedMemRefTypeStorageERNS_4TypeEJRjEEEPT_N4llvm12function_refIFvS8_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail16TupleTypeStorageERN4llvm8ArrayRefINS_4TypeEEEJEEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail19FunctionTypeStorageERN4llvm8ArrayRefINS_4TypeEEEJS8_EEEPT_NS4_12function_refIFvSA_EEEjOT0_DpOT1_
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_6detail17OpaqueTypeStorageERNS_10IdentifierEJRN4llvm9StringRefEEEEPT_NS6_12function_refIFvSA_EEEjOT0_DpOT1_
153
154
  /// Gets a uniqued instance of 'Storage'. 'initFn' is an optional parameter
155
  /// that can be used to initialize a newly inserted storage instance. This
156
  /// function is used for derived types that use no additional storage or
157
  /// uniquing outside of the kind.
158
  template <typename Storage>
159
0
  Storage *get(function_ref<void(Storage *)> initFn, unsigned kind) {
160
0
    auto ctorFn = [&](StorageAllocator &allocator) {
161
0
      auto *storage = new (allocator.allocate<Storage>()) Storage();
162
0
      if (initFn)
163
0
        initFn(storage);
164
0
      return storage;
165
0
    };
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_11TypeStorageEEEPT_N4llvm12function_refIFvS4_EEEjENKUlRNS0_16StorageAllocatorEE_clESA_
Unexecuted instantiation: _ZZN4mlir14StorageUniquer3getINS_16AttributeStorageEEEPT_N4llvm12function_refIFvS4_EEEjENKUlRNS0_16StorageAllocatorEE_clESA_
166
0
    return static_cast<Storage *>(getImpl(kind, ctorFn));
167
0
  }
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_11TypeStorageEEEPT_N4llvm12function_refIFvS4_EEEj
Unexecuted instantiation: _ZN4mlir14StorageUniquer3getINS_16AttributeStorageEEEPT_N4llvm12function_refIFvS4_EEEj
168
169
  /// Erases a uniqued instance of 'Storage'. This function is used for derived
170
  /// types that have complex storage or uniquing constraints.
171
  template <typename Storage, typename Arg, typename... Args>
172
  void erase(unsigned kind, Arg &&arg, Args &&... args) {
173
    // Construct a value of the derived key type.
174
    auto derivedKey =
175
        getKey<Storage>(std::forward<Arg>(arg), std::forward<Args>(args)...);
176
177
    // Create a hash of the kind and the derived key.
178
    unsigned hashValue = getHash<Storage>(kind, derivedKey);
179
180
    // Generate an equality function for the derived storage.
181
    auto isEqual = [&derivedKey](const BaseStorage *existing) {
182
      return static_cast<const Storage &>(*existing) == derivedKey;
183
    };
184
185
    // Attempt to erase the storage instance.
186
    eraseImpl(kind, hashValue, isEqual, [](BaseStorage *storage) {
187
      static_cast<Storage *>(storage)->cleanup();
188
    });
189
  }
190
191
private:
192
  /// Implementation for getting/creating an instance of a derived type with
193
  /// complex storage.
194
  BaseStorage *getImpl(unsigned kind, unsigned hashValue,
195
                       function_ref<bool(const BaseStorage *)> isEqual,
196
                       function_ref<BaseStorage *(StorageAllocator &)> ctorFn);
197
198
  /// Implementation for getting/creating an instance of a derived type with
199
  /// default storage.
200
  BaseStorage *getImpl(unsigned kind,
201
                       function_ref<BaseStorage *(StorageAllocator &)> ctorFn);
202
203
  /// Implementation for erasing an instance of a derived type with complex
204
  /// storage.
205
  void eraseImpl(unsigned kind, unsigned hashValue,
206
                 function_ref<bool(const BaseStorage *)> isEqual,
207
                 function_ref<void(BaseStorage *)> cleanupFn);
208
209
  /// The internal implementation class.
210
  std::unique_ptr<detail::StorageUniquerImpl> impl;
211
212
  //===--------------------------------------------------------------------===//
213
  // Key Construction
214
  //===--------------------------------------------------------------------===//
215
216
  /// Used to construct an instance of 'ImplTy::KeyTy' if there is an
217
  /// 'ImplTy::getKey' function for the provided arguments.
218
  template <typename ImplTy, typename... Args>
219
  static typename std::enable_if<
220
      llvm::is_detected<detail::has_impltype_getkey_t, ImplTy, Args...>::value,
221
      typename ImplTy::KeyTy>::type
222
0
  getKey(Args &&... args) {
223
0
    return ImplTy::getKey(args...);
224
0
  }
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail21FloatAttributeStorageEJRNS_4TypeERdEEENSt9enable_ifIXsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENS9_5KeyTyEE4typeEDpOSA_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail35DenseStringElementsAttributeStorageEJRNS_10ShapedTypeERN4llvm8ArrayRefINS6_9StringRefEEERbEEENSt9enable_ifIXsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSE_5KeyTyEE4typeEDpOSF_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail36DenseIntOrFPElementsAttributeStorageEJRNS_10ShapedTypeERN4llvm8ArrayRefIcEERbEEENSt9enable_ifIXsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSD_5KeyTyEE4typeEDpOSE_
225
  /// If there is no 'ImplTy::getKey' method, then we try to directly construct
226
  /// the 'ImplTy::KeyTy' with the provided arguments.
227
  template <typename ImplTy, typename... Args>
228
  static typename std::enable_if<
229
      !llvm::is_detected<detail::has_impltype_getkey_t, ImplTy, Args...>::value,
230
      typename ImplTy::KeyTy>::type
231
0
  getKey(Args &&... args) {
232
0
    return typename ImplTy::KeyTy(args...);
233
0
  }
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail20AffineDimExprStorageEJRjEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENS7_5KeyTyEE4typeEDpOS8_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail25AffineConstantExprStorageEJRlEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENS7_5KeyTyEE4typeEDpOS8_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail25AffineBinaryOpExprStorageEJRKNS_10AffineExprERS4_EEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSA_5KeyTyEE4typeEDpOSB_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail25AffineMapAttributeStorageEJRNS_9AffineMapEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENS8_5KeyTyEE4typeEDpOS9_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail21ArrayAttributeStorageEJRN4llvm8ArrayRefINS_9AttributeEEEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSB_5KeyTyEE4typeEDpOSC_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail26DictionaryAttributeStorageEJRN4llvm8ArrayRefISt4pairINS_10IdentifierENS_9AttributeEEEEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSE_5KeyTyEE4typeEDpOSF_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail21FloatAttributeStorageEJRNS_4TypeERN4llvm7APFloatEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSB_5KeyTyEE4typeEDpOSC_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail25SymbolRefAttributeStorageEJRN4llvm9StringRefERNS4_8NoneTypeEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSB_5KeyTyEE4typeEDpOSC_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail25SymbolRefAttributeStorageEJRN4llvm9StringRefERNS4_8ArrayRefINS_17FlatSymbolRefAttrEEEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSD_5KeyTyEE4typeEDpOSE_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail23IntegerAttributeStorageEJRNS_4TypeERN4llvm5APIntEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSB_5KeyTyEE4typeEDpOSC_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail26IntegerSetAttributeStorageEJRNS_10IntegerSetEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENS8_5KeyTyEE4typeEDpOS9_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail22OpaqueAttributeStorageEJRNS_10IdentifierERN4llvm9StringRefERNS_4TypeEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSD_5KeyTyEE4typeEDpOSE_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail22StringAttributeStorageEJRN4llvm9StringRefERNS_4TypeEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSB_5KeyTyEE4typeEDpOSC_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail20TypeAttributeStorageEJRNS_4TypeEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENS8_5KeyTyEE4typeEDpOS9_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail30OpaqueElementsAttributeStorageEJRNS_10ShapedTypeERPNS_7DialectERN4llvm9StringRefEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSE_5KeyTyEE4typeEDpOSF_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail30SparseElementsAttributeStorageEJRNS_10ShapedTypeERNS_20DenseIntElementsAttrERNS_17DenseElementsAttrEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSC_5KeyTyEE4typeEDpOSD_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail23CallSiteLocationStorageEJRNS_8LocationES5_EEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENS8_5KeyTyEE4typeEDpOS9_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail26FileLineColLocationStorageEJRNS_10IdentifierERjS6_EEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENS9_5KeyTyEE4typeEDpOSA_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail20FusedLocationStorageEJRN4llvm8ArrayRefINS_8LocationEEERNS_9AttributeEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSD_5KeyTyEE4typeEDpOSE_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail19NameLocationStorageEJRNS_10IdentifierERNS_8LocationEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSA_5KeyTyEE4typeEDpOSB_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail21OpaqueLocationStorageEJRmRNS_6TypeIDERNS_8LocationEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSB_5KeyTyEE4typeEDpOSC_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail18IntegerTypeStorageEJiNS_11IntegerType19SignednessSemanticsEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENS8_5KeyTyEE4typeEDpOS9_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail20BoolAttributeStorageEJPNS_11MLIRContextEbEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENS8_5KeyTyEE4typeEDpOS9_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail26DictionaryAttributeStorageEJN4llvm8ArrayRefISt4pairINS_10IdentifierENS_9AttributeEEEEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSD_5KeyTyEE4typeEDpOSE_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail18IntegerTypeStorageEJRjRNS_11IntegerType19SignednessSemanticsEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSA_5KeyTyEE4typeEDpOSB_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail18ComplexTypeStorageEJRNS_4TypeEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENS8_5KeyTyEE4typeEDpOS9_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail17VectorTypeStorageEJRN4llvm8ArrayRefIlEERNS_4TypeEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSC_5KeyTyEE4typeEDpOSD_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail23RankedTensorTypeStorageEJRN4llvm8ArrayRefIlEERNS_4TypeEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSC_5KeyTyEE4typeEDpOSD_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail25UnrankedTensorTypeStorageEJRNS_4TypeEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENS8_5KeyTyEE4typeEDpOS9_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail17MemRefTypeStorageEJRN4llvm8ArrayRefIlEERNS_4TypeERNS4_11SmallVectorINS_9AffineMapELj2EEERjEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSH_5KeyTyEE4typeEDpOSI_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail25UnrankedMemRefTypeStorageEJRNS_4TypeERjEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENS9_5KeyTyEE4typeEDpOSA_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail16TupleTypeStorageEJRN4llvm8ArrayRefINS_4TypeEEEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSB_5KeyTyEE4typeEDpOSC_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail19FunctionTypeStorageEJRN4llvm8ArrayRefINS_4TypeEEES8_EEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSB_5KeyTyEE4typeEDpOSC_
Unexecuted instantiation: _ZN4mlir14StorageUniquer6getKeyINS_6detail17OpaqueTypeStorageEJRNS_10IdentifierERN4llvm9StringRefEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_21has_impltype_getkey_tET_DpT0_EE5valueENSB_5KeyTyEE4typeEDpOSC_
234
235
  //===--------------------------------------------------------------------===//
236
  // Key and Kind Hashing
237
  //===--------------------------------------------------------------------===//
238
239
  /// Used to generate a hash for the 'ImplTy::KeyTy' and kind of a storage
240
  /// instance if there is an 'ImplTy::hashKey' overload for 'DerivedKey'.
241
  template <typename ImplTy, typename DerivedKey>
242
  static typename std::enable_if<
243
      llvm::is_detected<detail::has_impltype_hash_t, ImplTy, DerivedKey>::value,
244
      ::llvm::hash_code>::type
245
0
  getHash(unsigned kind, const DerivedKey &derivedKey) {
246
0
    return llvm::hash_combine(kind, ImplTy::hashKey(derivedKey));
247
0
  }
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail21FloatAttributeStorageESt4pairINS_4TypeEN4llvm7APFloatEEEENSt9enable_ifIXsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS6_9hash_codeEE4typeEjRKSC_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail23IntegerAttributeStorageESt4pairINS_4TypeEN4llvm5APIntEEEENSt9enable_ifIXsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS6_9hash_codeEE4typeEjRKSC_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail35DenseStringElementsAttributeStorageENS3_5KeyTyEEENSt9enable_ifIXsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKS8_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail36DenseIntOrFPElementsAttributeStorageENS3_5KeyTyEEENSt9enable_ifIXsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKS8_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail30OpaqueElementsAttributeStorageESt5tupleIJNS_4TypeEPNS_7DialectEN4llvm9StringRefEEEEENSt9enable_ifIXsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS8_9hash_codeEE4typeEjRKSE_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail30SparseElementsAttributeStorageESt5tupleIJNS_4TypeENS_20DenseIntElementsAttrENS_17DenseElementsAttrEEEEENSt9enable_ifIXsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKSC_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail18IntegerTypeStorageESt4pairIjNS_11IntegerType19SignednessSemanticsEEEENSt9enable_ifIXsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKSB_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail20BoolAttributeStorageESt4pairIPNS_11MLIRContextEbEEENSt9enable_ifIXsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKSB_
248
  /// If there is no 'ImplTy::hashKey' default to using the
249
  /// 'llvm::DenseMapInfo' definition for 'DerivedKey' for generating a hash.
250
  template <typename ImplTy, typename DerivedKey>
251
  static typename std::enable_if<!llvm::is_detected<detail::has_impltype_hash_t,
252
                                                    ImplTy, DerivedKey>::value,
253
                                 ::llvm::hash_code>::type
254
0
  getHash(unsigned kind, const DerivedKey &derivedKey) {
255
0
    return llvm::hash_combine(
256
0
        kind, DenseMapInfo<DerivedKey>::getHashValue(derivedKey));
257
0
  }
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail20AffineDimExprStorageEjEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKS7_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail25AffineConstantExprStorageElEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKS7_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail25AffineBinaryOpExprStorageESt4pairINS_10AffineExprES5_EEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKSA_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail25AffineMapAttributeStorageENS_9AffineMapEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKS8_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail21ArrayAttributeStorageEN4llvm8ArrayRefINS_9AttributeEEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS4_9hash_codeEE4typeEjRKSB_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail26DictionaryAttributeStorageEN4llvm8ArrayRefISt4pairINS_10IdentifierENS_9AttributeEEEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS4_9hash_codeEE4typeEjRKSE_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail25SymbolRefAttributeStorageESt4pairIN4llvm9StringRefENS5_8ArrayRefINS_17FlatSymbolRefAttrEEEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS5_9hash_codeEE4typeEjRKSE_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail26IntegerSetAttributeStorageENS_10IntegerSetEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKS8_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail22OpaqueAttributeStorageESt5tupleIJNS_10IdentifierEN4llvm9StringRefENS_4TypeEEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS6_9hash_codeEE4typeEjRKSD_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail22StringAttributeStorageESt4pairIN4llvm9StringRefENS_4TypeEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS5_9hash_codeEE4typeEjRKSC_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail20TypeAttributeStorageENS_4TypeEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKS8_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail23CallSiteLocationStorageESt4pairINS_8LocationES5_EEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKSA_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail26FileLineColLocationStorageESt5tupleIJNS_10IdentifierEjjEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKSA_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail20FusedLocationStorageESt4pairIN4llvm8ArrayRefINS_8LocationEEENS_9AttributeEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS5_9hash_codeEE4typeEjRKSE_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail19NameLocationStorageESt4pairINS_10IdentifierENS_8LocationEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKSB_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail21OpaqueLocationStorageESt5tupleIJmNS_6TypeIDENS_8LocationEEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKSB_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail18ComplexTypeStorageENS_4TypeEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKS8_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail17VectorTypeStorageESt4pairIN4llvm8ArrayRefIlEENS_4TypeEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS5_9hash_codeEE4typeEjRKSD_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail23RankedTensorTypeStorageESt4pairIN4llvm8ArrayRefIlEENS_4TypeEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS5_9hash_codeEE4typeEjRKSD_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail25UnrankedTensorTypeStorageENS_4TypeEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKS8_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail17MemRefTypeStorageESt5tupleIJN4llvm8ArrayRefIlEENS_4TypeENS6_INS_9AffineMapEEEjEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS5_9hash_codeEE4typeEjRKSF_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail25UnrankedMemRefTypeStorageESt5tupleIJNS_4TypeEjEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueEN4llvm9hash_codeEE4typeEjRKSA_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail16TupleTypeStorageEN4llvm8ArrayRefINS_4TypeEEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS4_9hash_codeEE4typeEjRKSB_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail19FunctionTypeStorageESt4pairIN4llvm8ArrayRefINS_4TypeEEES8_EEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS5_9hash_codeEE4typeEjRKSD_
Unexecuted instantiation: _ZN4mlir14StorageUniquer7getHashINS_6detail17OpaqueTypeStorageESt4pairINS_10IdentifierEN4llvm9StringRefEEEENSt9enable_ifIXntsr4llvm11is_detectedINS2_19has_impltype_hash_tET_T0_EE5valueENS6_9hash_codeEE4typeEjRKSC_
258
};
259
} // end namespace mlir
260
261
#endif