similar to: [LLVMdev] Irreducible Control-Flow & Loops

Displaying 20 results from an estimated 8000 matches similar to: "[LLVMdev] Irreducible Control-Flow & Loops"

2009 Sep 29
1
[LLVMdev] Irreducible Control-Flow & Loops
Hey, Thank you for your replies, Chris and Dan. Chris Lattner wrote: >> I am considering writing a patch for LoopInfo instead of creating my own >> data structure for irreducible loops. >> Is such an enhancement desired or even already implemented by someone >> (e.g. in the 2.6 branch)? > I'm not sure that this is a good idea. LoopInfo is clearly defined to >
2009 Sep 28
0
[LLVMdev] Irreducible Control-Flow & Loops
On Sep 28, 2009, at 2:28 AM, Ralf Karrenberg wrote: > Hello everybody, > > I just started implementing a part of my algorithm that deals with > irreducible control-flow. > Apparently, the LoopInfo analysis does not recognize loops with > multiple > incoming edges (as of LLVM 2.5). > On the mailing list archives I found a few discussions related to > irreducible
2008 Jul 24
3
[LLVMdev] Irreducible CFG from tail duplication
It seems that tail duplication can make a reducible CFG irreducible (example below). Is that intentional? Are there other optimizations that have that property? Is irreducibility a problem for existing LLVM passes? It looks like there was once an open project for a pass to make irreducible graphs reducible. Was that ever implemented? - Mark ; "opt -inline -tailduplicate" makes an
2008 Jul 24
0
[LLVMdev] Irreducible CFG from tail duplication
On Thu, Jul 24, 2008 at 2:00 PM, Mark Leone <markleone at gmail.com> wrote: > Is irreducibility a problem for existing LLVM passes? There aren't any LLVM passes that expect a reducible CFG at the moment; of course, some passes are more effective with reducible CFGs. > It looks like > there was once an open project for a pass to make irreducible graphs > reducible. Was that
2008 Jul 24
1
[LLVMdev] Irreducible CFG from tail duplication
Thanks Eli. It's not introducing loops, just unstructured conditionals (e.g. X's in the control-flow graph, rather than diamonds). You can see it using "opt -view-cfg" on the code below. Sounds like it's not a bug. Thanks for the info. - Mark ; Tail duplication yielded this code, which has non-structured control flow. ; Note that "then.i2" and
2010 Nov 01
2
[LLVMdev] Making Flow graphs reducible
Hi, Is there any pass in LLVM 2.6/2.7/2.8 that makes an irreducible flow graph reducible? Best Regards, Raj -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20101101/d786d451/attachment.html>
2009 Jun 30
2
[LLVMdev] Irreducibility and the -simplifycfg flag
Hi everyone, I'm currently trying to run a study on irreducibility of C programs, and I've implemented structural analysis (original paper by Sharir, algorithm in Muchnick's book) as an LLVM pass. When my implementation becomes a bit less buggy I'll certainly look into including it in the LLVM project. As a test for the algorithm I've been producing LLVM bitcode for C files
2020 Jul 02
2
RFC: Introducing CfgTraits and type-erased CfgInterface / CfgBlockRef / CfgValueRef
Hi all, This is a request for comment on a series of patches which introduce a new way of writing algorithms that are generic over different types of CFG. What is this? ============= This series of patches introduces a set of classes and templates for: 1. Working on basic blocks and values generically, in particular with the same algorithm implementation on both LLVM IR and MachineIR (in SSA
2011 Nov 30
0
[LLVMdev] Fwd: Problem getting LoopInfo inside non-LoopPass
The following code is causing an "UNREACHABLE executed!" and a stack dump, any ideas? namespace { struct myPass : public CallGraphSCCPass { static char ID; myPass() : CallGraphSCCPass(ID) {} virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); AU.addRequired<LoopInfo>(); } virtual bool runOnSCC(CallGraphSCC &SCC)
2011 Dec 01
1
[LLVMdev] Problem getting LoopInfo inside non-LoopPass
In addition to the link below, please check for functions like "llvm.debug.declare", "llvm.debug.value", as you will not get LoopInfo for these.   Pankaj   ________________________________ From: Devang Patel <dpatel at apple.com> To: Ryan Taylor <ryta1203 at gmail.com> Cc: llvmdev at cs.uiuc.edu Sent: Wednesday, November 30, 2011 11:08 PM Subject: Re: [LLVMdev]
2011 Nov 30
2
[LLVMdev] Fwd: Problem getting LoopInfo inside non-LoopPass
On Tue, Nov 29, 2011 at 6:59 PM, Ryan Taylor <ryta1203 at gmail.com> wrote: > The following code is causing an "UNREACHABLE executed!" and a stack dump, > any ideas? The stack might be handy. > namespace { >   struct myPass : public CallGraphSCCPass { >   static char ID; >   myPass() : CallGraphSCCPass(ID) {} >   virtual void getAnalysisUsage(AnalysisUsage
2010 Nov 04
0
[LLVMdev] Making Flow graphs reducible
Hi Raj, > Is there any pass in LLVM 2.6/2.7/2.8 that makes an irreducible flow graph > reducible? can you please give an example of what you have in mind. Ciao, Duncan.
2011 Dec 01
0
[LLVMdev] Problem getting LoopInfo inside non-LoopPass
Thanks for the info. Curious, do you know if there is an opt that will put all loops, including nested ones, in functions (ie each loop in it's own function)? What I'm trying to do is create a way for each loop to have only one exit. I want all loops to be single exit loops? I can write my own pass but I'd rather not. I think that if I can put each loop into it's own function
2010 Nov 04
1
[LLVMdev] Making Flow graphs reducible
Duncan Sands wrote: > > Is there any pass in LLVM 2.6/2.7/2.8 that makes an irreducible flow > graph > reducible? > Do you mean something like this? http://portal.acm.org/citation.cfm?id=977393 -- View this message in context: http://old.nabble.com/Making-Flow-graphs-reducible-tp30110882p30134979.html Sent from the LLVM - Dev mailing list archive at Nabble.com.
2011 Nov 30
0
[LLVMdev] Fwd: Problem getting LoopInfo inside non-LoopPass
UNREACHABLE executed! 0 opt 0x00000000008edc2f 1 opt 0x00000000008edfda 2 libpthread.so.0 0x00007f9c8e69bc60 3 libc.so.6 0x00007f9c8d986d05 gsignal + 53 4 libc.so.6 0x00007f9c8d98aab6 abort + 390 5 opt 0x00000000008da974 llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) + 356 6 opt 0x000000000087e046 7 opt
2011 Nov 21
5
[LLVMdev] Fwd: Problem getting LoopInfo inside non-LoopPass
I would have thought this would have been possible. On Thu, Nov 17, 2011 at 3:49 PM, Ryan Taylor <ryta1203 at gmail.com> wrote: > So is this simply not possible? > > > On Thu, Nov 17, 2011 at 10:31 AM, Ryan Taylor <ryta1203 at gmail.com> wrote: > >> Nick, >> >> Thanks for this info, though this didn't help my problem at all. >> >>
2020 Jul 07
2
RFC: Introducing CfgTraits and type-erased CfgInterface / CfgBlockRef / CfgValueRef
Hi Jakub, On Tue, Jul 7, 2020 at 6:25 AM Jakub (Kuba) Kuderski <kubakuderski at gmail.com> wrote: > There's a lot of heavily templated code in generic DomTee construction/updater, MemSSA updater, and GraphDiff that has become really hard to modify. For the context, Alina (cc'd) was recently looking into making the domtree code work with 'CFG views'; the basic idea is to
2020 Jul 01
2
Inner Loop extraction in LLVM
Hi Johannes, This is very helpful and thank you for the quick response. I imagine that the usual nested loop structure is something like: loop1_header_bb bbs_between_loop1_header_and_loop2_header loop2_header_bb loop_body_bbs br loop2_header_bb instructions_before_loop1_end_and_after_loop2_end br loop1_header_bb In this case you mean that loop2_header_bb might need to be split before
2010 Mar 19
0
[LLVMdev] transforming an irreducible cfg into a reducible cfg
Hi, I've a short question: Does there exist any llvm pass that transforms an irreducible CFG into a reducible one? So far i didn't find any implementation on the internet, only an old feature request from 2003: https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_1/docs/OpenProjects.html (under "Miscellaneous Improvements") It would be exactly the thing that i need. Best
2011 May 04
1
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
Your constructor is not calling initializeTestMPPass(), and you're using RegisterPass which I think was deprecated in favor of INITIALIZE_PASS. You can look at, for example, lib/Transforms/Scalar/IndVarSimplify.cpp for examples of how to initialize, e.g. having "INITIALIZE_PASS_DEPENDENCY(LoopInfo)" sandwiched between BEGIN and END. Note that you'll want a forward declaration of