search for: omnipotent

Displaying 20 results from an estimated 147 matches for "omnipotent".

2017 Oct 18
2
Possible bug of Alias Analysis?
...ted tbaa metadata for the arguments of a > memcpy call. Besides using a union, memcpy is a supported way to copy > bits between unrelated types (since its arguments are void* and can > point to anything). When converting to load/store, these should point > to void*'s metadata ("omnipotent char"). > > That is, I'd conclude that either the load/store do not originate from > a memcpy, or there is a serious bug. May be I need to tell you how we handle @llvm.memcpy in details for you to clearly understand the reason behind the issue. We provide a pre-built library fun...
2017 Oct 30
2
An ambiguity in TBAA info format
...!9} !7 = !{!"B", !9} The tag !1 describes an access to an object of type "A" and !3 describes an access to object of type "B". Both the type descriptors, !5 and !7, refer to node !9 as their type group. A definition of that node could look like this: !9 = !{"omnipotent char", ...} We know that these two accesses should be considered no-alias as neither of them encloses the other; the least common type group for them is !9. TypeBasedAAResult::Aliases() and MDNode::getMostGenericTBAA() respond accordingly and all is good. Then, let's change the defini...
2017 Oct 31
3
An ambiguity in TBAA info format
...s an access to an object of type "A" and !3 >> describes an access to object of type "B". >> >> Both the type descriptors, !5 and !7, refer to node !9 as their type >> group. A definition of that node could look like this: >> >> !9 = !{"omnipotent char", ...} >> >> We know that these two accesses should be considered no-alias as >> neither of them encloses the other; the least common type group for >> them is !9. TypeBasedAAResult::Aliases() and >> MDNode::getMostGenericTBAA() respond accordingly and all...
2012 Jan 24
2
[LLVMdev] Pointer aliasing
...{ store double 1.000000e+00, double* %x, align 8, !tbaa !0 store double 3.000000e+00, double* %y, align 8, !tbaa !0 store double 4.000000e+00, double* %z, align 8, !tbaa !0 ret double 8.000000e+00 } !0 = metadata !{metadata !"double", metadata !1} !1 = metadata !{metadata !"omnipotent char", metadata !2} !2 = metadata !{metadata !"Simple C/C++ TBAA", null} So I can't figure out what the mechanism is for telling llvm that two pointers that are local variables (and not input arguments) to a function do not alias each other. I hope one of the developers can she...
2019 Jan 14
2
Aliasing rules difference between GCC and Clang
...ptr inbounds %struct.B, %struct.B* %b, i32 0, i32 0 store i32 0, i32* %i1, align 4, !tbaa !7 store i32 0, i32* %prim_i, align 4, !tbaa !9 with this type DAG:             !2 = !{!3, !4, i64 0}          !3 = !{!"A", !4, i64 0}       !4 = !{!"int", !5, i64 0}    !5 = !{!"omnipotent char", !6, i64 0} !6 = !{!"Simple C/C++ TBAA"}             !7 = !{!8, !4, i64 0}          !8 = !{!"B", !4, i64 0}          !9 = !{!4, !4, i64 0} Just as one would hope for, TBAA produces a NoAlias result between the stores to %A and %B: NoAlias:    store i32 0, i32* %...
2012 Jan 23
2
[LLVMdev] Pointer aliasing
...ore double %7, double* %5, align 8, !tbaa !3 %8 = load double* %1, align 8, !tbaa !3 %9 = load double* %3, align 8, !tbaa !3 %10 = fadd double %8, %9 %11 = fadd double %10, %7 ret double %11 } !0 = metadata !{metadata !"any pointer", metadata !1} !1 = metadata !{metadata !"omnipotent char", metadata !2} !2 = metadata !{metadata !"Simple C/C++ TBAA", null} !3 = metadata !{metadata !"double", metadata !1} Thank you for any help. Brent
2012 Jan 24
0
[LLVMdev] Pointer aliasing
...double 1.000000e+00, double* %1, align 8, !tbaa !3 store double 3.000000e+00, double* %3, align 8, !tbaa !3 store double 4.000000e+00, double* %5, align 8, !tbaa !3 ret double 8.000000e+00 } !0 = metadata !{metadata !"any pointer", metadata !1} !1 = metadata !{metadata !"omnipotent char", metadata !2} !2 = metadata !{metadata !"Simple C/C++ TBAA", null} !3 = metadata !{metadata !"double", metadata !1} I am afraid I can't really help you in telling what went wrong here and caused the missing optimizations, but I agree with you that the result in...
2012 Jan 24
0
[LLVMdev] Pointer aliasing
...e* %x, align 8, !tbaa !0 > store double 3.000000e+00, double* %y, align 8, !tbaa !0 > store double 4.000000e+00, double* %z, align 8, !tbaa !0 > ret double 8.000000e+00 > } > > !0 = metadata !{metadata !"double", metadata !1} > !1 = metadata !{metadata !"omnipotent char", metadata !2} > !2 = metadata !{metadata !"Simple C/C++ TBAA", null} > > So I can't figure out what the mechanism is for telling llvm that two > pointers that are local variables (and not input arguments) to a > function do not alias each other. I hope one o...
2012 Jan 24
4
[LLVMdev] Pointer aliasing
...>>   store double 3.000000e+00, double* %y, align 8, !tbaa !0 >>   store double 4.000000e+00, double* %z, align 8, !tbaa !0 >>   ret double 8.000000e+00 >> } >> >> !0 = metadata !{metadata !"double", metadata !1} >> !1 = metadata !{metadata !"omnipotent char", metadata !2} >> !2 = metadata !{metadata !"Simple C/C++ TBAA", null} >> >> So I can't figure out what the mechanism is for telling llvm that two >> pointers that are local variables (and not input arguments) to a >> function do not alias each...
2012 Jan 24
2
[LLVMdev] Pointer aliasing
...align 8, !tbaa !0 >>>> store double 4.000000e+00, double* %z, align 8, !tbaa !0 >>>> ret double 8.000000e+00 >>>> } >>>> >>>> !0 = metadata !{metadata !"double", metadata !1} >>>> !1 = metadata !{metadata !"omnipotent char", metadata !2} >>>> !2 = metadata !{metadata !"Simple C/C++ TBAA", null} >>>> >>>> So I can't figure out what the mechanism is for telling llvm that two >>>> pointers that are local variables (and not input arguments) to a &gt...
2012 Jan 24
0
[LLVMdev] Pointer aliasing
...000000e+00, double* %y, align 8, !tbaa !0 >>> store double 4.000000e+00, double* %z, align 8, !tbaa !0 >>> ret double 8.000000e+00 >>> } >>> >>> !0 = metadata !{metadata !"double", metadata !1} >>> !1 = metadata !{metadata !"omnipotent char", metadata !2} >>> !2 = metadata !{metadata !"Simple C/C++ TBAA", null} >>> >>> So I can't figure out what the mechanism is for telling llvm that two >>> pointers that are local variables (and not input arguments) to a >>> functio...
2019 Nov 13
2
TBAA question
...he following LLVM IR. ----Snip--- %1 = getelementptr inbounds %struct._X, %struct._X* %0, i64 0, i32 3 %2 = load %struct._X*, %struct._X** %1, align 8, !tbaa !10 .... ..... ....... %3 = bitcast %struct._Y** %1 to i8** store i8* null, i8** %3, align 8, !tbaa !9 !9 = !{!7, !7, i64 0} !7 = !{!"omnipotent char", !8, i64 0} !8 = !{!"Simple C/C++ TBAA"} ----Snip---- Load inst above is trying to access a field of _X which is a self recursive pointer to same struct _X. Store puts a null value for a pointer to struct _Y. It has been bitcasted to i8** and store happens via char pointer....
2019 Apr 10
2
Disabling password expiry for a AD service account for accessing LDAPS, and security best practices.
...a universal weakness shared by all password-based authentication methods. I guess you would have to go with SSH-style encryption keys and certificates to circumvent that problem entirely which might bamboozle ordinary website users. Dynamic bind does remove the need to create an extra special omnipotent account with a never-expiring password though. So on that basis I am saying it is more secure (but not absolutely secure since there are no absolutes in life heh ;) ) Cheers Stephen Ellwood
2017 Feb 13
2
RFC: Representing unions in TBAA
...ptr inbounds (%struct.S, %struct.S* @s, i32 0, %i32 2), align 4, !tbaa !2 %1 = load i32, i32* getelementptr inbounds (%struct.S, %struct.S* @s, i32 0, %i32 3), align 4, !tbaa !7 ... !2 = !{!3, !6, i64 800} !3 = !{!"S", !4, i64 0, !4, i64 400, !6, i64 800, !6, i64 804} !4 = !{!"omnipotent char", !5, i64 0} !5 = !{!"Simple C/C++ TBAA"} !6 = !{!"int", !4, i64 0} !7 = !{!3, !6, i64 804} The two loads are loads of different int members of the same struct. The type based aliasing gives them different meta data tags (!2 and !7). This allows the analysis to...
2012 Jan 24
0
[LLVMdev] Pointer aliasing
...t;>>> store double 4.000000e+00, double* %z, align 8, !tbaa !0 >>>>> ret double 8.000000e+00 >>>>> } >>>>> >>>>> !0 = metadata !{metadata !"double", metadata !1} >>>>> !1 = metadata !{metadata !"omnipotent char", metadata !2} >>>>> !2 = metadata !{metadata !"Simple C/C++ TBAA", null} >>>>> >>>>> So I can't figure out what the mechanism is for telling llvm that two >>>>> pointers that are local variables (and not input argu...
2015 Dec 09
2
Field sensitive alias analysis?
....S, %struct.S* %ps, i64 0, i32 1 store i32 2, i32* %b, align 4, !tbaa !5 %arrayidx2 = getelementptr inbounds %struct.S, %struct.S* %ps, i64 0, i32 0, i64 0 %0 = load i32, i32* %arrayidx2, align 4, !tbaa !1 ret i32 %0 } !1 = !{!2, !2, i64 0} !2 = !{!"int", !3, i64 0} !3 = !{!"omnipotent char", !4, i64 0} !4 = !{!"Simple C/C++ TBAA"} !5 = !{!6, !2, i64 40} !6 = !{!"S", !3, i64 0, !2, i64 40} Missing information here is the range inside struct S that could be accessed. Also as you can see array member of struct in TBAA is presented as omnipotent char not as...
2012 Jul 04
1
[LLVMdev] About thread_local in 3.0
...%1 = tail call i32 @foo() %2 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([9 x i8]* @.str, i32 0, i32 0), i32 %1) nounwind ret i32 0 } declare i32 @printf(i8* nocapture, ...) nounwind !0 = metadata !{metadata !"int", metadata !1} !1 = metadata !{metadata !"omnipotent char", metadata !2} !2 = metadata !{metadata !"Simple C/C++ TBAA", null} If I jit the code, say "lli 2010-12-08-tls.O1.bc", I got 0 lli 0x091ac1a8 1 lli 0x091ac7e7 2 0xffffe400 + 0 3 lli 0x08f7a103 llvm::ExecutionEngine::runFunctionAsMain(...
2019 Jan 18
2
Aliasing rules difference between GCC and Clang
...32* %i1, align 4, !tbaa !7 >> store i32 0, i32* %prim_i, align 4, !tbaa !9 >> >> with this type DAG: >> >>             !2 = !{!3, !4, i64 0} >>          !3 = !{!"A", !4, i64 0} >>       !4 = !{!"int", !5, i64 0} >>    !5 = !{!"omnipotent char", !6, i64 0} >> !6 = !{!"Simple C/C++ TBAA"} >>             !7 = !{!8, !4, i64 0} >>          !8 = !{!"B", !4, i64 0} >>          !9 = !{!4, !4, i64 0} >> >> Just as one would hope for, TBAA produces a NoAlias result between the >...
2013 Feb 07
1
[LLVMdev] alloca scalarization with dynamic indexing into vectors
..., !tbaa !11 %4 = insertelement <2 x i32> undef, i32 %3, i32 0 %splat = shufflevector <2 x i32> %4, <2 x i32> undef, <2 x i32> zeroinitializer store <2 x i32> %splat, <2 x i32>* %results, align 8, !tbaa !9 ret void } !9 = metadata !{metadata !"omnipotent char", metadata !10} !10 = metadata !{metadata !"Simple C/C++ TBAA", null} !11 = metadata !{metadata !"int", metadata !9} In this example, the sequence of stores is copying the data from %src into %sPrivateStorage with the GEP of interest being: %add.ptr = getel...
2017 Oct 18
2
Possible bug of Alias Analysis?
> -----Original Message----- > From: meinersbur at googlemail.com [mailto:meinersbur at googlemail.com] On > Behalf Of Michael Kruse > Sent: Tuesday, October 17, 2017 3:26 PM > To: Song, Ruiling <ruiling.song at intel.com> > Cc: llvm at meinersbur.de; llvm-dev at lists.llvm.org > Subject: Re: Possible bug of Alias Analysis? > > 2017-10-17 8:45 GMT+02:00 Song,