Displaying 20 results from an estimated 900 matches similar to: "RFC: faster simplifyInstructionsInBlock/SimplifyInstructions pass"
2015 Sep 13
2
RFC: faster simplifyInstructionsInBlock/SimplifyInstructions pass
>
> Instead of adding the operands to a list, erase the instruction and add them to the worklist wouldn’t be probably faster something like:
>
> if (Instruction *Used = dyn_cast<Instruction>(*OI))
> if (Used->hasOneUse())
> WorkList.insert(Used);
>
> If it has one use is going to be the instruction we are going to remove anyway, right?
I don’t think this
2016 Oct 14
2
RFC: Reducing the number of set classes in ADT
tl;dr: I think we have too many different set classes. They have incompatible
APIs and surprising behavior. I think we can reduce their number substantially.
Dear all,
The following is a subset of the set classes we have in ADT:
* DenseSet
* SmallDenseSet (https://reviews.llvm.org/D25628)
* SetVector
* SmallSetVector
* SmallSet
* SmallPtrSet
* StringSet
* FoldingSet
*
2012 Jul 12
1
[LLVMdev] llvm::DenseSet with reverse iterator
UniqueVector is an stl map coupled with an stl vector[1], which seems
very undesirable for you. As far as SmallVector + slow search, I
believe that is precisely what the implementation of SmallSet does
until it has to grow, after which it uses an stl set[2]. If you're
always staying within your small number, SmallSetVector would be
wasteful as the SmallSet would itself also have a SmallVector.
2012 Jul 12
0
[LLVMdev] llvm::DenseSet with reverse iterator
Hi,
Thanks a lot for the help!
It seems that the SmallSetVector is the ADT I need (interface-wise).
Is more efficient than llvm::UniqueVector?
In my use case I have to insert a new element in the structure only
if the element is unique. I hardly expect more than 32 elements. Do you
think I gain a lot if I use the SmallSetVector instead of using
SmallVector + slow searching on every
2013 Nov 03
3
[LLVMdev] Appropriate DS for implementing worklist
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
2004 Apr 23
0
[LLVMdev] subtle problem with inst_iterator
On Fri, 23 Apr 2004, Vladimir Prus wrote:
> Yea, I've noticed that. However, it looks like inst_iterator is iterator over
> pointers. Oh, wait a minite, that's the current code:
>
> inline IIty operator*() const { return BI; }
> inline IIty operator->() const { return operator*(); }
>
> So operator* works as if value_type is Instruction*, but operator->
2013 Oct 17
0
[LLVMdev] [Debug Info PATCH] for support of ref_addr and removal of DIE duplication
On Wed, Oct 16, 2013 at 9:10 PM, Manman Ren <manman.ren at gmail.com> wrote:
>
>
>
> On Wed, Oct 16, 2013 at 1:58 PM, David Blaikie <dblaikie at gmail.com> wrote:
>
>>
>>
>>
>> On Wed, Oct 16, 2013 at 1:21 PM, Manman Ren <manman.ren at gmail.com> wrote:
>>
>>>
>>> There are a few places where we break the assumption:
2013 Oct 17
2
[LLVMdev] [Debug Info PATCH] for support of ref_addr and removal of DIE duplication
On Wed, Oct 16, 2013 at 1:58 PM, David Blaikie <dblaikie at gmail.com> wrote:
>
>
>
> On Wed, Oct 16, 2013 at 1:21 PM, Manman Ren <manman.ren at gmail.com> wrote:
>
>>
>> There are a few places where we break the assumption:
>> 1> formal_parameter constructed in DwarfDebug when adding attribute type
>> we call SPCU->addType(Arg, ATy),
2004 Apr 23
2
[LLVMdev] subtle problem with inst_iterator
Chris Lattner wrote:
> On Fri, 23 Apr 2004, Vladimir Prus wrote:
> > and since result of *it is considered to be rvalue it can't be accepted
> > by this operator. The complete discussion is in
> >
> > http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2002/n1385.htm
> >
> > I'd suggest to apply the following patch which makes operator* return
>
2012 Feb 11
0
[LLVMdev] Remove an instruction through Dead Code Elimination pass of llvm
Hi Adarsh,
On 11/02/12 09:47, Adarsh Konchady wrote:
> My pass in LLVM generates an IR like this
> %5 = icmp eq i32 %4, 0
> %7 = or i1 %5, %5
> ;. . .
> Since the 'or' instruction is actually not needed(dead code), I replaced all
> occurences of %7 with %5.
> Now, the 'or' instruction should get deleted. How can I call Dead Code
> Elimination pass
2013 Nov 03
2
[LLVMdev] Appropriate DS for implementing worklist
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?
Regards,
Rekha
On Sun, Nov 3, 2013 at 8:31 PM, David Blaikie <dblaikie at gmail.com> wrote:
> If you
2013 Nov 03
0
[LLVMdev] Appropriate DS for implementing worklist
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
2017 May 22
2
Optimizing diamond pattern in DAGCombine
Explicitly re-adding a node to be processed doesn't work, because the
processing order is canonical.
2017-05-22 11:39 GMT-07:00 Nirav Davé <niravd at google.com>:
> You can always explicitly add D to the worklist when you make the
> transformation with AddToWorklist. Presuambly this was the cause for your
> infinite loop.
>
> -Nirav
>
>
> On Mon, May 22, 2017 at
2017 May 22
2
Optimizing diamond pattern in DAGCombine
The root problem is that, when A gets modified, D doesn't get added back to
the worklist. I could match the pattern on A, but the problem remains: when
D gets modified, A do not get added back tot he worklist.
I also considered ding several round of DAGCombine, but it is very easy to
run into infinite loops, even with a fair amount of sanity checks.
2017-05-22 7:30 GMT-07:00 Nirav Davé
2013 Oct 17
1
[LLVMdev] [Debug Info PATCH] for support of ref_addr and removal of DIE duplication
On Wed, Oct 16, 2013 at 10:32 PM, David Blaikie <dblaikie at gmail.com> wrote:
>
>
>
> On Wed, Oct 16, 2013 at 9:10 PM, Manman Ren <manman.ren at gmail.com> wrote:
>
>>
>>
>>
>> On Wed, Oct 16, 2013 at 1:58 PM, David Blaikie <dblaikie at gmail.com>wrote:
>>
>>>
>>>
>>>
>>> On Wed, Oct 16, 2013 at
2011 May 07
1
[LLVMdev] def-use chain for Instruction
Hello all,
I am a LLVM newer who want to obtain the use-def chain for all instruction
of a sample code, for this purpose i use the following code.
///////////////sample code://///////////////////////
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define ARRAY_SIZE 5
int main() {
int x, y, holder;
int k,z,f,i;
z=0;
f=0;
k=0;
for(x = 0; x < ARRAY_SIZE;
2013 Nov 03
0
[LLVMdev] Appropriate DS for implementing worklist
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?
>
2015 Dec 03
3
Function attributes for LibFunc and its impact on GlobalsAA
----- Original Message -----
> From: "James Molloy via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "Vaivaswatha Nagaraj" <vn at compilertree.com>
> Cc: "LLVM Dev" <llvm-dev at lists.llvm.org>
> Sent: Thursday, December 3, 2015 4:41:46 AM
> Subject: Re: [llvm-dev] Function attributes for LibFunc and its impact on GlobalsAA
>
>
2006 Apr 30
4
renamed partial won''t render?
hi all
this works
<%= render :partial => "admin/works/work", :collection =>
@artist.works %>
but this doesn''t
<%= render :partial => "admin/works/worklist", :collection =>
@artist.works %>
even though the partial _work.rhtml and _worklist.rhtml are identical.
worklist.rhtml throws
undefined local variable or method
2013 Oct 16
0
[LLVMdev] [Debug Info PATCH] for support of ref_addr and removal of DIE duplication
On Wed, Oct 16, 2013 at 1:21 PM, Manman Ren <manman.ren at gmail.com> wrote:
>
> There are a few places where we break the assumption:
> 1> formal_parameter constructed in DwarfDebug when adding attribute type
> we call SPCU->addType(Arg, ATy), where Arg does not belong to SPCU.
> 2> inlined_subroutine constructed in DwarfDebug when adding attribute
>