Displaying 20 results from an estimated 3000 matches similar to: "[LLVMdev] Is structural analysis pass available?"
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
2010 Mar 14
1
[LLVMdev] Seeking advice on Structural Analysis pass
On 03/13/2010 08:54 PM, James Stanier wrote:
>
> Hi folks,
Hi James,
I have also been working on such a pass for the last couple of month.
The pass itself is finished and ether has written some further LLVM
support implementing a RegionPass class, that can be used to implement
region passes that work like the existing LoopPasses today, but use a
region instead of a loop or function as
[LLVMdev] Add a function splitting pass to LLVM which extracts cold regions into their own functions
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
2010 Jan 12
0
[LLVMdev] Make LoopBase inherit from "RegionBase"?
Why not use the "standard" algorithm for detecting SESE-regions and building a program structure tree?
It should handle everything you want. It also becomes much simpler to specify a connected SESE-region
by entry/exit edges, while a disconnected region is specified by entry/exit blocks. Only defining regions on
blocks is not enough to be able to quickly determine how to replace/move a
2010 Mar 19
1
[LLVMdev] Seeking advice on Structural Analysis pass
On 03/15/2010 05:51 PM, James Stanier wrote:
>
> Hi Tobias,
Hi,
>
> Thanks for getting back to me. I have just had a peek at the documentation
> for your region pass, and it looks really cool, and thanks also for the
> pointers to the literature.
>
> If you want an overview of how structural analysis works, some of the pages
> from Muchnick's textbook are available
2010 Mar 16
1
[LLVMdev] Seeking advice on Structural Analysis pass
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 (and
others!) understand what structural analysis does a bit better than the
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
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
2009 Apr 15
0
[LLVMdev] Accessing instruction/operand names
The other repliers have been right that you probably want to use
Value*s rather than string names in constructing your dependency
graph, but I wanted to clear up a second possible point of confusion.
When you see %2 in the assembly, that's an indication that the
instruction's name is empty. That is, value->getName() == "". As far
as I know, llvm-dis just generates numbers in
2010 Jul 20
0
[LLVMdev] Is structural analysis pass available?
Hi,
Is the structural analysis pass discussed in
http://comments.gmane.org/gmane.comp.compilers.llvm.devel/30213 still
available to download?
Thanks.
--
Jianzhou
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 15
1
[LLVMdev] Seeking advice on Structural Analysis pass
On Mar 13, 2010, at 11:54 AM, James Stanier wrote:
> It
> analyses the CFG and recognises specific region schema, such as if-
> then,
> if-then-else, while-loop, etc., and builds a "control tree" which
> represents
> the hierarchical structure of the input program.
I am not sure if my definition of a control flow tree is the same as
yours, but if it is, I am very
2009 Mar 25
0
[LLVMdev] Rolling my own LLVM assembly language parser
You can achieve the 'standalone tools' effect using LLVM bitcode,
which is a binary IR format.
Then you can have:
source code -> [llvm-gcc frontend] -> bc
bc -> [your tool using llvm bitcode reader writer library, doing
whatever mutations to the IR you want and spitting out bc again] -> bc
bc -> [llvm backend (llc)/llvm-as/...] -> native code.
Doesn't that meet your
2009 Mar 27
0
[LLVMdev] Shared objects not being built on OS X
On Fri, Mar 27, 2009 at 11:18 PM, jstanier <j.stanier at sussex.ac.uk> wrote:
>
> Hi again everyone...
>
> After following the "Writing an LLVM Pass" tutorial using LLVM 2.5, there
> is
> a part that states that:
>
> "This makefile specifies that all of the .cpp files in the current
> directory
> are to be compiled and linked together into a
2011 Jan 27
0
[LLVMdev] Update PHINode after extracting code
Hi Tobias,
If the PHI node at exit block of region R has multiple inputs from the R,
I split the exit block into 2.
The first block contains all PHI nodes whose input are all from the region.
The second is the new exit node.
All branches (outside R) to the old exit now point the new exit.
All regions whose exit is the old exit are also updated with the new exit
node.
It works like a charm.
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
2010 Dec 22
0
[LLVMdev] Extracting Single-entry single-exit Regions into functions
Hi,
I want to write a pass that pulls single-entry a single-exit (SESE) region
into a function.
The idea is similar to extracting a loop in LoopExtractor.cpp.
Basically, for each region that meet our criteria,
1. Find all basic blocks in that regions
2. Call llvm::ExtractCodeRegion() to replace that region by a call to the
extracted function.
3. Delete the region from the RegionPassManager queue
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
2010 Jan 12
8
[LLVMdev] Make LoopBase inherit from "RegionBase"?
On 01/08/10 14:20, ether wrote:
> sorry that i forgot to change the subjuect
>
>
> hi all,
Hi ether,
now a kind of more complete answer.
> On 2010-1-7 0:11, John Mosby wrote:
>> In LLVM we could add support for generalized CFG regions and
>> RegionPasses. A region is a part of the CFG. The only information we
>> have is, that it has one entry and one exit, this
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.