reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

include/llvm/Analysis/CFLAndersAliasAnalysis.h
   29 class MemoryLocation;
include/llvm/Analysis/ScopedNoAliasAA.h
   27 class MemoryLocation;
include/llvm/Analysis/TypeBasedAliasAnalysis.h
   28 class MemoryLocation;
lib/Target/AMDGPU/AMDGPUAliasAnalysis.h
   28 class MemoryLocation;

References

include/llvm/ADT/DenseMap.h
   40 struct DenseMapPair : public std::pair<KeyT, ValueT> {
   43   KeyT &getFirst() { return std::pair<KeyT, ValueT>::first; }
   44   const KeyT &getFirst() const { return std::pair<KeyT, ValueT>::first; }
   65   using key_type = KeyT;
   69   using iterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT>;
   71       DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT, true>;
  145   size_type count(const_arg_type_t<KeyT> Val) const {
  150   iterator find(const_arg_type_t<KeyT> Val) {
  156   const_iterator find(const_arg_type_t<KeyT> Val) const {
  185   ValueT lookup(const_arg_type_t<KeyT> Val) const {
  195   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
  202   std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
  210   std::pair<iterator, bool> try_emplace(KeyT &&Key, Ts &&... Args) {
  229   std::pair<iterator, bool> try_emplace(const KeyT &Key, Ts &&... Args) {
  249   std::pair<iterator, bool> insert_as(std::pair<KeyT, ValueT> &&KV,
  272   bool erase(const KeyT &Val) {
  291   value_type& FindAndConstruct(const KeyT &Key) {
  299   ValueT &operator[](const KeyT &Key) {
  303   value_type& FindAndConstruct(KeyT &&Key) {
  311   ValueT &operator[](KeyT &&Key) {
  334     const KeyT EmptyKey = getEmptyKey(), TombstoneKey = getTombstoneKey();
  349     const KeyT EmptyKey = getEmptyKey();
  351       ::new (&B->getFirst()) KeyT(EmptyKey);
  369     const KeyT EmptyKey = getEmptyKey();
  370     const KeyT TombstoneKey = getTombstoneKey();
  392       const DenseMapBase<OtherBaseT, KeyT, ValueT, KeyInfoT, BucketT> &other) {
  414   static unsigned getHashValue(const KeyT &Val) {
  419   static unsigned getHashValue(const LookupKeyT &Val) {
  423   static const KeyT getEmptyKey() {
  429   static const KeyT getTombstoneKey() {
  447     if (shouldReverseIterate<KeyT>()) {
  515   BucketT *InsertIntoBucket(BucketT *TheBucket, KeyArg &&Key,
  525   BucketT *InsertIntoBucketWithLookup(BucketT *TheBucket, KeyT &&Key,
  535   BucketT *InsertIntoBucketImpl(const KeyT &Key, const LookupKeyT &Lookup,
  535   BucketT *InsertIntoBucketImpl(const KeyT &Key, const LookupKeyT &Lookup,
  566     const KeyT EmptyKey = getEmptyKey();
  578   bool LookupBucketFor(const LookupKeyT &Val,
  590     const KeyT EmptyKey = getEmptyKey();
  591     const KeyT TombstoneKey = getTombstoneKey();
  629   bool LookupBucketFor(const LookupKeyT &Val, BucketT *&FoundBucket) {
  684 class DenseMap : public DenseMapBase<DenseMap<KeyT, ValueT, KeyInfoT, BucketT>,
  685                                      KeyT, ValueT, KeyInfoT, BucketT> {
  690   using BaseT = DenseMapBase<DenseMap, KeyT, ValueT, KeyInfoT, BucketT>;
 1163   using ConstIterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, true>;
 1186     if (shouldReverseIterate<KeyT>()) {
 1199       const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConstSrc> &I)
 1210     if (shouldReverseIterate<KeyT>())
 1249     const KeyT Empty = KeyInfoT::getEmptyKey();
 1250     const KeyT Tombstone = KeyInfoT::getTombstoneKey();
 1259     const KeyT Empty = KeyInfoT::getEmptyKey();
 1260     const KeyT Tombstone = KeyInfoT::getTombstoneKey();
include/llvm/ADT/DenseMapInfo.h
  186   using Pair = std::pair<T, U>;
  186   using Pair = std::pair<T, U>;
  187   using FirstInfo = DenseMapInfo<T>;
  188   using SecondInfo = DenseMapInfo<U>;
include/llvm/ADT/Optional.h
  144     T value;
  160   explicit OptionalStorage(in_place_t, Args &&... args)
  161       : value(std::forward<Args>(args)...), hasVal(true) {}
  172   T &getValue() LLVM_LVALUE_FUNCTION noexcept {
  176   T const &getValue() const LLVM_LVALUE_FUNCTION noexcept {
  181   T &&getValue() && noexcept {
  216   optional_detail::OptionalStorage<T> Storage;
  219   using value_type = T;
  224   Optional(const T &y) : Storage(optional_detail::in_place_t{}, y) {}
  227   Optional(T &&y) : Storage(optional_detail::in_place_t{}, std::move(y)) {}
  230   Optional &operator=(T &&y) {
  241   static inline Optional create(const T *y) {
  245   Optional &operator=(const T &y) {
  253   const T *getPointer() const { return &Storage.getValue(); }
  254   T *getPointer() { return &Storage.getValue(); }
  255   const T &getValue() const LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
  256   T &getValue() LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
  260   const T *operator->() const { return getPointer(); }
  261   T *operator->() { return getPointer(); }
  262   const T &operator*() const LLVM_LVALUE_FUNCTION { return getValue(); }
  263   T &operator*() LLVM_LVALUE_FUNCTION { return getValue(); }
  266   constexpr T getValueOr(U &&value) const LLVM_LVALUE_FUNCTION {
  266   constexpr T getValueOr(U &&value) const LLVM_LVALUE_FUNCTION {
  267     return hasValue() ? getValue() : std::forward<U>(value);
  271   T &&getValue() && { return std::move(Storage.getValue()); }
  272   T &&operator*() && { return std::move(Storage.getValue()); }
  275   T getValueOr(U &&value) && {
  275   T getValueOr(U &&value) && {
  316 bool operator==(const Optional<T> &X, NoneType) {
include/llvm/ADT/ScopedHashTable.h
   49   K Key;
   52   ScopedHashTableVal(const K &key, const V &val) : Key(key), Val(val) {}
   55   const K &getKey() const { return Key; }
   66                                     const K &key, const V &val,
   87   ScopedHashTable<K, V, KInfo, AllocatorTy> &HT;
   94   ScopedHashTableVal<K, V> *LastValInScope;
   97   ScopedHashTableScope(ScopedHashTable<K, V, KInfo, AllocatorTy> &HT);
  108   ScopedHashTableVal<K, V> *getLastValInScope() {
  112   void setLastValInScope(ScopedHashTableVal<K, V> *Val) {
  154   using ScopeTy = ScopedHashTableScope<K, V, KInfo, AllocatorTy>;
  160   using ValTy = ScopedHashTableVal<K, V>;
  162   DenseMap<K, ValTy*, KInfo> TopLevelMap;
  182   size_type count(const K &Key) const {
  186   V lookup(const K &Key) const {
  194   void insert(const K &Key, const V &Val) {
  198   using iterator = ScopedHashTableIterator<K, V, KInfo>;
  202   iterator begin(const K &Key) {
  218     ScopedHashTableVal<K, V> *&KeyEntry = TopLevelMap[Key];
  241   while (ScopedHashTableVal<K, V> *ThisEntry = LastValInScope) {
  248       ScopedHashTableVal<K, V> *&KeyEntry = HT.TopLevelMap[ThisEntry->getKey()];
include/llvm/ADT/SmallVector.h
   75   AlignedCharArrayUnion<T> FirstEl;
  114   using value_type = T;
  115   using iterator = T *;
  116   using const_iterator = const T *;
  121   using reference = T &;
  122   using const_reference = const T &;
  123   using pointer = T *;
  124   using const_pointer = const T *;
  259 class SmallVectorTemplateBase<T, true> : public SmallVectorTemplateCommon<T> {
  264   static void destroy_range(T *, T *) {}
  264   static void destroy_range(T *, T *) {}
  286       T1 *I, T1 *E, T2 *Dest,
  288                                            T2>::value>::type * = nullptr) {
  294       memcpy(reinterpret_cast<void *>(Dest), I, (E - I) * sizeof(T));
  299   void grow(size_t MinSize = 0) { this->grow_pod(MinSize, sizeof(T)); }
  302   void push_back(const T &Elt) {
  305     memcpy(reinterpret_cast<void *>(this->end()), &Elt, sizeof(T));
  315 class SmallVectorImpl : public SmallVectorTemplateBase<T> {
  316   using SuperClass = SmallVectorTemplateBase<T>;
  357   void resize(size_type N, const T &NV) {
  374   LLVM_NODISCARD T pop_back_val() {
  397   void append(size_type NumInputs, const T &Elt) {
  405   void append(std::initializer_list<T> IL) {
  412   void assign(size_type NumElts, const T &Elt) {
  429   void assign(std::initializer_list<T> IL) {
  467   iterator insert(iterator I, T &&Elt) {
  497   iterator insert(iterator I, const T &Elt) {
  526   iterator insert(iterator I, size_type NumToInsert, const T &Elt) {
  637   void insert(iterator I, std::initializer_list<T> IL) {
  641   template <typename... ArgTypes> reference emplace_back(ArgTypes &&... Args) {
  820   AlignedCharArrayUnion<T> InlineElts[N];
  837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
  837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
  846   explicit SmallVector(size_t Size, const T &Value = T())
  865   SmallVector(std::initializer_list<T> IL) : SmallVectorImpl<T>(N) {
  884   SmallVector(SmallVectorImpl<T> &&RHS) : SmallVectorImpl<T>(N) {
include/llvm/Analysis/AliasAnalysis.h
  299   using LocPair = std::pair<MemoryLocation, MemoryLocation>;
  299   using LocPair = std::pair<MemoryLocation, MemoryLocation>;
  349   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB);
  349   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB);
  364   bool isNoAlias(const MemoryLocation &LocA, const MemoryLocation &LocB) {
  364   bool isNoAlias(const MemoryLocation &LocA, const MemoryLocation &LocB) {
  381   bool isMustAlias(const MemoryLocation &LocA, const MemoryLocation &LocB) {
  381   bool isMustAlias(const MemoryLocation &LocA, const MemoryLocation &LocB) {
  393   bool pointsToConstantMemory(const MemoryLocation &Loc, bool OrLocal = false);
  524   ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc);
  534   ModRefInfo getModRefInfo(const LoadInst *L, const MemoryLocation &Loc);
  544   ModRefInfo getModRefInfo(const StoreInst *S, const MemoryLocation &Loc);
  554   ModRefInfo getModRefInfo(const FenceInst *S, const MemoryLocation &Loc);
  565                            const MemoryLocation &Loc);
  575   ModRefInfo getModRefInfo(const AtomicRMWInst *RMW, const MemoryLocation &Loc);
  585   ModRefInfo getModRefInfo(const VAArgInst *I, const MemoryLocation &Loc);
  595   ModRefInfo getModRefInfo(const CatchPadInst *I, const MemoryLocation &Loc);
  605   ModRefInfo getModRefInfo(const CatchReturnInst *I, const MemoryLocation &Loc);
  624                            const Optional<MemoryLocation> &OptLoc) {
  651                                 const MemoryLocation &MemLoc, DominatorTree *DT,
  668   bool canBasicBlockModify(const BasicBlock &BB, const MemoryLocation &Loc);
  682                                  const MemoryLocation &Loc,
  693   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
  693   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
  695   bool pointsToConstantMemory(const MemoryLocation &Loc, AAQueryInfo &AAQI,
  699   ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc,
  703   ModRefInfo getModRefInfo(const VAArgInst *V, const MemoryLocation &Loc,
  705   ModRefInfo getModRefInfo(const LoadInst *L, const MemoryLocation &Loc,
  707   ModRefInfo getModRefInfo(const StoreInst *S, const MemoryLocation &Loc,
  709   ModRefInfo getModRefInfo(const FenceInst *S, const MemoryLocation &Loc,
  712                            const MemoryLocation &Loc, AAQueryInfo &AAQI);
  713   ModRefInfo getModRefInfo(const AtomicRMWInst *RMW, const MemoryLocation &Loc,
  715   ModRefInfo getModRefInfo(const CatchPadInst *I, const MemoryLocation &Loc,
  717   ModRefInfo getModRefInfo(const CatchReturnInst *I, const MemoryLocation &Loc,
  720                            const Optional<MemoryLocation> &OptLoc,
  728     const MemoryLocation &Loc = OptLoc.getValueOr(MemoryLocation());
  783   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB) {
  783   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB) {
  786   bool pointsToConstantMemory(const MemoryLocation &Loc, bool OrLocal = false) {
  789   ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc) {
  796                            const Optional<MemoryLocation> &OptLoc) {
  839   virtual AliasResult alias(const MemoryLocation &LocA,
  840                             const MemoryLocation &LocB, AAQueryInfo &AAQI) = 0;
  844   virtual bool pointsToConstantMemory(const MemoryLocation &Loc,
  869                                    const MemoryLocation &Loc,
  898   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
  898   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
  903   bool pointsToConstantMemory(const MemoryLocation &Loc, AAQueryInfo &AAQI,
  920   ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc,
  973     AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
  973     AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
  979     bool pointsToConstantMemory(const MemoryLocation &Loc, AAQueryInfo &AAQI,
  999     ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc,
 1032   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
 1032   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
 1037   bool pointsToConstantMemory(const MemoryLocation &Loc, AAQueryInfo &AAQI,
 1054   ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc,
include/llvm/Analysis/AliasSetTracker.h
  398   AliasSet &getAliasSetFor(const MemoryLocation &MemLoc);
  448   AliasSet &addPointer(MemoryLocation Loc, AliasSet::AccessLattice E);
include/llvm/Analysis/BasicAliasAnalysis.h
   84   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   84   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   87   ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc,
   94   bool pointsToConstantMemory(const MemoryLocation &Loc, AAQueryInfo &AAQI,
include/llvm/Analysis/CFLAndersAliasAnalysis.h
   63   AliasResult query(const MemoryLocation &, const MemoryLocation &);
   63   AliasResult query(const MemoryLocation &, const MemoryLocation &);
   64   AliasResult alias(const MemoryLocation &, const MemoryLocation &,
   64   AliasResult alias(const MemoryLocation &, const MemoryLocation &,
include/llvm/Analysis/CFLSteensAliasAnalysis.h
   71   AliasResult query(const MemoryLocation &LocA, const MemoryLocation &LocB);
   71   AliasResult query(const MemoryLocation &LocA, const MemoryLocation &LocB);
   73   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   73   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
include/llvm/Analysis/GlobalsModRef.h
   91   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   91   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   95   ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc,
include/llvm/Analysis/MemoryDependenceAnalysis.h
  450   MemDepResult getPointerDependencyFrom(const MemoryLocation &Loc, bool isLoad,
  458   getSimplePointerDependencyFrom(const MemoryLocation &MemLoc, bool isLoad,
  492                                    const MemoryLocation &Loc, bool isLoad,
  498                                        const MemoryLocation &Loc, bool isLoad,
include/llvm/Analysis/MemoryLocation.h
  199   static MemoryLocation get(const LoadInst *LI);
  200   static MemoryLocation get(const StoreInst *SI);
  201   static MemoryLocation get(const VAArgInst *VI);
  202   static MemoryLocation get(const AtomicCmpXchgInst *CXI);
  203   static MemoryLocation get(const AtomicRMWInst *RMWI);
  204   static MemoryLocation get(const Instruction *Inst) {
  205     return *MemoryLocation::getOrNone(Inst);
  207   static Optional<MemoryLocation> getOrNone(const Instruction *Inst) {
  225   static MemoryLocation getForSource(const MemTransferInst *MTI);
  226   static MemoryLocation getForSource(const AtomicMemTransferInst *MTI);
  227   static MemoryLocation getForSource(const AnyMemTransferInst *MTI);
  231   static MemoryLocation getForDest(const MemIntrinsic *MI);
  232   static MemoryLocation getForDest(const AtomicMemIntrinsic *MI);
  233   static MemoryLocation getForDest(const AnyMemIntrinsic *MI);
  236   static MemoryLocation getForArgument(const CallBase *Call, unsigned ArgIdx,
  238   static MemoryLocation getForArgument(const CallBase *Call, unsigned ArgIdx,
  248   MemoryLocation getWithNewPtr(const Value *NewPtr) const {
  249     MemoryLocation Copy(*this);
  254   MemoryLocation getWithNewSize(LocationSize NewSize) const {
  255     MemoryLocation Copy(*this);
  260   MemoryLocation getWithoutAATags() const {
  261     MemoryLocation Copy(*this);
  266   bool operator==(const MemoryLocation &Other) const {
  288   static inline MemoryLocation getEmptyKey() {
  292   static inline MemoryLocation getTombstoneKey() {
  296   static unsigned getHashValue(const MemoryLocation &Val) {
  301   static bool isEqual(const MemoryLocation &LHS, const MemoryLocation &RHS) {
  301   static bool isEqual(const MemoryLocation &LHS, const MemoryLocation &RHS) {
include/llvm/Analysis/MemorySSA.h
 1047                                                   const MemoryLocation &) = 0;
 1072                                           const MemoryLocation &) override;
 1075 using MemoryAccessPair = std::pair<MemoryAccess *, MemoryLocation>;
 1076 using ConstMemoryAccessPair = std::pair<const MemoryAccess *, MemoryLocation>;
 1239   MemoryLocation Location;
include/llvm/Analysis/ObjCARCAliasAnalysis.h
   55   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   55   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   57   bool pointsToConstantMemory(const MemoryLocation &Loc, AAQueryInfo &AAQI,
   64   ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc,
include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h
   33   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   33   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
include/llvm/Analysis/ScopedNoAliasAA.h
   42   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   42   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   44   ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc,
include/llvm/Analysis/TypeBasedAliasAnalysis.h
   43   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   43   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   45   bool pointsToConstantMemory(const MemoryLocation &Loc, AAQueryInfo &AAQI,
   49   ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc,
include/llvm/Support/AlignOf.h
   30   T t;
   39 template <typename T> union SizerImpl<T> { char arr[sizeof(T)]; };
   50       llvm::detail::SizerImpl<T, Ts...>)];
include/llvm/Support/type_traits.h
   65   using type = const T &;
   91     T t;
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  145       std::is_copy_constructible<detail::trivial_helper<T>>::value;
  147       !std::is_copy_constructible<T>::value;
  151       std::is_move_constructible<detail::trivial_helper<T>>::value;
  153       !std::is_move_constructible<T>::value;
  157       is_copy_assignable<detail::trivial_helper<T>>::value;
  159       !is_copy_assignable<T>::value;
  163       is_move_assignable<detail::trivial_helper<T>>::value;
  165       !is_move_assignable<T>::value;
  169       std::is_destructible<detail::trivial_helper<T>>::value;
  181   static_assert(value == std::is_trivially_copyable<T>::value,
lib/Analysis/AliasAnalysis.cpp
  104 AliasResult AAResults::alias(const MemoryLocation &LocA,
  105                              const MemoryLocation &LocB) {
  110 AliasResult AAResults::alias(const MemoryLocation &LocA,
  111                              const MemoryLocation &LocB, AAQueryInfo &AAQI) {
  120 bool AAResults::pointsToConstantMemory(const MemoryLocation &Loc,
  126 bool AAResults::pointsToConstantMemory(const MemoryLocation &Loc,
  168     const MemoryLocation DefLoc = MemoryLocation::get(I);
  168     const MemoryLocation DefLoc = MemoryLocation::get(I);
  177                                     const MemoryLocation &Loc) {
  183                                     const MemoryLocation &Loc,
  216         MemoryLocation ArgLoc =
  217             MemoryLocation::getForArgument(Call, ArgIdx, TLI);
  298       auto Call2ArgLoc =
  299           MemoryLocation::getForArgument(Call2, Call2ArgIdx, TLI);
  349       auto Call1ArgLoc =
  350           MemoryLocation::getForArgument(Call1, Call1ArgIdx, TLI);
  433                                     const MemoryLocation &Loc) {
  438                                     const MemoryLocation &Loc,
  447     AliasResult AR = alias(MemoryLocation::get(L), Loc, AAQI);
  458                                     const MemoryLocation &Loc) {
  463                                     const MemoryLocation &Loc,
  470     AliasResult AR = alias(MemoryLocation::get(S), Loc, AAQI);
  490 ModRefInfo AAResults::getModRefInfo(const FenceInst *S, const MemoryLocation &Loc) {
  496                                     const MemoryLocation &Loc,
  506                                     const MemoryLocation &Loc) {
  512                                     const MemoryLocation &Loc,
  515     AliasResult AR = alias(MemoryLocation::get(V), Loc, AAQI);
  536                                     const MemoryLocation &Loc) {
  542                                     const MemoryLocation &Loc,
  556                                     const MemoryLocation &Loc) {
  562                                     const MemoryLocation &Loc,
  576                                     const MemoryLocation &Loc) {
  582                                     const MemoryLocation &Loc,
  589     AliasResult AR = alias(MemoryLocation::get(CX), Loc, AAQI);
  604                                     const MemoryLocation &Loc) {
  610                                     const MemoryLocation &Loc,
  617     AliasResult AR = alias(MemoryLocation::get(RMW), Loc, AAQI);
  640                                          const MemoryLocation &MemLoc,
  701                                     const MemoryLocation &Loc) {
  712                                           const MemoryLocation &Loc,
lib/Analysis/AliasAnalysisEvaluator.cpp
  179         AliasResult AR = AA.alias(MemoryLocation::get(cast<LoadInst>(Load)),
  180                                   MemoryLocation::get(cast<StoreInst>(Store)));
  206         AliasResult AR = AA.alias(MemoryLocation::get(cast<StoreInst>(*I1)),
  207                                   MemoryLocation::get(cast<StoreInst>(*I2)));
lib/Analysis/AliasSetTracker.cpp
  352 AliasSet &AliasSetTracker::getAliasSetFor(const MemoryLocation &MemLoc) {
  411   addPointer(MemoryLocation::get(LI), AliasSet::RefAccess);
  417   addPointer(MemoryLocation::get(SI), AliasSet::ModAccess);
  421   addPointer(MemoryLocation::get(VAAI), AliasSet::ModRefAccess);
  425   addPointer(MemoryLocation::getForDest(MSI), AliasSet::ModAccess);
  429   addPointer(MemoryLocation::getForDest(MTI), AliasSet::ModAccess);
  430   addPointer(MemoryLocation::getForSource(MTI), AliasSet::RefAccess);
  502         MemoryLocation ArgLoc =
  503             MemoryLocation::getForArgument(Call, ArgIdx, nullptr);
  641 AliasSet &AliasSetTracker::addPointer(MemoryLocation Loc,
lib/Analysis/BasicAliasAnalysis.cpp
  190   return MemoryLocation::UnknownSize;
  233   return ObjectSize != MemoryLocation::UnknownSize && ObjectSize < Size;
  260   return ObjectSize != MemoryLocation::UnknownSize && ObjectSize == Size;
  653 bool BasicAAResult::pointsToConstantMemory(const MemoryLocation &Loc,
  839 AliasResult BasicAAResult::alias(const MemoryLocation &LocA,
  840                                  const MemoryLocation &LocB,
  870                                         const MemoryLocation &Loc,
  982     if ((SrcAA = getBestAAResults().alias(MemoryLocation::getForSource(Inst),
  986     if ((DestAA = getBestAAResults().alias(MemoryLocation::getForDest(Inst),
lib/Analysis/CFLAndersAliasAnalysis.cpp
  847 AliasResult CFLAndersAAResult::query(const MemoryLocation &LocA,
  848                                      const MemoryLocation &LocB) {
  879 AliasResult CFLAndersAAResult::alias(const MemoryLocation &LocA,
  880                                      const MemoryLocation &LocB,
lib/Analysis/CFLSteensAliasAnalysis.cpp
  265 AliasResult CFLSteensAAResult::query(const MemoryLocation &LocA,
  266                                      const MemoryLocation &LocB) {
lib/Analysis/DependenceAnalysis.cpp
  646                                           const MemoryLocation &LocA,
  647                                           const MemoryLocation &LocB) {
  650   MemoryLocation LocAS(LocA.Ptr, LocationSize::unknown(), LocA.AATags);
  651   MemoryLocation LocBS(LocB.Ptr, LocationSize::unknown(), LocB.AATags);
 3427                                  MemoryLocation::get(Dst),
 3428                                  MemoryLocation::get(Src))) {
lib/Analysis/GlobalsModRef.cpp
  810 AliasResult GlobalsAAResult::alias(const MemoryLocation &LocA,
  811                                    const MemoryLocation &LocB,
  922                                           const MemoryLocation &Loc,
lib/Analysis/Lint.cpp
  228   visitMemoryReference(I, Callee, MemoryLocation::UnknownSize, 0, nullptr,
  328       visitMemoryReference(I, MCI->getDest(), MemoryLocation::UnknownSize,
  330       visitMemoryReference(I, MCI->getSource(), MemoryLocation::UnknownSize,
  350       visitMemoryReference(I, MMI->getDest(), MemoryLocation::UnknownSize,
  352       visitMemoryReference(I, MMI->getSource(), MemoryLocation::UnknownSize,
  359       visitMemoryReference(I, MSI->getDest(), MemoryLocation::UnknownSize,
  369       visitMemoryReference(I, CS.getArgument(0), MemoryLocation::UnknownSize, 0,
  373       visitMemoryReference(I, CS.getArgument(0), MemoryLocation::UnknownSize, 0,
  375       visitMemoryReference(I, CS.getArgument(1), MemoryLocation::UnknownSize, 0,
  379       visitMemoryReference(I, CS.getArgument(0), MemoryLocation::UnknownSize, 0,
  387       visitMemoryReference(I, CS.getArgument(0), MemoryLocation::UnknownSize, 0,
  466     uint64_t BaseSize = MemoryLocation::UnknownSize;
  614   visitMemoryReference(I, I.getOperand(0), MemoryLocation::UnknownSize, 0,
  619   visitMemoryReference(I, I.getAddress(), MemoryLocation::UnknownSize, 0,
lib/Analysis/LoopAccessAnalysis.cpp
  509   void addLoad(MemoryLocation &Loc, bool IsReadOnly) {
  518   void addStore(MemoryLocation &Loc) {
 1940       MemoryLocation Loc = MemoryLocation::get(ST);
 1940       MemoryLocation Loc = MemoryLocation::get(ST);
 1984     MemoryLocation Loc = MemoryLocation::get(LD);
 1984     MemoryLocation Loc = MemoryLocation::get(LD);
lib/Analysis/LoopCacheAnalysis.cpp
  435   const auto &Loc1 = MemoryLocation::get(&StoreOrLoadInst);
  435   const auto &Loc1 = MemoryLocation::get(&StoreOrLoadInst);
  436   const auto &Loc2 = MemoryLocation::get(&Other.StoreOrLoadInst);
  436   const auto &Loc2 = MemoryLocation::get(&Other.StoreOrLoadInst);
lib/Analysis/MemoryDependenceAnalysis.cpp
  116 static ModRefInfo GetLocation(const Instruction *Inst, MemoryLocation &Loc,
  120       Loc = MemoryLocation::get(LI);
  124       Loc = MemoryLocation::get(LI);
  133       Loc = MemoryLocation::get(SI);
  137       Loc = MemoryLocation::get(SI);
  145     Loc = MemoryLocation::get(V);
  160       Loc = MemoryLocation::getForArgument(II, 1, TLI);
  165       Loc = MemoryLocation::getForArgument(II, 2, TLI);
  202     MemoryLocation Loc;
  328     const MemoryLocation &MemLoc, bool isLoad, BasicBlock::iterator ScanIt,
  441     const MemoryLocation &MemLoc, bool isLoad, BasicBlock::iterator ScanIt,
  575       MemoryLocation LoadLoc = MemoryLocation::get(LI);
  575       MemoryLocation LoadLoc = MemoryLocation::get(LI);
  646       MemoryLocation StoreLoc = MemoryLocation::get(SI);
  646       MemoryLocation StoreLoc = MemoryLocation::get(SI);
  745     MemoryLocation MemLoc;
  916   const MemoryLocation Loc = MemoryLocation::get(QueryInst);
  916   const MemoryLocation Loc = MemoryLocation::get(QueryInst);
  978     Instruction *QueryInst, const MemoryLocation &Loc, bool isLoad,
 1094     const MemoryLocation &Loc, bool isLoad, BasicBlock *StartBB,
lib/Analysis/MemoryLocation.cpp
   34 MemoryLocation MemoryLocation::get(const LoadInst *LI) {
   44 MemoryLocation MemoryLocation::get(const StoreInst *SI) {
   55 MemoryLocation MemoryLocation::get(const VAArgInst *VI) {
   63 MemoryLocation MemoryLocation::get(const AtomicCmpXchgInst *CXI) {
   74 MemoryLocation MemoryLocation::get(const AtomicRMWInst *RMWI) {
   85 MemoryLocation MemoryLocation::getForSource(const MemTransferInst *MTI) {
   89 MemoryLocation MemoryLocation::getForSource(const AtomicMemTransferInst *MTI) {
   93 MemoryLocation MemoryLocation::getForSource(const AnyMemTransferInst *MTI) {
  106 MemoryLocation MemoryLocation::getForDest(const MemIntrinsic *MI) {
  110 MemoryLocation MemoryLocation::getForDest(const AtomicMemIntrinsic *MI) {
  114 MemoryLocation MemoryLocation::getForDest(const AnyMemIntrinsic *MI) {
  127 MemoryLocation MemoryLocation::getForArgument(const CallBase *Call,
lib/Analysis/MemorySSA.cpp
  146         Loc = MemoryLocation::get(Inst);
  150   explicit MemoryLocOrCall(const MemoryLocation &Loc) : Loc(Loc) {}
  157   MemoryLocation getLoc() const {
  180     MemoryLocation Loc;
  190     return MemoryLocOrCall(DenseMapInfo<MemoryLocation>::getEmptyKey());
  194     return MemoryLocOrCall(DenseMapInfo<MemoryLocation>::getTombstoneKey());
  201           DenseMapInfo<MemoryLocation>::getHashValue(MLOC.getLoc()));
  262 instructionClobbersQuery(const MemoryDef *MD, const MemoryLocation &UseLoc,
  340   MemoryLocation StartingLoc;
  353       StartingLoc = MemoryLocation::get(Inst);
  359 static bool lifetimeEndsAt(MemoryDef *MD, const MemoryLocation &Loc,
  400                    const MemoryLocation &StartLoc, const MemorySSA &MSSA,
  498     MemoryLocation Loc;
  505     DefPath(const MemoryLocation &Loc, MemoryAccess *First, MemoryAccess *Last,
  509     DefPath(const MemoryLocation &Loc, MemoryAccess *Init,
  765                              const MemoryLocation &Loc) {
  998                                               const MemoryLocation &,
 1027                                           const MemoryLocation &Loc,
 1037                                           const MemoryLocation &Loc) override {
 1063                                           const MemoryLocation &Loc,
 1073                                           const MemoryLocation &Loc) override {
 2335     MemoryAccess *StartingAccess, const MemoryLocation &Loc,
 2459     MemoryAccess *StartingAccess, const MemoryLocation &) {
lib/Analysis/ObjCARCAliasAnalysis.cpp
   39 AliasResult ObjCARCAAResult::alias(const MemoryLocation &LocA,
   40                                    const MemoryLocation &LocB,
   72 bool ObjCARCAAResult::pointsToConstantMemory(const MemoryLocation &Loc,
  111                                           const MemoryLocation &Loc,
lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
   24 AliasResult SCEVAAResult::alias(const MemoryLocation &LocA,
   25                                 const MemoryLocation &LocB, AAQueryInfo &AAQI) {
   47                                  : MemoryLocation::UnknownSize);
   50                                  : MemoryLocation::UnknownSize);
lib/Analysis/ScopedNoAliasAA.cpp
   77 AliasResult ScopedNoAliasAAResult::alias(const MemoryLocation &LocA,
   78                                          const MemoryLocation &LocB,
   99                                                 const MemoryLocation &Loc,
lib/Analysis/TypeBasedAliasAnalysis.cpp
  369 AliasResult TypeBasedAAResult::alias(const MemoryLocation &LocA,
  370                                      const MemoryLocation &LocB,
  383 bool TypeBasedAAResult::pointsToConstantMemory(const MemoryLocation &Loc,
  425                                             const MemoryLocation &Loc,
lib/CodeGen/MIRParser/MIParser.cpp
 2877     Size = MemoryLocation::UnknownSize;
 2895   unsigned BaseAlignment = (Size != MemoryLocation::UnknownSize ? Size : 1);
lib/CodeGen/MachineInstr.cpp
 1235   bool KnownWidthA = WidthA != MemoryLocation::UnknownSize;
 1236   bool KnownWidthB = WidthB != MemoryLocation::UnknownSize;
 1270                                  : MemoryLocation::UnknownSize;
 1272                                  : MemoryLocation::UnknownSize;
lib/CodeGen/MachineOperand.cpp
 1107   if (getSize() == MemoryLocation::UnknownSize)
lib/CodeGen/MachinePipeliner.cpp
 2264   if (AccessSizeS == MemoryLocation::UnknownSize ||
 2265       AccessSizeD == MemoryLocation::UnknownSize)
lib/CodeGen/ModuloSchedule.cpp
  969           MF.getMachineMemOperand(MMO, 0, MemoryLocation::UnknownSize));
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
 4466   MemoryLocation ML;
lib/Target/AArch64/AArch64StackTagging.cpp
  336   MemoryLocation AllocaLoc{StartPtr, Size};
lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp
   78 AliasResult AMDGPUAAResult::alias(const MemoryLocation &LocA,
   79                                   const MemoryLocation &LocB,
   92 bool AMDGPUAAResult::pointsToConstantMemory(const MemoryLocation &Loc,
lib/Target/AMDGPU/AMDGPUAliasAnalysis.h
   47   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   47   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   49   bool pointsToConstantMemory(const MemoryLocation &Loc, AAQueryInfo &AAQI,
lib/Target/ARM/ARMParallelDSP.cpp
  380       MemoryLocation ReadLoc =
lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
 1986   MemoryLocation StoreLoc(Ptr, AccessSize);
lib/Target/Hexagon/HexagonStoreWidening.cpp
  174   MemoryLocation L(MMO.getValue(), MMO.getSize(), MMO.getAAInfo());
  181     MemoryLocation SL(SMO.getValue(), SMO.getSize(), SMO.getAAInfo());
lib/Transforms/IPO/ArgumentPromotion.cpp
  756     MemoryLocation Loc = MemoryLocation::get(Load);
  756     MemoryLocation Loc = MemoryLocation::get(Load);
lib/Transforms/IPO/FunctionAttrs.cpp
  170         MemoryLocation Loc(Arg, LocationSize::unknown(), AAInfo);
  188         MemoryLocation Loc = MemoryLocation::get(LI);
  188         MemoryLocation Loc = MemoryLocation::get(LI);
  195         MemoryLocation Loc = MemoryLocation::get(SI);
  195         MemoryLocation Loc = MemoryLocation::get(SI);
  201       MemoryLocation Loc = MemoryLocation::get(VI);
  201       MemoryLocation Loc = MemoryLocation::get(VI);
lib/Transforms/ObjCARC/ObjCARCContract.cpp
  214   MemoryLocation Loc = MemoryLocation::get(Load);
  214   MemoryLocation Loc = MemoryLocation::get(Load);
lib/Transforms/Scalar/DeadStoreElimination.cpp
  189 static MemoryLocation getLocForWrite(Instruction *Inst) {
  192     return MemoryLocation::get(SI);
  196     MemoryLocation Loc = MemoryLocation::getForDest(MI);
  196     MemoryLocation Loc = MemoryLocation::getForDest(MI);
  221 static MemoryLocation getLocForRead(Instruction *Inst,
  228     return MemoryLocation::getForSource(MTI);
  304   MemoryLocation Loc = getLocForWrite(I);
  320   return MemoryLocation::UnknownSize;
  342 static OverwriteResult isOverwrite(const MemoryLocation &Later,
  343                                    const MemoryLocation &Earlier,
  383   if (ObjectSize != MemoryLocation::UnknownSize)
  540                                const MemoryLocation &InstStoreLoc,
  546   MemoryLocation InstReadLoc = getLocForRead(Inst, TLI);
  570     MemoryLocation DepReadLoc = getLocForRead(DepWrite, TLI);
  595   MemoryLocation MemLoc = MemoryLocation::get(SecondI);
  595   MemoryLocation MemLoc = MemoryLocation::get(SecondI);
  662   MemoryLocation Loc = MemoryLocation(F->getOperand(0));
  715 static void removeAccessedObjects(const MemoryLocation &LoadedLoc,
  736     MemoryLocation StackLoc(I, getPointerSize(I, DL, *TLI, F));
  873     MemoryLocation LoadedLoc;
  879       LoadedLoc = MemoryLocation::get(L);
  881       LoadedLoc = MemoryLocation::get(V);
 1008     MemoryLocation Loc = getLocForWrite(EarlierWrite);
 1122     MemoryLocation Loc = getLocForWrite(Inst);
 1146       MemoryLocation DepLoc = getLocForWrite(DepWrite);
lib/Transforms/Scalar/EarlyCSE.cpp
  510       ScopedHashTable<MemoryLocation, unsigned, DenseMapInfo<MemoryLocation>,
  510       ScopedHashTable<MemoryLocation, unsigned, DenseMapInfo<MemoryLocation>,
  797   auto MemLocOpt = MemoryLocation::getOrNone(I);
  802   MemoryLocation MemLoc = *MemLocOpt;
  958       MemoryLocation MemLoc = MemoryLocation::getForArgument(CI, 1, TLI);
  958       MemoryLocation MemLoc = MemoryLocation::getForArgument(CI, 1, TLI);
 1064         auto MemLoc = MemoryLocation::get(Inst);
 1064         auto MemLoc = MemoryLocation::get(Inst);
lib/Transforms/Scalar/LICM.cpp
  150 static bool pointerInvalidatedByLoop(MemoryLocation MemLoc,
 1115       Invalidated = pointerInvalidatedByLoop(MemoryLocation::get(LI), CurAST,
 1210       auto &AS = CurAST->getAliasSetFor(MemoryLocation::get(SI));
 1262                 ModRefInfo MRI = AA->getModRefInfo(CI, MemoryLocation::get(SI));
 2237 static bool pointerInvalidatedByLoop(MemoryLocation MemLoc,
lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  877   MemoryLocation StoreLoc(Ptr, AccessSize);
lib/Transforms/Scalar/MemCpyOptimizer.cpp
  447   MemoryLocation StoreLoc = MemoryLocation::get(SI);
  447   MemoryLocation StoreLoc = MemoryLocation::get(SI);
  462   SmallVector<MemoryLocation, 8> MemLocs{StoreLoc};
  467   const MemoryLocation LoadLoc = MemoryLocation::get(LI);
  467   const MemoryLocation LoadLoc = MemoryLocation::get(LI);
  504         auto ML = MemoryLocation::get(C);
  504         auto ML = MemoryLocation::get(C);
  556         MemoryLocation LoadLoc = MemoryLocation::get(LI);
  556         MemoryLocation LoadLoc = MemoryLocation::get(LI);
  586           if (!AA.isNoAlias(MemoryLocation::get(SI), LoadLoc))
  631         MemoryLocation StoreLoc = MemoryLocation::get(SI);
  631         MemoryLocation StoreLoc = MemoryLocation::get(SI);
  964       MD->getPointerDependencyFrom(MemoryLocation::getForSource(MDep), false,
  973   if (!AA.isNoAlias(MemoryLocation::getForDest(M),
  974                     MemoryLocation::getForSource(MDep)))
 1022       MD->getPointerDependencyFrom(MemoryLocation::getForDest(MemSet), false,
 1118     MemoryLocation MemCpyLoc = MemoryLocation::getForSource(MemCpy);
 1118     MemoryLocation MemCpyLoc = MemoryLocation::getForSource(MemCpy);
 1198   MemoryLocation SrcLoc = MemoryLocation::getForSource(M);
 1198   MemoryLocation SrcLoc = MemoryLocation::getForSource(M);
 1235   if (!AA.isNoAlias(MemoryLocation::getForDest(M),
 1236                     MemoryLocation::getForSource(M)))
 1312       MemoryLocation::getForSource(MDep), false,
lib/Transforms/Scalar/MergeICmps.cpp
  257     MemoryLocation LLoc = MemoryLocation::get(Lhs_.LoadI);
  257     MemoryLocation LLoc = MemoryLocation::get(Lhs_.LoadI);
  258     MemoryLocation RLoc = MemoryLocation::get(Rhs_.LoadI);
  258     MemoryLocation RLoc = MemoryLocation::get(Rhs_.LoadI);
lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
  120                                  const Instruction &End, MemoryLocation Loc);
  173                                                       MemoryLocation Loc) {
  195     MemoryLocation Loc0 = MemoryLocation::get(Store0);
  195     MemoryLocation Loc0 = MemoryLocation::get(Store0);
  196     MemoryLocation Loc1 = MemoryLocation::get(Store1);
  196     MemoryLocation Loc1 = MemoryLocation::get(Store1);
lib/Transforms/Scalar/Sink.cpp
   68     MemoryLocation Loc = MemoryLocation::get(L);
   68     MemoryLocation Loc = MemoryLocation::get(L);
lib/Transforms/Scalar/TailRecursionElimination.cpp
  342       if (isModSet(AA->getModRefInfo(CI, MemoryLocation::get(L))) ||
lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
  684       if (!AA.isNoAlias(MemoryLocation::get(MemInstr),
  685                         MemoryLocation::get(ChainInstr))) {
lib/Transforms/Vectorize/SLPVectorizer.cpp
  466 static MemoryLocation getLocation(Instruction *I, AliasAnalysis *AA) {
  468     return MemoryLocation::get(SI);
  470     return MemoryLocation::get(LI);
 1479   bool isAliased(const MemoryLocation &Loc1, Instruction *Inst1,
 1487     MemoryLocation Loc2 = getLocation(Inst2, AA);
 4776           MemoryLocation SrcLoc = getLocation(SrcInst, SLP->AA);
tools/polly/lib/Analysis/ScopDetection.cpp
 1127       MemoryLocation(BP->getValue(), MemoryLocation::UnknownSize, AATags));
unittests/Analysis/AliasAnalysisTest.cpp
   88   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
   88   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB,
unittests/Analysis/MemorySSATest.cpp
  670   MemoryLocation StoreLoc = MemoryLocation::get(SI);
  670   MemoryLocation StoreLoc = MemoryLocation::get(SI);
usr/include/c++/7.4.0/bits/move.h
   72     constexpr _Tp&&
   73     forward(typename std::remove_reference<_Tp>::type& __t) noexcept
   83     constexpr _Tp&&
   84     forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
   98     move(_Tp&& __t) noexcept
  184     typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>,
  185 			      is_move_constructible<_Tp>,
  186 			      is_move_assignable<_Tp>>::value>::type
  187     swap(_Tp& __a, _Tp& __b)
  187     swap(_Tp& __a, _Tp& __b)
  198       _Tp __tmp = _GLIBCXX_MOVE(__a);
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  181       typedef _Tp                         value_type;
  183       typedef _Tp*                        pointer;
  184       typedef _Tp&                        reference;
  192       typedef _Tp                         value_type;
  194       typedef const _Tp*                  pointer;
  195       typedef const _Tp&                  reference;
usr/include/c++/7.4.0/bits/stl_pair.h
  100 	return __and_<is_constructible<_T1, const _U1&>,
  100 	return __and_<is_constructible<_T1, const _U1&>,
  101 		      is_constructible<_T2, const _U2&>>::value;
  101 		      is_constructible<_T2, const _U2&>>::value;
  107 	return __and_<is_convertible<const _U1&, _T1>,
  107 	return __and_<is_convertible<const _U1&, _T1>,
  108 		      is_convertible<const _U2&, _T2>>::value;
  108 		      is_convertible<const _U2&, _T2>>::value;
  114 	return __and_<is_constructible<_T1, _U1&&>,
  114 	return __and_<is_constructible<_T1, _U1&&>,
  115 		      is_constructible<_T2, _U2&&>>::value;
  115 		      is_constructible<_T2, _U2&&>>::value;
  121 	return __and_<is_convertible<_U1&&, _T1>,
  121 	return __and_<is_convertible<_U1&&, _T1>,
  122 		      is_convertible<_U2&&, _T2>>::value;
  122 		      is_convertible<_U2&&, _T2>>::value;
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  129 				  is_convertible<_U2&&, _T2>>;
  129 				  is_convertible<_U2&&, _T2>>;
  133 	return __and_<is_constructible<_T1, const _U1&>,
  133 	return __and_<is_constructible<_T1, const _U1&>,
  134 		      is_constructible<_T2, _U2&&>,
  134 		      is_constructible<_T2, _U2&&>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  143 				  is_convertible<const _U2&, _T2>>;
  143 				  is_convertible<const _U2&, _T2>>;
  147 	return __and_<is_constructible<_T1, _U1&&>,
  147 	return __and_<is_constructible<_T1, _U1&&>,
  148 		      is_constructible<_T2, const _U2&&>,
  148 		      is_constructible<_T2, const _U2&&>,
  209     : private __pair_base<_T1, _T2>
  209     : private __pair_base<_T1, _T2>
  211       typedef _T1 first_type;    /// @c first_type is the first bound type
  212       typedef _T2 second_type;   /// @c second_type is the second bound type
  214       _T1 first;                 /// @c first is a copy of the first object
  215       _T2 second;                /// @c second is a copy of the second object
  252       using _PCCP = _PCC<true, _T1, _T2>;
  252       using _PCCP = _PCC<true, _T1, _T2>;
  260       constexpr pair(const _T1& __a, const _T2& __b)
  260       constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  283 			    _T1, _T2>;
  283 			    _T1, _T2>;
  311        constexpr pair(_U1&& __x, const _T2& __y)
  311        constexpr pair(_U1&& __x, const _T2& __y)
  318        explicit constexpr pair(_U1&& __x, const _T2& __y)
  325        constexpr pair(const _T1& __x, _U2&& __y)
  325        constexpr pair(const _T1& __x, _U2&& __y)
  332        explicit pair(const _T1& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  342 	: first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
  342 	: first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
  379 		__and_<is_copy_assignable<_T1>,
  380 		       is_copy_assignable<_T2>>::value,
  390 		__and_<is_move_assignable<_T1>,
  391 		       is_move_assignable<_T2>>::value,
  402       typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
  402       typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
  403 				is_assignable<_T2&, const _U2&>>::value,
  403 				is_assignable<_T2&, const _U2&>>::value,
  405 	operator=(const pair<_U1, _U2>& __p)
  405 	operator=(const pair<_U1, _U2>& __p)
  413       typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
  413       typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
  414 				is_assignable<_T2&, _U2&&>>::value,
  414 				is_assignable<_T2&, _U2&&>>::value,
  416 	operator=(pair<_U1, _U2>&& __p)
  416 	operator=(pair<_U1, _U2>&& __p)
  522     constexpr pair<typename __decay_and_strip<_T1>::__type,
  523                    typename __decay_and_strip<_T2>::__type>
  524     make_pair(_T1&& __x, _T2&& __y)
  524     make_pair(_T1&& __x, _T2&& __y)
  526       typedef typename __decay_and_strip<_T1>::__type __ds_type1;
  527       typedef typename __decay_and_strip<_T2>::__type __ds_type2;
  529       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
  529       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
usr/include/c++/7.4.0/initializer_list
   50       typedef _E 		value_type;
   51       typedef const _E& 	reference;
   52       typedef const _E& 	const_reference;
   54       typedef const _E* 	iterator;
   55       typedef const _E* 	const_iterator;
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  326     : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
  354     : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  567     : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  631     : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  762     typename add_rvalue_reference<_Tp>::type declval() noexcept;
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  798       typedef decltype(__test<_Tp>(0)) type;
  811                remove_all_extents<_Tp>::type>::type
  825     : public __is_destructible_safe<_Tp>::type
  889       typedef decltype(__test<_Tp>(0)) type;
  894     : public __and_<__not_<is_void<_Tp>>,
  895                     __is_default_constructible_impl<_Tp>>
  915     : public __is_default_constructible_atom<_Tp>::type
  921     : public __is_default_constructible_safe<_Tp>::type
  984       typedef decltype(__test<_Tp, _Arg>(0)) type;
  989     : public __and_<is_destructible<_Tp>,
  990                     __is_direct_constructible_impl<_Tp, _Arg>>
 1072 			 __is_direct_constructible_ref_cast<_Tp, _Arg>,
 1073 			 __is_direct_constructible_new_safe<_Tp, _Arg>
 1079     : public __is_direct_constructible_new<_Tp, _Arg>::type
 1119     : public __is_direct_constructible<_Tp, _Arg>
 1130     : public __is_constructible_impl<_Tp, _Args...>::type
 1142     : public is_constructible<_Tp, const _Tp&>
 1142     : public is_constructible<_Tp, const _Tp&>
 1148     : public __is_copy_constructible_impl<_Tp>
 1160     : public is_constructible<_Tp, _Tp&&>
 1160     : public is_constructible<_Tp, _Tp&&>
 1166     : public __is_move_constructible_impl<_Tp>
 1215     : public __and_<is_constructible<_Tp, _Args...>,
 1216 		    __is_nt_constructible_impl<_Tp, _Args...>>
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1252     : public __is_nothrow_move_constructible_impl<_Tp>
 1286     : public is_assignable<_Tp&, const _Tp&>
 1286     : public is_assignable<_Tp&, const _Tp&>
 1292     : public __is_copy_assignable_impl<_Tp>
 1304     : public is_assignable<_Tp&, _Tp&&>
 1304     : public is_assignable<_Tp&, _Tp&&>
 1310     : public __is_move_assignable_impl<_Tp>
 1352     : public is_nothrow_assignable<_Tp&, _Tp&&>
 1352     : public is_nothrow_assignable<_Tp&, _Tp&&>
 1358     : public __is_nt_move_assignable_impl<_Tp>
 1377     static void __helper(const _Tp&);
 1390     typedef decltype(__test(declval<_Tp>())) type;
 1395       : public __is_implicitly_default_constructible_impl<_Tp>::type
 1400       : public __and_<is_default_constructible<_Tp>,
 1401                       __is_implicitly_default_constructible_safe<_Tp>>
 1526 	static void __test_aux(_To1);
 1538       typedef decltype(__test<_From, _To>(0)) type;
 1545     : public __is_convertible_helper<_From, _To>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1629     { typedef _Tp   type; };
 1633     { typedef _Tp   type; };
 1659     { typedef _Tp&&   type; };
 1664     : public __add_rvalue_reference_helper<_Tp>
 1955     { typedef _Tp     type; };
 2104     { typedef typename remove_cv<_Up>::type __type; };
 2118       typedef typename remove_reference<_Tp>::type __remove_type;
 2131       typedef _Tp __type;
 2144 	typename decay<_Tp>::type>::__type __type;
 2574       typename remove_reference<_Tp>::type>::type>::type