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