similar to: [LLVMdev] AliasAnalysis tutorial

Displaying 20 results from an estimated 300 matches similar to: "[LLVMdev] AliasAnalysis tutorial"

2008 Dec 09
1
[LLVMdev] AliasAnalysis tutorial 2
Hi ! In my quest of implementing my own AA, i understood that it doesn't work because i don't use the 'opt' tool but i create my own PassManager (this for other reasons). The problem is the same with other existing AA (AndersensPass or globalModRefPass) : these AApasses are not chained with the basicAA when they are created in PassManager ... So my question is now : how to
2008 Dec 09
0
[LLVMdev] AliasAnalysis tutorial 2
Julien Schmitt wrote: > Hi ! > In my quest of implementing my own AA, i understood that it doesn't work > because i don't use the 'opt' tool but i create my own PassManager (this > for other reasons). > The problem is the same with other existing AA (AndersensPass or > globalModRefPass) : > these AApasses are not chained with the basicAA when they are
2008 Dec 10
2
[LLVMdev] AliasAnalysis tutorial 2
Thank you very much John for your answer , you understood well my problem (and the signification of my "own" PassManager). I already tried your solution but it is not enough. The problem is the same with existing AA (andersen for example) : when calling with opt, this works well, but when adding in local PassManager ( with add() ), it is not working (I test this with the
2008 Dec 10
0
[LLVMdev] AliasAnalysis tutorial 2
Well, now i added the creation of my AA just before the creation of DSE, (in the former case it was done at top of all passes list) and it's working (alias and getModRefInfo are called)... Maybe a particular pass destroyed the AliasAnalysGroup ?? However he solution is not very clean, since i don't know which pass need an AA (i guess this should be automatic whith the method
2008 Oct 08
2
[LLVMdev] Error while making new pass
Hi Devang, GlobalModRefPass is also a ModulePass and it uses CallGraph Analysis. So, I think it should not necessary to extend CallGraphSCCPass to use CallGraph information. Module Pass shoule be sufficient... --Kapil On 10/8/08, Devang Patel <dpatel at apple.com> wrote: > Hi Kapil, > > On Oct 8, 2008, at 10:19 AM, kapil anand wrote: > >> Hi all, >> >> I
2008 Oct 08
2
[LLVMdev] Error while making new pass
Hi all, I need a new kind of analysis on LLVM Module, so I made a new pass to do this. This new pass extends the ModulePass class and follows the conventions used in GlobalModRefPass, which is also a Module Pass.I need the CallGraph analysis for this pass, hence I have added (addRequired(CallGraph)) in getAnalysisUsage function of this new pass. I also added it to CallGraph Analysis group through
2008 Oct 08
0
[LLVMdev] Error while making new pass
Hi Kapil, On Oct 8, 2008, at 10:19 AM, kapil anand wrote: > Hi all, > > I need a new kind of analysis on LLVM Module, so I made a new pass > to do this. This new pass extends the ModulePass class and follows > the conventions used in GlobalModRefPass, which is also a Module > Pass.I need the CallGraph analysis for this pass, hence I have added >
2008 Oct 08
0
[LLVMdev] Error while making new pass
On Oct 8, 2008, at 10:59 AM, kapil anand wrote: > Hi Devang, > > GlobalModRefPass is also a ModulePass and it uses CallGraph Analysis. > So, I think it should not necessary to extend CallGraphSCCPass to use > CallGraph information. Module Pass shoule be sufficient... ok, but you're Registering your pass in CallGraph Analysis group. What if you remove
2008 Aug 21
2
[LLVMdev] Call Graph Analysis
Hi, I have made my optimization as an extension of ModulePass as suggested in last mail. I included "addRequired<CallGraph>" in getAnalysisUsage function. The application compiles fine but while linking, I get following errors: "undefined reference to llvm::CallGraphLinkVar" "undefined reference to llvm::CallGraph::ID The above error is at point where I refer to
2010 Nov 29
1
[LLVMdev] Segmentation fault on Instruction.moveBefore()
Hi, I'm getting a segmentation fault trying to write a small(incomplete) LICM pass whenever i try to do I->moveBefore(pre->getTerminator()); (wherer I is Instruction*, Pre is BasicBlock*) Is there any prerequisites for executing this function that i am not doing? Thanks in advance. sreeraj -------------- next part -------------- An HTML attachment was scrubbed... URL:
2008 Oct 08
1
[LLVMdev] Error while making new pass
HI Devang, Initially I had not added this pass to the group and I got this error regarding PassManager. I added the pass to group just to check whether that removes the error or not... I have removed it again. Is there any other registration required to configure pass manager for the pass? --Kapil On Wed, Oct 8, 2008 at 2:37 PM, Devang Patel <dpatel at apple.com> wrote: > > On
2007 Oct 01
1
[nls] singular gradient
Hi, I am new to R. I don't have strong background of statistics. I am a student of Geotechnical Engineering. I tried to run a nonlinear regression for a three-variable function, that is N = f(CSR, ev) # N is a function of CSR and ev, and N = CSR/(A +B*CSR), wherer (A,B) are function of ev. N, CSR and ev are observed in the experiments. Following is my R script. rm(list=ls())
2008 Aug 22
0
[LLVMdev] Call Graph Analysis
On Aug 21, 2008, at 2:20 PM, kapil anand wrote: > Hi, > > I have made my optimization as an extension of ModulePass as > suggested in last mail. I included "addRequired<CallGraph>" in > getAnalysisUsage function. > The application compiles fine but while linking, I get following > errors: > "undefined reference to llvm::CallGraphLinkVar"
2008 Aug 20
0
[LLVMdev] Call Graph Analysis
On Wed, Aug 20, 2008 at 9:47 AM, kapil anand <kapilanand2 at gmail.com> wrote: > Hi, > > I have been working on implementing new analysis for a LLVM module. For > that, I need that Call Graph of the module. Inside the CallGraph file, the > constructor has been declared "protected" hence I can't define its instance > and thus use the CallGraph for further
2008 Aug 20
2
[LLVMdev] Call Graph Analysis
Hi, I have been working on implementing new analysis for a LLVM module. For that, I need that Call Graph of the module. Inside the CallGraph file, the constructor has been declared "protected" hence I can't define its instance and thus use the CallGraph for further analysis. So, what are the ways of building and using Call Graph of a module. Do I need to make my new analysis as
2012 Jan 03
0
[LLVMdev] AliasAnalysis and memory dependency
Hi neda 8664, > I want to find memory dependency between CallInst instruction and other. So i > used the following code: > > > > / AliasAnalysis &AA=getAnalysis<AliasAnalysis>();/ > > /*if* (isa< StoreInst >(inst1)){ / > > // // /*if* (isa<CallInst>(inst2)) / /{/ > > / CallInst *call_inst2= dyn_cast<CallInst>(inst2); /
2012 Feb 16
0
[LLVMdev] Wrong AliasAnalysis::getModRefInfo result
Something must be wrong, more probable on my side. So the C source code is unchanged, I just did another experiment to first extract all the GEPs in the code, and call AliasAnalysis::alias on each pair of GEPs. Here is the code: AliasAnalysis &AA = getAnalysis<AliasAnalysis>(); TargetData &TD = getAnalysis<TargetData>(); for (Module::iterator it = M.begin();
2012 Jan 03
2
[LLVMdev] AliasAnalysis and memory dependency
Hi all, I want to find memory dependency between CallInst instruction and other. So i used the following code: * AliasAnalysis &AA=getAnalysis<AliasAnalysis>();* * if(isa<StoreInst>(inst1)){* * ** **if(isa<CallInst>(inst2))**{* * CallInst *call_inst2= dyn_cast<CallInst>(inst2); * * if(AA.getModRefInfo(inst1,call_inst2)==mod)**{* *
2012 Jan 03
1
[LLVMdev] AliasAnalysis and memory dependency
i am sorry, i get this error: opt: /home/llvm/src/include/llvm/Support/CallSite.h:87: ValTy* llvm::CallSiteBase<FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy>::getCalledValue() const [with FunTy = const llvm::Function, ValTy = const llvm::Value, UserTy = const llvm::User, InstrTy = const llvm::Instruction, CallTy = const llvm::CallInst, InvokeTy = const llvm::InvokeInst, IterTy =
2012 Feb 15
2
[LLVMdev] Wrong AliasAnalysis::getModRefInfo result
Just want to test out the LLVM's AliasAnalysis::getModRefInfo API. The input C code is very simple: void foo(int *a, int *b) { for(int i=0; i<10; i++) b[i] = a[i]*a[i]; } int main() { int a[10]; int b[10]; for(int i=0; i<10; i++) a[i] = i; foo(a,b); return 0; } Obviously, for "foo", it only reads from array "a" and only writes to array