[LLVMdev] TBAA fail on optimization, why?
Jun Koi
junkoi2004 at gmail.com
Wed Sep 19 23:18:32 PDT 2012
hi,
i have a simple code like below, in wich variable "aaa" does not alias
to "bbb".
i use TBAA to specify this, please see the code.
then i ran this code thru LLVM optimization, and i expected that the
second "store" instruction is eliminated.
however, i am wrong: the second "store" instruction is still there
after optimization.
perhaps my TBAA setup is wrong somewhere? any hint, please?
thanks!
Jun
@aaa = external global i32
@bbb = external global i32
....
%0 = load i32* @aaa, !tbaa !1
%1 = load i32* @bbb, !tbaa !2
%2 = add i32 %0, %1
store i32 %2, i32* @aaa, !tbaa !2
; below line should be eliminated with optimization
store i32 %1, i32* @bbb, !tbaa !1 ; <==== WHY
optimization CANNOT ELIMINATE this insn?
...
!tbaa = !{!0, !1, !2}
!0 = metadata !{metadata !"tbaa_root"}
!1 = metadata !{metadata !"aaa", metadata !0}
!2 = metadata !{metadata !"bbb", metadata !0}
More information about the llvm-dev
mailing list