search for: codeextractor

Displaying 20 results from an estimated 86 matches for "codeextractor".

2010 Jan 09
2
[LLVMdev] [PATCH] Fix nondeterministic behaviour in the CodeExtractor
Hello, The CodeExtractor contains a std::set<BasicBlock*> to keep track of the blocks to extract. Iterators on this set are not deterministic, and so the functions that are generated are not (the order of the inputs/outputs can change). The attached patch uses a SetVector instead. Ok to apply ? Thanks, Julien --...
2010 Jan 09
0
[LLVMdev] [PATCH] Fix nondeterministic behaviour in the CodeExtractor
On Jan 8, 2010, at 5:01 PM, Julien Lerouge wrote: > Hello, > > The CodeExtractor contains a std::set<BasicBlock*> to keep track of > the > blocks to extract. Iterators on this set are not deterministic, and so > the functions that are generated are not (the order of the > inputs/outputs can change). > > The attached patch uses a SetVector instead. Ok t...
2010 Jan 10
1
[LLVMdev] [PATCH] Fix nondeterministic behaviour in the CodeExtractor
On Fri, Jan 08, 2010 at 05:04:17PM -0800, Chris Lattner wrote: > On Jan 8, 2010, at 5:01 PM, Julien Lerouge wrote: > >Hello, > > > >The CodeExtractor contains a std::set<BasicBlock*> to keep track > >of the > >blocks to extract. Iterators on this set are not deterministic, and so > >the functions that are generated are not (the order of the > >inputs/outputs can change). > > > >The attached patch uses a...
2017 Nov 29
4
CodeExtractor buggy?
Hi All, I’m currently working on a simple task which needs to transform loops into tail-recursive functions. I found the CodeExtractor class a handy helper to use, but later encountered a problem. Consider the following CU struct S { int a, b; }; int foo(struct S *s, unsigned n) {   struct S *next = s;   unsigned i;   for (i = 0; i < n; ++i) {     if (!s[i].a)       break;     next = s + i;   }   return n...
2008 Nov 19
2
[LLVMdev] Problem in CodeExtractor::severSplitPHINodes()
Hi, I found a problem in CodeExtractor::severSplitPHINodes() <CodeExtractor.cpp>. The algorithm first separates the header block into two, one containing only PHI nodes and the other containing the remaining non-PHI nodes. The variable NewBB holds the pointer to the latter half block. Later, it tries to update DT information. if...
2010 Dec 31
3
[LLVMdev] CodeExtractor.cpp potential bug?
There might be a misuse of DominatorTree::splitBasicBlock in CodeExtractor.cpp, line 145. Header is splited into two (OldPred->NewBB). Line 145 updates the dominator tree by calling DT->splitBasicBlock(NewBB). I think it should be DT->splitBasicBlock(OldPred). When I tried to extract a code region whose header has 2 successors, my pass crashed. It was because h...
2011 Jan 03
0
[LLVMdev] CodeExtractor.cpp potential bug?
On Dec 31, 2010, at 11:20 AM, Vu Le wrote: > There might be a misuse of DominatorTree::splitBasicBlock in CodeExtractor.cpp, line 145. > Header is splited into two (OldPred->NewBB). > > Line 145 updates the dominator tree by calling DT->splitBasicBlock(NewBB). > I think it should be DT->splitBasicBlock(OldPred). > > When I tried to extract a code region whose header has 2 successors, my...
2013 Nov 18
2
[LLVMdev] CodeExtractor status?
...lse (different node in a cluster). Basically what I need is the ability to isolate a region of code, get its inputs and outputs, create a new function with the extracted code and code aggregating the in and out parameters as structs that can be cast for a “void*”-based interface. It looks like the CodeExtractor (include/Transforms/Util/CodeExtractor.h) does nearly all of this, with the exceptions that I need to generate a different “call”, and I need to be able to separate the outputs and inputs. I think I should be able to do what I want by making modifications after calling the CodeExtractor. But sinc...
2008 Nov 20
0
[LLVMdev] Problem in CodeExtractor::severSplitPHINodes()
On Nov 19, 2008, at 7:41 AM, Jack Tzu-Han Hung wrote: > Hi, > > I found a problem in CodeExtractor::severSplitPHINodes() > <CodeExtractor.cpp>. > > The algorithm first separates the header block into two, one > containing only PHI nodes and the other containing the remaining non- > PHI nodes. The variable NewBB holds the pointer to the latter half > block. Later, i...
2013 Oct 28
0
[LLVMdev] CodeExtractor is not aware of debugger debugger intrinsics
Hello, I'm writing a pass using CodeExtractor to pull out a outmost loop as standalone function. But the 'Module Verifier' issues warning "function-local metadata used in wrong function". After looking through the CodeExtractor code, I found nothing about debugger intrinsics. Is this expected behavior? Thanks, yuanfang
2013 Mar 03
0
[LLVMdev] Question about method CodeExtractor::severSplitPHINodes
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] > On Behalf Of Wei Dang > Subject: [LLVMdev] Question about method CodeExtractor::severSplitPHINodes > In the implementation of serverSplitPHINodes(), why it only checks the > first PHI node for possible multiple inputs from outside the region to > extract. There could be more than one PHI nodes in the header block, > and the code only checks the first one. I don...
2013 Nov 21
0
[LLVMdev] CodeExtractor status?
...y what I need is > the ability to isolate a region of code, get its inputs and outputs, > create a new function with the extracted code and code aggregating the > in and out parameters as structs that can be cast for a "void*"-based > interface. > > It looks like the CodeExtractor > (include/Transforms/Util/CodeExtractor.h) does nearly all of this, > with the exceptions that I need to generate a different "call", and I > need to be able to separate the outputs and inputs. Hi Brandon, That sounds a lot like what I'm doing. I'm not using the co...
2012 May 02
1
[LLVMdev] Taking over work on CodeExtractor, spiffing it up, and making it nice & easy to use
On Wed, May 2, 2012 at 1:57 AM, Dmitry N. Mikushin <maemarcus at gmail.com>wrote: > At KernelGen we have an out-of-tree variation of CodeExractor called > BranchedCodeExractor [1], which instead of taking a code region into a new > function, does it conditionally: > OK... as this is an out-of-tree branch of the code extraction, nothing I'm planning should negatively impact
2013 Mar 03
0
[LLVMdev] Question about method CodeExtractor::severSplitPHINodes
> From: Wei Dang [mailto:jacdang at gmail.com] > Subject: Re: [LLVMdev] Question about method CodeExtractor::severSplitPHINodes > Please excuse me if I'm not supposed to reply to all. You should do reply-all, to make sure the list sees all of the thread. > Are you saying all PHI nodes are required to include all its predecessor blocks > no matter they have input or not? That's the w...
2016 Apr 12
2
llvm outlining question
I'm not aware of anything else in LLVM that performs outlining. Ayal (CCed) may be able to help you regarding CodeExtractor fixes. Thanks, Michael On 12 April 2016 at 14:21, Minghwa Wang <mwang2 at cse.scu.edu> wrote: > Thank you Michael and Tom for the quick reply. > > According to your experience and comments, CodeExtractor is buggy only > works for special cases but not general enough for most...
2008 Nov 20
1
[LLVMdev] Problem in CodeExtractor::severSplitPHINodes()
...o a block that contains exit(1). ExtractLoop() has problem with this this example. Thanks a lot. Jack On Wed, Nov 19, 2008 at 7:41 PM, Devang Patel <dpatel at apple.com> wrote: > > On Nov 19, 2008, at 7:41 AM, Jack Tzu-Han Hung wrote: > > Hi, > > I found a problem in CodeExtractor::severSplitPHINodes() > <CodeExtractor.cpp>. > > The algorithm first separates the header block into two, one containing > only PHI nodes and the other containing the remaining non-PHI nodes. The > variable NewBB holds the pointer to the latter half block. Later, it tries >...
2013 Mar 03
2
[LLVMdev] Question about method CodeExtractor::severSplitPHINodes
...oReg.cpp? Thanks a lot. On Sat, Mar 2, 2013 at 6:39 PM, Caldarale, Charles R < Chuck.Caldarale at unisys.com> wrote: > > From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] > > On Behalf Of Wei Dang > > Subject: [LLVMdev] Question about method > CodeExtractor::severSplitPHINodes > > > In the implementation of serverSplitPHINodes(), why it only checks the > > first PHI node for possible multiple inputs from outside the region to > > extract. There could be more than one PHI nodes in the header block, > > and the code only check...
2019 Jan 17
2
stale info in the assumption cache
Hi all, We have recently encountered a problem with AssumptionCache that it does not get updated when a block with llvm.assume calls gets outlined by the CodeExtractor. As a result we end up with stale references to the llvm.assume calls that were moved to the outlined function in the parent function's cache. The problem can be reproduced on the attached file as follows (many thanks to Andy Kaylor for creating this reproducer) $ opt -slp-vectorizer -hotcold...
2011 Jan 24
0
[LLVMdev] CodeExtractor.cpp potential bug?
...which is NewBB? > A or B. > Thanks, > Vu > > > On Mon, Jan 3, 2011 at 1:25 PM, Cameron Zwarich <zwarich at apple.com> wrote: > >> On Dec 31, 2010, at 11:20 AM, Vu Le wrote: >> >> > There might be a misuse of DominatorTree::splitBasicBlock in >> CodeExtractor.cpp, line 145. >> > Header is splited into two (OldPred->NewBB). >> > >> > Line 145 updates the dominator tree by calling >> DT->splitBasicBlock(NewBB). >> > I think it should be DT->splitBasicBlock(OldPred). >> > >> > When I trie...
2012 Nov 14
0
[LLVMdev] CodeExtractor doesn't work with debugging metadata
Hi, I've been experimenting with the CodeExtractor class and have been running into a problem where the verifier pass fails with the error "function-local metadata used in wrong function" when I compile with debugging symbols enabled (-g flag). The issue seems to be that after extraction we have metadata that references variables that are...