similar to: [LLVMdev] Traditional Dataflow Algorithm

Displaying 20 results from an estimated 20000 matches similar to: "[LLVMdev] Traditional Dataflow Algorithm"

2013 Apr 16
0
[LLVMdev] Traditional Dataflow Algorithm
On 4/16/13 11:30 AM, dag at cray.com wrote: > Is there a traditional dataflow algorithm buried in LLVM somewhere? I > need to be able to do some very late transformations (after regalloc) > and we aren't in SSA anymore. I will need a dataflow analysis to ensure > correctness. > > At one point I thought I remembered seeing a generic fixed-point > dataflow analysis engine
2013 Apr 18
2
[LLVMdev] Traditional Dataflow Algorithm
On Apr 16, 2013, at 10:27 AM, John Criswell <criswell at illinois.edu> wrote: > On 4/16/13 11:30 AM, dag at cray.com wrote: >> Is there a traditional dataflow algorithm buried in LLVM somewhere? I >> need to be able to do some very late transformations (after regalloc) >> and we aren't in SSA anymore. I will need a dataflow analysis to ensure >> correctness.
2013 Apr 18
0
[LLVMdev] Traditional Dataflow Algorithm
Andrew Trick <atrick at apple.com> writes: > David was asking for a post-register-rewrite analysis, which I think > is a totally different problem and best implemented separately by each > target. The target knows best which register units are overwritten or > preserved by an operation. We try to fake it with > undef/implicit-use/implicit-def, but it isn't reliable.
2013 Apr 18
4
[LLVMdev] MachineOperand SubReg
I'm working on the post-regalloc dataflow engine I mentioned yesterday. Currently I only need to track register operands. A MachineOperand has both a getReg() and a getSubReg() interface. For a physical register operand, is getReg() guaranteed to be the "most super" register with getSubReg() providing the specific subregister information for the operand? If so then for my current
2017 Jul 06
2
Dataflow analysis regression in 3.7
On Thu, Jul 6, 2017 at 7:00 AM, Davide Italiano <davide at freebsd.org> wrote: > On Wed, Jul 5, 2017 at 3:59 PM, Johan Engelen via llvm-dev > <llvm-dev at lists.llvm.org> wrote: > > Hi all, > > I just found an optimization regression regarding simple > > dataflow/constprop analysis: > > https://godbolt.org/g/Uz8P7t > > > > This code >
2009 Jan 12
0
[LLVMdev] Is it possible to use the SimpleRegisterCoalescing pass in an iterative way?
On Friday 09 January 2009 03:36, Roman Levenstein wrote: > Hi, > > I'm implementing some variations of graph-coloring register allocators for > LLVM. Many of them perform their phases (e.g. coalescing, graph > simplification, spilling, color selection) in an iterative way. Since > LLVM provides an implementation of the coalescing in the > SimpleRegisterCoalescing class
2003 Nov 06
2
[LLVMdev] Re: [open-analysis] Alias Analysis Design & Implementation and LLVM
On Thu, 6 Nov 2003, Michelle Strout wrote: > Those of us working on the OpenAnalysis project have been looking at > LLVM recently (excellent job on the website BTW). Thanks! I'm just one of the many people who have worked on it though, the praise belongs to them as much as it does to me. :) > This includes researchers at Rice, Argonne, and LLNL. Great! > John Mellor-Crummey
2017 Jul 05
3
Dataflow analysis regression in 3.7
Hi all, I just found an optimization regression regarding simple dataflow/constprop analysis: https://godbolt.org/g/Uz8P7t This code ``` int dataflow(int b) { int a; if (b==4) a = 3*b; // fully optimized when changed to a = 3; else a = 5; if (a == 4) return 0; else return 1; } ``` is no longer optimized to just a "return 1". The regression happened in LLVM
2005 Jul 05
1
[LLVMdev] Writing a dataflow analysis
Hi I have just taken a look at the LLVM-compiler and i am trying to write a pass which analyses the dataflow and sideeffects. So far i have written my own pass which works and i can traverse the blocks, functions and instructions. Currently i am using the "runOnFunction" function and iterate over the functions and blocks. But this seems to be not optimal since the instructions
2003 Nov 06
2
[LLVMdev] Re: Alias Analysis Design & Implementation and LLVM
On Thu, 6 Nov 2003, Michelle Strout wrote: > I think some clarifications and examples would be helpful. No problem. :) > - LLVM is in SSA. It is in SSA before alias analysis has been > >>>> performed. With OA, it has been mentioned that the SSA generation > >>>> is > >>>> incorrect because it doesn't take alias analysis information into
2016 Mar 01
2
How to do some dataflow analysis via IR on a large project?
I am learning to do some basic dataflow analysis on C code projects, such as Apache httpd. Now I am a newbie of LLVM IR, and there are some problems in doing that. In the official User Manual of how to write a LLVM PASS, they only show the way to generate IR of a single ".c" source file. But in fact there are so many examples that the usage and definition of a function are not in the
2020 Feb 24
5
[RFC] DebugInfo: A different way of specifying variable locations post-isel
Hi debuginfo cabal, tl;dr: I'd like to know what people think about an alternative to DBG_VALUE instructions describing variable locations in registers, virtual or real. Before instruction selection in LLVM-IR we identify the _values_ of variables [0] by the instruction that computes the value; I believe we should be able to do the same post-isel, and it would avoid having to analyse register
2017 Dec 19
3
Register Allocation Graph Coloring algorithm and Others
Hi Leslie, I suggest adding these 3 papers to your reading list. Register allocation for programs in SSA-form Sebastian Hack, Daniel Grund, and Gerhard Goos http://www.rw.cdl.uni-saarland.de/~grund/papers/cc06-ra_ssa.pdf Simple and Efficient Construction of Static Single Assignment Form Matthias Braun , Sebastian Buchwald , Sebastian Hack , Roland Leißa , Christoph Mallon , and Andreas
2016 Jan 21
2
Could I do some control-flow and dataflow analysis cross files and functions via IR
As mentioned in the title, I want to do some control-flow and dataflow analysis. I can only find the assignment statement in a function, but the assigned variable is just a parameter of this function. For example, **************************************** int foo(struct A* a, int b, ...){ ... a->Int_field = b; ... return 0; } ***************************************** in the code
2009 Jan 09
4
[LLVMdev] Is it possible to use the SimpleRegisterCoalescing pass in an iterative way?
Hi, I'm implementing some variations of graph-coloring register allocators for LLVM. Many of them perform their phases (e.g. coalescing, graph simplification, spilling, color selection) in an iterative way. Since LLVM provides an implementation of the coalescing in the SimpleRegisterCoalescing class already, I would like to reuse it (even though I could of course create my own coalescing
2011 Mar 18
1
[LLVMdev] standard Data Flow Analysis available in LLVM?
I am working on implementing an algorithm that needs one of the standard Data Flow Analysis as its precondition (VeryBusyExpression to be precise). Thus I take a look into LLVM (2.8) and check their availability. I do expect to see all of the following standard ones: - Reaching Definition (RD) - Live Variable (LV) - Available Expression (AE) - Very Busy Expression (VBE) To my surprise, I
2016 May 25
1
Live interval analysis on LLVM IR (not on Machine instructions)
Hello. Thank you very much for the research paper. I will try to make use of the algorithms it presents. I just want to add that I found a 3rd party project doing dataflow analysis for LLVM IR at https://github.com/rohitjha/cse231-proj2. As written at http://cseweb.ucsd.edu/~r1jha/#five , the project's description is: "Dataflow Analysis Framework for LLVM This is an
2018 Sep 20
2
Liveness Analysis
Where is the liveness analysis pass? I have been looking for days but cannot find anything. I just want to know transfer variables in and out of basic blocks, that are calculated using simple data flow equations. Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180920/529bce15/attachment.html>
2018 Sep 26
2
Liveness Analysis
So what is the status about LiveVariables. Is there a plan to remove it? After searching in old lvm-dev-mails it is mentioned that LiveVariable still exists due to one pass needing it. And a comment in TargetPassConfig.cpp indicates that the pass in question is TwoAddressInstruction: // FIXME: Once TwoAddressInstruction pass no longer uses kill flags, // LiveVariables can be removed
2013 Apr 18
0
[LLVMdev] MachineOperand SubReg
On Apr 18, 2013, at 9:45 AM, dag at cray.com wrote: > I'm working on the post-regalloc dataflow engine I mentioned yesterday. > Currently I only need to track register operands. > > A MachineOperand has both a getReg() and a getSubReg() interface. For a > physical register operand, is getReg() guaranteed to be the "most super" > register with getSubReg()