similar to: [LLVMdev] The implementation algorithm behind LLVM's RegionInfo class

Displaying 20 results from an estimated 5000 matches similar to: "[LLVMdev] The implementation algorithm behind LLVM's RegionInfo class"

2014 Feb 06
2
[LLVMdev] The implementation algorithm behind LLVM's RegionInfo class
Hi Tobias, Thanks a lot for the detailed reply. I am working on several new optimizations for OpenCL kernels for a DSP architecture. The project itself has an NDA associated with it, so I cannot go into more details, but the source will be open to public after completion. One of the first steps is to serialize the work-items in a work-group (e.g., insert nested loops around REGIONs in
2014 Jun 27
3
[LLVMdev] The implementation algorithm behind LLVM's RegionInfo class
Thanks very much for the quick response. I have read the text many times, but it was not very clear to me why checking the two conditions involving dominance frontiers is equivalent to proving the pair {entry, exit} defines a refined region. I was asking for an mathematical proof really. It sounds to me like there should be a theorem or two in the graph theory endorsing it. Or do you mean, the
2012 May 21
1
[LLVMdev] Add a function splitting pass to LLVM which extracts cold regions into their own functions
Tobias, Thanks for taking the time to summarize all this. It's a great writeup. I'm moving the thread to llvm-dev. My responses below. On May 21, 2012, at 5:06 AM, Tobias Grosser <tobias at grosser.es> wrote: > First of all some information about the RegionInfo pass: > > ======================================================================= > The very first paper I
2014 Jun 27
2
[LLVMdev] The implementation algorithm behind LLVM's RegionInfo class
Hi Tobi, I have one additional question about the RegionInfo::isRegion function. In the second case (i.e. Entry dominates Exit), why is checking the following two conditions are equivalent to checking it's a refined region: For any BB in DF(exit), 1) BB should be in DF(entry) 2) BB reachable only from entry through a path passing exit.
2011 Feb 03
1
[LLVMdev] Preserve RegionInfo after regionsimplify
Hi Tobias, My RegionSimplify pass adds new exit node for refined regions to convert them into simple region. However, the RegionInfo pass does not seem to recognize those changes. For example, in the attached file, bb4.region is supposed to be in the first region. My RegionExtractor pass required the extracted region to be simple. Should we modify RegionInfo or is their away to preserve the
2011 Oct 23
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
On 10/22/2011 08:41 AM, Marcello Maggioni wrote: > I was trying the new feature you introduce about printing out the > graphs, so I updated my version of llvm/clang/polly synchronizing them > to the last version, but I get this error launching clang (also , I > recently switched to MacOS X for development): > > $ clang not_so_simple_loop.c -O3 -Xclang -load -Xclang >
2014 May 02
2
[LLVMdev] An unexpected behavior in RegionInfo's block_iterator
On Fri, May 2, 2014 at 5:30 PM, Tobias Grosser <tobias at grosser.es> wrote: > On 03/05/2014 00:15, Paul Vario wrote: > >> Hi Tobias, >> >> Thanks so much for the quick response. Your approach fixes the >> issue. >> On a bigger context, would it make more sense to make the region >> exit >> part of the region? For example, a while
2014 May 02
2
[LLVMdev] An unexpected behavior in RegionInfo's block_iterator
Hi Fellows, I notice an unexpected behavior in RegionInfo's block_iterator. Consider the following situation: a user creates her own region containing just a single basic block TheBB, then tries to have the block_iterator to print a DFS traversal of the region. The expected behavior should be that only the single basic block TheBB will be printed, but the real behavior is that
2014 May 02
2
[LLVMdev] An unexpected behavior in RegionInfo's block_iterator
Hi Tobias, Thanks so much for the quick response. Your approach fixes the issue. On a bigger context, would it make more sense to make the region exit part of the region? For example, a while loop gets lowered down to LLVM IR contains while.cond, while.body and while.end. If one tries to use RegionInfo as a substitute for structural analysis, she might think while.end should belong to
2011 Oct 22
5
[LLVMdev] How to make Polly ignore some non-affine memory accesses
I was trying the new feature you introduce about printing out the graphs, so I updated my version of llvm/clang/polly synchronizing them to the last version, but I get this error launching clang (also , I recently switched to MacOS X for development): $ clang not_so_simple_loop.c -O3 -Xclang -load -Xclang ${PATH_TO_POLLY_LIB}/LLVMPolly.dylib -mllvm -enable-polly-viewer -mllvm -enable-iv-rewrite
2011 Jan 27
2
[LLVMdev] Update PHINode after extracting code
On 01/26/2011 07:50 PM, Vu Le wrote: > I guess I didn't have a clear question. > > Suppose we have BB1 and BB2 both point to BB3. > BB1 has variable x. BB2 also as variable x. > BB3 will have PHINode for x with 2 value from BB1 and BB2. > BB1 BB2 > \ / > BB3 > > Now if BB1 and BB2 is extracted into a function > (using ExtractCodeRegion), they
2012 Jul 31
2
[LLVMdev] Assertion failure on region analysis
Hi all, I ran across an assertion failure while using region analysis in my passes. I get the same thing when doing: opt -regions -analyze [...]   [1] entry => if.end End region tree Printing analysis 'Detect single entry single exit regions' for function 'njDecodeSOF': Region tree: [0] entry => <Function Return>   [1] entry => return     [2] if.end => return
2012 Jul 31
0
[LLVMdev] Assertion failure on region analysis
Hi , It will be good ,If you get us the sample that assert. Thanks ~Umesh On Tue, Jul 31, 2012 at 11:40 AM, 田中 太郎 <dontforgettobringatowel at live.jp>wrote: > > Hi all, > > I ran across an assertion failure while using region analysis in my passes. > I get the same thing when doing: opt -regions -analyze > > [...] > [1] entry => if.end > End region tree
2017 Jun 13
2
RFC: Dynamic dominators
Btw, here is another interesting paper about post-dominators and control dependence: https://pdfs.semanticscholar.org/cbb2/9a0e4895025bd9df24f9263217df12f1ed1e.pdf I think a great outcome of your internship would be some precise documentation regarding the guarantees the LLVM dominators give -- possibly also considering classic and weak control dependence and the difference between
2012 Sep 17
1
[LLVMdev] Create superblock in LLVM IR
Last time I asked here about superblocks (which we were using in the first version of ThreadSanitizer instrumentation) Tobias Grosser has suggested to use RegionInfo: did you have a look at the RegionInfo pass? It currently detects some kind of refinded SESE regions. I use them in Polly and as far as I know the Intel OpenCL SDK also uses them in some way. It is not SEME, but it may
2010 Mar 13
2
[LLVMdev] Seeking advice on Structural Analysis pass
Hi folks, A few months back I finished writing and testing a pass which implements "structural analysis" as described originally by Sharir in 1980 ("Structural analysis: A new approach to flow analysis in optimizing compilers") and more recently by Muchnick in Advanced Compiler Design and Implementation. It analyses the CFG and recognises specific region schema, such as
2010 Jul 27
0
[LLVMdev] DominanceFrontier for MachineBB
hi, On Tue, Jul 27, 2010 at 3:32 PM, Tobias Grosser <grosser at fim.uni-passau.de> wrote: > On 07/27/10 09:24, Evan Cheng wrote: >> Any chance you could templatify this so someone can add a MachineRegionInfo later? It would be useful for region based register allocation, etc. >> >> Thanks, >> >> Evan > > Hi Evan, > > ether did once a templated
2010 Mar 21
0
[LLVMdev] Seeking advice on Structural Analysis pass
On 03/16/2010 05:02 PM, James Stanier wrote: > > Hi Trevor, > > I just studied your diagrams -- I *think* that the "control tree" of > structural analysis is not same as the "control flow tree" from your own > Java work. However, as you understand your work more than I do, I present > you with some fancy coloured diagrams that I drew that might help you
2016 Jul 13
3
[PM] I think that the new PM needs to learn about inter-analysis dependencies...
On Wed, Jul 13, 2016 at 12:25 AM Sean Silva <chisophugis at gmail.com> wrote: > On Tue, Jul 12, 2016 at 11:39 PM, Chandler Carruth <chandlerc at gmail.com> > wrote: > >> On Tue, Jul 12, 2016 at 11:34 PM Sean Silva <chisophugis at gmail.com> >> wrote: >> >>> On Tue, Jul 12, 2016 at 11:32 PM, Xinliang David Li <davidxl at google.com>
2011 Jan 27
0
[LLVMdev] Update PHINode after extracting code
I guess I didn't have a clear question. Suppose we have BB1 and BB2 both point to BB3. BB1 has variable x. BB2 also as variable x. BB3 will have PHINode for x with 2 value from BB1 and BB2. BB1 BB2 \ / BB3 Now if BB1 and BB2 is extracted into a function (using ExtractCodeRegion), they will be replaced by a basic block called codeRepl (which has a call to the extracted