[llvm] r238369 - AsmPrinter: Stop exposing underlying DIEValue list, NFC

Duncan P. N. Exon Smith dexonsmith at apple.com
Wed May 27 17:09:12 PDT 2015


> On 2015 May 27, at 16:19, David Blaikie <dblaikie at gmail.com> wrote:
> 
> 
> 
> On Wed, May 27, 2015 at 3:44 PM, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
> Author: dexonsmith
> Date: Wed May 27 17:44:06 2015
> New Revision: 238369
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=238369&view=rev
> Log:
> AsmPrinter: Stop exposing underlying DIEValue list, NFC
> 
> Change the `DIE` API to hide the implementation of the list of
> `DIEValue`s.
> 
> Modified:
>     llvm/trunk/include/llvm/CodeGen/DIE.h
>     llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
>     llvm/trunk/lib/CodeGen/AsmPrinter/DIE.cpp
>     llvm/trunk/lib/CodeGen/AsmPrinter/DIEHash.cpp
>     llvm/trunk/lib/CodeGen/AsmPrinter/DIEHash.h
>     llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
>     llvm/trunk/lib/CodeGen/AsmPrinter/DwarfFile.cpp
>     llvm/trunk/tools/dsymutil/DwarfLinker.cpp
> 
> Modified: llvm/trunk/include/llvm/CodeGen/DIE.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/DIE.h?rev=238369&r1=238368&r2=238369&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/DIE.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/DIE.h Wed May 27 17:44:06 2015
> @@ -499,7 +499,16 @@ public:
>    const std::vector<std::unique_ptr<DIE>> &getChildren() const {
>      return Children;
>    }
> -  const SmallVectorImpl<DIEValue> &getValues() const { return Values; }
> +
> +  typedef SmallVectorImpl<DIEValue>::const_iterator value_iterator;
> +  typedef iterator_range<value_iterator> value_range;
> +
> +  value_iterator begin_values() const { return Values.begin(); }
> +  value_iterator end_values() const { return Values.end(); }
> 
> Is this the prevailing naming convention for exposing a named range? I think we have a fair few "foo_begin/foo_end" & not sure I've seen much "end_foo/begin_foo", but I could be wrong.

I actually wrote it the other way first (values_begin()), but I
did a quick search and couldn't find any others like it.  Must
have searched badly.  I like it your way better so I'll switch
it back when I get a chance.

> (alternatively - (optionally add range-based APIs for anything you currently need begin/end for, and) skip begin/end in favor of using the range accessor below)

Yeah, it'd be nice to get rid of these entirely.  But since I
tend to need to basically write them anyway to build the range
accessor I usually just expose them by default.

Probably easy to delete though.  I'll have a go.

>  
> +  value_range values() const {
> +    return llvm::make_range(begin_values(), end_values());
> +  }
> +





More information about the llvm-commits mailing list