Displaying 20 results from an estimated 8000 matches similar to: "RFC Storing BB order in llvm::Instruction for faster local dominance"
2018 Sep 21
3
RFC Storing BB order in llvm::Instruction for faster local dominance
On 09/21/2018 01:30 PM, Chris Lattner via llvm-dev wrote:
On Sep 19, 2018, at 1:30 PM, Reid Kleckner via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
Hi folks,
I looked into some slow compiles and filed https://bugs.llvm.org/show_bug.cgi?id=38829. The gist of it is that we spend a lot of time iterating basic blocks to compute local dominance, i.e.
2018 Sep 24
2
RFC Storing BB order in llvm::Instruction for faster local dominance
Did you consider using the waymarking algorithm we already use for
going from Use->User to store the offset of an instruction in a basic
block? We could steal the two bits needed from the bb parent pointer
in the instruction.
-- Sanjoy
On Mon, Sep 24, 2018 at 10:20 AM Reid Kleckner via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
>
> To echo what Hal said, yes, it's a major
2018 Sep 25
3
RFC Storing BB order in llvm::Instruction for faster local dominance
On Tue, Sep 25, 2018 at 12:16 PM Sanjoy Das <sanjoy at playingwithpointers.com>
wrote:
> Let's not assume a dichotomy between storing a int64 in
> llvm::Instruction and bitwise tricks -- they're both ways of caching
> position within llvm::Instruction. I think we first need to establish
> that we need such a cache in llvm::Instruction/llvm::BasicBlock at
> all.
>
2018 Sep 26
2
RFC Storing BB order in llvm::Instruction for faster local dominance
On Tue, Sep 25, 2018 at 10:45 PM Chris Lattner <clattner at nondot.org> wrote:
> So this is one of the reasons I find your patch to be problematic: it
> isn’t fixing N^2 behavior, it is merely changing one N^2 situation for
> another. AFAICT there are one of two possible cases in these sorts of
> transformations:
>
> 1) These transformations are iteratively removing or
2018 Sep 27
2
RFC Storing BB order in llvm::Instruction for faster local dominance
On 09/27/2018 12:24 AM, Chris Lattner via llvm-dev wrote:
On Sep 26, 2018, at 11:55 AM, Reid Kleckner <rnk at google.com<mailto:rnk at google.com>> wrote:
As suggested in the bug, if we were to rewrite these passes to use MemorySSA, this bottleneck would go away. I rebased a patch to do that for DSE, but finishing it off and enabling it by default is probably out of scope for me.
2020 Feb 14
3
RFC Storing BB order in llvm::Instruction for faster local dominance
Hello again. :)
There has been renewed interest in having instructions track their own
order in basic blocks to help make dominance queries fast. I have a very
simple naive implementation of this here:
https://reviews.llvm.org/D51664
Essentially, every instruction will carry an integer order number, and
inserting new instructions invalidates the ordering. I know there are
better algorithms for
2018 Sep 25
2
RFC Storing BB order in llvm::Instruction for faster local dominance
On Mon, Sep 24, 2018 at 10:07 PM Chris Lattner <clattner at nondot.org> wrote:
> > On Sep 24, 2018, at 9:54 PM, Chris Lattner <clattner at nondot.org> wrote:
> >> I think we have consensus that we should go forward with this. Would
> anyone mind formally stamping it in phab? So far everyone understandably
> has said "makes sense to me, but I don't
2018 Sep 25
2
RFC Storing BB order in llvm::Instruction for faster local dominance
> On Sep 24, 2018, at 10:19 AM, Reid Kleckner <rnk at google.com> wrote:
>
> To echo what Hal said, yes, it's a major change, but I think the improved complexity guarantees, simplicity, and elimination of certain classes of bugs is worth it.
>
> I think we have consensus that we should go forward with this. Would anyone mind formally stamping it in phab? So far everyone
2016 Jul 21
4
RFC: Strong GC References in LLVM
Okay, so it sounds like it might actually be better to be even more low
level, call it "ExtendedBBInfo" or something, and rename what it provides
to be more clearly structural:
A. Inst * FirstIsGuaranteedToTransferExecutionToSuccessor(BB) (naming
bikeshed open on this one :P)
B. Inst * LastIsGuaranteedToTransferExecutionToSuccessor(BB)
C. Inst *FirstMayThrow(BB)
D. Inst
2010 Jun 18
1
[LLVMdev] Erasing Instruction
Hi,
Can anyone tell me how to erase an instruction, (specially a
load/store instruction) ?
If I use Instr->eraseFromParent(), I get following error. Note the
instruction does not have any use.
opt: /home/chayan/llvm/llvm-2.6/include/llvm/ADT/ilist.h:218:
llvm::ilist_iterator<NodeTy>&
llvm::ilist_iterator<NodeTy>::operator++() [with NodeTy =
llvm::Instruction]: Assertion
2016 Aug 25
2
InstList insert depreciated?
Jon,
> You want:
> TaintVar->insertAfter(FirstI);
This worked! Thank you.
On Thu, Aug 25, 2016 at 9:38 AM, Jonathan Roelofs
<jonathan at codesourcery.com> wrote:
>
>
> On 8/25/16 7:01 AM, Shehbaz Jaffer via llvm-dev wrote:
>>
>> I tried an alternative way of adding instruction by first getting the
>> first instruction of the basic block, and then
2017 Mar 29
7
Well-formed @llvm.lifetime.start and @llvm.lifetime.end intrinsics
Hi @all,
I hit a problem with Polly-generated code which llvm.org/PR32251 . The
problem is how @llvm.lifetime.start is placed after Polly transformed
the code. Basically Polly transformed
llvm.lifetime.start(&var)
[...]
llvm.lifetime.end(&var)
into
if (c) {
llvm.lifetime.start(&var)
}
[...]
llvm.lifetime.end(&var)
now the llvm.lifetime.end is
2006 Nov 13
0
[LLVMdev] post-dominance frontier
On Thu, 9 Nov 2006, Ryan M. Lefever wrote:
Sorry I never responded to this:
> In the literature (see below for a reference), when a dominance frontier
> is computed, it is computed from a CFG that contains a dummy entry node
> and dummy exit node. Further, those dummy nodes are potential members
> of the (post-)dominance frontier for a given basic block. In LLVM, I
> could not
2012 Sep 13
2
[LLVMdev] Dominance frontier & Postdominance frontier
Hi,
I found that LLVM 3.1 says Dominance frontier is deprecated. Can anyone please tell me, if there is any replacement for Dominance frontier & Postdominance frontier in LLVM? What are the options if we need to use them?
Thanks,
Swarup.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2006 Nov 10
2
[LLVMdev] post-dominance frontier
In the literature (see below for a reference), when a dominance frontier
is computed, it is computed from a CFG that contains a dummy entry node
and dummy exit node. Further, those dummy nodes are potential members
of the (post-)dominance frontier for a given basic block. In LLVM, I
could not figure out a way to determine if the dummy entry node is a
member of the post-dominance frontier of
2009 Feb 18
2
[LLVMdev] LLVM 2.4 Dominance Frontier Problem
I just finished upgrading our LLVM to 2.4 and I immediately ran into a problem
with dominance frontier calculation:
llvm/lib/VMCore/PassManager.cpp:714: void
llvm::PMDataManager::verifyDomInfo(llvm::Pass&, llvm::Function&): Assertion
`0 && "Invalid dominator info"' failed.
Strangely enough, the Pass running when the assert triggers is Dominance
Frontier
2015 Jul 09
5
[LLVMdev] Strong post-dominance in LLVM?
There is PostDominatorTree for determining post-dominance. Even if A
post-dominates B and B is executed, that doesn't guarantee that A will be
executed. For example, there could be an infinite loop in-between. Strong
post-dominance makes the stronger guarantee that there will be no infinite
loop from B to A. Do we have anything in LLVM for determining strong
post-dominance and in general for
2009 Feb 18
0
[LLVMdev] LLVM 2.4 Dominance Frontier Problem
On Feb 18, 2009, at 8:00 AM, David Greene wrote:
> I just finished upgrading our LLVM to 2.4 and I immediately ran into
> a problem
> with dominance frontier calculation:
>
> llvm/lib/VMCore/PassManager.cpp:714: void
> llvm::PMDataManager::verifyDomInfo(llvm::Pass&, llvm::Function&):
> Assertion
> `0 && "Invalid dominator info"' failed.
2012 Jan 07
0
[LLVMdev] dominance frontiers
On Jan 6, 2012, at 5:08 PM, Chris Lattner wrote:
>>>
>>> It's very like SSA construction, but must make provision
>>> testing anti dependences. I had planned to use dominance frontiers to
>>> guide placement of phi nodes, as usual.
>>
>> Ok, in that case, please check out include/llvm/Transforms/Utils/SSAUpdater.h,
>> which is the
2009 Aug 24
2
[LLVMdev] Post-dominance analysis for multiple-exit functions
Many published analyses which build on post-dominance assume a
canonical single-dominator-tree form induced by unifying all exits
(and often adding a virtual edge from START to END). In contrast, it
seems that the current LLVM post-dominator analysis only operates in a
mode in which it generates a forest of post-dominator trees, with one
rooted at each exit node. The problem this can cause is