similar to: [LLVMdev] PostOrderIterator

Displaying 20 results from an estimated 200 matches similar to: "[LLVMdev] PostOrderIterator"

2009 Jun 29
2
[LLVMdev] [cfe-dev] Patch for llvm::DepthFirstIterator.h and llvm::PostOrderIterator.h
Hi, I've done all the minor changes you recommended and have attached a new patch including both files again (even if po_iterator didn't change). However: Dan Gohman schrieb: > The plural of "child" is "children"; please rename this function > accordingly. Is "childs" just sloppy, is it american english or is it just a misconception of foreigners
2009 Jun 15
3
[LLVMdev] Some df_iterator and po_iterator issues
Hi @llvm, below is a copy of a message I sent to clang a hour before. I guess it's more appropriate here. --snip-- While trying to eleminate as much std::tr1::function as possible I stumbled over a design flaw in llvm::df_iterator. Consider the following code: void for_all_stmts(Stmt* S, const std::tr1::function<void(Stmt*)>& fn) { if (S) { fn(S); for
2009 Jun 27
0
[LLVMdev] Patch for llvm::DepthFirstIterator.h and llvm::PostOrderIterator.h
Hi Olaf, This patch looks good to me. I just have a few minor comments: > + inline df_iterator() { CurrentTopNode = 0; /* End is when stack is empty */ } Should the comment here be updated to say that the End is reached when the stack is empty and when CurrentTopNode is null? > + inline void toNext() > + { LLVM style puts the open brace on the same line as the function name.
2009 Jun 26
3
[LLVMdev] Patch for llvm::DepthFirstIterator.h and llvm::PostOrderIterator.h
Hi @clang and @llvm, attached you'll find a patch dealing with some iterator issues I already mentioned in both lists. Since there was no reaction I cross-post again - now IMHO production-ready code. The patch is considered to get checked-in out of the box. It should not affect the behavior of existing and working code. I really need it for clang AST processing. Changes: 1. Both
2009 Apr 14
1
[LLVMdev] Depth First Sort of Machine Basic Blocks just before emitting code
Too obvious! Thanks Dan On Apr 13, 2009, at 7:58 PM, John Mosby wrote: > po_iterator (ADT/PostOrderIterator.h) ? > > On Mon, Apr 13, 2009 at 5:40 PM, Daniel M Gessel <gessel at apple.com> > wrote: > That looks like it does a preorder depth first traversal (I think). > I'm looking for postorder. Is there a trivial transform between the > two? (I don't know
2009 Apr 13
0
[LLVMdev] Depth First Sort of Machine Basic Blocks just before emitting code
po_iterator (ADT/PostOrderIterator.h) ? On Mon, Apr 13, 2009 at 5:40 PM, Daniel M Gessel <gessel at apple.com> wrote: > That looks like it does a preorder depth first traversal (I think). > I'm looking for postorder. Is there a trivial transform between the > two? (I don't know one.) > > Am I wrong about the preorder/postorder? If not, anything lurking for >
2009 Jul 07
0
[LLVMdev] Some df_iterator and po_iterator issues
On Jun 15, 2009, at 4:33 AM, Olaf Krzikalla wrote: > While trying to eleminate as much std::tr1::function as possible I > stumbled over a design flaw in llvm::df_iterator. Ok. > However if fn replaces childrens of a just processed statement > (which happens a lot), the iteration may crash. Looking at > df_iterator reveals the reason: the first child of a particular >
2009 Jul 10
2
[LLVMdev] Some df_iterator and po_iterator issues
Chris, attached you will find a patch implementing the approach I've posted yesterday. I don't want the topic fall by the wayside*. *Note that this patch here contains the df_iterator changes only, some (IMHO non-critical but needed) po_iterator changes are still in the pipeline and posted by me in another thread. I hope, the current approach fits all needs. Chris Lattner schrieb:
2009 Apr 13
2
[LLVMdev] Depth First Sort of Machine Basic Blocks just before emitting code
That looks like it does a preorder depth first traversal (I think). I'm looking for postorder. Is there a trivial transform between the two? (I don't know one.) Am I wrong about the preorder/postorder? If not, anything lurking for postorder traversal? Thanks, Dan On Apr 13, 2009, at 2:35 PM, Chris Lattner wrote: > > On Apr 13, 2009, at 11:20 AM, Daniel M Gessel wrote:
2013 Mar 29
1
[LLVMdev] function pass to visit BB bottom-up order
Hello llvmdevs, In a function pass, I need to visit all the basic blocks in bottom-up order (the exact opposite of ReversePostOrderTraversal). I noticed some APIs like po_iterator but wasn't able to figure out an example usage for this on web. Any pointers/suggestions are highly appreciated. Thanks, Ananth -------------- next part -------------- An HTML attachment was scrubbed... URL:
2017 Jul 17
2
An update on the DominatorTree and incremental dominators
Hi folks, For the past month I’ve been working on improving the DominatorTree and PostDominatorTree in LLVM. The RFC that explains the motivations and plans can be found here: http://lists.llvm.org/pipermail/llvm-dev/2017-June/114045.html . Here’s a short summary of what changed upstream since posting it: - We switched from the Simple Lengauer-Tarjan algorithm for computing dominators
2009 Mar 18
1
[LLVMdev] Shrink Wrapping - RFC and initial implementation
Hi John. > I am putting this information > into my temp. wiki page in hopes of getting it into the dev wiki when > that is available. The dev wiki is up at its temporary name http://google2.osuosl.org/wiki/. Feel free to dump your stuff on there. On Fri, Mar 13, 2009 at 7:43 PM, John Mosby <ojomojo at gmail.com> wrote: > Hi Evan, > Thanks very much for the review, I am
2010 Nov 24
0
[LLVMdev] A way to traverse machine basic blocks in order?
The reverse postorder iterator does what you want. It's defined in ADT/PostOrderIterator.h, and is used like this: ReversePostOrderTraversal<Function*> RPOT(&F); for (ReversePostOrderTraversal<Function*>::rpo_iterator RI = RPOT.begin(), RE = RPOT.end(); RI != RE; ++RI) <work here> Creating a ReversePostOrderTraversal is not cheap, because it first has to
2011 Nov 20
1
[LLVMdev] Order of Basic Blocks
Sorry, forgot to add group to CC. On Sun, Nov 20, 2011 at 6:14 PM, Ryan Taylor <ryta1203 at gmail.com> wrote: > Cameron, > > To make it less vague, I would ideally like to traverse top down. I > believe what you suggested is what I want, I will have a look at it. > > Currently, I am iterating over the BBs in a Function, so > Function::iterator BBitr=F->begin(),
2011 Nov 21
0
[LLVMdev] Order of Basic Blocks
Is there a way to cast the rpo_iterator to a basic block pointer? I need to use the functions of the class Basic Block. On Sun, Nov 20, 2011 at 3:15 PM, Ryan Taylor <ryta1203 at gmail.com> wrote: > Sorry, forgot to add group to CC. > > On Sun, Nov 20, 2011 at 6:14 PM, Ryan Taylor <ryta1203 at gmail.com> wrote: > >> Cameron, >> >> To make it less vague,
2011 Oct 21
2
[LLVMdev] ANN: libclc (OpenCL C library implementation)
Hi, > libclc: http://www.pcc.me.uk/~peter/libclc/ > pocl: https://launchpad.net/pocl > clover: http://cgit.freedesktop.org/~steckdenis/clover/ I have pushed our implementation on GitHub: https://github.com/speziale-ettore/OpenCRun I have focused on desiging a modular system, because OpenCRun is intended to be used for research purpose -- not many people, no too much time, so clean
2009 Mar 12
4
[LLVMdev] Shrink Wrapping - RFC and initial implementation
Hi John, It looks pretty good. Thanks for working on this. Some comments: 1. Some of the functions that you introduced, e.g. stringifyCSRegSet probably ought to be "static" and ifdef'ed out when NDEBUG is defined. 2. + // DEBUG + if (! MBB->empty() && ! CSRUsed[MBB].intersects(restore)) { + MachineInstr* MI = BeforeI; + DOUT <<
2011 Oct 21
0
[LLVMdev] [cfe-dev] ANN: libclc (OpenCL C library implementation)
On Fri, Oct 21, 2011 at 9:48 AM, Speziale Ettore <speziale.ettore at gmail.com> wrote: > Currently I have implemented an OpenCL backend for i386 and X86_64 CPUs. > I have coded work-item stacks by hand because after some sintetic > benchmarks I have observed that both ucontext and setjmp/longjmp contain > some extra overheads. If you have not already seen it, you (and anyone
2002 Nov 12
0
[LLVMdev] (no subject)
P.S. If anyone can take a little time to write a GraphTraits class for the call graph, using the call sites returned by the TDGraph, that would be great. Then you could directly use the PostOrderIterator, ReversePostOrderIterator, and TarjanSCCIterator on this call graph, without having to do any extra work. You can also do other things like print out the call graph to dot files and view them.
2004 Apr 24
0
[LLVMdev] cs326 mp help
Hi, First, please send any replies to me separately, as I am not on the list. I'm trying to run a very simple LLVM pass as a start on a class project. It compiles fine, but I get a runtime assertion when running the pass. I'll paste the error and cpp file below, but basically I'm being told that I haven't specified a required pass. However, I've looked at some example