[llvm] r178366 - Use 12 as the magic number for our abbreviation data and our

Eli Bendersky eliben at google.com
Fri Mar 29 14:04:44 PDT 2013


On Fri, Mar 29, 2013 at 1:23 PM, Eric Christopher <echristo at gmail.com>wrote:

> Author: echristo
> Date: Fri Mar 29 15:23:06 2013
> New Revision: 178366
>
> URL: http://llvm.org/viewvc/llvm-project?rev=178366&view=rev
> Log:
> Use 12 as the magic number for our abbreviation data and our
> die values. A lot of DIEs have 10 attributes in C++ code (example
> clang), none had more than 12. Seems like a good default.
>
> Modified:
>     llvm/trunk/lib/CodeGen/AsmPrinter/DIE.cpp
>     llvm/trunk/lib/CodeGen/AsmPrinter/DIE.h
>     llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DIE.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DIE.cpp?rev=178366&r1=178365&r2=178366&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DIE.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DIE.cpp Fri Mar 29 15:23:06 2013
> @@ -144,7 +144,7 @@ void DIE::print(raw_ostream &O, unsigned
>      O << "Size: " << Size << "\n";
>    }
>
> -  const SmallVector<DIEAbbrevData, 8> &Data = Abbrev.getData();
> +  const SmallVector<DIEAbbrevData, 12> &Data = Abbrev.getData();
>
>    IndentCount += 2;
>    for (unsigned i = 0, N = Data.size(); i < N; ++i) {
> @@ -324,7 +324,7 @@ void DIEEntry::print(raw_ostream &O) {
>  ///
>  unsigned DIEBlock::ComputeSize(AsmPrinter *AP) {
>    if (!Size) {
> -    const SmallVector<DIEAbbrevData, 8> &AbbrevData = Abbrev.getData();
> +    const SmallVector<DIEAbbrevData, 12> &AbbrevData = Abbrev.getData();
>      for (unsigned i = 0, N = Values.size(); i < N; ++i)
>        Size += Values[i]->SizeOf(AP, AbbrevData[i].getForm());
>    }
> @@ -343,7 +343,7 @@ void DIEBlock::EmitValue(AsmPrinter *Asm
>    case dwarf::DW_FORM_block:  Asm->EmitULEB128(Size); break;
>    }
>
> -  const SmallVector<DIEAbbrevData, 8> &AbbrevData = Abbrev.getData();
> +  const SmallVector<DIEAbbrevData, 12> &AbbrevData = Abbrev.getData();
>    for (unsigned i = 0, N = Values.size(); i < N; ++i)
>      Values[i]->EmitValue(Asm, AbbrevData[i].getForm());
>  }
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DIE.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DIE.h?rev=178366&r1=178365&r2=178366&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DIE.h (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DIE.h Fri Mar 29 15:23:06 2013
> @@ -66,7 +66,7 @@ namespace llvm {
>
>      /// Data - Raw data bytes for abbreviation.
>      ///
> -    SmallVector<DIEAbbrevData, 8> Data;
> +    SmallVector<DIEAbbrevData, 12> Data;
>
>    public:
>      DIEAbbrev(uint16_t T, uint16_t C) : Tag(T), ChildrenFlag(C), Data() {}
> @@ -75,7 +75,7 @@ namespace llvm {
>      uint16_t getTag() const { return Tag; }
>      unsigned getNumber() const { return Number; }
>      uint16_t getChildrenFlag() const { return ChildrenFlag; }
> -    const SmallVector<DIEAbbrevData, 8> &getData() const { return Data; }
> +    const SmallVector<DIEAbbrevData, 12> &getData() const { return Data; }
>

Here and elsewhere, could you use SmallVectorImpl to decouple yourself from
the size hint in function signatures? This is used in other places
throughout LLVM and IMHO makes much nicer code.

Eli
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130329/9677bc96/attachment.html>


More information about the llvm-commits mailing list