X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FIR%2FMetadata.def;h=9d6f929be34999999b82406ca9c40febe8f9ad3f;hb=2b762697564ca1e12e0e974e93ceeb4c3420505c;hp=fa4274b16313d567a816c651e670b7357245ea1c;hpb=887a8678629406379d79aa123f9c2e2b72d9cdac;p=oota-llvm.git diff --git a/include/llvm/IR/Metadata.def b/include/llvm/IR/Metadata.def index fa4274b1631..9d6f929be34 100644 --- a/include/llvm/IR/Metadata.def +++ b/include/llvm/IR/Metadata.def @@ -13,7 +13,8 @@ #if !(defined HANDLE_METADATA || defined HANDLE_METADATA_LEAF || \ defined HANDLE_METADATA_BRANCH || defined HANDLE_MDNODE_LEAF || \ - defined HANDLE_MDNODE_BRANCH || \ + defined HANDLE_MDNODE_LEAF_UNIQUABLE || defined HANDLE_MDNODE_BRANCH || \ + defined HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE || \ defined HANDLE_SPECIALIZED_MDNODE_LEAF || \ defined HANDLE_SPECIALIZED_MDNODE_BRANCH) #error "Missing macro definition of HANDLE_METADATA*" @@ -34,6 +35,24 @@ #define HANDLE_METADATA_BRANCH(CLASS) HANDLE_METADATA(CLASS) #endif +// Handler for specialized and uniquable leaf nodes under MDNode. Defers to +// HANDLE_MDNODE_LEAF_UNIQUABLE if it's defined, otherwise to +// HANDLE_SPECIALIZED_MDNODE_LEAF. +#ifndef HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE +#ifdef HANDLE_MDNODE_LEAF_UNIQUABLE +#define HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(CLASS) \ + HANDLE_MDNODE_LEAF_UNIQUABLE(CLASS) +#else +#define HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(CLASS) \ + HANDLE_SPECIALIZED_MDNODE_LEAF(CLASS) +#endif +#endif + +// Handler for leaf nodes under MDNode. +#ifndef HANDLE_MDNODE_LEAF_UNIQUABLE +#define HANDLE_MDNODE_LEAF_UNIQUABLE(CLASS) HANDLE_MDNODE_LEAF(CLASS) +#endif + // Handler for leaf nodes under MDNode. #ifndef HANDLE_MDNODE_LEAF #define HANDLE_MDNODE_LEAF(CLASS) HANDLE_METADATA_LEAF(CLASS) @@ -59,41 +78,43 @@ HANDLE_METADATA_BRANCH(ValueAsMetadata) HANDLE_METADATA_LEAF(ConstantAsMetadata) HANDLE_METADATA_LEAF(LocalAsMetadata) HANDLE_MDNODE_BRANCH(MDNode) -HANDLE_MDNODE_LEAF(MDTuple) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDLocation) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDExpression) -HANDLE_SPECIALIZED_MDNODE_BRANCH(DebugNode) -HANDLE_SPECIALIZED_MDNODE_LEAF(GenericDebugNode) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDSubrange) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDEnumerator) -HANDLE_SPECIALIZED_MDNODE_BRANCH(MDScope) -HANDLE_SPECIALIZED_MDNODE_BRANCH(MDType) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDBasicType) -HANDLE_SPECIALIZED_MDNODE_BRANCH(MDDerivedTypeBase) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDDerivedType) -HANDLE_SPECIALIZED_MDNODE_BRANCH(MDCompositeTypeBase) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDCompositeType) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDSubroutineType) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDFile) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDCompileUnit) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDSubprogram) -HANDLE_SPECIALIZED_MDNODE_BRANCH(MDLexicalBlockBase) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDLexicalBlock) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDLexicalBlockFile) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDNamespace) -HANDLE_SPECIALIZED_MDNODE_BRANCH(MDTemplateParameter) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDTemplateTypeParameter) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDTemplateValueParameter) -HANDLE_SPECIALIZED_MDNODE_BRANCH(MDVariable) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDGlobalVariable) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDLocalVariable) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDObjCProperty) -HANDLE_SPECIALIZED_MDNODE_LEAF(MDImportedEntity) +HANDLE_MDNODE_LEAF_UNIQUABLE(MDTuple) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DILocation) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIExpression) +HANDLE_SPECIALIZED_MDNODE_BRANCH(DINode) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(GenericDINode) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DISubrange) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIEnumerator) +HANDLE_SPECIALIZED_MDNODE_BRANCH(DIScope) +HANDLE_SPECIALIZED_MDNODE_BRANCH(DIType) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIBasicType) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIDerivedType) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DICompositeType) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DISubroutineType) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIFile) +HANDLE_SPECIALIZED_MDNODE_LEAF(DICompileUnit) +HANDLE_SPECIALIZED_MDNODE_BRANCH(DILocalScope) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DISubprogram) +HANDLE_SPECIALIZED_MDNODE_BRANCH(DILexicalBlockBase) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DILexicalBlock) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DILexicalBlockFile) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DINamespace) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIModule) +HANDLE_SPECIALIZED_MDNODE_BRANCH(DITemplateParameter) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DITemplateTypeParameter) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DITemplateValueParameter) +HANDLE_SPECIALIZED_MDNODE_BRANCH(DIVariable) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIGlobalVariable) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DILocalVariable) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIObjCProperty) +HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIImportedEntity) #undef HANDLE_METADATA #undef HANDLE_METADATA_LEAF #undef HANDLE_METADATA_BRANCH #undef HANDLE_MDNODE_LEAF +#undef HANDLE_MDNODE_LEAF_UNIQUABLE #undef HANDLE_MDNODE_BRANCH #undef HANDLE_SPECIALIZED_MDNODE_LEAF +#undef HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE #undef HANDLE_SPECIALIZED_MDNODE_BRANCH