[LLVMdev] TBAA fail on optimization, why?

Duncan Sands baldrick at free.fr
Thu Sep 20 02:18:21 PDT 2012


Hi Jun, did you tell "opt" to make use of TBAA?  Also, please give complete IR
that people can use to reproduce, and instructions on how to reproduce (eg how
to run opt).

Ciao, Duncan.

> 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}
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>




More information about the llvm-dev mailing list