[llvm-dev] Question about basic-aa's assumptions (original) (raw)
Johannes Doerfert via llvm-dev llvm-dev at lists.llvm.org
Tue Jul 7 09:49:43 PDT 2020
- Previous message: [llvm-dev] Question about basic-aa's assumptions
- Next message: [llvm-dev] LLVM Weekly - #340, July 6th 2020
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 7/6/20 11:18 AM, ramshankar r via llvm-dev wrote:
Hi,
I have a test-case for which I seem to be getting incorrect information from basic-aa alias-analysis. Here it is: #include <stdio.h> #define ARRSIZE 4 char c[ARRSIZE]; char *pc[ARRSIZE]; char **ppc = pc; int main() { pc[0] = &c[0]; pc[1] = &c[1]; pc[2] = &c[2]; pc[3] = &c[3]; printf(" ppc: %p\n" " pc : %p\n" " c : %p\n" " *pc: %p\n", ppc, pc, c, *pc); return 0; } The way I compiled it is as follows: clang -m32 -g pointer.c -emit-llvm -S -c opt pointer.ll -aa-pipeline=basic-aa -passes=aa-eval -print-all-alias-modref-info -disable-output The result from the AA-Evaluator prints this: NoAlias: i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @pc, i32 0, i32 0), i8*** @ppc
Isn't this talking about &pc[0] and &ppc? If so, NoAlias seems
reasonable to me.
I mean, you print the value of ppc and pc while the above talks
about the addresses of these.
(I'm a bit tired so take this as a potential answer only.)
~ Johannes
If we run the program, the result is this: ppc: 0x565ee028 pc : 0x565ee028 c : 0x565ee024 *pc: 0x565ee024
Basically, I would have liked if basic-aa said ppc and pc are may-aliased to start with for this kind of usage. This is how the globals look like. The second one: "ppc" has "pc" on the right hand side. @pc = common dsolocal global [4 x i8*] zeroinitializer, align 4, !dbg !0 @ppc = dsolocal global i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @pc, i32 0, i32 0), align 4, !dbg !6 Best regards, Ram
LLVM Developers mailing list llvm-dev at lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200707/7e400d67/attachment.html>
- Previous message: [llvm-dev] Question about basic-aa's assumptions
- Next message: [llvm-dev] LLVM Weekly - #340, July 6th 2020
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]