From: Duncan P. N. Exon Smith Date: Tue, 21 Apr 2015 20:07:38 +0000 (+0000) Subject: DebugInfo: Remove DIArray and DITypeArray typedefs X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=1cacd28c3b2e5f406d8f678ab8fa1a6d03c3713e;p=oota-llvm.git DebugInfo: Remove DIArray and DITypeArray typedefs Remove the `DIArray` and `DITypeArray` typedefs, preferring the underlying types (`DebugNodeArray` and `MDTypeRefArray`, respectively). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235413 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/bindings/go/llvm/DIBuilderBindings.cpp b/bindings/go/llvm/DIBuilderBindings.cpp index d31c5850389..48f58b849a3 100644 --- a/bindings/go/llvm/DIBuilderBindings.cpp +++ b/bindings/go/llvm/DIBuilderBindings.cpp @@ -118,7 +118,7 @@ LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Dref, LLVMMetadataRef File, DIBuilder *D = unwrap(Dref); return wrap( D->createSubroutineType(File ? unwrap(File) : nullptr, - DITypeArray(unwrap(ParameterTypes)))); + MDTypeRefArray(unwrap(ParameterTypes)))); } LLVMMetadataRef LLVMDIBuilderCreateStructType( @@ -131,7 +131,7 @@ LLVMMetadataRef LLVMDIBuilderCreateStructType( unwrap(Scope), Name, File ? unwrap(File) : nullptr, Line, SizeInBits, AlignInBits, Flags, DerivedFrom ? unwrap(DerivedFrom) : nullptr, - ElementTypes ? DIArray(unwrap(ElementTypes)) : nullptr)); + ElementTypes ? DebugNodeArray(unwrap(ElementTypes)) : nullptr)); } LLVMMetadataRef LLVMDIBuilderCreateReplaceableCompositeType( @@ -165,7 +165,7 @@ LLVMMetadataRef LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Dref, DIBuilder *D = unwrap(Dref); return wrap(D->createArrayType(SizeInBits, AlignInBits, unwrap(ElementType), - DIArray(unwrap(Subscripts)))); + DebugNodeArray(unwrap(Subscripts)))); } LLVMMetadataRef LLVMDIBuilderCreateTypedef(LLVMDIBuilderRef Dref, @@ -190,7 +190,7 @@ LLVMMetadataRef LLVMDIBuilderGetOrCreateArray(LLVMDIBuilderRef Dref, DIBuilder *D = unwrap(Dref); Metadata **DataValue = unwrap(Data); ArrayRef Elements(DataValue, Length); - DIArray A = D->getOrCreateArray(Elements); + DebugNodeArray A = D->getOrCreateArray(Elements); return wrap(A.get()); } @@ -200,7 +200,7 @@ LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray(LLVMDIBuilderRef Dref, DIBuilder *D = unwrap(Dref); Metadata **DataValue = unwrap(Data); ArrayRef Elements(DataValue, Length); - DITypeArray A = D->getOrCreateTypeArray(Elements); + MDTypeRefArray A = D->getOrCreateTypeArray(Elements); return wrap(A.get()); } diff --git a/include/llvm/IR/DIBuilder.h b/include/llvm/IR/DIBuilder.h index 983f2fc70c0..0ed97b6b856 100644 --- a/include/llvm/IR/DIBuilder.h +++ b/include/llvm/IR/DIBuilder.h @@ -260,14 +260,12 @@ namespace llvm { /// for more info. /// @param TemplateParms Template type parameters. /// @param UniqueIdentifier A unique identifier for the class. - MDCompositeType *createClassType(MDScope *Scope, StringRef Name, - MDFile *File, unsigned LineNumber, - uint64_t SizeInBits, uint64_t AlignInBits, - uint64_t OffsetInBits, unsigned Flags, - MDType *DerivedFrom, DIArray Elements, - MDType *VTableHolder = nullptr, - MDNode *TemplateParms = nullptr, - StringRef UniqueIdentifier = ""); + MDCompositeType *createClassType( + MDScope *Scope, StringRef Name, MDFile *File, unsigned LineNumber, + uint64_t SizeInBits, uint64_t AlignInBits, uint64_t OffsetInBits, + unsigned Flags, MDType *DerivedFrom, DebugNodeArray Elements, + MDType *VTableHolder = nullptr, MDNode *TemplateParms = nullptr, + StringRef UniqueIdentifier = ""); /// createStructType - Create debugging information entry for a struct. /// @param Scope Scope in which this struct is defined. @@ -283,7 +281,7 @@ namespace llvm { MDCompositeType *createStructType( MDScope *Scope, StringRef Name, MDFile *File, unsigned LineNumber, uint64_t SizeInBits, uint64_t AlignInBits, unsigned Flags, - MDType *DerivedFrom, DIArray Elements, unsigned RunTimeLang = 0, + MDType *DerivedFrom, DebugNodeArray Elements, unsigned RunTimeLang = 0, MDType *VTableHolder = nullptr, StringRef UniqueIdentifier = ""); /// createUnionType - Create debugging information entry for an union. @@ -300,7 +298,7 @@ namespace llvm { MDCompositeType *createUnionType(MDScope *Scope, StringRef Name, MDFile *File, unsigned LineNumber, uint64_t SizeInBits, uint64_t AlignInBits, - unsigned Flags, DIArray Elements, + unsigned Flags, DebugNodeArray Elements, unsigned RunTimeLang = 0, StringRef UniqueIdentifier = ""); @@ -341,7 +339,7 @@ namespace llvm { MDTemplateValueParameter *createTemplateParameterPack(MDScope *Scope, StringRef Name, MDType *Ty, - DIArray Val); + DebugNodeArray Val); /// createArrayType - Create debugging information entry for an array. /// @param Size Array size. @@ -349,7 +347,7 @@ namespace llvm { /// @param Ty Element type. /// @param Subscripts Subscripts. MDCompositeType *createArrayType(uint64_t Size, uint64_t AlignInBits, - MDType *Ty, DIArray Subscripts); + MDType *Ty, DebugNodeArray Subscripts); /// createVectorType - Create debugging information entry for a vector type. /// @param Size Array size. @@ -357,7 +355,7 @@ namespace llvm { /// @param Ty Element type. /// @param Subscripts Subscripts. MDCompositeType *createVectorType(uint64_t Size, uint64_t AlignInBits, - MDType *Ty, DIArray Subscripts); + MDType *Ty, DebugNodeArray Subscripts); /// createEnumerationType - Create debugging information entry for an /// enumeration. @@ -372,7 +370,7 @@ namespace llvm { /// @param UniqueIdentifier A unique identifier for the enum. MDCompositeType *createEnumerationType( MDScope *Scope, StringRef Name, MDFile *File, unsigned LineNumber, - uint64_t SizeInBits, uint64_t AlignInBits, DIArray Elements, + uint64_t SizeInBits, uint64_t AlignInBits, DebugNodeArray Elements, MDType *UnderlyingType, StringRef UniqueIdentifier = ""); /// createSubroutineType - Create subroutine type. @@ -382,7 +380,7 @@ namespace llvm { /// @param Flags E.g.: LValueReference. /// These flags are used to emit dwarf attributes. MDSubroutineType *createSubroutineType(MDFile *File, - DITypeArray ParameterTypes, + MDTypeRefArray ParameterTypes, unsigned Flags = 0); /// createArtificialType - Create a new MDType* with "artificial" flag set. @@ -415,11 +413,11 @@ namespace llvm { /// for a subroutine type. MDBasicType *createUnspecifiedParameter(); - /// getOrCreateArray - Get a DIArray, create one if required. - DIArray getOrCreateArray(ArrayRef Elements); + /// getOrCreateArray - Get a DebugNodeArray, create one if required. + DebugNodeArray getOrCreateArray(ArrayRef Elements); - /// getOrCreateTypeArray - Get a DITypeArray, create one if required. - DITypeArray getOrCreateTypeArray(ArrayRef Elements); + /// getOrCreateTypeArray - Get a MDTypeRefArray, create one if required. + MDTypeRefArray getOrCreateTypeArray(ArrayRef Elements); /// getOrCreateSubrange - Create a descriptor for a value range. This /// implicitly uniques the values returned. @@ -664,8 +662,8 @@ namespace llvm { /// If \c T is resolved, but the arrays aren't -- which can happen if \c T /// has a self-reference -- \a DIBuilder needs to track the array to /// resolve cycles. - void replaceArrays(MDCompositeType *&T, DIArray Elements, - DIArray TParems = DIArray()); + void replaceArrays(MDCompositeType *&T, DebugNodeArray Elements, + DebugNodeArray TParems = DebugNodeArray()); /// \brief Replace a temporary node. /// diff --git a/include/llvm/IR/DebugInfo.h b/include/llvm/IR/DebugInfo.h index c12cc0c1c94..b32bdb63733 100644 --- a/include/llvm/IR/DebugInfo.h +++ b/include/llvm/IR/DebugInfo.h @@ -36,9 +36,6 @@ class DbgValueInst; /// \brief Maps from type identifier to the actual MDNode. typedef DenseMap DITypeIdentifierMap; -typedef DebugNodeArray DIArray; -typedef MDTypeRefArray DITypeArray; - /// \brief Find subprogram that is enclosing this scope. MDSubprogram *getDISubprogram(const MDNode *Scope); diff --git a/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index e661ddcd567..dbaf1c65273 100644 --- a/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -570,7 +570,7 @@ void DwarfCompileUnit::constructSubprogramScopeDIE(LexicalScope *Scope) { DIE &ScopeDIE = updateSubprogramScopeDIE(Sub); // If this is a variadic function, add an unspecified parameter. - DITypeArray FnArgs = Sub->getType()->getTypeArray(); + MDTypeRefArray FnArgs = Sub->getType()->getTypeArray(); // Collect lexical scope children first. // ObjectPointer might be a local (non-argument) local variable if it's a diff --git a/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/lib/CodeGen/AsmPrinter/DwarfUnit.cpp index ad1ef544b01..6e00ed82e09 100644 --- a/lib/CodeGen/AsmPrinter/DwarfUnit.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfUnit.cpp @@ -474,7 +474,7 @@ void DwarfUnit::addBlockByrefAddress(const DbgVariable &DV, DIE &Die, // Find the __forwarding field and the variable field in the __Block_byref // struct. - DIArray Fields = cast(TmpTy)->getElements(); + DebugNodeArray Fields = cast(TmpTy)->getElements(); const MDDerivedType *varField = nullptr; const MDDerivedType *forwardingField = nullptr; @@ -695,7 +695,7 @@ void DwarfUnit::addLinkageName(DIE &Die, StringRef LinkageName) { GlobalValue::getRealLinkageName(LinkageName)); } -void DwarfUnit::addTemplateParams(DIE &Buffer, DIArray TParams) { +void DwarfUnit::addTemplateParams(DIE &Buffer, DebugNodeArray TParams) { // Add template parameters. for (const auto *Element : TParams) { if (auto *TTP = dyn_cast(Element)) @@ -900,7 +900,7 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, const MDDerivedType *DTy) { addSourceLine(Buffer, DTy); } -void DwarfUnit::constructSubprogramArguments(DIE &Buffer, DITypeArray Args) { +void DwarfUnit::constructSubprogramArguments(DIE &Buffer, MDTypeRefArray Args) { for (unsigned i = 1, N = Args.size(); i < N; ++i) { const MDType *Ty = resolve(Args[i]); if (!Ty) { @@ -961,7 +961,7 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, const MDCompositeType *CTy) { case dwarf::DW_TAG_union_type: case dwarf::DW_TAG_class_type: { // Add elements to structure type. - DIArray Elements = CTy->getElements(); + DebugNodeArray Elements = CTy->getElements(); for (const auto *Element : Elements) { if (!Element) continue; @@ -1316,7 +1316,7 @@ void DwarfUnit::constructArrayTypeDIE(DIE &Buffer, const MDCompositeType *CTy) { DIE *IdxTy = getIndexTyDie(); // Add subranges to array type. - DIArray Elements = CTy->getElements(); + DebugNodeArray Elements = CTy->getElements(); for (unsigned i = 0, N = Elements.size(); i < N; ++i) { // FIXME: Should this really be such a loose cast? if (auto *Element = dyn_cast_or_null(Elements[i])) @@ -1326,7 +1326,7 @@ void DwarfUnit::constructArrayTypeDIE(DIE &Buffer, const MDCompositeType *CTy) { } void DwarfUnit::constructEnumTypeDIE(DIE &Buffer, const MDCompositeType *CTy) { - DIArray Elements = CTy->getElements(); + DebugNodeArray Elements = CTy->getElements(); // Add enumerators to enumeration type. for (unsigned i = 0, N = Elements.size(); i < N; ++i) { diff --git a/lib/CodeGen/AsmPrinter/DwarfUnit.h b/lib/CodeGen/AsmPrinter/DwarfUnit.h index 7041f376ef4..1cbf3489b1b 100644 --- a/lib/CodeGen/AsmPrinter/DwarfUnit.h +++ b/lib/CodeGen/AsmPrinter/DwarfUnit.h @@ -268,7 +268,7 @@ public: void addLinkageName(DIE &Die, StringRef LinkageName); /// \brief Add template parameters in buffer. - void addTemplateParams(DIE &Buffer, DIArray TParams); + void addTemplateParams(DIE &Buffer, DebugNodeArray TParams); /// \brief Add register operand. /// \returns false if the register does not exist, e.g., because it was never @@ -316,7 +316,7 @@ public: void constructContainingTypeDIEs(); /// \brief Construct function argument DIEs. - void constructSubprogramArguments(DIE &Buffer, DITypeArray Args); + void constructSubprogramArguments(DIE &Buffer, MDTypeRefArray Args); /// Create a DIE with the given Tag, add the DIE to its parent, and /// call insertDIE if MD is not null. diff --git a/lib/IR/DIBuilder.cpp b/lib/IR/DIBuilder.cpp index 9e0474ebce0..c849f1030bc 100644 --- a/lib/IR/DIBuilder.cpp +++ b/lib/IR/DIBuilder.cpp @@ -93,7 +93,7 @@ void DIBuilder::finalize() { if (MDTuple *Temp = SP->getVariables().get()) { const auto &PV = PreservedVariables.lookup(SP); SmallVector Variables(PV.begin(), PV.end()); - DIArray AV = getOrCreateArray(Variables); + DebugNodeArray AV = getOrCreateArray(Variables); TempMDTuple(Temp)->replaceAllUsesWith(AV.get()); } } @@ -364,7 +364,7 @@ DIBuilder::createTemplateTemplateParameter(MDScope *Context, StringRef Name, MDTemplateValueParameter * DIBuilder::createTemplateParameterPack(MDScope *Context, StringRef Name, - MDType *Ty, DIArray Val) { + MDType *Ty, DebugNodeArray Val) { return createTemplateValueParameterHelper( VMContext, dwarf::DW_TAG_GNU_template_parameter_pack, Context, Name, Ty, Val.get()); @@ -373,8 +373,8 @@ DIBuilder::createTemplateParameterPack(MDScope *Context, StringRef Name, MDCompositeType *DIBuilder::createClassType( MDScope *Context, StringRef Name, MDFile *File, unsigned LineNumber, uint64_t SizeInBits, uint64_t AlignInBits, uint64_t OffsetInBits, - unsigned Flags, MDType *DerivedFrom, DIArray Elements, MDType *VTableHolder, - MDNode *TemplateParams, StringRef UniqueIdentifier) { + unsigned Flags, MDType *DerivedFrom, DebugNodeArray Elements, + MDType *VTableHolder, MDNode *TemplateParams, StringRef UniqueIdentifier) { assert((!Context || isa(Context)) && "createClassType should be called with a valid Context"); @@ -393,7 +393,7 @@ MDCompositeType *DIBuilder::createClassType( MDCompositeType *DIBuilder::createStructType( MDScope *Context, StringRef Name, MDFile *File, unsigned LineNumber, uint64_t SizeInBits, uint64_t AlignInBits, unsigned Flags, - MDType *DerivedFrom, DIArray Elements, unsigned RunTimeLang, + MDType *DerivedFrom, DebugNodeArray Elements, unsigned RunTimeLang, MDType *VTableHolder, StringRef UniqueIdentifier) { auto *R = MDCompositeType::get( VMContext, dwarf::DW_TAG_structure_type, Name, File, LineNumber, @@ -406,13 +406,10 @@ MDCompositeType *DIBuilder::createStructType( return R; } -MDCompositeType* DIBuilder::createUnionType(MDScope * Scope, StringRef Name, - MDFile* File, unsigned LineNumber, - uint64_t SizeInBits, - uint64_t AlignInBits, unsigned Flags, - DIArray Elements, - unsigned RunTimeLang, - StringRef UniqueIdentifier) { +MDCompositeType *DIBuilder::createUnionType( + MDScope *Scope, StringRef Name, MDFile *File, unsigned LineNumber, + uint64_t SizeInBits, uint64_t AlignInBits, unsigned Flags, + DebugNodeArray Elements, unsigned RunTimeLang, StringRef UniqueIdentifier) { auto *R = MDCompositeType::get( VMContext, dwarf::DW_TAG_union_type, Name, File, LineNumber, MDScopeRef::get(getNonCompileUnitScope(Scope)), nullptr, SizeInBits, @@ -425,14 +422,14 @@ MDCompositeType* DIBuilder::createUnionType(MDScope * Scope, StringRef Name, } MDSubroutineType *DIBuilder::createSubroutineType(MDFile *File, - DITypeArray ParameterTypes, + MDTypeRefArray ParameterTypes, unsigned Flags) { return MDSubroutineType::get(VMContext, Flags, ParameterTypes); } MDCompositeType *DIBuilder::createEnumerationType( MDScope *Scope, StringRef Name, MDFile *File, unsigned LineNumber, - uint64_t SizeInBits, uint64_t AlignInBits, DIArray Elements, + uint64_t SizeInBits, uint64_t AlignInBits, DebugNodeArray Elements, MDType *UnderlyingType, StringRef UniqueIdentifier) { auto *CTy = MDCompositeType::get( VMContext, dwarf::DW_TAG_enumeration_type, Name, File, LineNumber, @@ -447,7 +444,8 @@ MDCompositeType *DIBuilder::createEnumerationType( } MDCompositeType *DIBuilder::createArrayType(uint64_t Size, uint64_t AlignInBits, - MDType *Ty, DIArray Subscripts) { + MDType *Ty, + DebugNodeArray Subscripts) { auto *R = MDCompositeType::get(VMContext, dwarf::DW_TAG_array_type, "", nullptr, 0, nullptr, MDTypeRef::get(Ty), Size, AlignInBits, 0, 0, Subscripts, 0, nullptr); @@ -457,7 +455,7 @@ MDCompositeType *DIBuilder::createArrayType(uint64_t Size, uint64_t AlignInBits, MDCompositeType *DIBuilder::createVectorType(uint64_t Size, uint64_t AlignInBits, MDType *Ty, - DIArray Subscripts) { + DebugNodeArray Subscripts) { auto *R = MDCompositeType::get(VMContext, dwarf::DW_TAG_array_type, "", nullptr, 0, nullptr, MDTypeRef::get(Ty), Size, AlignInBits, 0, @@ -528,11 +526,11 @@ MDCompositeType* DIBuilder::createReplaceableCompositeType( return RetTy; } -DIArray DIBuilder::getOrCreateArray(ArrayRef Elements) { +DebugNodeArray DIBuilder::getOrCreateArray(ArrayRef Elements) { return MDTuple::get(VMContext, Elements); } -DITypeArray DIBuilder::getOrCreateTypeArray(ArrayRef Elements) { +MDTypeRefArray DIBuilder::getOrCreateTypeArray(ArrayRef Elements) { SmallVector Elts; for (unsigned i = 0, e = Elements.size(); i != e; ++i) { if (Elements[i] && isa(Elements[i])) @@ -540,7 +538,7 @@ DITypeArray DIBuilder::getOrCreateTypeArray(ArrayRef Elements) { else Elts.push_back(Elements[i]); } - return DITypeArray(MDNode::get(VMContext, Elts)); + return MDTypeRefArray(MDNode::get(VMContext, Elts)); } MDSubrange *DIBuilder::getOrCreateSubrange(int64_t Lo, int64_t Count) { @@ -838,8 +836,8 @@ void DIBuilder::replaceVTableHolder(MDCompositeType* &T, MDCompositeType* VTable trackIfUnresolved(N); } -void DIBuilder::replaceArrays(MDCompositeType* &T, DIArray Elements, - DIArray TParams) { +void DIBuilder::replaceArrays(MDCompositeType *&T, DebugNodeArray Elements, + DebugNodeArray TParams) { { TypedTrackingMDRef N(T); if (Elements) diff --git a/lib/IR/DebugInfo.cpp b/lib/IR/DebugInfo.cpp index dff344b98ad..ccc2c7c72e9 100644 --- a/lib/IR/DebugInfo.cpp +++ b/lib/IR/DebugInfo.cpp @@ -76,7 +76,7 @@ llvm::generateDITypeIdentifierMap(const NamedMDNode *CU_Nodes) { DITypeIdentifierMap Map; for (unsigned CUi = 0, CUe = CU_Nodes->getNumOperands(); CUi != CUe; ++CUi) { auto *CU = cast(CU_Nodes->getOperand(CUi)); - DIArray Retain = CU->getRetainedTypes(); + DebugNodeArray Retain = CU->getRetainedTypes(); for (unsigned Ti = 0, Te = Retain.size(); Ti != Te; ++Ti) { if (!isa(Retain[Ti])) continue; diff --git a/unittests/Transforms/Utils/Cloning.cpp b/unittests/Transforms/Utils/Cloning.cpp index 35bdd3684ab..48168d85a33 100644 --- a/unittests/Transforms/Utils/Cloning.cpp +++ b/unittests/Transforms/Utils/Cloning.cpp @@ -229,7 +229,7 @@ protected: // Function DI auto *File = DBuilder.createFile("filename.c", "/file/dir/"); - DITypeArray ParamTypes = DBuilder.getOrCreateTypeArray(None); + MDTypeRefArray ParamTypes = DBuilder.getOrCreateTypeArray(None); MDSubroutineType *FuncType = DBuilder.createSubroutineType(File, ParamTypes); auto *CU =