[LLVMdev] Appropriate DS for implementing worklist

David Blaikie dblaikie at gmail.com
Sun Nov 3 07:45:57 PST 2013


On Sun, Nov 3, 2013 at 7:38 AM, Rekha R <rekharamapai at nitc.ac.in> wrote:

> Thank you David for prompt reply.
>
> I tried with SmallVector. I inserted elements with push_back().
> But when I retrieve elements using pop_back_val the elements are returned
> in reverse order of insertion (I mean like LIFO order).
> I need this to be FIFO order. How to achieve that?
>

push_back and pop_back both act on the "back" or "end" of the vector, so
you'll get LIFO behavior if you use them in that way

For LIFO you need to either insert at the front and pop from the back or
insert at the back and pop from the front.

You can insert at the front using the insert member function (
http://llvm.org/docs/doxygen/html/classllvm_1_1SmallVectorImpl.html#af622128e353515efebccad40eae495cb)
and passing the begin iterator.


>
> Regards,
> Rekha
>
>
> On Sun, Nov 3, 2013 at 8:31 PM, David Blaikie <dblaikie at gmail.com> wrote:
>
>> If you don't care about efficiency you can push (or at least insert) at
>> the front of a(small or otherwise) vector.
>> On Nov 3, 2013 3:32 AM, "Rekha R" <rekharamapai at nitc.ac.in> wrote:
>>
>>> Hi,
>>>
>>> I am writing an analysis which requires creating worklist of basic
>>> blocks. The worklist should be in FIFO order. I checked SmallVector (and
>>> similar others) and found out this is working in LIFO order when I use the
>>> functions push_back and pop_back_val to insert and delete elements in the
>>> worklist.
>>>
>>> Can someone suggest an appropriate DS to implement my worklist. Note: I
>>> am not concerned about efficiency here.
>>>
>>> --
>>> Regards,
>>> Rekha
>>>
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>
>>>
>
>
> --
> Rekha
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131103/9c42db08/attachment.html>


More information about the llvm-dev mailing list