search for: memdep

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? > > > &gt...
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...