[LLVMdev] RFC: Reduce the memory footprint of DIEs (and DIEValues)

Duncan P. N. Exon Smith dexonsmith at apple.com
Fri Jun 12 13:34:40 PDT 2015


> On 2015-Jun-04, at 17:24, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
> 
> 
>> On 2015 May 28, at 14:14, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
>> 
>> 
>>> On 2015-May-26, at 15:30, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
>>> 
>>> David, let me know if you have any comments on the `DIE::Children`
>>> stuff (patch 0008 in particular, although I think Eric wanted your
>>> opinion on 0007 as well).
>>> 
>>>> On 2015-May-26, at 14:41, Eric Christopher <echristo at gmail.com> wrote:
>>>> 0007 - LGTM, might want to have Dave take a look at it as well.
>>>> 0008 - reverseChildren and finalizeChildren is pretty gross. Also, I'm going to punt on the rest of this to Dave.
>> 
>> I've committed all but these two.  I've attached rebased versions
>> that incorporate (most of) Fred's feedback.
>> 
>> David, I found a way to avoid the reverseChildren/finalizeChildren
>> thing without paying for an extra pointer, but it means that
>> `DIE` would no longer use `std::unique_ptr<>` internally.  (High
>> level: change the sibling list to a circular linked list, point at
>> the last child instead of the first, and store a "this-is-last"
>> marker on the last child to support iteration.)
>> 
>> stop-reversing-children.patch implements this on top of 0008;
>> stop-reversing-children-with-0008.patch has that patch and 0008
>> merged together.  I think this might be the better way to do it,
>> but I'm open to other ideas.
>> 
>> If you're okay with this approach, maybe I'll rewrite 0007 to
>> save an extra pointer there as well?
> 
> Ping.  Patches reattached.

Ping.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0007-AsmPrinter-Convert-DIE-Values-to-a-linked-list.patch
Type: application/octet-stream
Size: 64146 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150612/12f6eb0a/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0008-AsmPrinter-Use-an-intrusively-linked-list-for-DIE-Ch.patch
Type: application/octet-stream
Size: 43692 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150612/12f6eb0a/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stop-reversing-children.patch
Type: application/octet-stream
Size: 7050 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150612/12f6eb0a/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stop-reversing-children-with-0008.patch
Type: application/octet-stream
Size: 42493 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150612/12f6eb0a/attachment-0003.obj>


More information about the llvm-commits mailing list