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 {...