[llvm] r214112 - [Debug Info] rename getTypeArray to getElements, setTypeArray to setArrays.

David Blaikie dblaikie at gmail.com
Tue Jul 29 16:09:59 PDT 2014


It seems pretty easy to split it (and would remove that conditional
about Elements being non-null) and none of the callers set both of
them simultaneously so it'll simplify callers too (well, the one
caller that sets template arguments that has to specify a null first
parameter) - I'll do this myself if no one gets to it before me.
(might be a day or two, if I remember - just stuck in a quagmire of
other stuff that's not so easy to swap out)

On Tue, Jul 29, 2014 at 4:06 PM, Eric Christopher <echristo at gmail.com> wrote:
> Enh, I guess? It just seems weird having them together (though I guess
> it's almost as weird splitting them).
>
> -eric
>
> On Tue, Jul 29, 2014 at 11:31 AM, Manman Ren <manman.ren at gmail.com> wrote:
>>
>> How about setElementsAndTemplates for now?
>>
>> Manman
>>
>>
>> On Tue, Jul 29, 2014 at 9:38 AM, Eric Christopher <echristo at gmail.com>
>> wrote:
>>>
>>> On Tue, Jul 29, 2014 at 9:35 AM, David Blaikie <dblaikie at gmail.com> wrote:
>>> > On Mon, Jul 28, 2014 at 4:13 PM, Eric Christopher <echristo at gmail.com>
>>> > wrote:
>>> >> On Mon, Jul 28, 2014 at 12:14 PM, Manman Ren <manman.ren at gmail.com>
>>> >> wrote:
>>> >>> Author: mren
>>> >>> Date: Mon Jul 28 14:14:13 2014
>>> >>> New Revision: 214112
>>> >>>
>>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=214112&view=rev
>>> >>> Log:
>>> >>> [Debug Info] rename getTypeArray to getElements, setTypeArray to
>>> >>> setArrays.
>>> >>>
>>> >>> This is the second of a series of patches to handle type uniqueing of
>>> >>> the
>>> >>> type array for a subroutine type.
>>> >>>
>>> >>> For vector and array types, getElements returns the array of
>>> >>> subranges, so it
>>> >>> is a better name than getTypeArray. Even for class, struct and enum
>>> >>> types,
>>> >>> getElements returns the members, which can be subprograms.
>>> >>>
>>> >>> setArrays can set up to two arrays, the second is the templates.
>>> >>
>>> >> setArrays as a name seems to be a bit lacking in descriptive power.
>>> >> Can you perhaps either split the routine or maybe "setElements" or
>>> >> something?
>>> >
>>> > I had the same thought, though I'm not sure setElements is an
>>> > improvement. It would be at least symmetric with getElements (except
>>> > that setArrays sets two different arrays). Probably splitting it into
>>> > two and naming them setElements and setTemplateArguments would make
>>> > the most sense for now. Maybe "elements" can be made more precise
>>> > later if we figure out something better.
>>> >
>>> > The "elements" list includes base classes, fields, and member
>>> > functions - so it's a bit of a grab bag (& maybe other things for
>>> > other types? The subscripts in an array, is it?), hard to have a very
>>> > precise name.
>>> >
>>>
>>> Yeah, my "big" function naming issue was setArrays. Not that it wasn't
>>> like that before, but... sounds like we agree though.
>>>
>>> -eric
>>>
>>> >> Just thinking out loud, but it's not very clear.
>>> >>
>>> >> -eric
>>> >>
>>> >>>
>>> >>> This commit should have no functionality change.
>>> >>>
>>> >>> Modified:
>>> >>>     llvm/trunk/include/llvm/IR/DebugInfo.h
>>> >>>     llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>>> >>>     llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
>>> >>>     llvm/trunk/lib/IR/DebugInfo.cpp
>>> >>>     llvm/trunk/lib/Transforms/Instrumentation/DebugIR.cpp
>>> >>>
>>> >>> Modified: llvm/trunk/include/llvm/IR/DebugInfo.h
>>> >>> URL:
>>> >>> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/DebugInfo.h?rev=214112&r1=214111&r2=214112&view=diff
>>> >>>
>>> >>> ==============================================================================
>>> >>> --- llvm/trunk/include/llvm/IR/DebugInfo.h (original)
>>> >>> +++ llvm/trunk/include/llvm/IR/DebugInfo.h Mon Jul 28 14:14:13 2014
>>> >>> @@ -425,8 +425,8 @@ class DICompositeType : public DIDerived
>>> >>>  public:
>>> >>>    explicit DICompositeType(const MDNode *N = nullptr) :
>>> >>> DIDerivedType(N) {}
>>> >>>
>>> >>> -  DIArray getTypeArray() const { return getFieldAs<DIArray>(10); }
>>> >>> -  void setTypeArray(DIArray Elements, DIArray TParams = DIArray());
>>> >>> +  DIArray getElements() const { return getFieldAs<DIArray>(10); }
>>> >>> +  void setArrays(DIArray Elements, DIArray TParams = DIArray());
>>> >>>    unsigned getRunTimeLang() const { return getUnsignedField(11); }
>>> >>>    DITypeRef getContainingType() const { return
>>> >>> getFieldAs<DITypeRef>(12); }
>>> >>>    void setContainingType(DICompositeType ContainingType);
>>> >>>
>>> >>> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>>> >>> URL:
>>> >>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=214112&r1=214111&r2=214112&view=diff
>>> >>>
>>> >>> ==============================================================================
>>> >>> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
>>> >>> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Mon Jul 28
>>> >>> 14:14:13 2014
>>> >>> @@ -150,7 +150,7 @@ DIType DbgVariable::getType() const {
>>> >>>      if (tag == dwarf::DW_TAG_pointer_type)
>>> >>>        subType = resolve(DIDerivedType(Ty).getTypeDerivedFrom());
>>> >>>
>>> >>> -    DIArray Elements = DICompositeType(subType).getTypeArray();
>>> >>> +    DIArray Elements = DICompositeType(subType).getElements();
>>> >>>      for (unsigned i = 0, N = Elements.getNumElements(); i < N; ++i) {
>>> >>>        DIDerivedType DT(Elements.getElement(i));
>>> >>>        if (getName() == DT.getName())
>>> >>> @@ -468,7 +468,7 @@ DIE *DwarfDebug::createScopeChildrenDIE(
>>> >>>
>>> >>>      // If this is a variadic function, add an unspecified parameter.
>>> >>>      DISubprogram SP(Scope->getScopeNode());
>>> >>> -    DIArray FnArgs = SP.getType().getTypeArray();
>>> >>> +    DIArray FnArgs = SP.getType().getElements();
>>> >>>      if (FnArgs.getElement(FnArgs.getNumElements() - 1)
>>> >>>              .isUnspecifiedParameter()) {
>>> >>>        Children.push_back(
>>> >>>
>>> >>> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
>>> >>> URL:
>>> >>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp?rev=214112&r1=214111&r2=214112&view=diff
>>> >>>
>>> >>> ==============================================================================
>>> >>> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp (original)
>>> >>> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp Mon Jul 28
>>> >>> 14:14:13 2014
>>> >>> @@ -690,7 +690,7 @@ void DwarfUnit::addBlockByrefAddress(con
>>> >>>
>>> >>>    // Find the __forwarding field and the variable field in the
>>> >>> __Block_byref
>>> >>>    // struct.
>>> >>> -  DIArray Fields = blockStruct.getTypeArray();
>>> >>> +  DIArray Fields = blockStruct.getElements();
>>> >>>    DIDerivedType varField;
>>> >>>    DIDerivedType forwardingField;
>>> >>>
>>> >>> @@ -1161,7 +1161,7 @@ void DwarfUnit::constructTypeDIE(DIE &Bu
>>> >>>      break;
>>> >>>    case dwarf::DW_TAG_subroutine_type: {
>>> >>>      // Add return type. A void return won't have a type.
>>> >>> -    DIArray Elements = CTy.getTypeArray();
>>> >>> +    DIArray Elements = CTy.getElements();
>>> >>>      DIType RTy(Elements.getElement(0));
>>> >>>      if (RTy)
>>> >>>        addType(Buffer, RTy);
>>> >>> @@ -1191,7 +1191,7 @@ void DwarfUnit::constructTypeDIE(DIE &Bu
>>> >>>    case dwarf::DW_TAG_union_type:
>>> >>>    case dwarf::DW_TAG_class_type: {
>>> >>>      // Add elements to structure type.
>>> >>> -    DIArray Elements = CTy.getTypeArray();
>>> >>> +    DIArray Elements = CTy.getElements();
>>> >>>      for (unsigned i = 0, N = Elements.getNumElements(); i < N; ++i) {
>>> >>>        DIDescriptor Element = Elements.getElement(i);
>>> >>>        if (Element.isSubprogram())
>>> >>> @@ -1456,7 +1456,7 @@ void DwarfUnit::applySubprogramAttribute
>>> >>>    assert(SPTy.getTag() == dwarf::DW_TAG_subroutine_type &&
>>> >>>           "the type of a subprogram should be a subroutine");
>>> >>>
>>> >>> -  DIArray Args = SPTy.getTypeArray();
>>> >>> +  DIArray Args = SPTy.getElements();
>>> >>>    // Add a return type. If this is a type like a C/C++ void type we
>>> >>> don't add a
>>> >>>    // return type.
>>> >>>    if (Args.getElement(0))
>>> >>> @@ -1740,7 +1740,7 @@ void DwarfUnit::constructArrayTypeDIE(DI
>>> >>>    }
>>> >>>
>>> >>>    // Add subranges to array type.
>>> >>> -  DIArray Elements = CTy.getTypeArray();
>>> >>> +  DIArray Elements = CTy.getElements();
>>> >>>    for (unsigned i = 0, N = Elements.getNumElements(); i < N; ++i) {
>>> >>>      DIDescriptor Element = Elements.getElement(i);
>>> >>>      if (Element.getTag() == dwarf::DW_TAG_subrange_type)
>>> >>> @@ -1750,7 +1750,7 @@ void DwarfUnit::constructArrayTypeDIE(DI
>>> >>>
>>> >>>  /// constructEnumTypeDIE - Construct an enum type DIE from
>>> >>> DICompositeType.
>>> >>>  void DwarfUnit::constructEnumTypeDIE(DIE &Buffer, DICompositeType
>>> >>> CTy) {
>>> >>> -  DIArray Elements = CTy.getTypeArray();
>>> >>> +  DIArray Elements = CTy.getElements();
>>> >>>
>>> >>>    // Add enumerators to enumeration type.
>>> >>>    for (unsigned i = 0, N = Elements.getNumElements(); i < N; ++i) {
>>> >>>
>>> >>> Modified: llvm/trunk/lib/IR/DebugInfo.cpp
>>> >>> URL:
>>> >>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DebugInfo.cpp?rev=214112&r1=214111&r2=214112&view=diff
>>> >>>
>>> >>> ==============================================================================
>>> >>> --- llvm/trunk/lib/IR/DebugInfo.cpp (original)
>>> >>> +++ llvm/trunk/lib/IR/DebugInfo.cpp Mon Jul 28 14:14:13 2014
>>> >>> @@ -676,7 +676,7 @@ static void VerifySubsetOf(const MDNode
>>> >>>  #endif
>>> >>>
>>> >>>  /// \brief Set the array of member DITypes.
>>> >>> -void DICompositeType::setTypeArray(DIArray Elements, DIArray TParams)
>>> >>> {
>>> >>> +void DICompositeType::setArrays(DIArray Elements, DIArray TParams) {
>>> >>>    assert((!TParams || DbgNode->getNumOperands() == 15) &&
>>> >>>           "If you're setting the template parameters this should
>>> >>> include a slot "
>>> >>>           "for that!");
>>> >>> @@ -1064,7 +1064,7 @@ void DebugInfoFinder::processType(DIType
>>> >>>    if (DT.isCompositeType()) {
>>> >>>      DICompositeType DCT(DT);
>>> >>>      processType(DCT.getTypeDerivedFrom().resolve(TypeIdentifierMap));
>>> >>> -    DIArray DA = DCT.getTypeArray();
>>> >>> +    DIArray DA = DCT.getElements();
>>> >>>      for (unsigned i = 0, e = DA.getNumElements(); i != e; ++i) {
>>> >>>        DIDescriptor D = DA.getElement(i);
>>> >>>        if (D.isType())
>>> >>> @@ -1347,7 +1347,7 @@ void DIDerivedType::printInternal(raw_os
>>> >>>
>>> >>>  void DICompositeType::printInternal(raw_ostream &OS) const {
>>> >>>    DIType::printInternal(OS);
>>> >>> -  DIArray A = getTypeArray();
>>> >>> +  DIArray A = getElements();
>>> >>>    OS << " [" << A.getNumElements() << " elements]";
>>> >>>  }
>>> >>>
>>> >>>
>>> >>> Modified: llvm/trunk/lib/Transforms/Instrumentation/DebugIR.cpp
>>> >>> URL:
>>> >>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/DebugIR.cpp?rev=214112&r1=214111&r2=214112&view=diff
>>> >>>
>>> >>> ==============================================================================
>>> >>> --- llvm/trunk/lib/Transforms/Instrumentation/DebugIR.cpp (original)
>>> >>> +++ llvm/trunk/lib/Transforms/Instrumentation/DebugIR.cpp Mon Jul 28
>>> >>> 14:14:13 2014
>>> >>> @@ -396,7 +396,7 @@ private:
>>> >>>
>>> >>> Elements.push_back(getOrCreateType(T->getStructElementType(i)));
>>> >>>
>>> >>>        // set struct elements
>>> >>> -
>>> >>> StructDescriptor.setTypeArray(Builder.getOrCreateArray(Elements));
>>> >>> +      StructDescriptor.setArrays(Builder.getOrCreateArray(Elements));
>>> >>>      } else if (T->isPointerTy()) {
>>> >>>        Type *PointeeTy = T->getPointerElementType();
>>> >>>        if (!(N = getType(PointeeTy)))
>>> >>>
>>> >>>
>>> >>> _______________________________________________
>>> >>> llvm-commits mailing list
>>> >>> llvm-commits at cs.uiuc.edu
>>> >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>> >> _______________________________________________
>>> >> llvm-commits mailing list
>>> >> llvm-commits at cs.uiuc.edu
>>> >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>



More information about the llvm-commits mailing list