search for: locationsize

Displaying 16 results from an estimated 16 matches for "locationsize".

2018 Nov 29
2
AliasAnalysis does not look though a memcpy
...rgmemonly nounwind } I run it with opt, and get the following: $ opt -basicaa -print-alias-sets memcpy.ll -disable-output Alias sets for function 'fun': Alias Set Tracker: 3 alias sets for 6 pointer values. AliasSet[0x5b5df0, 2] may alias, Mod/Ref Pointers: (i32* %var, LocationSize::precise(4)), (i32* %var.tmp, LocationSize::precise(4)) AliasSet[0x5b5e90, 2] must alias, Mod/Ref Pointers: (i32** %var.addr, LocationSize::precise(8)), (i8* %1, LocationSize::precise(8)) AliasSet[0x5b7390, 2] must alias, Mod/Ref Pointers: (i8* %0, LocationSize::precise(8)), (i32**...
2018 Dec 05
2
AliasAnalysis does not look though a memcpy
...get the following: >> >> $ opt -basicaa -print-alias-sets memcpy.ll -disable-output >> Alias sets for function 'fun': >> Alias Set Tracker: 3 alias sets for 6 pointer values. >> AliasSet[0x5b5df0, 2] may alias, Mod/Ref Pointers: (i32* %var, LocationSize::precise(4)), (i32* %var.tmp, LocationSize::precise(4)) >> AliasSet[0x5b5e90, 2] must alias, Mod/Ref Pointers: (i32** %var.addr, LocationSize::precise(8)), (i8* %1, LocationSize::precise(8)) >> AliasSet[0x5b7390, 2] must alias, Mod/Ref Pointers: (i8* %0, LocationSize::pr...
2020 Jul 10
2
Understand alias-analysis results
...ang wrote: > Hello! > > Thank you very much! Yes, that makes a lot of sense to me. However, just > want to point out two things that are still unclear: > > 1. The output contains a alias set of only one element, for instance: > "must alias, Mod       Pointers: (i32* %y, LocationSize::precise(4))" > > This one really confused me. I would expect to have an alias set of at > least *two* elements (e.g., two pointers point to the same memory > region), otherwise for the above case, $y$ is aliased to whom? I > searched all outputs that are related to %y from...
2018 Dec 05
2
AliasAnalysis does not look though a memcpy
...;>>> $ opt -basicaa -print-alias-sets memcpy.ll -disable-output >>>> Alias sets for function 'fun': >>>> Alias Set Tracker: 3 alias sets for 6 pointer values. >>>> AliasSet[0x5b5df0, 2] may alias, Mod/Ref Pointers: (i32* %var, LocationSize::precise(4)), (i32* %var.tmp, LocationSize::precise(4)) >>>> AliasSet[0x5b5e90, 2] must alias, Mod/Ref Pointers: (i32** %var.addr, LocationSize::precise(8)), (i8* %1, LocationSize::precise(8)) >>>> AliasSet[0x5b7390, 2] must alias, Mod/Ref Pointers: (i8* %0,...
2020 Jul 09
2
Understand alias-analysis results
...M-IR]: https://llvm.godbolt.org/z/n9rGrs - [LLVM-IR ->] opt: https://llvm.godbolt.org/z/Uc6h5Y And i note that the outputs are: Alias sets for function 'main': Alias Set Tracker: 2 alias sets for 4 pointer values. *AliasSet[0x563faa6c6260, 5] may alias, Mod/Ref Pointers: (i8* %0, LocationSize::precise(4)), (i32* %a, LocationSize::precise(4)), (i8* %1, LocationSize::precise(4)), (i32* %b, LocationSize::precise(4))* 1 Unknown instructions: call void @NOALIAS(i8* nonnull %0, i8* nonnull %1) #3 *AliasSet[0x563faa6b45e0, 1] must alias, Mod/Ref forwarding to 0x563faa6c6260* ===...
2020 Jul 09
2
Understand alias-analysis results
...fer that: > - x and &c are "must alias" > - x and b are "must alias" > > I don't know how to interpret the current results, in particular the > following outputs: > > AliasSet[0x5584ab7e5f30, 1] must alias, Mod/Ref Pointers: (i32** %x, > LocationSize::precise(8)) > AliasSet[0x5584ab7e6020, 1] must alias, Mod Pointers: (i32* %y, > LocationSize::precise(4)) > > It means we have two "must alias" sets, each of which contain only one > pointer? That seems quite confusing to me.. You can add -print-all-alias-modre...
2019 Jun 01
2
Question about a AA result and its use in Dependence Analysis
...load float, float* %p, align 4 store float undef, float* %q, align 4 %branch_cond = fcmp ugt float %0, 0.0 br i1 %branch_cond, label %for.cond.cleanup, label %for.body } Alias Set Tracker: 2 alias sets for 2 pointer values. AliasSet[0x83e1fe0, 1] must alias, Ref Pointers: (float* %p, LocationSize::precise(4)) AliasSet[0x83e3390, 1] must alias, Mod Pointers: (float* %q, LocationSize::precise(4)) da analyze - %0 = load float, float* %p, align 4 store float undef, float* %q, align 4 none! -----Original Message----- From: Doerfert, Johannes [mailto:jdoerfert at anl.gov] Sent:...
2019 Jun 03
2
Question about a AA result and its use in Dependence Analysis
...at* %a2, float* %a1 store float 0.000000e+00, float* %ptr1, align 4 store float 1.000000e+00, float* %ptr2, align 4 br i1 %select_cond, label %end, label %loop } Alias Set Tracker: 2 alias sets for 2 pointer values. AliasSet[0x55bd786b8300, 1] must alias, Mod Pointers: (float* %ptr1, LocationSize::precise(4)) AliasSet[0x55bd786b96b0, 1] must alias, Mod Pointers: (float* %ptr2, LocationSize::precise(4)) -----Original Message----- From: Doerfert, Johannes [mailto:jdoerfert at anl.gov] Sent: Saturday, June 1, 2019 2:29 PM To: De Azevedo Piovezan, Felipe <felipe.de.azevedo.piovezan...
2019 May 31
2
Question about a AA result and its use in Dependence Analysis
...hi float* [ %g, %entry ], [ %q, %for.body ] %q = phi float* [ %h, %entry ], [ %p, %for.body ] %0 = load float, float* %p, align 4 store float undef, float* %q, align 4 br i1 undef, label %for.cond.cleanup, label %for.body } AliasSet[0x872d800, 1] must alias, Ref Pointers: (float* %p, LocationSize::precise(4)) AliasSet[0x872d8b0, 1] must alias, Mod Pointers: (float* %q, LocationSize::precise(4)) da analyze - %0 = load float, float* %p, align 4 ; I added these two debug statements, DA doesn't print the values it is looking at... store float undef, float* %q, align 4 none! -...
2019 Jun 03
2
Question about a AA result and its use in Dependence Analysis
....000000e+00, float* %ptr1, align 4 > store float 1.000000e+00, float* %ptr2, align 4 > br i1 %select_cond, label %end, label %loop > } > > Alias Set Tracker: 2 alias sets for 2 pointer values. > AliasSet[0x55bd786b8300, 1] must alias, Mod Pointers: (float* %ptr1, > LocationSize::precise(4)) > AliasSet[0x55bd786b96b0, 1] must alias, Mod Pointers: (float* %ptr2, > LocationSize::precise(4)) > > -----Original Message----- > From: Doerfert, Johannes [mailto:jdoerfert at anl.gov] > Sent: Saturday, June 1, 2019 2:29 PM > To: De Azevedo Piovezan, Fel...
2019 Jun 05
2
Question about a AA result and its use in Dependence Analysis
...+1 The flaw here seems to be in the way that DA is using AA. DependenceAnalysis's underlyingObjectsAlias is doing this:   // Check the original locations (minus size) for noalias, which can happen for   // tbaa, incompatible underlying object locations, etc.   MemoryLocation LocAS(LocA.Ptr, LocationSize::unknown(), LocA.AATags);   MemoryLocation LocBS(LocB.Ptr, LocationSize::unknown(), LocB.AATags);   if (AA->alias(LocAS, LocBS) == NoAlias)     return NoAlias;   // Check the underlying objects are the same   const Value *AObj = GetUnderlyingObject(LocA.Ptr, DL);   const Value *BObj = GetUnderl...
2019 Jul 22
2
Run llvm pass from standalone project
Hi all, I am trying to use LLVM's AliasAnalysis pass, but from a standalone tool that uses llvm libraries. The following is the code snippet I am currently using. PassBuilder PB; auto mod_manager = ModuleAnalysisManager { }; PB.registerModuleAnalyses(mod_manager); AAResults& AAR = mod_manager.getResult<AAManager>(*M); But the code fails at .getResult with the following error:
2020 Jul 09
2
Understand alias-analysis results
Hello, I am performing alias analysis toward the following simple code: struct MyStruct { int * f1; int * f2; }; void NOALIAS(void* p, void* q){ } int main() { struct MyStruct s[2]; int a,b; s[0].f1 = &a; s[1].f1 = &b; NOALIAS(s[a].f1, s[b].f2); return 0; } When I use the following command to generate .bc code and conduct alias analysis: clang -c -emit-llvm t.c -O2 opt -basicaa
2019 Nov 06
2
Alias analysis only throwing mayAlias for something that seems should be identifiable as mustAlias
I have a global 2-D array ARRAY[N][M] and I am accessing it inside the for loop like this: for (i...) for (j ...) ARRAY[i][j] ... So nothing really weird is happening. If I look at the generated IR, it is also fairly straight forward. @ARRAY0 = dso_local global [32 x [32 x i32]] zeroinitializer, section ".slow_mem", align 32, !dbg !84 ... %45 = getelementptr inbounds [32 x [32 x
2020 Feb 27
2
TBAA for struct fields
...ng commands: clang -O1 -S -emit-llvm struct_tbaa.c opt -basicaa -tbaa -print-alias-sets -disable-output struct_tbaa.ll yields: Alias sets for function 'foo': Alias Set Tracker: 2 alias sets for 2 pointer values. AliasSet[0x563d8f6a8bd0, 1] must alias, Mod Pointers: (i32* %f2, LocationSize::precise(4)) AliasSet[0x563d8f6bc080, 1] must alias, Mod Pointers: (float* %f1, LocationSize::precise(4)) IR of foo: ; Function Attrs: nofree norecurse nounwind uwtable writeonly define dso_local void @foo(%struct.P* nocapture %p1, %struct.P* nocapture %p2) local_unnamed_addr #0 { entry:...
2020 Mar 03
2
TBAA for struct fields
...ds: clang -O1 -S -emit-llvm struct_tbaa.c opt -basicaa -tbaa -print-alias-sets -disable-output struct_tbaa.ll yields: Alias sets for function 'foo': Alias Set Tracker: 2 alias sets for 2 pointer values. AliasSet[0x563d8f6a8bd0, 1] must alias, Mod Pointers: (i32* %f2, LocationSize::precise(4)) AliasSet[0x563d8f6bc080, 1] must alias, Mod Pointers: (float* %f1, LocationSize::precise(4)) IR of foo: ; Function Attrs: nofree norecurse nounwind uwtable writeonly define dso_local void @foo(%struct.P* nocapture %p1, %struct.P* nocapture %p2) local_unnamed_addr #0 {...