Displaying 20 results from an estimated 171 matches for "memdep".
2009 Aug 21
2
[LLVMdev] How to force MemoryDependenceAnalysis to run on original module
...ke MemoryDependenceAnalysis to run on the
>> unaltered module. I do not want to have dependencies to changed code.
>> What is the cleanest way to do this?
>> Sounds easy, but I do not get it right :D
>
> Hi Marc,
>
> This isn't really possible. The issue is that MemDep doesn't just
> "analyze your function". It is designed to be as lazy as possible,
> which means that it only does analysis when a query is performed. This
> means that if you have MemDep->Pass1->Pass2 and Pass2 uses MemDep info
> that you need to make Pass1 pre...
2009 Aug 21
0
[LLVMdev] How to force MemoryDependenceAnalysis to run on original module
On Aug 21, 2009, at 3:04 AM, Marc Brünink wrote:
>> This isn't really possible. The issue is that MemDep doesn't just
>> "analyze your function". It is designed to be as lazy as possible,
>> which means that it only does analysis when a query is performed.
>> This
>> means that if you have MemDep->Pass1->Pass2 and Pass2 uses MemDep
>> info
>&g...
2018 Jan 26
1
MemDep: Invalidating NonLocal result cache entries?
Hi,
MemDep caches results for local queries and provides means to
invalidate them by keeping reverse maps. Unfortunately, it also caches
results that represent non-local dependencies, for which there are no
reverse map entries, and thus those entries can not be invalidated.
This is a problem when an optimiza...
2009 Aug 21
2
[LLVMdev] How to force MemoryDependenceAnalysis to run on original module
Chris Lattner schrieb:
> On Aug 21, 2009, at 3:04 AM, Marc Brünink wrote:
>>> This isn't really possible. The issue is that MemDep doesn't just
>>> "analyze your function". It is designed to be as lazy as possible,
>>> which means that it only does analysis when a query is performed. This
>>> means that if you have MemDep->Pass1->Pass2 and Pass2 uses MemDep info
>>> tha...
2012 Jul 31
1
[LLVMdev] how to let memory dependency analysis use globalsmodref
Hi there,
I am doing:
opt -print-memdeps ./test.bc -analyze -globalsmodref-aa
by adding globalsmodref-aa, I am hoping that globalsmodref alias analysis
will be used. However, it does not turn out to be so. I found this out by
adding some "errs() << " into the source code for that alias analysis.
So my question is what s...
2009 Aug 20
0
[LLVMdev] How to force MemoryDependenceAnalysis to run on original module
...oblem is, that I would like MemoryDependenceAnalysis to run on
> the
> unaltered module. I do not want to have dependencies to changed code.
> What is the cleanest way to do this?
> Sounds easy, but I do not get it right :D
Hi Marc,
This isn't really possible. The issue is that MemDep doesn't just
"analyze your function". It is designed to be as lazy as possible,
which means that it only does analysis when a query is performed.
This means that if you have MemDep->Pass1->Pass2 and Pass2 uses MemDep
info that you need to make Pass1 preserve that memde...
2009 Aug 20
2
[LLVMdev] How to force MemoryDependenceAnalysis to run on original module
Hi,
I do have a FunctionPass that does change the code. This FunctionPass
requires another FunctionPass which performs all the necessary analyses.
This AnalysisPass again requires MemoryDependenceAnalysis.
The problem is, that I would like MemoryDependenceAnalysis to run on the
unaltered module. I do not want to have dependencies to changed code.
What is the cleanest way to do this?
Sounds
2015 May 21
2
[LLVMdev] MemoryDependenceAnalysis reports dependencies between NoAlias pointers
...urns the store instruction. Suspiciously enough, calling invalidateCachedPointerInfo on load->getPointerOperand() does not cause my AA pass to be called again when I use getDependency (or is that not what I needed to do?).
I joined the .ll that shows the relevant function as it gets to my pass (memdep is a function pass, right?). Ultimately, my goal is to find out when loads from address space 0 depend on calls. Given my usage pattern, I can overlook non-local dependencies.
Félix
-------------- next part --------------
A non-text attachment was scrubbed...
Name: memdepprob.ll
Type: application...
2016 Dec 23
0
[canonicalization] GEP 0, 0
Define soon?
My guess is 1 year or less.
(I've already seen patches to start converting most remaining memdep uses,
like memcpy opt, licm, etc)
On Fri, Dec 23, 2016 at 8:27 AM, Piotr Padlewski via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
>
>
> 2016-12-23 17:22 GMT+01:00 Davide Italiano <davide at freebsd.org>:
>
>> On Fri, Dec 23, 2016 at 8:12 AM, Piotr Padlewski via ll...
2016 Dec 23
2
[canonicalization] GEP 0, 0
2016-12-23 17:22 GMT+01:00 Davide Italiano <davide at freebsd.org>:
> On Fri, Dec 23, 2016 at 8:12 AM, Piotr Padlewski via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> > Hi everyone,
> >
> > I started digging into MemDep to enhance devirtualization and I found out
> > that it doesn't handle invariant.group if it will find GEP 0, 0.
> > If I understand it correctly getelementptr with zeros is just bitcast. Is
> > there any good reason why it is not canonicalized into bitcast?
> >
>
>...
2015 May 11
2
[LLVMdev] about MemoryDependenceAnalysis usage
...ted-propagation
> -simplifycfg -domtree -instcombine -tailcallelim -simplifycfg -reassociate
> -domtree -loops -loop-simplify -lcssa -loop-rotate -licm -loop-unswitch
> -instcombine -scalar-evolution -loop-simplify -lcssa -indvars -loop-idiom
> -loop-deletion -function_tti -loop-unroll -memdep -mldst-motion -domtree
> -memdep -gvn -memdep -memcpyopt -sccp -domtree -instcombine -lazy-value-info
> -jump-threading -correlated-propagation -domtree -memdep -dse -adce
> -simplifycfg -domtree -instcombine -barrier -domtree -loops -loop-simplify
> -lcssa -branch-prob -block-freq -sca...
2015 May 21
2
[LLVMdev] MemoryDependenceAnalysis reports dependencies between NoAlias pointers
...A only). As far as I can check with breakpoints and logging, it appears to work as intended. MemoryDependenceAnalysis often appears in the call stack when my alias method is called, and it does return NoAlias appropriately.
However, in another custom module pass that I have, I'm observing that MemDep reports dependences between loads and stores of pointers to different address spaces, despite my AA pass. For instance, an AA request against these parameters returns NoAlias:
%7 = inttoptr i64 %4 to i64 addrspace(1)*
%9 = getelementptr inbounds %struct.mystruct, %struct.mystruct* %0, i64 0, i...
2016 Apr 18
3
GVN pass limitation.
Hello,
We are now facing a bug caused by the GVN pass, only part of the code was
optimized. I have found that the problem is cause by an Limit in
lib/Analysis/MemoryDependenceAnalysis.cpp
00055 static cl::opt<unsigned> BlockScanLimit(
00056 "memdep-block-scan-limit", cl::Hidden, cl::init(100),
00057 cl::desc("The number of instructions to scan in a block in memory
"
00058 "dependency analysis (default = 100)"));
The args can be changed using opt, but we are using libclang and libllvm and
running pa...
2013 Jan 16
1
[LLVMdev] llvm print-memdeps segfault
I used LLVM already existent passes with no problems till I tried to use
MemDepPrinter.cpp :
http://llvm.org/doxygen/MemDepPrinter_8cpp_source.html. I got the
following segfault:
llvm[0]: Compiling MyMemDepPrinter.cpp for Release+Asserts build (PIC)
llvm[0]: Linking Release+Asserts Loadable Module MyMemDepPrinter.so
WARNING: You're attempting to print out a bi...
2009 Aug 21
0
[LLVMdev] How to force MemoryDependenceAnalysis to run on original module
On Fri, Aug 21, 2009 at 10:48 AM, Marc Brünink<marc at bruenink.de> wrote:
>>> actually my problem is easier. So I still have hope that it is possible:
>>>
>>> MemDep->Pass1->Pass2
>>>
>>> Pass1 uses MemDep. Pass2 only uses Pass1. Eventually, Pass2 changes the
>>> code. Unfortunately, non-local dependencies of MemDep might point to
>>> code changed by Pass2. Therefore, Pass1 might see changes applied by
>>> Pass...
2016 Dec 23
3
[canonicalization] GEP 0, 0
On Dec 23, 2016 19:47, "Daniel Berlin" <dberlin at dberlin.org> wrote:
Define soon?
My guess is 1 year or less.
(I've already seen patches to start converting most remaining memdep uses,
like memcpy opt, licm, etc)
That's good. Anyway I already have a patch that is doing invariant group
dependence across BBs, so I guess it make sense to push it upstream to push
the bar higher.
But I think we are getting a little bit of topic - should gep 0 be
canonicalized to bitcast?...
2015 Jan 17
3
[LLVMdev] loop multiversioning
...p-threading -correlated-propagation
-simplifycfg -domtree -instcombine -tailcallelim -simplifycfg -reassociate
-domtree -loops -loop-simplify -lcssa -loop-rotate -licm -loop-unswitch
-instcombine -scalar-evolution -loop-simplify -lcssa -indvars -loop-idiom
-loop-deletion -function_tti -loop-unroll -memdep -mldst-motion -domtree
-memdep -gvn -memdep -memcpyopt -sccp -domtree -instcombine
-lazy-value-info -jump-threading -correlated-propagation -domtree -memdep
-dse -adce -simplifycfg -domtree -instcombine -barrier -domtree -loops
-loop-simplify -lcssa -branch-prob -block-freq -scalar-evolution
-loop-...
2016 Jul 16
3
RFC: Strong GC References in LLVM
...swers.
>
>
So, ironically, while looking at this, i noticed it turns out LLVM's PRE in
GVN is another place that does not do this correctly either.
It will insert and hoist loads past may-throw calls depending on whether it
thinks the call aliases the pointer or not (IE depending on what memdep
tells it, and memdep only cares about aliasing here when coming up with
deps), regardless of whether the call is nounwind or not. This is rare but
can happen.
This is because memdep does this:
// If the call has no effect on the queried pointer, just ignore it.
So it does not give a dep, a...
2011 Jun 22
2
[LLVMdev] Memory dependence analysis
Hello,
I'm looking for a way to identify dependencies of function-pairs (memory-dependency, control-dependency...) in order to parallelize them.
For aliasing problems I use the DataStructureAnalysis. To solve simple memory- and control-dependency problems I want to use
memdep. But unfortunately I even fail with following simple C++ example...
int a( int n) { return n; }
int b( int n) { return n; }
int c( int n) { return n; }
int main( int argc, char** argv) {
int x = a( argc);
b( 0);
if ( x)
x = 0;
return ( c( x));
}
... The result of memdep shows a...
2011 Mar 28
3
[LLVMdev] Memory Dependence Analysis
Hi,
I have been trying to run the memdep analysis using opt with the following
command: opt -analyze -memdep <*.bc>.
However, I keep getting the following error: Pass::print not implemented for
pass: 'Memory Dependence Analysis' ! .
I get similar errors for a lot of the analyses passes, which seem as if they
should have a pr...