similar to: How to do some dataflow analysis via IR on a large project?

Displaying 20 results from an estimated 1000 matches similar to: "How to do some dataflow analysis via IR on a large project?"

2016 Mar 01
0
How to do some dataflow analysis via IR on a large project?
Dear Shulin, Sounds like you'll need an inter-procedural analysis across different source files. One option I can think of is to manually update the Makefiles, make compiler emit bitcode files, merge them with llvm-link and run it through your optimization pass as a big bitcode file. This somehow could involve huge amount of tedious work for a huge project like Apache, and may be error-prone.
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
2015 Dec 25
2
How could I get some semantic information from IR?
I am working on my first llvm Pass to analyze some structure variables in source code, but in IR, there are only getelementptr to calculate the memory address to fetch the value of a specific member in the structure. For example, when I try to get the member name of Structure S in statement "if(ss.aaaa == b)", where ss is a object of Structure S and b is an integer, [image: 内嵌图片 2]
2013 Apr 16
2
[LLVMdev] Traditional Dataflow Algorithm
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 but now I can't find it. Does it still exist or did it ever exist? If
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
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
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 >
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
2019 Nov 08
2
Register Dataflow Analysis on X86
I came across this thread from a couple years ago: http://lists.llvm.org/pipermail/llvm-dev/2017-November/119346.html Has there been any progress on RDF for X86? Or is there some other preferred alternative for performing reachability analysis after register allocation? Thanks, Scott Constable -------------- next part -------------- An HTML attachment was scrubbed... URL:
2010 Aug 28
2
[LLVMdev] Dataflow analysis based optimisations
I'm working on an LLVM-based compiler for a very closure-centric language. It's becoming apparent that it's going to suffer heavily from garbage collector churn, as all the useful programming idioms the language makes possible are going to involve memory allocations, either to create objects or to allocate storage for upvalues. However, it's possible to optimise away a lot of heap
2019 Nov 08
2
Register Dataflow Analysis on X86
Do you know whether it has been fixed on the 8.0.1 release? Scott On Fri, Nov 8, 2019 at 9:45 AM Krzysztof Parzyszek <kparzysz at quicinc.com<mailto:kparzysz at quicinc.com>> wrote: The one blocking issue that existed in the past has been fixed. I haven’t had time to do any work on it lately, but I’m not aware of any fundamental problems that would make it not work on x86. --
2019 Dec 23
2
Register Dataflow Analysis on X86
Hi Scott, That #1073741833 is a register mask. They are treated as aggregate registers (essentially sets of registers), so if it includes R9D and R11D, it will be treated as being aliased with both. These separate defs are there because they reach disjoint registers. -- Krzysztof Parzyszek kparzysz at quicinc.com<mailto:kparzysz at quicinc.com> AI tools development From: Scott
2020 Jan 10
2
Register Dataflow Analysis on X86
Hi Scott, Sorry for the late reply, I was out of office during the holidays. 1. A def node can reach either a use node, or another def node. In the highlighted phi node (p3224), the def (d3225) reaches another def (1598) in statement (s1597), that’s why it’s needed. 2. The reason why the def of R11 in s1578 is not connected directly to the use in s1725 is that there may be an intervening
2006 Aug 14
5
[LLVMdev] link time optimization doc
Hi All, I have installed LinkTimeOptimization.html document in doc directory to describe LTO interface. - Devang
2015 Mar 12
2
[LLVMdev] Passing a function pointer as parameter to function call?
Dear all, I'm writing an LLVM pass, and I want to insert a call instruction that takes a function pointer as a parameter. The effect would be the same as following: atexit(foo); Where foo is a function I insert with M.getOrInsertFunction(), which in LLVM is a Function class. I searched for a while and did not come up with a satisfying answer. Should I create a Value class of pointer type,
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.
2017 Sep 18
0
unsupported option '-fsanitize=dataflow' for target 'i386-unknown-linux-gnu'
While attempting to run DataFlowSanitizer for 32 bit target (-m32), I received the following error: unsupported option '-fsanitize=dataflow' for target 'i386-unknown-linux-gnu' Does it mean that DFSan doesn't support 32 bit memory model? -- Thanks & Regards, Dipanjan -------------- next part -------------- An HTML attachment was scrubbed... URL:
2009 Dec 15
0
[LLVMdev] Dataflow equations
Hi, Is there any way in LLVM to specify and solve dataflow equations? Thanks, Nilesh.
2010 Jul 23
0
[LLVMdev] embedded dataflow tracking code?
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi. I'm sorry if I chose wrong place for my question. I would like to load debugger, attach to working process, and at some breakpoint, instead of numerical values in the CPU registers, I would like to see genesis of each value like "result of f(arg1, arg2,arg3) called at point X" or "result of comparison of values X and Y"
2010 Aug 28
0
[LLVMdev] Dataflow analysis based optimisations
There are passes which mark function parameters as "nocapture", which means that the function does not store the passed-in pointer for use after that function returns. If pointers to a newly created object are only ever passed through "nocapture" parameters, never stored in a global, and not returned from the function, then that object is dead when the function that created