|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Derived Classes
include/llvm/IR/Metadata.h 338 class ValueAsMetadata : public Metadata, ReplaceableMetadataImpl {
603 class MDString : public Metadata {
863 class MDNode : public Metadata {
1280 class DistinctMDOperandPlaceholder : public Metadata {
Declarations
include/llvm/IR/GlobalObject.h 28 class Metadata;
include/llvm/IR/MDBuilder.h 33 class Metadata;
include/llvm/IR/ProfileSummary.h 23 class Metadata;
include/llvm/Linker/IRMover.h 19 class Metadata;
include/llvm/Transforms/Utils/ValueMapper.h 29 class Metadata;
lib/Bitcode/Reader/MetadataLoader.h 29 class Metadata;
lib/Bitcode/Writer/ValueEnumerator.h 36 class Metadata;
References
examples/Kaleidoscope/Chapter9/toy.cpp 843 SmallVector<Metadata *, 8> EltTys;
include/llvm/ADT/ArrayRef.h 108 const ArrayRef<U *> &A,
110 std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
118 const SmallVectorTemplateCommon<U *, DummyT> &Vec,
120 std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
127 ArrayRef(const std::vector<U *, A> &Vec,
129 std::is_convertible<U *const *, T const *>::value>::type* = 0)
include/llvm/ADT/DenseMapInfo.h 39 static inline T* getEmptyKey() {
41 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
45 static inline T* getTombstoneKey() {
47 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
51 static unsigned getHashValue(const T *PtrVal) {
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/IR/DIBuilder.h 50 SmallVector<Metadata *, 4> AllEnumTypes;
53 SmallVector<Metadata *, 4> AllSubprograms;
54 SmallVector<Metadata *, 4> AllGVs;
59 MapVector<MDNode *, SetVector<Metadata *>> AllMacrosPerParent;
555 DINodeArray getOrCreateArray(ArrayRef<Metadata *> Elements);
558 DIMacroNodeArray getOrCreateMacroArray(ArrayRef<Metadata *> Elements);
561 DITypeRefArray getOrCreateTypeArray(ArrayRef<Metadata *> Elements);
566 DISubrange *getOrCreateSubrange(int64_t Lo, Metadata *CountNode);
include/llvm/IR/DebugInfoMetadata.h 124 ArrayRef<Metadata *> Ops1, ArrayRef<Metadata *> Ops2 = None)
124 ArrayRef<Metadata *> Ops1, ArrayRef<Metadata *> Ops2 = None)
131 template <class Ty> Ty *getOperandAs(unsigned I) const {
132 return cast_or_null<Ty>(getOperand(I));
177 static bool classof(const Metadata *MD) {
219 unsigned Tag, ArrayRef<Metadata *> Ops1,
220 ArrayRef<Metadata *> Ops2)
230 StringRef Header, ArrayRef<Metadata *> DwarfOps,
237 MDString *Header, ArrayRef<Metadata *> DwarfOps,
273 void replaceDwarfOperandWith(unsigned I, Metadata *New) {
277 static bool classof(const Metadata *MD) {
292 DISubrange(LLVMContext &C, StorageType Storage, Metadata *Node,
293 int64_t LowerBound, ArrayRef<Metadata *> Ops)
303 static DISubrange *getImpl(LLVMContext &Context, Metadata *CountNode,
322 Metadata *getRawCountNode() const {
338 static bool classof(const Metadata *MD) {
353 bool IsUnsigned, ArrayRef<Metadata *> Ops)
388 static bool classof(const Metadata *MD) {
402 ArrayRef<Metadata *> Ops)
422 Metadata *getRawFile() const {
427 static bool classof(const Metadata *MD) {
494 ArrayRef<Metadata *> Ops)
555 static bool classof(const Metadata *MD) {
593 uint64_t OffsetInBits, DIFlags Flags, ArrayRef<Metadata *> Ops)
632 Metadata *getRawScope() const { return getOperand(1); }
672 static bool classof(const Metadata *MD) {
697 DIFlags Flags, ArrayRef<Metadata *> Ops)
745 static bool classof(const Metadata *MD) {
767 DIFlags Flags, ArrayRef<Metadata *> Ops)
778 Metadata *ExtraData, StorageType Storage, bool ShouldCreate = true) {
784 MDString *Name, Metadata *File, unsigned Line,
785 Metadata *Scope, Metadata *BaseType,
785 Metadata *Scope, Metadata *BaseType,
789 DIFlags Flags, Metadata *ExtraData,
824 Metadata *getRawBaseType() const { return getOperand(3); }
838 Metadata *getExtraData() const { return getRawExtraData(); }
839 Metadata *getRawExtraData() const { return getOperand(4); }
881 static bool classof(const Metadata *MD) {
899 ArrayRef<Metadata *> Ops)
916 getImpl(LLVMContext &Context, unsigned Tag, StringRef Name, Metadata *File,
930 getImpl(LLVMContext &Context, unsigned Tag, MDString *Name, Metadata *File,
931 unsigned Line, Metadata *Scope, Metadata *BaseType,
931 unsigned Line, Metadata *Scope, Metadata *BaseType,
933 DIFlags Flags, Metadata *Elements, unsigned RuntimeLang,
934 Metadata *VTableHolder, Metadata *TemplateParams,
934 Metadata *VTableHolder, Metadata *TemplateParams,
935 MDString *Identifier, Metadata *Discriminator,
983 MDString *Name, Metadata *File, unsigned Line, Metadata *Scope,
983 MDString *Name, Metadata *File, unsigned Line, Metadata *Scope,
984 Metadata *BaseType, uint64_t SizeInBits, uint32_t AlignInBits,
985 uint64_t OffsetInBits, DIFlags Flags, Metadata *Elements,
986 unsigned RuntimeLang, Metadata *VTableHolder,
987 Metadata *TemplateParams, Metadata *Discriminator);
987 Metadata *TemplateParams, Metadata *Discriminator);
1002 MDString *Name, Metadata *File, unsigned Line, Metadata *Scope,
1002 MDString *Name, Metadata *File, unsigned Line, Metadata *Scope,
1003 Metadata *BaseType, uint64_t SizeInBits, uint32_t AlignInBits,
1004 uint64_t OffsetInBits, DIFlags Flags, Metadata *Elements,
1005 unsigned RuntimeLang, Metadata *VTableHolder,
1006 Metadata *TemplateParams, Metadata *Discriminator);
1006 Metadata *TemplateParams, Metadata *Discriminator);
1021 Metadata *getRawBaseType() const { return getOperand(3); }
1022 Metadata *getRawElements() const { return getOperand(4); }
1023 Metadata *getRawVTableHolder() const { return getOperand(5); }
1024 Metadata *getRawTemplateParams() const { return getOperand(6); }
1026 Metadata *getRawDiscriminator() const { return getOperand(8); }
1053 static bool classof(const Metadata *MD) {
1070 uint8_t CC, ArrayRef<Metadata *> Ops)
1083 uint8_t CC, Metadata *TypeArray,
1107 Metadata *getRawTypeArray() const { return getOperand(3); }
1109 static bool classof(const Metadata *MD) {
1155 bool RangesBaseAddress, ArrayRef<Metadata *> Ops)
1187 getImpl(LLVMContext &Context, unsigned SourceLanguage, Metadata *File,
1190 unsigned EmissionKind, Metadata *EnumTypes, Metadata *RetainedTypes,
1190 unsigned EmissionKind, Metadata *EnumTypes, Metadata *RetainedTypes,
1191 Metadata *GlobalVariables, Metadata *ImportedEntities,
1191 Metadata *GlobalVariables, Metadata *ImportedEntities,
1192 Metadata *Macros, uint64_t DWOId, bool SplitDebugInlining,
1288 Metadata *getRawEnumTypes() const { return getOperand(4); }
1289 Metadata *getRawRetainedTypes() const { return getOperand(5); }
1290 Metadata *getRawGlobalVariables() const { return getOperand(6); }
1291 Metadata *getRawImportedEntities() const { return getOperand(7); }
1292 Metadata *getRawMacros() const { return getOperand(8); }
1315 static bool classof(const Metadata *MD) {
1328 ArrayRef<Metadata *> Ops)
1345 static bool classof(const Metadata *MD) {
1360 unsigned Column, ArrayRef<Metadata *> MDs, bool ImplicitCode);
1364 unsigned Column, Metadata *Scope,
1365 Metadata *InlinedAt, bool ImplicitCode,
1418 void replaceOperandWith(unsigned I, Metadata *New) = delete;
1580 Metadata *getRawScope() const { return getOperand(0); }
1581 Metadata *getRawInlinedAt() const {
1587 static bool classof(const Metadata *MD) {
1651 DIFlags Flags, DISPFlags SPFlags, ArrayRef<Metadata *> Ops)
1676 static DISubprogram *getImpl(LLVMContext &Context, Metadata *Scope,
1678 Metadata *File, unsigned Line, Metadata *Type,
1678 Metadata *File, unsigned Line, Metadata *Type,
1679 unsigned ScopeLine, Metadata *ContainingType,
1681 DIFlags Flags, DISPFlags SPFlags, Metadata *Unit,
1682 Metadata *TemplateParams, Metadata *Declaration,
1682 Metadata *TemplateParams, Metadata *Declaration,
1683 Metadata *RetainedNodes, Metadata *ThrownTypes,
1683 Metadata *RetainedNodes, Metadata *ThrownTypes,
1813 Metadata *getRawScope() const { return getOperand(1); }
1816 Metadata *getRawType() const { return getOperand(4); }
1817 Metadata *getRawUnit() const { return getOperand(5); }
1818 Metadata *getRawDeclaration() const { return getOperand(6); }
1819 Metadata *getRawRetainedNodes() const { return getOperand(7); }
1820 Metadata *getRawContainingType() const {
1821 return getNumOperands() > 8 ? getOperandAs<Metadata>(8) : nullptr;
1823 Metadata *getRawTemplateParams() const {
1824 return getNumOperands() > 9 ? getOperandAs<Metadata>(9) : nullptr;
1826 Metadata *getRawThrownTypes() const {
1827 return getNumOperands() > 10 ? getOperandAs<Metadata>(10) : nullptr;
1835 static bool classof(const Metadata *MD) {
1843 ArrayRef<Metadata *> Ops)
1850 Metadata *getRawScope() const { return getOperand(1); }
1852 static bool classof(const Metadata *MD) {
1866 unsigned Column, ArrayRef<Metadata *> Ops)
1882 static DILexicalBlock *getImpl(LLVMContext &Context, Metadata *Scope,
1883 Metadata *File, unsigned Line, unsigned Column,
1904 static bool classof(const Metadata *MD) {
1916 unsigned Discriminator, ArrayRef<Metadata *> Ops)
1930 static DILexicalBlockFile *getImpl(LLVMContext &Context, Metadata *Scope,
1931 Metadata *File, unsigned Discriminator,
1956 static bool classof(const Metadata *MD) {
2025 ArrayRef<Metadata *> Ops)
2037 static DINamespace *getImpl(LLVMContext &Context, Metadata *Scope,
2060 Metadata *getRawScope() const { return getOperand(1); }
2063 static bool classof(const Metadata *MD) {
2074 DIModule(LLVMContext &Context, StorageType Storage, ArrayRef<Metadata *> Ops)
2088 static DIModule *getImpl(LLVMContext &Context, Metadata *Scope,
2117 Metadata *getRawScope() const { return getOperand(0); }
2123 static bool classof(const Metadata *MD) {
2132 unsigned Tag, ArrayRef<Metadata *> Ops)
2141 Metadata *getRawType() const { return getOperand(1); }
2143 static bool classof(const Metadata *MD) {
2154 ArrayRef<Metadata *> Ops)
2166 Metadata *Type, StorageType Storage,
2181 static bool classof(const Metadata *MD) {
2191 unsigned Tag, ArrayRef<Metadata *> Ops)
2198 Metadata *Value, StorageType Storage,
2204 MDString *Name, Metadata *Type,
2205 Metadata *Value, StorageType Storage,
2224 Metadata *getValue() const { return getOperand(2); }
2226 static bool classof(const Metadata *MD) {
2238 ArrayRef<Metadata *> Ops, uint32_t AlignInBits = 0)
2280 Metadata *getRawScope() const { return getOperand(0); }
2282 Metadata *getRawFile() const { return getOperand(2); }
2283 Metadata *getRawType() const { return getOperand(3); }
2285 static bool classof(const Metadata *MD) {
2437 static bool classof(const Metadata *MD) {
2615 ArrayRef<Metadata *> Ops)
2629 cast_or_null<Metadata>(TemplateParams), AlignInBits, Storage,
2633 getImpl(LLVMContext &Context, Metadata *Scope, MDString *Name,
2634 MDString *LinkageName, Metadata *File, unsigned Line, Metadata *Type,
2634 MDString *LinkageName, Metadata *File, unsigned Line, Metadata *Type,
2636 Metadata *StaticDataMemberDeclaration, Metadata *TemplateParams,
2636 Metadata *StaticDataMemberDeclaration, Metadata *TemplateParams,
2677 Metadata *getRawStaticDataMemberDeclaration() const { return getOperand(6); }
2678 Metadata *getRawTemplateParams() const { return getOperand(7); }
2681 static bool classof(const Metadata *MD) {
2693 ArrayRef<Metadata *> Ops)
2705 static DICommonBlock *getImpl(LLVMContext &Context, Metadata *Scope,
2706 Metadata *Decl, MDString *Name, Metadata *File,
2706 Metadata *Decl, MDString *Name, Metadata *File,
2735 Metadata *getRawScope() const { return getOperand(0); }
2736 Metadata *getRawDecl() const { return getOperand(1); }
2738 Metadata *getRawFile() const { return getOperand(3); }
2740 static bool classof(const Metadata *MD) {
2757 ArrayRef<Metadata *> Ops)
2772 static DILocalVariable *getImpl(LLVMContext &Context, Metadata *Scope,
2773 MDString *Name, Metadata *File, unsigned Line,
2774 Metadata *Type, unsigned Arg, DIFlags Flags,
2826 static bool classof(const Metadata *MD) {
2840 ArrayRef<Metadata *> Ops)
2851 static DILabel *getImpl(LLVMContext &Context, Metadata *Scope,
2852 MDString *Name, Metadata *File, unsigned Line,
2883 Metadata *getRawScope() const { return getOperand(0); }
2885 Metadata *getRawFile() const { return getOperand(2); }
2896 static bool classof(const Metadata *MD) {
2909 unsigned Attributes, ArrayRef<Metadata *> Ops)
2925 Metadata *File, unsigned Line,
2927 unsigned Attributes, Metadata *Type,
2979 Metadata *getRawFile() const { return getOperand(1); }
2982 Metadata *getRawType() const { return getOperand(4); }
2984 static bool classof(const Metadata *MD) {
2997 unsigned Line, ArrayRef<Metadata *> Ops)
3010 Metadata *Scope, Metadata *Entity,
3010 Metadata *Scope, Metadata *Entity,
3011 Metadata *File, unsigned Line,
3038 Metadata *getRawScope() const { return getOperand(0); }
3039 Metadata *getRawEntity() const { return getOperand(1); }
3041 Metadata *getRawFile() const { return getOperand(3); }
3043 static bool classof(const Metadata *MD) {
3054 ArrayRef<Metadata *> Ops)
3059 getImpl(LLVMContext &Context, Metadata *Variable, Metadata *Expression,
3059 getImpl(LLVMContext &Context, Metadata *Variable, Metadata *Expression,
3073 Metadata *getRawVariable() const { return getOperand(0); }
3079 Metadata *getRawExpression() const { return getOperand(1); }
3085 static bool classof(const Metadata *MD) {
3102 ArrayRef<Metadata *> Ops1, ArrayRef<Metadata *> Ops2 = None)
3102 ArrayRef<Metadata *> Ops1, ArrayRef<Metadata *> Ops2 = None)
3128 static bool classof(const Metadata *MD) {
3146 ArrayRef<Metadata *> Ops)
3183 static bool classof(const Metadata *MD) {
3195 unsigned Line, ArrayRef<Metadata *> Ops)
3208 unsigned Line, Metadata *File, Metadata *Elements,
3208 unsigned Line, Metadata *File, Metadata *Elements,
3242 Metadata *getRawFile() const { return getOperand(0); }
3243 Metadata *getRawElements() const { return getOperand(1); }
3245 static bool classof(const Metadata *MD) {
include/llvm/IR/GlobalObject.h 180 void addTypeMetadata(unsigned Offset, Metadata *TypeID);
include/llvm/IR/IntrinsicInst.h 108 Metadata *getRawVariable() const {
112 Metadata *getRawExpression() const {
193 Metadata *getRawLabel() const {
include/llvm/IR/MDBuilder.h 196 MDNode *createTBAATypeNode(MDNode *Parent, uint64_t Size, Metadata *Id,
include/llvm/IR/Metadata.h 94 void handleChangedOperand(void *, Metadata *) {
144 inline Metadata **unwrap(LLVMMetadataRef *MDs) {
161 inline raw_ostream &operator<<(raw_ostream &OS, const Metadata &MD) {
177 Metadata *MD;
179 MetadataAsValue(Type *Ty, Metadata *MD);
187 static MetadataAsValue *get(LLVMContext &Context, Metadata *MD);
188 static MetadataAsValue *getIfExists(LLVMContext &Context, Metadata *MD);
190 Metadata *getMetadata() const { return MD; }
197 void handleChangedMetadata(Metadata *MD);
220 static bool track(Metadata *&MD) {
229 static bool track(void *Ref, Metadata &MD, Metadata &Owner) {
229 static bool track(void *Ref, Metadata &MD, Metadata &Owner) {
238 static bool track(void *Ref, Metadata &MD, MetadataAsValue &Owner) {
245 static void untrack(Metadata *&MD) { untrack(&MD, *MD); }
246 static void untrack(void *Ref, Metadata &MD);
256 static bool retrack(Metadata *&MD, Metadata *&New) {
256 static bool retrack(Metadata *&MD, Metadata *&New) {
259 static bool retrack(void *Ref, Metadata &MD, void *New);
262 static bool isReplaceable(const Metadata &MD);
264 using OwnerTy = PointerUnion<MetadataAsValue *, Metadata *>;
270 static bool track(void *Ref, Metadata &MD, OwnerTy Owner);
301 void replaceAllUsesWith(Metadata *MD);
313 void moveRef(void *Ref, void *New, const Metadata &MD);
319 static ReplaceableMetadataImpl *getOrCreate(Metadata &MD);
322 static ReplaceableMetadataImpl *getIfExists(Metadata &MD);
327 static bool isReplaceable(const Metadata &MD);
338 class ValueAsMetadata : public Metadata, ReplaceableMetadataImpl {
391 void replaceAllUsesWith(Metadata *MD) {
396 static bool classof(const Metadata *MD) {
421 static bool classof(const Metadata *MD) {
443 static bool classof(const Metadata *MD) {
515 HasDereference<M, const Metadata &>::value;
519 std::is_convertible<M, const Metadata &>::value;
603 class MDString : public Metadata {
636 static bool classof(const Metadata *MD) {
711 Metadata *MD = nullptr;
721 Metadata *get() const { return MD; }
722 operator Metadata *() const { return get(); }
723 Metadata *operator->() const { return get(); }
724 Metadata &operator*() const { return *get(); }
730 void reset(Metadata *MD, Metadata *Owner) {
730 void reset(Metadata *MD, Metadata *Owner) {
737 void track(Metadata *Owner) {
754 using SimpleType = Metadata *;
760 using SimpleType = Metadata *;
863 class MDNode : public Metadata {
874 ArrayRef<Metadata *> Ops1, ArrayRef<Metadata *> Ops2 = None);
874 ArrayRef<Metadata *> Ops1, ArrayRef<Metadata *> Ops2 = None);
906 static inline MDTuple *get(LLVMContext &Context, ArrayRef<Metadata *> MDs);
908 ArrayRef<Metadata *> MDs);
910 ArrayRef<Metadata *> MDs);
912 ArrayRef<Metadata *> MDs);
926 void replaceOperandWith(unsigned I, Metadata *New);
948 void replaceAllUsesWith(Metadata *MD) {
1006 void setOperand(unsigned I, Metadata *New);
1014 void handleChangedOperand(void *Ref, Metadata *New);
1019 void resolveAfterOperandChange(Metadata *Old, Metadata *New);
1019 void resolveAfterOperandChange(Metadata *Old, Metadata *New);
1077 static bool classof(const Metadata *MD) {
1110 ArrayRef<Metadata *> Vals)
1120 static MDTuple *getImpl(LLVMContext &Context, ArrayRef<Metadata *> MDs,
1132 static MDTuple *get(LLVMContext &Context, ArrayRef<Metadata *> MDs) {
1136 static MDTuple *getIfExists(LLVMContext &Context, ArrayRef<Metadata *> MDs) {
1143 static MDTuple *getDistinct(LLVMContext &Context, ArrayRef<Metadata *> MDs) {
1153 ArrayRef<Metadata *> MDs) {
1160 static bool classof(const Metadata *MD) {
1165 MDTuple *MDNode::get(LLVMContext &Context, ArrayRef<Metadata *> MDs) {
1169 MDTuple *MDNode::getIfExists(LLVMContext &Context, ArrayRef<Metadata *> MDs) {
1173 MDTuple *MDNode::getDistinct(LLVMContext &Context, ArrayRef<Metadata *> MDs) {
1178 ArrayRef<Metadata *> MDs) {
1280 class DistinctMDOperandPlaceholder : public Metadata {
1283 Metadata **Use = nullptr;
1303 void replaceUseWith(Metadata *MD) {
1311 Metadata *T = cast<Metadata>(this);
1311 Metadata *T = cast<Metadata>(this);
include/llvm/IR/Module.h 155 static bool isValidModFlagBehavior(Metadata *MD, ModFlagBehavior &MFB);
160 Metadata *Val;
162 ModuleFlagEntry(ModFlagBehavior B, MDString *K, Metadata *V)
477 Metadata *getModuleFlag(StringRef Key) const;
490 void addModuleFlag(ModFlagBehavior Behavior, StringRef Key, Metadata *Val);
873 void setProfileSummary(Metadata *M, ProfileSummary::Kind Kind);
877 Metadata *getProfileSummary(bool IsCS);
include/llvm/IR/ProfileSummary.h 53 Metadata *getDetailedSummaryMD(LLVMContext &Context);
69 Metadata *getMD(LLVMContext &Context);
71 static ProfileSummary *getFromMD(Metadata *MD);
include/llvm/IR/TrackingMDRef.h 26 Metadata *MD = nullptr;
30 explicit TrackingMDRef(Metadata *MD) : MD(MD) { track(); }
57 Metadata *get() const { return MD; }
58 operator Metadata *() const { return get(); }
59 Metadata *operator->() const { return get(); }
60 Metadata &operator*() const { return *get(); }
66 void reset(Metadata *MD) {
146 using SimpleType = Metadata *;
152 using SimpleType = Metadata *;
include/llvm/IR/ValueMap.h 90 using MDMapT = DenseMap<const Metadata *, TrackingMDRef>;
123 Optional<Metadata *> getMappedMD(const Metadata *MD) const {
123 Optional<Metadata *> getMappedMD(const Metadata *MD) const {
include/llvm/Linker/IRMover.h 44 typedef DenseMap<const Metadata *, TrackingMDRef> MDMapT;
include/llvm/Support/Casting.h 34 using SimpleType = From; // The real type this represents...
37 static SimpleType &getSimplifiedValue(From &Val) { return Val; }
41 using NonConstSimpleType = typename simplify_type<From>::SimpleType;
47 static RetType getSimplifiedValue(const From& Val) {
57 static inline bool doit(const From &Val) {
66 static inline bool doit(const From &) { return true; }
76 static inline bool doit(const From &Val) {
77 return isa_impl<To, From>::doit(Val);
90 static inline bool doit(const From *Val) {
92 return isa_impl<To, From>::doit(*Val);
92 return isa_impl<To, From>::doit(*Val);
104 static inline bool doit(const From *Val) {
106 return isa_impl<To, From>::doit(*Val);
106 return isa_impl<To, From>::doit(*Val);
122 return isa_impl_wrap<To, SimpleFrom,
132 return isa_impl_cl<To,FromTy>::doit(Val);
141 template <class X, class Y> LLVM_NODISCARD inline bool isa(const Y &Val) {
142 return isa_impl_wrap<X, const Y,
142 return isa_impl_wrap<X, const Y,
143 typename simplify_type<const Y>::SimpleType>::doit(Val);
172 using ret_type = To *; // Pointer arg case, return Ty*
176 using ret_type = const To *; // Constant pointer arg case, return const Ty*
198 using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
204 using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
210 To, From, typename simplify_type<From>::SimpleType>::ret_type;
218 static typename cast_retty<To, From>::ret_type doit(From &Val) {
219 return cast_convert_val<To, SimpleFrom,
227 static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
228 typename cast_retty<To, FromTy>::ret_type Res2
248 typename cast_retty<X, const Y>::ret_type>::type
252 X, const Y, typename simplify_type<const Y>::SimpleType>::doit(Val);
256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
265 return cast_convert_val<X, Y*,
265 return cast_convert_val<X, Y*,
266 typename simplify_type<Y*>::SimpleType>::doit(Val);
285 typename cast_retty<X, const Y>::ret_type>::type
290 return cast<X>(Val);
296 typename cast_retty<X, Y>::ret_type>::type
305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
306 cast_or_null(Y *Val) {
309 return cast<X>(Val);
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
367 dyn_cast_or_null(Y *Val) {
include/llvm/Support/PointerLikeTypeTraits.h 56 static inline void *getAsVoidPointer(T *P) { return P; }
57 static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
59 enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
91 typedef PointerLikeTypeTraits<T *> NonConst;
93 static inline const void *getAsVoidPointer(const T *P) {
96 static inline const T *getFromVoidPointer(const void *P) {
include/llvm/Support/type_traits.h 55 struct add_const_past_pointer { using type = const T; };
include/llvm/Transforms/IPO/GlobalDCE.h 47 DenseMap<Metadata *, SmallSet<std::pair<GlobalVariable *, uint64_t>, 4>>
63 void ScanVTableLoad(Function *Caller, Metadata *TypeId, uint64_t CallOffset);
include/llvm/Transforms/Utils/ValueMapper.h 168 Metadata *mapMetadata(const Metadata &MD);
168 Metadata *mapMetadata(const Metadata &MD);
228 inline Metadata *MapMetadata(const Metadata *MD, ValueToValueMapTy &VM,
228 inline Metadata *MapMetadata(const Metadata *MD, ValueToValueMapTy &VM,
include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h 141 void setHint(StringRef Name, Metadata *Arg);
lib/Analysis/LoopInfo.cpp 1015 SmallVector<Metadata *, 4> MDs;
1026 Metadata *Op = OrigLoopID->getOperand(i);
lib/Analysis/ProfileSummaryInfo.cpp 89 auto *SummaryMD = M.getProfileSummary(/* IsCS */ true);
lib/Analysis/TypeBasedAliasAnalysis.cpp 283 Metadata *getId() const {
557 Metadata *Ops[] = {const_cast<MDNode*>(AccessType),
563 Metadata *Ops[] = {const_cast<MDNode*>(AccessType),
lib/Analysis/VectorUtils.cpp 534 SmallSetVector<Metadata *, 4> Union;
567 SmallPtrSet<Metadata *, 4> AccGroupSet2;
570 SmallVector<Metadata *, 4> Intersection;
lib/AsmParser/LLParser.cpp 3724 SmallVector<Metadata *, 16> Elts;
3879 struct MDField : public MDFieldImpl<Metadata *> {
3895 struct MDFieldList : public MDFieldImpl<SmallVector<Metadata *, 4>> {
3917 Metadata *getMDFieldValue() const {
4243 Metadata *MD;
4311 SmallVector<Metadata *, 4> MDs;
5054 Metadata *MD;
5066 bool LLParser::ParseValueAsMetadata(Metadata *&MD, const Twine &TypeMsg,
5091 bool LLParser::ParseMetadata(Metadata *&MD, PerFunctionState *PFS) {
7295 bool LLParser::ParseMDNodeVector(SmallVectorImpl<Metadata *> &Elts) {
7310 Metadata *MD;
lib/AsmParser/LLParser.h 517 bool ParseValueAsMetadata(Metadata *&MD, const Twine &TypeMsg,
519 bool ParseMetadata(Metadata *&MD, PerFunctionState *PFS);
523 bool ParseMDNodeVector(SmallVectorImpl<Metadata *> &Elts);
lib/Bitcode/Reader/BitcodeReader.cpp 634 Metadata *getFnMetadataByID(unsigned ID) {
2924 if (Metadata *Val = TheModule->getModuleFlag("Linker Options")) {
lib/Bitcode/Reader/MetadataLoader.cpp 146 void push_back(Metadata *MD) { MetadataPtrs.emplace_back(MD); }
148 Metadata *back() const { return MetadataPtrs.back(); }
152 Metadata *operator[](unsigned i) const {
157 Metadata *lookup(unsigned I) const {
172 Metadata *getMetadataFwdRef(unsigned Idx);
178 Metadata *getMetadataIfResolved(unsigned Idx);
181 void assignValue(Metadata *MD, unsigned Idx);
193 Metadata *upgradeTypeRef(Metadata *MaybeUUID);
193 Metadata *upgradeTypeRef(Metadata *MaybeUUID);
196 Metadata *upgradeTypeRefArray(Metadata *MaybeTuple);
196 Metadata *upgradeTypeRefArray(Metadata *MaybeTuple);
199 Metadata *resolveTypeRefArray(Metadata *MaybeTuple);
199 Metadata *resolveTypeRefArray(Metadata *MaybeTuple);
202 void BitcodeReaderMetadataList::assignValue(Metadata *MD, unsigned Idx) {
227 Metadata *BitcodeReaderMetadataList::getMetadataFwdRef(unsigned Idx) {
235 if (Metadata *MD = MetadataPtrs[Idx])
243 Metadata *MD = MDNode::getTemporary(Context, None).release();
248 Metadata *BitcodeReaderMetadataList::getMetadataIfResolved(unsigned Idx) {
249 Metadata *MD = lookup(Idx);
315 Metadata *BitcodeReaderMetadataList::upgradeTypeRef(Metadata *MaybeUUID) {
315 Metadata *BitcodeReaderMetadataList::upgradeTypeRef(Metadata *MaybeUUID) {
329 Metadata *BitcodeReaderMetadataList::upgradeTypeRefArray(Metadata *MaybeTuple) {
329 Metadata *BitcodeReaderMetadataList::upgradeTypeRefArray(Metadata *MaybeTuple) {
346 Metadata *BitcodeReaderMetadataList::resolveTypeRefArray(Metadata *MaybeTuple) {
346 Metadata *BitcodeReaderMetadataList::resolveTypeRefArray(Metadata *MaybeTuple) {
352 SmallVector<Metadata *, 32> Ops;
354 for (Metadata *MD : Tuple->operands())
381 auto *MD = MetadataList.lookup(ID);
402 auto *MD = MetadataList.lookup(PHs.front().getID());
455 std::vector<std::pair<DICompileUnit *, Metadata *>> CUSubprograms;
648 Metadata *getMetadataFwdRefOrLoad(unsigned ID) {
651 if (auto *MD = MetadataList.lookup(ID))
977 if (Metadata *MD = MetadataList.lookup(ID))
989 if (auto *MD = MetadataList.lookup(ID)) {
1060 if (auto *MD = MetadataList.lookup(ID))
1075 if (auto *MD = MetadataList.getMetadataIfResolved(ID))
1170 SmallVector<Metadata *, 8> Elts;
1208 SmallVector<Metadata *, 8> Elts;
1225 Metadata *Scope = getMD(Record[3]);
1226 Metadata *InlinedAt = getMDOrNull(Record[4]);
1247 SmallVector<Metadata *, 8> DwarfOps;
1257 Metadata *Val = nullptr;
1342 Metadata *File = getMDOrNull(Record[3]);
1344 Metadata *Scope = getDITypeRefOrNull(Record[5]);
1345 Metadata *BaseType = nullptr;
1352 Metadata *Elements = nullptr;
1354 Metadata *VTableHolder = nullptr;
1355 Metadata *TemplateParams = nullptr;
1356 Metadata *Discriminator = nullptr;
1409 Metadata *Types = getMDOrNull(Record[2]);
1482 if (Metadata *SPs = getMDOrNullWithoutPlaceholders(Record[11]))
1547 Metadata *CUorFn = getMDOrNull(Record[12 + OffsetB]);
1730 Metadata *Expr = getMDOrNull(Record[9]);
1764 auto *MDNode = Expr ? cast<Metadata>(DGVE) : cast<Metadata>(DGV);
1764 auto *MDNode = Expr ? cast<Metadata>(DGVE) : cast<Metadata>(DGV);
1764 auto *MDNode = Expr ? cast<Metadata>(DGVE) : cast<Metadata>(DGV);
1837 Metadata *Expr = getMDOrNull(Record[2]);
1884 Metadata *MD = MDString::get(Context, String);
2042 Metadata *Node = MetadataList.getMetadataFwdRef(Idx);
2147 Metadata *MetadataLoader::getMetadataFwdRefOrLoad(unsigned Idx) {
lib/Bitcode/Reader/MetadataLoader.h 65 Metadata *getMetadataFwdRefOrLoad(unsigned Idx);
lib/Bitcode/Writer/BitcodeWriter.cpp 357 void writeMetadataStrings(ArrayRef<const Metadata *> Strings,
359 void writeMetadataRecords(ArrayRef<const Metadata *> MDs,
1434 Metadata *MD = N->getOperand(i);
1968 ArrayRef<const Metadata *> Strings, SmallVectorImpl<uint64_t> &Record) {
1980 for (const Metadata *MD : Strings)
1989 for (const Metadata *MD : Strings)
2005 ArrayRef<const Metadata *> MDs, SmallVectorImpl<uint64_t> &Record,
2014 for (const Metadata *MD : MDs) {
lib/Bitcode/Writer/ValueEnumerator.cpp 429 for (const Metadata *Op : L->operands())
508 const Metadata *MD = I->first;
570 void ValueEnumerator::EnumerateMetadata(const Function *F, const Metadata *MD) {
600 for (const Metadata *Op : Worklist.pop_back_val()->operands()) {
609 void ValueEnumerator::EnumerateMetadata(unsigned F, const Metadata *MD) {
657 const MDNode *ValueEnumerator::enumerateMetadataImpl(unsigned F, const Metadata *MD) {
709 static unsigned getMetadataTypeOrder(const Metadata *MD) {
736 for (const Metadata *MD : MDs)
752 std::vector<const Metadata *> OldMDs;
lib/Bitcode/Writer/ValueEnumerator.h 69 std::vector<const Metadata *> MDs;
70 std::vector<const Metadata *> FunctionMDs;
84 const Metadata *get(ArrayRef<const Metadata *> MDs) const {
84 const Metadata *get(ArrayRef<const Metadata *> MDs) const {
91 using MetadataMapType = DenseMap<const Metadata *, MDIndex>;
153 unsigned getMetadataID(const Metadata *MD) const {
159 unsigned getMetadataOrNullID(const Metadata *MD) const {
204 ArrayRef<const Metadata *> getMDStrings() const {
209 ArrayRef<const Metadata *> getNonMDStrings() const {
265 const MDNode *enumerateMetadataImpl(unsigned F, const Metadata *MD);
284 void EnumerateMetadata(const Function *F, const Metadata *MD);
285 void EnumerateMetadata(unsigned F, const Metadata *MD);
lib/CodeGen/AsmPrinter/CodeViewDebug.cpp 1092 for (Metadata *MD : Strs->operands()) {
lib/CodeGen/AsmPrinter/DwarfUnit.cpp 1052 if (Metadata *Val = VP->getValue()) {
lib/CodeGen/MIRPrinter.cpp 277 std::array<const Metadata *, 3> Metas{{DebugVar.Var,
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp 6437 Metadata *MD = cast<MetadataAsValue>(I.getArgOperand(0))->getMetadata();
lib/IR/AbstractCallSite.cpp 107 Metadata *OpAsM = CallbackEncMD->getOperand(u).get();
122 Metadata *VarArgFlagAsM =
lib/IR/AsmWriter.cpp 1245 static void WriteAsOperandInternal(raw_ostream &Out, const Metadata *MD,
1557 const Metadata *MD = Node->getOperand(mi);
1610 void printMetadata(StringRef Name, const Metadata *MD,
1661 static void writeMetadataAsOperand(raw_ostream &Out, const Metadata *MD,
1672 void MDFieldPrinter::printMetadata(StringRef Name, const Metadata *MD,
2303 static void WriteAsOperandInternal(raw_ostream &Out, const Metadata *MD,
4381 static void printMetadataImpl(raw_ostream &ROS, const Metadata &MD,
lib/IR/AutoUpgrade.cpp 1670 SmallVector<Metadata *, 1> Elts;
1697 SmallVector<Metadata *, 1> Elts;
3750 Metadata *Elts[] = {MD.getOperand(0), MD.getOperand(1)};
3753 Metadata *Elts2[] = {ScalarType, ScalarType,
3760 Metadata *Elts[] = {&MD, &MD, ConstantAsMetadata::get(Constant::getNullValue(
4004 Metadata *Ops[3] = {
4024 Metadata *Ops[3] = {Op->getOperand(0), Op->getOperand(1),
4076 static bool isOldLoopArgument(Metadata *MD) {
4100 static Metadata *upgradeLoopArgument(Metadata *MD) {
4100 static Metadata *upgradeLoopArgument(Metadata *MD) {
4113 SmallVector<Metadata *, 8> Ops;
4130 SmallVector<Metadata *, 8> Ops;
4132 for (Metadata *MD : T->operands())
lib/IR/Core.cpp 875 Metadata *MD = MAV->getMetadata();
975 Metadata *Op = N->getOperand(Index);
1072 SmallVector<Metadata *, 8> MDs;
1075 Metadata *MD;
lib/IR/DIBuilder.cpp 53 SmallVector<Metadata *, 16> RetainedNodes;
77 SmallVector<Metadata *, 16> RetainValues;
82 SmallPtrSet<Metadata *, 16> RetainSet;
93 for (auto *N : RetainValues)
164 Metadata *NS, DIFile *File, unsigned Line, StringRef Name,
326 Metadata *ExtraData = ConstantAsMetadata::get(
414 Metadata *MD) {
602 DINodeArray DIBuilder::getOrCreateArray(ArrayRef<Metadata *> Elements) {
607 DIBuilder::getOrCreateMacroArray(ArrayRef<Metadata *> Elements) {
611 DITypeRefArray DIBuilder::getOrCreateTypeArray(ArrayRef<Metadata *> Elements) {
612 SmallVector<llvm::Metadata *, 16> Elts;
626 DISubrange *DIBuilder::getOrCreateSubrange(int64_t Lo, Metadata *CountNode) {
lib/IR/DebugInfo.cpp 135 for (Metadata *D : DCT->getElements()) {
297 SmallVector<Metadata *, 4> Args;
384 DenseMap<Metadata *, Metadata *> Replacements;
384 DenseMap<Metadata *, Metadata *> Replacements;
409 Metadata *map(Metadata *M) {
409 Metadata *map(Metadata *M) {
418 MDNode *mapNode(Metadata *N) { return dyn_cast_or_null<MDNode>(map(N)); }
496 auto *Scope = map(MLD->getScope());
497 auto *InlinedAt = map(MLD->getInlinedAt());
507 SmallVector<Metadata *, 8> Ops;
1331 Node->replaceAllUsesWith(unwrap<Metadata>(Replacement));
1417 Metadata **DataValue = unwrap(Data);
lib/IR/DebugInfoMetadata.cpp 27 unsigned Column, ArrayRef<Metadata *> MDs,
49 unsigned Column, Metadata *Scope,
50 Metadata *InlinedAt, bool ImplicitCode,
66 SmallVector<Metadata *, 2> Ops;
261 ArrayRef<Metadata *> DwarfOps,
277 Metadata *PreOps[] = {Header};
324 DISubrange *DISubrange::getImpl(LLVMContext &Context, Metadata *CountNode,
328 Metadata *Ops[] = { CountNode };
337 Metadata *Ops[] = {Name};
349 Metadata *Ops[] = {nullptr, nullptr, Name};
368 LLVMContext &Context, unsigned Tag, MDString *Name, Metadata *File,
369 unsigned Line, Metadata *Scope, Metadata *BaseType, uint64_t SizeInBits,
369 unsigned Line, Metadata *Scope, Metadata *BaseType, uint64_t SizeInBits,
371 Optional<unsigned> DWARFAddressSpace, DIFlags Flags, Metadata *ExtraData,
378 Metadata *Ops[] = {File, Scope, Name, BaseType, ExtraData};
385 LLVMContext &Context, unsigned Tag, MDString *Name, Metadata *File,
386 unsigned Line, Metadata *Scope, Metadata *BaseType, uint64_t SizeInBits,
386 unsigned Line, Metadata *Scope, Metadata *BaseType, uint64_t SizeInBits,
388 Metadata *Elements, unsigned RuntimeLang, Metadata *VTableHolder,
388 Metadata *Elements, unsigned RuntimeLang, Metadata *VTableHolder,
389 Metadata *TemplateParams, MDString *Identifier, Metadata *Discriminator,
389 Metadata *TemplateParams, MDString *Identifier, Metadata *Discriminator,
398 Metadata *Ops[] = {File, Scope, Name, BaseType,
408 Metadata *File, unsigned Line, Metadata *Scope, Metadata *BaseType,
408 Metadata *File, unsigned Line, Metadata *Scope, Metadata *BaseType,
408 Metadata *File, unsigned Line, Metadata *Scope, Metadata *BaseType,
410 DIFlags Flags, Metadata *Elements, unsigned RuntimeLang,
411 Metadata *VTableHolder, Metadata *TemplateParams, Metadata *Discriminator) {
411 Metadata *VTableHolder, Metadata *TemplateParams, Metadata *Discriminator) {
411 Metadata *VTableHolder, Metadata *TemplateParams, Metadata *Discriminator) {
430 Metadata *Ops[] = {File, Scope, Name, BaseType,
443 Metadata *File, unsigned Line, Metadata *Scope, Metadata *BaseType,
443 Metadata *File, unsigned Line, Metadata *Scope, Metadata *BaseType,
443 Metadata *File, unsigned Line, Metadata *Scope, Metadata *BaseType,
445 DIFlags Flags, Metadata *Elements, unsigned RuntimeLang,
446 Metadata *VTableHolder, Metadata *TemplateParams, Metadata *Discriminator) {
446 Metadata *VTableHolder, Metadata *TemplateParams, Metadata *Discriminator) {
446 Metadata *VTableHolder, Metadata *TemplateParams, Metadata *Discriminator) {
468 uint8_t CC, Metadata *TypeArray,
472 Metadata *Ops[] = {nullptr, nullptr, nullptr, TypeArray};
508 Metadata *Ops[] = {Filename, Directory, CS ? CS->Value : nullptr,
514 LLVMContext &Context, unsigned SourceLanguage, Metadata *File,
517 unsigned EmissionKind, Metadata *EnumTypes, Metadata *RetainedTypes,
517 unsigned EmissionKind, Metadata *EnumTypes, Metadata *RetainedTypes,
518 Metadata *GlobalVariables, Metadata *ImportedEntities, Metadata *Macros,
518 Metadata *GlobalVariables, Metadata *ImportedEntities, Metadata *Macros,
518 Metadata *GlobalVariables, Metadata *ImportedEntities, Metadata *Macros,
527 Metadata *Ops[] = {
628 LLVMContext &Context, Metadata *Scope, MDString *Name,
629 MDString *LinkageName, Metadata *File, unsigned Line, Metadata *Type,
629 MDString *LinkageName, Metadata *File, unsigned Line, Metadata *Type,
630 unsigned ScopeLine, Metadata *ContainingType, unsigned VirtualIndex,
631 int ThisAdjustment, DIFlags Flags, DISPFlags SPFlags, Metadata *Unit,
632 Metadata *TemplateParams, Metadata *Declaration, Metadata *RetainedNodes,
632 Metadata *TemplateParams, Metadata *Declaration, Metadata *RetainedNodes,
632 Metadata *TemplateParams, Metadata *Declaration, Metadata *RetainedNodes,
633 Metadata *ThrownTypes, StorageType Storage, bool ShouldCreate) {
641 SmallVector<Metadata *, 11> Ops = {
668 DILexicalBlock *DILexicalBlock::getImpl(LLVMContext &Context, Metadata *Scope,
669 Metadata *File, unsigned Line,
677 Metadata *Ops[] = {File, Scope};
682 Metadata *Scope, Metadata *File,
682 Metadata *Scope, Metadata *File,
688 Metadata *Ops[] = {File, Scope};
692 DINamespace *DINamespace::getImpl(LLVMContext &Context, Metadata *Scope,
698 Metadata *Ops[] = {nullptr, Scope, Name};
702 DICommonBlock *DICommonBlock::getImpl(LLVMContext &Context, Metadata *Scope,
703 Metadata *Decl, MDString *Name,
704 Metadata *File, unsigned LineNo,
709 Metadata *Ops[] = {Scope, Decl, Name, File};
713 DIModule *DIModule::getImpl(LLVMContext &Context, Metadata *Scope,
720 Metadata *Ops[] = {Scope, Name, ConfigurationMacros, IncludePath, ISysRoot};
726 Metadata *Type,
731 Metadata *Ops[] = {Name, Type};
736 LLVMContext &Context, unsigned Tag, MDString *Name, Metadata *Type,
737 Metadata *Value, StorageType Storage, bool ShouldCreate) {
740 Metadata *Ops[] = {Name, Type, Value};
745 DIGlobalVariable::getImpl(LLVMContext &Context, Metadata *Scope, MDString *Name,
746 MDString *LinkageName, Metadata *File, unsigned Line,
747 Metadata *Type, bool IsLocalToUnit, bool IsDefinition,
748 Metadata *StaticDataMemberDeclaration,
749 Metadata *TemplateParams, uint32_t AlignInBits,
757 Metadata *Ops[] = {Scope,
769 DILocalVariable *DILocalVariable::getImpl(LLVMContext &Context, Metadata *Scope,
770 MDString *Name, Metadata *File,
771 unsigned Line, Metadata *Type,
784 Metadata *Ops[] = {Scope, Name, File, Type};
790 const Metadata *RawType = getRawType();
811 DILabel *DILabel::getImpl(LLVMContext &Context, Metadata *Scope,
812 MDString *Name, Metadata *File, unsigned Line,
819 Metadata *Ops[] = {Scope, Name, File};
1186 DIGlobalVariableExpression::getImpl(LLVMContext &Context, Metadata *Variable,
1187 Metadata *Expression, StorageType Storage,
1190 Metadata *Ops[] = {Variable, Expression};
1195 LLVMContext &Context, MDString *Name, Metadata *File, unsigned Line,
1197 Metadata *Type, StorageType Storage, bool ShouldCreate) {
1203 Metadata *Ops[] = {Name, File, GetterName, SetterName, Type};
1208 Metadata *Scope, Metadata *Entity,
1208 Metadata *Scope, Metadata *Entity,
1209 Metadata *File, unsigned Line,
1215 Metadata *Ops[] = {Scope, Entity, Name, File};
1224 Metadata *Ops[] = { Name, Value };
1229 unsigned Line, Metadata *File,
1230 Metadata *Elements, StorageType Storage,
1234 Metadata *Ops[] = { File, Elements };
lib/IR/Instruction.cpp 702 Metadata *Ops[] = {ProfileData->getOperand(0), ProfileData->getOperand(2),
lib/IR/Instructions.cpp 486 SmallVector<Metadata *, 3> Vals;
lib/IR/IntrinsicInst.cpp 44 auto *MD = cast<MetadataAsValue>(Op)->getMetadata();
108 Metadata *MD =
154 Metadata *MD =
lib/IR/LLVMContextImpl.cpp 178 static const Metadata *get_hashable_data(const MDOperand &X) { return X.get(); }
186 SmallVector<Metadata *, 8> MDs(N->op_begin() + Offset, N->op_end());
195 unsigned MDNodeOpsKey::calculateHash(ArrayRef<Metadata *> Ops) {
lib/IR/LLVMContextImpl.h 207 ArrayRef<Metadata *> RawOps;
212 MDNodeOpsKey(ArrayRef<Metadata *> Ops)
239 static unsigned calculateHash(ArrayRef<Metadata *> Ops);
265 MDNodeKeyImpl(ArrayRef<Metadata *> Ops) : MDNodeOpsKey(Ops) {}
281 Metadata *Scope;
282 Metadata *InlinedAt;
285 MDNodeKeyImpl(unsigned Line, unsigned Column, Metadata *Scope,
286 Metadata *InlinedAt, bool ImplicitCode)
309 MDNodeKeyImpl(unsigned Tag, MDString *Header, ArrayRef<Metadata *> DwarfOps)
327 Metadata *CountNode;
330 MDNodeKeyImpl(Metadata *CountNode, int64_t LowerBound)
408 Metadata *File;
410 Metadata *Scope;
411 Metadata *BaseType;
417 Metadata *ExtraData;
419 MDNodeKeyImpl(unsigned Tag, MDString *Name, Metadata *File, unsigned Line,
420 Metadata *Scope, Metadata *BaseType, uint64_t SizeInBits,
420 Metadata *Scope, Metadata *BaseType, uint64_t SizeInBits,
423 Metadata *ExtraData)
479 static bool isODRMember(unsigned Tag, const Metadata *Scope,
498 Metadata *File;
500 Metadata *Scope;
501 Metadata *BaseType;
506 Metadata *Elements;
508 Metadata *VTableHolder;
509 Metadata *TemplateParams;
511 Metadata *Discriminator;
513 MDNodeKeyImpl(unsigned Tag, MDString *Name, Metadata *File, unsigned Line,
514 Metadata *Scope, Metadata *BaseType, uint64_t SizeInBits,
514 Metadata *Scope, Metadata *BaseType, uint64_t SizeInBits,
516 Metadata *Elements, unsigned RuntimeLang,
517 Metadata *VTableHolder, Metadata *TemplateParams,
517 Metadata *VTableHolder, Metadata *TemplateParams,
518 MDString *Identifier, Metadata *Discriminator)
564 Metadata *TypeArray;
566 MDNodeKeyImpl(unsigned Flags, uint8_t CC, Metadata *TypeArray)
609 Metadata *Scope;
612 Metadata *File;
614 Metadata *Type;
616 Metadata *ContainingType;
621 Metadata *Unit;
622 Metadata *TemplateParams;
623 Metadata *Declaration;
624 Metadata *RetainedNodes;
625 Metadata *ThrownTypes;
627 MDNodeKeyImpl(Metadata *Scope, MDString *Name, MDString *LinkageName,
628 Metadata *File, unsigned Line, Metadata *Type,
628 Metadata *File, unsigned Line, Metadata *Type,
629 unsigned ScopeLine, Metadata *ContainingType,
631 unsigned SPFlags, Metadata *Unit, Metadata *TemplateParams,
631 unsigned SPFlags, Metadata *Unit, Metadata *TemplateParams,
632 Metadata *Declaration, Metadata *RetainedNodes,
632 Metadata *Declaration, Metadata *RetainedNodes,
633 Metadata *ThrownTypes)
704 static bool isDeclarationOfODRMember(bool IsDefinition, const Metadata *Scope,
706 const Metadata *TemplateParams,
729 Metadata *Scope;
730 Metadata *File;
734 MDNodeKeyImpl(Metadata *Scope, Metadata *File, unsigned Line, unsigned Column)
734 MDNodeKeyImpl(Metadata *Scope, Metadata *File, unsigned Line, unsigned Column)
751 Metadata *Scope;
752 Metadata *File;
755 MDNodeKeyImpl(Metadata *Scope, Metadata *File, unsigned Discriminator)
755 MDNodeKeyImpl(Metadata *Scope, Metadata *File, unsigned Discriminator)
772 Metadata *Scope;
776 MDNodeKeyImpl(Metadata *Scope, MDString *Name, bool ExportSymbols)
793 Metadata *Scope;
794 Metadata *Decl;
796 Metadata *File;
799 MDNodeKeyImpl(Metadata *Scope, Metadata *Decl, MDString *Name,
799 MDNodeKeyImpl(Metadata *Scope, Metadata *Decl, MDString *Name,
800 Metadata *File, unsigned LineNo)
818 Metadata *Scope;
824 MDNodeKeyImpl(Metadata *Scope, MDString *Name, MDString *ConfigurationMacros,
848 Metadata *Type;
850 MDNodeKeyImpl(MDString *Name, Metadata *Type) : Name(Name), Type(Type) {}
864 Metadata *Type;
865 Metadata *Value;
867 MDNodeKeyImpl(unsigned Tag, MDString *Name, Metadata *Type, Metadata *Value)
867 MDNodeKeyImpl(unsigned Tag, MDString *Name, Metadata *Type, Metadata *Value)
882 Metadata *Scope;
885 Metadata *File;
887 Metadata *Type;
890 Metadata *StaticDataMemberDeclaration;
891 Metadata *TemplateParams;
894 MDNodeKeyImpl(Metadata *Scope, MDString *Name, MDString *LinkageName,
895 Metadata *File, unsigned Line, Metadata *Type,
895 Metadata *File, unsigned Line, Metadata *Type,
897 Metadata *StaticDataMemberDeclaration, Metadata *TemplateParams,
897 Metadata *StaticDataMemberDeclaration, Metadata *TemplateParams,
940 Metadata *Scope;
942 Metadata *File;
944 Metadata *Type;
949 MDNodeKeyImpl(Metadata *Scope, MDString *Name, Metadata *File, unsigned Line,
949 MDNodeKeyImpl(Metadata *Scope, MDString *Name, Metadata *File, unsigned Line,
950 Metadata *Type, unsigned Arg, unsigned Flags,
979 Metadata *Scope;
981 Metadata *File;
984 MDNodeKeyImpl(Metadata *Scope, MDString *Name, Metadata *File, unsigned Line)
984 MDNodeKeyImpl(Metadata *Scope, MDString *Name, Metadata *File, unsigned Line)
1017 Metadata *Variable;
1018 Metadata *Expression;
1020 MDNodeKeyImpl(Metadata *Variable, Metadata *Expression)
1020 MDNodeKeyImpl(Metadata *Variable, Metadata *Expression)
1035 Metadata *File;
1040 Metadata *Type;
1042 MDNodeKeyImpl(MDString *Name, Metadata *File, unsigned Line,
1044 Metadata *Type)
1067 Metadata *Scope;
1068 Metadata *Entity;
1069 Metadata *File;
1073 MDNodeKeyImpl(unsigned Tag, Metadata *Scope, Metadata *Entity, Metadata *File,
1073 MDNodeKeyImpl(unsigned Tag, Metadata *Scope, Metadata *Entity, Metadata *File,
1073 MDNodeKeyImpl(unsigned Tag, Metadata *Scope, Metadata *Entity, Metadata *File,
1117 Metadata *File;
1118 Metadata *Elements;
1120 MDNodeKeyImpl(unsigned MIType, unsigned Line, Metadata *File,
1121 Metadata *Elements)
1274 DenseMap<Metadata *, MetadataAsValue *> MetadataAsValues;
lib/IR/MDBuilder.cpp 45 SmallVector<Metadata *, 4> Vals(Weights.size() + 1);
63 SmallVector<Metadata *, 8> Ops;
101 SmallVector<Metadata *, 4> Ops;
110 SmallVector<Metadata *, 4> Ops;
134 SmallVector<Metadata *, 4> Ops;
157 SmallVector<Metadata *, 3> Args(1, Dummy.get());
202 SmallVector<Metadata *, 4> Vals(Fields.size() * 3);
216 SmallVector<Metadata *, 4> Ops(Fields.size() * 2 + 1);
249 Metadata *Id,
251 SmallVector<Metadata *, 4> Ops(3 + Fields.size() * 3);
281 Metadata *OffsetNode = Tag->getOperand(2);
292 Metadata *ImmutabilityFlagNode = Tag->getOperand(ImmutabilityFlagOp);
300 Metadata *SizeNode = Tag->getOperand(3);
306 Metadata *Vals[] = {
316 Metadata *Vals[] = {
lib/IR/Metadata.cpp 62 MetadataAsValue::MetadataAsValue(Type *Ty, Metadata *MD)
83 static Metadata *canonicalizeMetadataForValue(LLVMContext &Context,
84 Metadata *MD) {
105 MetadataAsValue *MetadataAsValue::get(LLVMContext &Context, Metadata *MD) {
114 Metadata *MD) {
120 void MetadataAsValue::handleChangedMetadata(Metadata *MD) {
153 bool MetadataTracking::track(void *Ref, Metadata &MD, OwnerTy Owner) {
170 void MetadataTracking::untrack(void *Ref, Metadata &MD) {
178 bool MetadataTracking::retrack(void *Ref, Metadata &MD, void *New) {
193 bool MetadataTracking::isReplaceable(const Metadata &MD) {
215 const Metadata &MD) {
232 void ReplaceableMetadataImpl::replaceAllUsesWith(Metadata *MD) {
251 Metadata *&Ref = *static_cast<Metadata **>(Pair.first);
266 Metadata *OwnerMD = Owner.get<Metadata *>();
266 Metadata *OwnerMD = Owner.get<Metadata *>();
304 auto *OwnerMD = dyn_cast<MDNode>(Owner.get<Metadata *>());
313 ReplaceableMetadataImpl *ReplaceableMetadataImpl::getOrCreate(Metadata &MD) {
319 ReplaceableMetadataImpl *ReplaceableMetadataImpl::getIfExists(Metadata &MD) {
325 bool ReplaceableMetadataImpl::isReplaceable(const Metadata &MD) {
504 ArrayRef<Metadata *> Ops1, ArrayRef<Metadata *> Ops2)
504 ArrayRef<Metadata *> Ops1, ArrayRef<Metadata *> Ops2)
508 for (Metadata *MD : Ops1)
510 for (Metadata *MD : Ops2)
532 static bool isOperandUnresolved(Metadata *Op) {
593 void MDNode::resolveAfterOperandChange(Metadata *Old, Metadata *New) {
593 void MDNode::resolveAfterOperandChange(Metadata *Old, Metadata *New) {
641 for (Metadata *MD : N->operands())
698 void MDNode::handleChangedOperand(void *Ref, Metadata *New) {
711 Metadata *Old = getOperand(Op);
812 MDTuple *MDTuple::getImpl(LLVMContext &Context, ArrayRef<Metadata *> MDs,
858 void MDNode::replaceOperandWith(unsigned I, Metadata *New) {
870 void MDNode::setOperand(unsigned I, Metadata *New) {
882 ArrayRef<Metadata *> Ops) {
901 SmallSetVector<Metadata *, 4> MDs(A->op_begin(), A->op_end());
913 SmallSetVector<Metadata *, 4> MDs(A->op_begin(), A->op_end());
914 SmallPtrSet<Metadata *, 4> BSet(B->op_begin(), B->op_end());
1042 SmallVector<Metadata *, 4> MDs;
1082 auto *N = getNMDOps(Operands)[i].get();
1458 Metadata *TypeId = MD.second->getOperand(1);
1491 void GlobalObject::addTypeMetadata(unsigned Offset, Metadata *TypeID) {
lib/IR/Module.cpp 277 bool Module::isValidModFlagBehavior(Metadata *MD, ModFlagBehavior &MFB) {
302 Metadata *Val = Flag->getOperand(2);
310 Metadata *Module::getModuleFlag(StringRef Key) const {
338 Metadata *Val) {
340 Metadata *Ops[3] = {
534 void Module::setProfileSummary(Metadata *M, ProfileSummary::Kind Kind) {
541 Metadata *Module::getProfileSummary(bool IsCS) {
lib/IR/ProfileSummary.cpp 26 static Metadata *getKeyValMD(LLVMContext &Context, const char *Key,
29 Metadata *Ops[2] = {MDString::get(Context, Key),
36 static Metadata *getKeyValMD(LLVMContext &Context, const char *Key,
38 Metadata *Ops[2] = {MDString::get(Context, Key), MDString::get(Context, Val)};
47 Metadata *ProfileSummary::getDetailedSummaryMD(LLVMContext &Context) {
48 std::vector<Metadata *> Entries;
52 Metadata *EntryMD[3] = {
58 Metadata *Ops[2] = {MDString::get(Context, "DetailedSummary"),
68 Metadata *ProfileSummary::getMD(LLVMContext &Context) {
70 Metadata *Components[] = {
142 ProfileSummary *ProfileSummary::getFromMD(Metadata *MD) {
lib/IR/TypeFinder.cpp 156 for (Metadata *Op : V->operands()) {
lib/IR/Verifier.cpp 157 void Write(const Metadata *MD) {
265 SmallPtrSet<const Metadata *, 32> MDNodes;
271 SmallPtrSet<const Metadata *, 2> CUVisited;
431 void visitTemplateParams(const MDNode &N, const Metadata &RawParams);
797 case Metadata::MDTupleKind:
806 for (const Metadata *Op : MD.operands()) {
853 Metadata *MD = MDV.getMetadata();
868 static bool isType(const Metadata *MD) { return !MD || isa<DIType>(MD); }
869 static bool isScope(const Metadata *MD) { return !MD || isa<DIScope>(MD); }
870 static bool isDINode(const Metadata *MD) { return !MD || isa<DINode>(MD); }
875 if (auto *IA = N.getRawInlinedAt())
886 if (auto *F = N.getRawFile())
955 void Verifier::visitTemplateParams(const MDNode &N, const Metadata &RawParams) {
958 for (Metadata *Op : Params->operands()) {
997 if (auto *Params = N.getRawTemplateParams())
1006 if (auto *D = N.getRawDiscriminator()) {
1014 if (auto *Types = N.getRawTypeArray()) {
1016 for (Metadata *Ty : N.getTypeArray()->operands()) {
1061 if (auto *Array = N.getRawEnumTypes()) {
1063 for (Metadata *Op : N.getEnumTypes()->operands()) {
1069 if (auto *Array = N.getRawRetainedTypes()) {
1071 for (Metadata *Op : N.getRetainedTypes()->operands()) {
1078 if (auto *Array = N.getRawGlobalVariables()) {
1080 for (Metadata *Op : N.getGlobalVariables()->operands()) {
1085 if (auto *Array = N.getRawImportedEntities()) {
1087 for (Metadata *Op : N.getImportedEntities()->operands()) {
1092 if (auto *Array = N.getRawMacros()) {
1094 for (Metadata *Op : N.getMacros()->operands()) {
1104 if (auto *F = N.getRawFile())
1108 if (auto *T = N.getRawType())
1112 if (auto *Params = N.getRawTemplateParams())
1114 if (auto *S = N.getRawDeclaration())
1117 if (auto *RawNode = N.getRawRetainedNodes()) {
1120 for (Metadata *Op : Node->operands()) {
1129 auto *Unit = N.getRawUnit();
1142 if (auto *RawThrownTypes = N.getRawThrownTypes()) {
1145 for (Metadata *Op : ThrownTypes->operands())
1176 if (auto *S = N.getRawScope())
1178 if (auto *S = N.getRawDecl())
1184 if (auto *S = N.getRawScope())
1201 if (auto *F = N.getRawFile())
1204 if (auto *Array = N.getRawElements()) {
1206 for (Metadata *Op : N.getElements()->operands()) {
1239 if (auto *S = N.getRawScope())
1241 if (auto *F = N.getRawFile())
1252 if (auto *Member = N.getRawStaticDataMemberDeclaration()) {
1271 if (auto *S = N.getRawScope())
1273 if (auto *F = N.getRawFile())
1299 if (auto *T = N.getRawType())
1301 if (auto *F = N.getRawFile())
1309 if (auto *S = N.getRawScope())
1372 const Metadata *ReqValue = Requirement->getOperand(1);
2341 Metadata *Parent = DL->getRawScope();
4742 static DISubprogram *getSubprogram(Metadata *LocalScope) {
4917 auto *MD = cast<MetadataAsValue>(DII.getArgOperand(0))->getMetadata();
5076 SmallPtrSet<const Metadata *, 2> Listed;
lib/Linker/IRMover.cpp 378 typedef DenseMap<const Metadata *, TrackingMDRef> MDMapT;
1286 Metadata *FlagOps[] = {DstOp->getOperand(0), ID, New};
1332 SmallVector<Metadata *, 8> MDs;
1341 SmallSetVector<Metadata *, 16> Elts;
1358 Metadata *ReqValue = Requirement->getOperand(1);
lib/ProfileData/InstrProf.cpp 953 SmallVector<Metadata *, 3> Vals;
lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp 955 Metadata *LowAndHigh[] = {
lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp 96 SmallVector<Metadata *, 4> All;
lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp 74 using MDVector = SmallVector<Metadata *, 8>;
322 SmallVector<Metadata *, 6> KernelMDArgs;
lib/Target/NVPTX/NVVMIntrRange.cpp 73 Metadata *LowAndHigh[] = {
lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp 146 for (const Metadata *MD : Named->operands()) {
230 Metadata *Policy = M.getModuleFlag(MDKey);
lib/Target/X86/X86ISelLowering.cpp 3630 Metadata *IsCFProtectionSupported = M->getModuleFlag("cf-protection-branch");
45089 Metadata *IsCFProtectionSupported = M->getModuleFlag("cf-protection-branch");
lib/Target/X86/X86IndirectBranchTracking.cpp 103 Metadata *isCFProtectionSupported =
lib/Transforms/IPO/GlobalDCE.cpp 178 Metadata *TypeID = Type->getOperand(1).get();
203 void GlobalDCEPass::ScanVTableLoad(Function *Caller, Metadata *TypeId,
246 auto *TypeId = cast<MetadataAsValue>(TypeIdValue)->getMetadata();
lib/Transforms/IPO/LowerTypeTests.cpp 408 DenseMap<Metadata *, TypeIdUserInfo> TypeIdUsers;
450 buildBitSet(Metadata *TypeId,
457 ArrayRef<Metadata *> TypeIds, Constant *CombinedGlobalAddr,
459 Value *lowerTypeTestCall(Metadata *TypeId, CallInst *CI,
462 void buildBitSetsFromGlobalVariables(ArrayRef<Metadata *> TypeIds,
470 void buildBitSetsFromFunctions(ArrayRef<Metadata *> TypeIds,
472 void buildBitSetsFromFunctionsNative(ArrayRef<Metadata *> TypeIds,
474 void buildBitSetsFromFunctionsWASM(ArrayRef<Metadata *> TypeIds,
477 buildBitSetsFromDisjointSet(ArrayRef<Metadata *> TypeIds,
553 Metadata *TypeId,
687 static bool isKnownTypeIdMember(Metadata *TypeId, const DataLayout &DL,
728 Value *LowerTypeTestsModule::lowerTypeTestCall(Metadata *TypeId, CallInst *CI,
816 ArrayRef<Metadata *> TypeIds, ArrayRef<GlobalTypeMember *> Globals) {
1107 ArrayRef<Metadata *> TypeIds, Constant *CombinedGlobalAddr,
1112 for (Metadata *TypeId : TypeIds) {
1238 ArrayRef<Metadata *> TypeIds, ArrayRef<GlobalTypeMember *> Functions) {
1403 ArrayRef<Metadata *> TypeIds, ArrayRef<GlobalTypeMember *> Functions) {
1560 ArrayRef<Metadata *> TypeIds, ArrayRef<GlobalTypeMember *> Functions) {
1590 ArrayRef<Metadata *> TypeIds, ArrayRef<GlobalTypeMember *> Globals,
1592 DenseMap<Metadata *, uint64_t> TypeIdIndices;
1813 PointerUnion3<GlobalTypeMember *, Metadata *, ICallBranchFunnel *>>;
1828 DenseMap<Metadata *, TIInfo> TypeIdInfo;
2049 DenseMap<GlobalValue::GUID, TinyPtrVector<Metadata *>> MetadataByGUID;
2062 for (Metadata *MD : MetadataByGUID[G])
2084 if (auto *MD = MI->dyn_cast<Metadata *>())
2084 if (auto *MD = MI->dyn_cast<Metadata *>())
2100 std::vector<Metadata *> TypeIds;
2106 if (MI->is<Metadata *>())
2107 TypeIds.push_back(MI->get<Metadata *>());
lib/Transforms/IPO/StripSymbols.cpp 314 SmallVector<Metadata *, 64> LiveGlobalVariables;
lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp 87 DenseMap<Metadata *, Metadata *> LocalToGlobal;
87 DenseMap<Metadata *, Metadata *> LocalToGlobal;
89 Metadata *MD =
93 Metadata *&GlobalMD = LocalToGlobal[MD];
324 SmallVector<Metadata *, 4> Elts;
353 Metadata *Elts[] = {
lib/Transforms/IPO/WholeProgramDevirt.cpp 256 Metadata *TypeID;
266 return {DenseMapInfo<Metadata *>::getEmptyKey(),
270 return {DenseMapInfo<Metadata *>::getTombstoneKey(),
274 return DenseMapInfo<Metadata *>::getHashValue(I.TypeID) ^
494 DenseMap<Metadata *, std::set<TypeMemberInfo>> &TypeIdMap);
780 DenseMap<Metadata *, std::set<TypeMemberInfo>> &TypeIdMap) {
1574 Metadata *TypeId =
1612 Metadata *TypeId = cast<MetadataAsValue>(TypeIdValue)->getMetadata();
1805 DenseMap<Metadata *, std::set<TypeMemberInfo>> TypeIdMap;
1812 DenseMap<GlobalValue::GUID, TinyPtrVector<Metadata *>> MetadataByGUID;
1826 for (Metadata *MD : MetadataByGUID[VF.GUID]) {
1831 for (Metadata *MD : MetadataByGUID[VF.GUID]) {
1837 for (Metadata *MD : MetadataByGUID[VC.VFunc.GUID]) {
1845 for (Metadata *MD : MetadataByGUID[VC.VFunc.GUID]) {
lib/Transforms/InstCombine/InstCombineCalls.cpp 1247 Metadata *LowAndHigh[] = {
1284 Metadata *LowAndHigh[] = {
3691 Metadata *MDArgs[] = {MDString::get(II->getContext(), "exec")};
lib/Transforms/Instrumentation/CGProfile.cpp 87 std::vector<Metadata *> Nodes;
90 Metadata *Vals[] = {ValueAsMetadata::get(E.first.first),
lib/Transforms/Scalar/ADCE.cpp 136 SmallPtrSet<const Metadata *, 32> AliveScopes;
lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp 418 Metadata *FalseVal =
lib/Transforms/Scalar/LoopVersioningLICM.cpp 542 SmallVector<Metadata *, 4> Scopes, NoAliases;
lib/Transforms/Utils/InlineFunction.cpp 835 SmallVector<const Metadata *, 16> Queue(MD.begin(), MD.end());
857 SmallVector<Metadata *, 4> NewOps;
859 const Metadata *V = I->getOperand(i);
1034 SmallVector<Metadata *, 4> Scopes, NoAliases;
1369 SmallVector<Metadata *, 4> MDs = {nullptr};
1372 Metadata *MD = OrigLoopId->getOperand(i);
lib/Transforms/Utils/LoopUtils.cpp 202 Metadata *MDs[] = {
213 SmallVector<Metadata *, 4> MDs(1);
316 SmallVector<Metadata *, 8> MDs;
332 Metadata *NameMD = Op->getOperand(0).get();
lib/Transforms/Utils/LoopVersioning.cpp 196 SmallVector<Metadata *, 4>>
lib/Transforms/Utils/ValueMapper.cpp 156 Metadata *mapMetadata(const Metadata *MD);
156 Metadata *mapMetadata(const Metadata *MD);
184 Optional<Metadata *> mapSimpleMetadata(const Metadata *MD);
184 Optional<Metadata *> mapSimpleMetadata(const Metadata *MD);
186 Metadata *mapToMetadata(const Metadata *Key, Metadata *Val);
186 Metadata *mapToMetadata(const Metadata *Key, Metadata *Val);
186 Metadata *mapToMetadata(const Metadata *Key, Metadata *Val);
187 Metadata *mapToSelf(const Metadata *MD);
187 Metadata *mapToSelf(const Metadata *MD);
202 SmallDenseMap<const Metadata *, Data, 32> Info; // Node properties.
212 Metadata &getFwdReference(MDNode &Op);
219 SmallDenseMap<const Metadata *, Data, 32> InfoStorage;
243 Metadata *map(const MDNode &N);
265 Metadata *mapTopLevelUniquedNode(const MDNode &FirstN);
275 Optional<Metadata *> tryToMapOperand(const Metadata *Op);
275 Optional<Metadata *> tryToMapOperand(const Metadata *Op);
287 Optional<Metadata *> getMappedOp(const Metadata *Op) const;
287 Optional<Metadata *> getMappedOp(const Metadata *Op) const;
379 const Metadata *MD = MDV->getMetadata();
403 auto *MappedMD = mapMetadata(MD);
507 Metadata *Mapper::mapToMetadata(const Metadata *Key, Metadata *Val) {
507 Metadata *Mapper::mapToMetadata(const Metadata *Key, Metadata *Val) {
507 Metadata *Mapper::mapToMetadata(const Metadata *Key, Metadata *Val) {
512 Metadata *Mapper::mapToSelf(const Metadata *MD) {
512 Metadata *Mapper::mapToSelf(const Metadata *MD) {
516 Optional<Metadata *> MDNodeMapper::tryToMapOperand(const Metadata *Op) {
516 Optional<Metadata *> MDNodeMapper::tryToMapOperand(const Metadata *Op) {
520 if (Optional<Metadata *> MappedOp = M.mapSimpleMetadata(Op)) {
539 static Metadata *cloneOrBuildODR(const MDNode &N) {
566 Optional<Metadata *> MDNodeMapper::getMappedOp(const Metadata *Op) const {
566 Optional<Metadata *> MDNodeMapper::getMappedOp(const Metadata *Op) const {
570 if (Optional<Metadata *> MappedOp = M.getVM().getMappedMD(Op))
582 Metadata &MDNodeMapper::UniquedGraph::getFwdReference(MDNode &Op) {
601 Metadata *Old = N.getOperand(I);
602 Metadata *New = mapOperand(Old);
660 Metadata *Op = *I++; // Increment even on early return.
661 if (Optional<Metadata *> MappedOp = tryToMapOperand(Op)) {
714 if (Optional<Metadata *> MappedOp = getMappedOp(Old))
736 Metadata *MDNodeMapper::map(const MDNode &N) {
744 Metadata *MappedN =
748 if (Optional<Metadata *> MappedOp = tryToMapOperand(Old))
755 Metadata *MDNodeMapper::mapTopLevelUniquedNode(const MDNode &FirstN) {
777 Optional<Metadata *> Mapper::mapSimpleMetadata(const Metadata *MD) {
777 Optional<Metadata *> Mapper::mapSimpleMetadata(const Metadata *MD) {
779 if (Optional<Metadata *> NewMD = getVM().getMappedMD(MD))
803 Metadata *Mapper::mapMetadata(const Metadata *MD) {
803 Metadata *Mapper::mapMetadata(const Metadata *MD) {
807 if (Optional<Metadata *> NewMD = mapSimpleMetadata(MD))
1102 Metadata *ValueMapper::mapMetadata(const Metadata &MD) {
1102 Metadata *ValueMapper::mapMetadata(const Metadata &MD) {
lib/Transforms/Vectorize/LoopVectorizationLegality.cpp 192 SmallVector<Metadata *, 4> Args;
217 void LoopVectorizeHints::setHint(StringRef Name, Metadata *Arg) {
lib/Transforms/Vectorize/LoopVectorize.cpp 6581 SmallVector<Metadata *, 4> MDs;
6602 SmallVector<Metadata *, 1> DisableOperands;
tools/clang/lib/CodeGen/CGBuiltin.cpp 3112 SmallVector<Metadata *, 1> Strings;
5929 llvm::Metadata *Ops[] = { llvm::MDString::get(Context, SysReg) };
7255 llvm::Metadata *Ops[] = {llvm::MDString::get(Context, Reg)};
7428 llvm::Metadata *Ops[] = { llvm::MDString::get(Context, SysRegStr) };
tools/clang/lib/CodeGen/CGClass.cpp 2645 llvm::Metadata *MD =
2754 llvm::Metadata *MD =
2811 llvm::Metadata *MD =
tools/clang/lib/CodeGen/CGDebugInfo.cpp 212 llvm::Metadata *V = I->second;
423 if (llvm::Metadata *V = It->second)
1035 unsigned LineNo, SmallVectorImpl<llvm::Metadata *> &EltTys) {
1071 SmallVector<llvm::Metadata *, 8> EltTys;
1196 SmallVector<llvm::Metadata *, 16> EltTys;
1302 const CXXRecordDecl *CXXDecl, SmallVectorImpl<llvm::Metadata *> &elements,
1374 SmallVectorImpl<llvm::Metadata *> &elements, llvm::DIType *RecordTy,
1397 const TypeDecl *TD, SmallVectorImpl<llvm::Metadata *> &elements) {
1409 SmallVectorImpl<llvm::Metadata *> &elements,
1482 SmallVector<llvm::Metadata *, 16> Elts;
1646 SmallVectorImpl<llvm::Metadata *> &EltTys, llvm::DIType *RecordTy) {
1683 SmallVectorImpl<llvm::Metadata *> &EltTys,
1699 SmallVectorImpl<llvm::Metadata *> &EltTys, llvm::DIType *RecordTy,
1748 SmallVector<llvm::Metadata *, 16> TemplateParams;
1900 llvm::Metadata *STy = getOrCreateType(Context.IntTy, Unit);
1972 SmallVectorImpl<llvm::Metadata *> &EltTys,
2257 SmallVector<llvm::Metadata *, 16> EltTys;
2472 SmallVector<llvm::Metadata *, 16> EltTys;
2613 llvm::Metadata *Subscript;
2655 SmallVector<llvm::Metadata *, 8> Subscripts;
2811 SmallVector<llvm::Metadata *, 16> Enumerators;
2921 if (llvm::Metadata *V = It->second)
3481 SmallVector<llvm::Metadata *, 16> Elts;
3521 SmallVector<llvm::Metadata *, 16> EltTys;
3836 SmallVector<llvm::Metadata *, 5> EltTys;
4177 SmallVectorImpl<llvm::Metadata *> &Fields) {
4233 SmallVector<llvm::Metadata *, 16> fields;
4687 SmallVector<llvm::Metadata *, 16> EltTys;
4713 llvm::Metadata *Repl;
tools/clang/lib/CodeGen/CGDebugInfo.h 90 llvm::SmallDenseMap<QualType, llvm::Metadata *> SizeExprCache;
230 SmallVectorImpl<llvm::Metadata *> &E,
237 SmallVectorImpl<llvm::Metadata *> &EltTys,
244 SmallVectorImpl<llvm::Metadata *> &EltTys, llvm::DIType *RecordTy,
292 SmallVectorImpl<llvm::Metadata *> &E,
299 SmallVectorImpl<llvm::Metadata *> &E,
302 SmallVectorImpl<llvm::Metadata *> &E);
304 SmallVectorImpl<llvm::Metadata *> &E,
310 SmallVectorImpl<llvm::Metadata *> &EltTys,
333 SmallVectorImpl<llvm::Metadata *> &EltTys);
340 SmallVectorImpl<llvm::Metadata *> &Fields);
352 void registerVLASizeExpression(QualType Ty, llvm::Metadata *SizeExpr) {
tools/clang/lib/CodeGen/CGDecl.cpp 1349 llvm::Metadata *MD;
tools/clang/lib/CodeGen/CGExpr.cpp 2452 llvm::Metadata *Ops[] = {Str};
4847 llvm::Metadata *MD;
tools/clang/lib/CodeGen/CGLoopInfo.cpp 22 LoopInfo::createLoopPropertiesMetadata(ArrayRef<Metadata *> LoopProperties) {
24 SmallVector<Metadata *, 4> NewLoopProperties;
35 ArrayRef<Metadata *> LoopProperties,
46 SmallVector<Metadata *, 4> NewLoopProperties;
58 SmallVector<Metadata *, 4> Args;
64 Metadata *Vals[] = {
81 ArrayRef<Metadata *> LoopProperties,
100 SmallVector<Metadata *, 4> FollowupLoopProperties;
113 SmallVector<Metadata *, 4> Args;
120 Metadata *Vals[] = {MDString::get(Ctx, "llvm.loop.unroll.count"),
128 Metadata *Vals[] = {MDString::get(Ctx, "llvm.loop.unroll.enable")};
144 ArrayRef<Metadata *> LoopProperties,
156 SmallVector<Metadata *, 4> NewLoopProperties;
167 SmallVector<Metadata *, 4> FollowupLoopProperties;
176 SmallVector<Metadata *, 4> Args;
183 Metadata *Vals[] = {
191 Metadata *Vals[] = {MDString::get(Ctx, "llvm.loop.unroll_and_jam.enable")};
213 ArrayRef<Metadata *> LoopProperties,
226 SmallVector<Metadata *, 4> NewLoopProperties;
239 SmallVector<Metadata *, 4> FollowupLoopProperties;
250 SmallVector<Metadata *, 4> Args;
264 Metadata *Vals[] = {
273 Metadata *Vals[] = {
282 Metadata *Vals[] = {
292 Metadata *Vals[] = {
315 ArrayRef<Metadata *> LoopProperties,
326 SmallVector<Metadata *, 4> NewLoopProperties;
343 SmallVector<Metadata *, 4> Args;
348 Metadata *Vals[] = {MDString::get(Ctx, "llvm.loop.distribute.enable"),
366 ArrayRef<Metadata *> LoopProperties,
377 SmallVector<Metadata *, 4> NewLoopProperties;
388 SmallVector<Metadata *, 4> Args;
405 llvm::ArrayRef<llvm::Metadata *> AdditionalLoopProperties,
407 SmallVector<Metadata *, 3> LoopProperties;
542 SmallVector<Metadata *, 1> BeforeLoopProperties;
766 SmallVector<Metadata *, 4> AccessGroups;
tools/clang/lib/CodeGen/CGLoopInfo.h 125 createLoopPropertiesMetadata(llvm::ArrayRef<llvm::Metadata *> LoopProperties);
146 llvm::ArrayRef<llvm::Metadata *> LoopProperties,
150 llvm::ArrayRef<llvm::Metadata *> LoopProperties,
154 llvm::ArrayRef<llvm::Metadata *> LoopProperties,
158 llvm::ArrayRef<llvm::Metadata *> LoopProperties,
162 llvm::ArrayRef<llvm::Metadata *> LoopProperties,
166 llvm::ArrayRef<llvm::Metadata *> LoopProperties,
183 llvm::ArrayRef<llvm::Metadata *> LoopProperties,
tools/clang/lib/CodeGen/CGObjC.cpp 3725 llvm::Metadata *Args[2] = {llvm::MDString::get(Context, "-framework"),
tools/clang/lib/CodeGen/CGObjCGNU.cpp 2596 llvm::Metadata *impMD[] = {
2672 llvm::Metadata *impMD[] = {
tools/clang/lib/CodeGen/CGObjCMac.cpp 5001 llvm::Metadata *Ops[2] = {
tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp 4098 llvm::Metadata *Ops[] = {GetMDInt(E.getKind()), GetMDInt(DeviceID),
4137 llvm::Metadata *Ops[] = {
tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp 1848 llvm::Metadata *MDVals[] = {
tools/clang/lib/CodeGen/CGStmt.cpp 1887 SmallVector<llvm::Metadata *, 8> Locs;
tools/clang/lib/CodeGen/CGVTables.cpp 1120 llvm::Metadata *MD = CreateMetadataIdentifierForVirtualMemPtrType(
tools/clang/lib/CodeGen/CodeGenFunction.cpp 552 llvm::Metadata *AttrMDArgs[] = {
562 llvm::Metadata *AttrMDArgs[] = {
570 llvm::Metadata *AttrMDArgs[] = {
579 llvm::Metadata *AttrMDArgs[] = {
tools/clang/lib/CodeGen/CodeGenModule.cpp 498 llvm::Metadata *Ops[2] = {
573 llvm::Metadata *SPIRVerElts[] = {
635 llvm::Metadata *OCLVerElts[] = {
1209 llvm::ConstantInt *CodeGenModule::CreateCrossDsoCfiTypeId(llvm::Metadata *MD) {
1275 SmallVector<llvm::Metadata *, 8> addressQuals;
1278 SmallVector<llvm::Metadata *, 8> accessQuals;
1281 SmallVector<llvm::Metadata *, 8> argTypeNames;
1284 SmallVector<llvm::Metadata *, 8> argBaseTypeNames;
1287 SmallVector<llvm::Metadata *, 8> argTypeQuals;
1290 SmallVector<llvm::Metadata *, 8> argNames;
1630 llvm::Metadata *Id =
1781 llvm::Metadata *MD = CreateMetadataIdentifierForType(FD->getType());
1984 llvm::Metadata *Args[2] = {
1994 llvm::Metadata *Args[2] = {
5569 llvm::Metadata *Ops[] = {llvm::ConstantAsMetadata::get(Addr),
5652 llvm::Metadata *IdentNode[] = {llvm::MDString::get(Ctx, Version)};
5662 llvm::Metadata *CommandLineNode[] = {llvm::MDString::get(Ctx, CommandLine)};
5698 llvm::Metadata *Elts[] = {CoverageNotesFile, CoverageDataFile, CU};
5763 llvm::Metadata *
5766 llvm::Metadata *&InternalId = Map[T.getCanonicalType()];
5785 llvm::Metadata *CodeGenModule::CreateMetadataIdentifierForType(QualType T) {
5789 llvm::Metadata *
5826 llvm::Metadata *CodeGenModule::CreateMetadataIdentifierGeneralized(QualType T) {
5848 llvm::Metadata *MD =
5858 llvm::Metadata *MD = llvm::MDString::get(getLLVMContext(), "all-vtables");
tools/clang/lib/CodeGen/CodeGenModule.h 545 typedef llvm::DenseMap<QualType, llvm::Metadata *> MetadataTypeMap;
1307 llvm::ConstantInt *CreateCrossDsoCfiTypeId(llvm::Metadata *MD);
1312 llvm::Metadata *CreateMetadataIdentifierForType(QualType T);
1316 llvm::Metadata *CreateMetadataIdentifierForVirtualMemPtrType(QualType T);
1321 llvm::Metadata *CreateMetadataIdentifierGeneralized(QualType T);
1523 llvm::Metadata *CreateMetadataIdentifierImpl(QualType T, MetadataTypeMap &Map,
tools/clang/lib/CodeGen/CodeGenTBAA.cpp 62 llvm::Metadata *Id = MDHelper.createString(Name);
329 llvm::Metadata *Id = MDHelper.createString(OutName);
tools/clang/lib/CodeGen/ItaniumCXXABI.cpp 665 llvm::Metadata *MD =
753 llvm::Metadata *MD = CGM.CreateMetadataIdentifierForType(
tools/clang/lib/CodeGen/SanitizerMetadata.cpp 38 llvm::Metadata *LocDescr = nullptr;
39 llvm::Metadata *GlobalName = nullptr;
49 llvm::Metadata *GlobalMetadata[] = {
95 llvm::Metadata *LocMetadata[] = {
tools/clang/lib/CodeGen/TargetInfo.cpp 6522 llvm::Metadata *MDVals[] = {
7401 SmallVector<llvm::Metadata *, 5> Operands;
8873 llvm::Metadata *MDVals[] = {llvm::ConstantAsMetadata::get(GV),
9930 llvm::SmallVector<llvm::Metadata *, 8> AddressQuals;
9931 llvm::SmallVector<llvm::Metadata *, 8> AccessQuals;
9932 llvm::SmallVector<llvm::Metadata *, 8> ArgTypeNames;
9933 llvm::SmallVector<llvm::Metadata *, 8> ArgBaseTypeNames;
9934 llvm::SmallVector<llvm::Metadata *, 8> ArgTypeQuals;
9935 llvm::SmallVector<llvm::Metadata *, 8> ArgNames;
tools/clang/unittests/CodeGen/IRMatchers.h 61 PointerUnion3<const Value *, const Metadata *, const Type *> Entity;
66 Query(const Metadata *M, unsigned N) : Entity(M), OperandNo(N) {}
70 const T *get() const {
71 return Entity.dyn_cast<const T *>();
78 void push(const T *V, unsigned N = ~0) {
85 const T *top() const { return MatchStack.back().get<T>(); }
85 const T *top() const { return MatchStack.back().get<T>(); }
124 if (auto V = MC.top<T>())
128 virtual bool matchEntity(const T &M, MatcherContext &C) = 0;
135 class AnyMatcher : public EntityMatcher<T> {
137 bool matchEntity(const T &M, MatcherContext &C) override { return true; }
159 class SavingMatcher : public EntityMatcher<T> {
160 const T *&Var;
163 SavingMatcher(const T *&V, std::shared_ptr<Matcher> N) : Var(V), Next(N) {}
164 bool matchEntity(const T &V, MatcherContext &C) override {
184 if (const Metadata *MR = StackRec.get<Metadata>()) {
184 if (const Metadata *MR = StackRec.get<Metadata>()) {
187 return C.top<Metadata>() == MT->getOperand(OpNo).get();
220 if (const Metadata *M = Ctx.top<Metadata>()) {
220 if (const Metadata *M = Ctx.top<Metadata>()) {
235 std::shared_ptr<EntityMatcher<Metadata>> MetaMatcher = nullptr;
240 void push(std::shared_ptr<EntityMatcher<Metadata>> M) {
314 class NameMetaMatcher : public EntityMatcher<Metadata> {
318 bool matchEntity(const Metadata &M, MatcherContext &C) override {
328 class MTupleMatcher : public EntityMatcher<Metadata> {
337 bool matchEntity(const Metadata &M, MatcherContext &C) override {
388 inline std::shared_ptr<EntityMatcher<Metadata>> MMAny() {
389 return std::shared_ptr<EntityMatcher<Metadata>>(new AnyMatcher<Metadata>);
392 inline std::shared_ptr<EntityMatcher<Metadata>>
393 MMSave(const Metadata *&V, std::shared_ptr<EntityMatcher<Metadata>> M) {
393 MMSave(const Metadata *&V, std::shared_ptr<EntityMatcher<Metadata>> M) {
395 new SavingMatcher<Metadata>(V, M));
398 inline std::shared_ptr<EntityMatcher<Metadata>> MMString(const char *Name) {
403 std::shared_ptr<EntityMatcher<Metadata>> MMTuple(T... Args) {
tools/clang/unittests/CodeGen/TBAAMetadataTest.cpp 367 const Metadata *MetaABC = nullptr;
392 const Metadata *MetaCDE = nullptr;
459 const Metadata *MetaABC = nullptr;
484 const Metadata *MetaCDE = nullptr;
tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp 360 llvm::Metadata *values[2];
364 ArrayRef<Metadata *> value_ref(values, 2);
1116 llvm::Metadata *values[2];
1120 ArrayRef<llvm::Metadata *> value_ref(values, 2);
tools/polly/lib/CodeGen/IRBuilder.cpp 32 static MDNode *getID(LLVMContext &Ctx, Metadata *arg0 = nullptr,
33 Metadata *arg1 = nullptr) {
35 SmallVector<Metadata *, 3> Args;
89 Metadata *Args = {AliasScopePair.second};
128 SmallVector<Metadata *, 3> Args;
179 Metadata *Args = {SecondLevelAliasScope};
unittests/CodeGen/MachineOperandTest.cpp 298 Metadata *MDS = MDString::get(Ctx, "foo");
unittests/IR/IRBuilderTest.cpp 887 SmallVector<Metadata *, 4> Elements;
unittests/IR/MDBuilderTest.cpp 38 Metadata *Op = MD1->getOperand(0);
unittests/IR/MetadataTest.cpp 74 MDNode *getNode(Metadata *MD) { return MDNode::get(Context, MD); }
75 MDNode *getNode(Metadata *MD1, Metadata *MD2) {
75 MDNode *getNode(Metadata *MD1, Metadata *MD2) {
76 Metadata *MDs[] = {MD1, MD2};
182 std::vector<Metadata *> V;
188 Metadata *const c1 = n1;
190 Metadata *const c2 = n2;
214 Metadata *const V = LocalAsMetadata::get(I);
228 Metadata *Args[] = {Temp.get()};
246 Metadata *Args[] = {Temp.get(), MDNode::get(Context, None)};
268 Metadata *Args[] = {ConstantAsMetadata::get(C), S, nullptr, N0, N1, N2};
327 Metadata *Args[] = {ConstantAsMetadata::get(C), S, nullptr, N0, N1, N2};
431 Metadata *Ops[] = {Empty};
453 Metadata *Wrapped1Ops[] = {Empty};
460 Metadata *Wrapped2Ops[] = {Wrapped1};
478 Metadata *Ops[] = {T.get()};
484 Metadata *NullOps[] = {nullptr};
496 Metadata *Ops[] = {Op};
503 Metadata *NullOps[] = {nullptr};
560 Metadata *Ops[] = {Temp.get()};
577 Metadata *Ops1[] = {Temp3.get(), nullptr};
581 Metadata *Ops2[] = {Temp3.get(), N0};
585 Metadata *Ops3[] = {N2};
590 Metadata *Ops4[] = {N1};
604 Metadata *Ops5[] = {N2};
606 Metadata *Ops6[] = {N3};
641 Metadata *Ops[] = {nullptr, Temp.get()};
664 Metadata *Ops[] = {Empty};
676 Metadata *Ops[] = {Empty};
688 Metadata *Ops[] = {Unresolved.get()};
713 Metadata *Ops[] = {Op};
735 Metadata *Ops[] = {Op};
746 Metadata *NullOps[] = {nullptr};
758 Metadata *Ops[] = {Op};
770 Metadata *NullOps[] = {ConstantAsMetadata::get(GV2.get())};
777 Metadata *Ops[] = {Empty};
790 Metadata *Ops[] = {Unresolved.get()};
807 Metadata *Ops[] = {nullptr};
1096 Metadata *Ops1[] = {Empty};
1115 Metadata *Ops2[] = {nullptr};
1269 Metadata *TypesOps[] = {nullptr};
1270 Metadata *Types = MDTuple::get(Context, TypesOps);
2106 Metadata *Value = getConstantAsMetadata();
2496 Metadata *Ops[] = {N};
2514 Metadata *Ops[] = {MD};
2568 Metadata *Ops1[] = {CI, CI, Temp.get()};
2569 Metadata *Ops2[] = {nullptr, CI, Temp.get()};
2625 Metadata *const V = C;
2626 Metadata *const V2 = C2;
2787 Metadata *Ops[] = {&PH0, &PH1, &PH2};
unittests/ProfileData/InstrProfTest.cpp 183 Metadata *MD = PS.getMD(Context);
unittests/ProfileData/SampleProfTest.cpp 243 Metadata *MD = Summary.getMD(Context);
unittests/Transforms/Utils/ValueMapperTest.cpp 35 Metadata *Ops[] = {nullptr};
79 Metadata *Ops1[] = {T0.get(), ConstantAsMetadata::get(G0.get())};
133 Metadata *Old = MDTuple::getDistinct(Context, None);
137 Metadata *New = MDTuple::getDistinct(Context, None);
258 auto *F2MD = ValueMapper(VM).mapMetadata(*CAM);
usr/include/c++/7.4.0/type_traits 381 : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
1554 { typedef _Tp type; };
1558 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1983 { typedef _Up type; };
utils/unittest/googletest/include/gtest/gtest-printers.h 407 T* p, ::std::ostream* os) {
416 if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {
utils/unittest/googletest/include/gtest/gtest.h 1475 T* rhs) {