search for: modref

Displaying 20 results from an estimated 149 matches for "modref".

2008 Apr 03
3
[LLVMdev] problem with using DSA for a side-effect analysis
Thanks guys! I was looking into ModRef before, but I don't think that's exactly what I need. ModRef API call getModRefInfo requires a Value to be passed to it. However, some memory location M (which is a <DSNode, offset> pair) visible to the caller can be modified in the callee without any Value in the caller actually poin...
2008 Apr 04
0
[LLVMdev] problem with using DSA for a side-effect analysis
On Thu, Apr 3, 2008 at 4:53 PM, Zvonimir Rakamaric <zrakamar at gmail.com> wrote: > Thanks guys! > > I was looking into ModRef before, but I don't think that's exactly > what I need. ModRef API call getModRefInfo requires a Value to be > passed to it. However, some memory location M (which is a <DSNode, > offset> pair) visible to the caller can be modified in the callee > without any Value in...
2006 Aug 14
2
[LLVMdev] Folding instructions
...N_INVALID_ADDRESS at address: 0x80000004 0x94abb19c in std::_Rb_tree_rebalance_for_erase () (gdb) where #0 0x94abb19c in std::_Rb_tree_rebalance_for_erase () #1 0x0073dd40 in std::_Rb_tree<llvm::MachineInstr*, std::pair<llvm::MachineInstr* const, std::pair<unsigned int, llvm::VirtRegMap::ModRef> >, std::_Select1st<std::pair<llvm::MachineInstr* const, std::pair<unsigned int, llvm::VirtRegMap::ModRef> > >, std::less<llvm::MachineInstr*>, std::allocator<std::pair<llvm::MachineInstr* const, std::pair<unsigned int, llvm::VirtRegMap::ModRef> > > &...
2008 Apr 04
1
[LLVMdev] problem with using DSA for a side-effect analysis
On Fri, Apr 4, 2008 at 2:38 AM, Andrew Lenharth <andrewl at lenharth.org> wrote: > On Thu, Apr 3, 2008 at 4:53 PM, Zvonimir Rakamaric <zrakamar at gmail.com> wrote: > > Thanks guys! > > > > I was looking into ModRef before, but I don't think that's exactly > > what I need. ModRef API call getModRefInfo requires a Value to be > > passed to it. However, some memory location M (which is a <DSNode, > > offset> pair) visible to the caller can be modified in the callee > &gt...
2011 Dec 06
3
[LLVMdev] tbaa
...ep TBAA trees, this can be done significantly faster using the same thing I did for dominators, DFS number the TBAA tree once you have all the initial sets, renumber if invalidated) Yet, aa-eval still says otherwise. Function: main: 2 pointers, 2 call sites MayAlias: float* %z, i32* %x Both ModRef: Ptr: i32* %x <-> call void @bar(i32* %x) nounwind Both ModRef: Ptr: float* %z <-> call void @bar(i32* %x) nounwind Both ModRef: Ptr: i32* %x <-> call void @foo(float* %z) nounwind Both ModRef: Ptr: float* %z <-> call void @foo(float* %z) nounwind Both ModRef...
2011 Dec 05
0
[LLVMdev] tbaa
Hi Yi, I didn't get a chance to run your code. But from the debug information you posted about tbaa alias analysis: Alias Set Tracker: 1 alias sets for 7 pointer values. AliasSet[0x207f860, 7] may alias, Mod/Ref Pointers: (i32* %1, 4), (i32* %x, 4), (i32** %p, 8), (i32** %q, 8), (float* %z, 4), (float** %t, 8), (i32* %2, 4) I guess it is because of the way how TBAA alias analysis treats
2009 Jun 29
0
[LLVMdev] Limitations of Alias Analysis?
...'-basicaa -ds-aa > -anders-aa'. The source code 'test.c' is listed as follow: > [...] > The whole process: > > llvm-gcc -emit-llvm -O0 -c test.c -o test.bc > > opt test.bc -load libLLVMDataStructure.so -basic-aa -ds-aa -anders-aa > -aa-eval -print-all-alias-modref-info > Try this: opt -mem2reg -functionattrs -basic-aa -aa-eval -print-all-alias-modref-info test.bc It shows: NoAlias: %struct.Location* %0, %struct.Location* %1 > %1 and %2 are considered as MayAlias results that while using > llvm::MemoryDependenceAnalysis, %2 is dependent...
2011 Dec 05
2
[LLVMdev] tbaa
Duncan Sands <baldrick <at> free.fr> writes: > > Hi Yi, > > > Could anyone tell me how exactly do I use "Type Based Alias Analysis"? > > > > I compiled the C program with Clang, and verified that there is tbaa > > metadata in the IR code. > > > > But then when I use "opt -tbaa input.c.bc -aa-eval" to check the results,
2017 Mar 28
2
llvm 3.9 Alias Analysis result for function's by-ref arguments
Hi, I'm writing an analysis pass which is supposed to find instructions in a function that modify function's by-ref arguments. For that I'm using llvm AliasAnalysis pass, particularly querying for ModRef info for instructions and function arguments, to see if a given instruction modifies a given argument. However, for functions with more than one by-ref argument, I get strange results. Instructions, which modify one of the arguments, are reported as modifying the others too - saying, ModRef info of...
2009 Jun 29
4
[LLVMdev] Limitations of Alias Analysis?
...tion *loc3 = getDifference(loc1, loc2); free(loc1); free(loc2); free(loc3); return 0; } //------------=== End ===------------// The whole process: llvm-gcc -emit-llvm -O0 -c test.c -o test.bc opt test.bc -load libLLVMDataStructure.so -basic-aa -ds-aa -anders-aa -aa-eval -print-all-alias-modref-info The corresponding IR content of main is: define i32 @main() nounwind { entry: %retval = alloca i32 %loc3 = alloca %struct.Location* %loc2 = alloca %struct.Location* %loc1 = alloca %struct.Location* %0 = alloca i32 %"alloca point" = bitcast i32 0 to i32 %1 = call...
2005 Apr 25
2
[LLVMdev] "Best" alias analysis algorithm
On Mon, 25 Apr 2005, Vladimir Prus wrote: > The GlobalsModRef::getModRefInfo has this logic: > > // If we are asking for mod/ref info of a direct call with a pointer to a > // global we are tracking, return information if we have it. > if (GlobalValue *GV = const_cast<GlobalValue*>(getUnderlyingObject(P))) > if (GV->hasI...
2015 Jun 12
2
[LLVMdev] alias set collapse and LICM
...;> the partition is not. Every time you query for aliasing, you need to check >>> if one of the accesses is in the special set. >> Ah, so this seems identical to what Sanjoy suggested initially :) > I think he suggested maintaining two partitions, one for Refs and one for Mods. ModRef accesses would be in both partitions. That might also be helpful, but might not be necessary if all the readonly calls are simply removed from the partition. I just want to point out that the readonly case is illustrative of a broader issue. The alias set tracker mechanism is currently inherently...
2016 Apr 15
3
(BasicAA) PartialAlias between different fields of a structure, intentional?
Hello all, I observed that BasicAA alias query returns PartialAlias between different fields of a structure. Following is the test program and -print–all-alias-modref-info output: --- ; test.ll target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" %"type" = type { [10 x i32], i64 } define void @test(%"type"* %base) { entry: %int = getelementptr inbounds %"ty...
2008 Apr 03
1
[LLVMdev] problem with using DSA for a side-effect analysis
Andrew, there used to be some code to compute the ModRef behavior of functions using DS graphs. Does that code still exist in svn? What Zvonimir is asking is essentially that, although perhaps he needs it as DS nodes explicitly rather than via the generic queries in the AliasAnalysis interface. --Vikram http://www.cs.uiuc.edu/~vadve http://ll...
2015 Jun 12
4
[LLVMdev] alias set collapse and LICM
On Fri, Jun 12, 2015 at 2:03 PM, Andrew Trick <atrick at apple.com> wrote: > > On Jun 12, 2015, at 1:51 PM, Daniel Berlin <dberlin at dberlin.org> wrote: > > So, you can't have disjoint sets, and have one of set that says "i > access everything". Because it would contain everything :) > > Thus, I assume by your description you meant "we want to
2015 Jun 18
3
[LLVMdev] Attribute to mark that function only access memory through it's arguments
Hi, Currently in AliasAnalysis we can model ModRef behaviour for functions which only access memory through their pointer arguments. However we can't express this propery as a function attribute. For example, for intrinsics we can specify ReadWriteArgMem or ReadArgMem attributes in tablegen definitions. But due to the lack of the related funct...
2009 Jun 30
2
[LLVMdev] Limitations of Alias Analysis?
Hi, Thanks for your advice. I have tried this way: opt -mem2reg test.bc -o mem2reg.bc llvm-dis mem2reg.bc opt -functionattrs -basicaa -aa-eval -print-all-alias-modref-info mem2reg.bc The content of main() in mem2reg.ll: define i32 @main() nounwind { entry: %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0] %0 = call %struct.Location* @getNewLocation(i32 0, i32 0) nounwind ; < %struct.Location*> [#uses=2] %1 = call %struct.Loc...
2010 Feb 14
4
[LLVMdev] A very basic doubt about LLVM Alias Analysis
to compile it to bitcode I give the following command : llvm-gcc -emit-llvm -c -o s.bc s.c and then I run different alias analysis passes like -anders-aa, -basicaa using following: opt -anders-aa -aa-eval -print-all-alias-modref-info s.bc From this I get the following output: Function: main: 8 pointers, 1 call sites NoAlias: i32* %retval, i32** %j NoAlias: i32* %retval, i32** %i NoAlias: i32** %i, i32** %j NoAlias: i32* %0, i32* %retval NoAlias: i32* %0, i32** %j NoAlias: i32* %0, i32** %i NoAl...
2009 Oct 09
1
[LLVMdev] DS-AA reports erroneous NoModRef
Hi, I am using DataStructureAA.cpp (poolalloc project) for alias analysis purposes and have noticed an error in getModRefInfo(). The situation is that Mod/Ref info is called with a CallSite and GlobalVariable argument, where the global is passed as an argument to the call. Furthermore, the callee function does *nothing* with this global but to pass it on to another callee function. In the last callee, the Bo...
2010 Dec 08
0
[LLVMdev] Bad gcc versions
On Wed, 08 Dec 2010 12:09:27 -0600 greened at obbligato.org (David A. Greene) wrote: > Török Edwin <edwintorok at gmail.com> writes: > > > What are we left with then? Only 4.2 and 4.3? > > On SLES 10.1 at least. I think it is highly platform dependent. Also keep in mind that llvm-gcc uses the 4.2 unwinder, so if you are seeing EH failures maybe the EH info generated by