search for: memorydependenceanalysis

Displaying 20 results from an estimated 210 matches for "memorydependenceanalysis".

2011 Oct 14
2
[LLVMdev] pass utilizing MemoryDependenceAnalysis?
#include "llvm/Module.h" #include "llvm/Analysis/MemoryDependenceAnalysis.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; struct Hello: public ModulePass { public: static char ID; MemoryDependenceAnalysis *MD; Hello(): ModulePass(ID) { ;; } virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<MemoryDep...
2011 Oct 15
1
[LLVMdev] pass utilizing MemoryDependenceAnalysis?
This gives me: Assertion failed: (0 && "Unable to find on the fly pass"), function getOnTheFlyPass, file PassManager.cpp #include "llvm/Module.h" #include "llvm/Analysis/MemoryDependenceAnalysis.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; struct Hello: public FunctionPass { public: static char ID; Hello(): FunctionPass(ID) { ;; } virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<MemoryDependenceAnalysis>(); er...
2011 Oct 13
2
[LLVMdev] pass utilizing MemoryDependenceAnalysis?
I wrote a pass(that is to be loaded by opt) that I would like to use in conjunction with MemoryDependenceAnalysis. I have tried using by including its header and adding this to my pass:        virtual void getAnalysisUsage(AnalysisUsage &AU) const {         errs() << "addRequired called\n";         AU.addRequired<MemoryDependenceAnalysis>();        } And in my runOnFunction() method...
2011 Oct 14
0
[LLVMdev] pass utilizing MemoryDependenceAnalysis?
...ll trigger an assertion if the function is just a declaration. To see if a function is a declaration, call its isDeclaration() method (i.e. if (F->isDeclaration()) ... ) -- John T. On 10/13/11 8:09 PM, ret val wrote: > #include "llvm/Module.h" > #include "llvm/Analysis/MemoryDependenceAnalysis.h" > #include "llvm/Support/raw_ostream.h" > using namespace llvm; > > struct Hello: public ModulePass { > public: > static char ID; > MemoryDependenceAnalysis *MD; > > Hello(): ModulePass(ID) { > ;; > } > > virtual void getAnalysisUsa...
2009 Mar 20
2
[LLVMdev] Problem with MemoryDependenceAnalysis
Dear all, I am having a problem adding a MemoryDependenceAnalysis pass to a Module Pass i created, it gives me the following error when i add (Info.addRequired<MemoryDependenceAnalysis>();) it in the getAnalysisUsage(AnalysisUsage &Info) function. adding callgraph pass ... done opt: /net/home/yehia/llvm/llvm-2.4/include/llvm/Target/TargetData.h:11...
2011 Oct 13
0
[LLVMdev] pass utilizing MemoryDependenceAnalysis?
My pass(that I want to use MemoryDependenceAnalysis) is a ModulePass. When I changed my assignment to: MD = &getAnalysis<MemoryDependenceAnalysis>(F); It fixed my initial problem but left me with: Assertion failed: (ResultPass && "Unable to find requested analysis info"), function getAnalysisID On Thu,...
2009 Mar 20
0
[LLVMdev] Problem with MemoryDependenceAnalysis
On Mar 20, 2009, at 8:13 AM, Amr Yehia wrote: > Dear all, > > I am having a problem adding a MemoryDependenceAnalysis pass to a > Module > Pass i created, it gives me the following error when i add > (Info.addRequired<MemoryDependenceAnalysis>();) it in the > getAnalysisUsage(AnalysisUsage &Info) function. > If MemoryDependenceAnalysis requires any module level analysis then it won...
2008 Jul 28
2
[LLVMdev] Memory Dependence Analysis: getNonLocalDependency()
Hi, I have a question about the memory dependence analysis. I am trying to use it to selectively enumerate a set of pairs of (load, store) instructions for every function by calling getNonLocalDependency() on the MemoryDependenceAnalysis. This populates a DenseMap<BasicBlock*, Value*>. I just looked up an usage of this in GVN.cpp: MD->getNonLocalDependency(C, deps); for (DenseMap<BasicBlock*, Value*>::iterator I = deps.begin(), E = deps.end(); I != E; ++I) { if (I->second == MemoryDependenceAn...
2009 Mar 20
2
[LLVMdev] Problem with MemoryDependenceAnalysis
Devang Patel wrote: > On Mar 20, 2009, at 8:13 AM, Amr Yehia wrote: > > >> Dear all, >> >> I am having a problem adding a MemoryDependenceAnalysis pass to a >> Module >> Pass i created, it gives me the following error when i add >> (Info.addRequired<MemoryDependenceAnalysis>();) it in the >> getAnalysisUsage(AnalysisUsage &Info) function. >> >> > If MemoryDependenceAnalysis requires any...
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 easy, but I do not get it right :D Thanks Marc
2008 Jul 28
0
[LLVMdev] Memory Dependence Analysis: getNonLocalDependency()
...n Jul 28, 2008, at 3:47 PM, Prakash Prabhu wrote: > Hi, > > I have a question about the memory dependence analysis. I am trying > to use it to selectively enumerate a set of pairs of (load, store) > instructions for every function by calling getNonLocalDependency() > on the MemoryDependenceAnalysis. This populates a > DenseMap<BasicBlock*, Value*>. I just looked up an usage of this in > GVN.cpp: > > MD->getNonLocalDependency(C, deps); > > for (DenseMap<BasicBlock*, Value*>::iterator I = deps.begin(), > E = deps.end(); I != E; ++I) { >...
2015 May 21
2
[LLVMdev] MemoryDependenceAnalysis reports dependencies between NoAlias pointers
Hi all, I have a custom alias analysis pass that enforces that pointers from different address spaces do not alias, and I'm using MemoryDependenceAnalysis to, well, figure out dependence analysis. The AA pass is extremely simple, it only checks the address space of pointers, returns NoAlias if they're different, and delegates otherwise. It is the last alias analysis pass added to my PassManager (basically, after BasicAA only). As far as I can ch...
2009 Apr 13
0
[LLVMdev] MemoryDependenceAnalysis
On Mon, Apr 13, 2009 at 9:06 AM, Anthony Danalis <adanalis at eecs.utk.edu> wrote: > How can I use MemoryDependenceAnalysis (or any other analysis for that > matter) to gather that the instructions > j = N/2  (store i32 %11, i32* %j, align 4) > and > N = N+7  (store i32 %12, i32* %n, align 4) > are the ones that define the parameters "j" and "N" respectively? Try calling MemoryDepende...
2009 Apr 13
1
[LLVMdev] MemoryDependenceAnalysis
On Apr 13, 2009, at 3:32 PM, Eli Friedman wrote: > On Mon, Apr 13, 2009 at 9:06 AM, Anthony Danalis <adanalis at eecs.utk.edu > > wrote: >> How can I use MemoryDependenceAnalysis (or any other analysis for >> that >> matter) to gather that the instructions >> j = N/2 (store i32 %11, i32* %j, align 4) >> and >> N = N+7 (store i32 %12, i32* %n, align 4) >> are the ones that define the parameters "j" and "N" respectiv...
2009 Aug 20
0
[LLVMdev] How to force MemoryDependenceAnalysis to run on original module
On Aug 20, 2009, at 11:44 AM, Marc Brünink wrote: > 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 easy, but I do not get it right :D Hi Marc, This isn't really possible....
2009 Jan 20
2
[LLVMdev] HazardRecognizer and RegisterAllocation
...have MachineMemOperands, which can be used to make AliasAnalysis > or other LLVM-IR-level analysis queries. They need some work though; > the main issue is that there are some places in codegen that don't > preserve them. Where are those places? Can they be used in conjunction with MemoryDependenceAnalysis? e.g. can we write a MachineInstructions-based memory dependence analysis that uses MachineMemoryOperands? > Another possibility is to record dependence information from the > SelectionDAG in MachineInstrs somehow. We don't yet have precise > memory dependencies in the SelectionDAG,...
2015 May 09
2
[LLVMdev] about MemoryDependenceAnalysis usage
Hi, I try to use MemoryDependenceAnalysis in a pass to analyse a simple function: void fct (int *restrict*restrict M, int *restrict*restrict L) { S1: M[1][1] = 1; S2: L[2][2] = 2; } When I iterate over MemoryDependenceAnalysis on the S2 statement, I get the load instruction for the first depth of the array, that’s ok. But I get als...
2009 Jan 20
0
[LLVMdev] HazardRecognizer and RegisterAllocation
...We don't have a definite list. It's largely testable though; you could add an assert like this: !(MI->mayLoad() || MI->mayStore()) || !MI->memoperands_empty() to catch most cases. There may not be many places left at this point. > Can they be used in conjunction with > MemoryDependenceAnalysis? e.g. can we write a MachineInstructions- > based > memory dependence analysis that uses MachineMemoryOperands? Right, the existing MemoryDependenceAnalysis works in terms of LLVM-IR-level Instructions, but yes, it would be possible to implement the same thing for MachineInstrs, using Alia...
2009 Aug 10
2
[LLVMdev] How to use a FunctionPass in a ModulePass?
Hi, all: I wanted to use a FunctionPass (e.g. *MemoryDependenceAnalysis*) in a ModulePass, and then I used the method "getAnalysis<* MemoryDependenceAnalysis*>(llvm::Function *)" described at http://llvm.org/docs/WritingAnLLVMPass.html#ModulePass to get the FunctionPass. But , it still crashed when I invoked this pass in tool 'opt'. However,...
2009 Apr 13
5
[LLVMdev] MemoryDependenceAnalysis
...cy() I get the instruction "N=N+1" as a Def for the second parameter, "N", and no Def for the fourth, "j", (only the call to "bar()" as clobber). If I use getDependency() on the call, I get the instruction "N=N+7" as a clobber. How can I use MemoryDependenceAnalysis (or any other analysis for that matter) to gather that the instructions j = N/2 (store i32 %11, i32* %j, align 4) and N = N+7 (store i32 %12, i32* %n, align 4) are the ones that define the parameters "j" and "N" respectively? thanks, Anthony