gpt4 book ai didi

c++ - 有没有什么办法可以告诉 clang 在没有其他优化的情况下生成 TBAA 元数据?

转载 作者:行者123 更新时间:2023-11-28 06:30:30 26 4
gpt4 key购买 nike

LLVM 包含一个名为“基于类型的别名分析”( pass source code on github ) 的别名分析,它利用指令中嵌入的 !tbaa 元数据。元数据信息如下:

!1 = metadata !{metadata !2, metadata !2, i64 0}
!2 = metadata !{metadata !"int", metadata !3, i64 0}
!3 = metadata !{metadata !"omnipotent char", metadata !4, i64 0}
!4 = metadata !{metadata !"Simple C/C++ TBAA"}

好像需要clang之类的前端来生成元数据信息。

在不传递任何优化参数(或-O0)的情况下编译源代码文件无法生成上述元数据。直到现在我才发现我必须至少通过 -O1 来 clang 才能得到这些;问题是我不希望发生其他优化/转换(例如 instcombine )(clang -O1 使用的传递类似于 this answer 呈现的结果)。

有什么办法可以实现这个目标吗?

最佳答案

答案有点过时了。我相信 -disable-llvm-optzns 已被弃用/删除。您可以使用类似这样的驱动程序来执行此操作:

clang -O2 -Xclang -disable-llvm-passes -S -emit-llvm

关于c++ - 有没有什么办法可以告诉 clang 在没有其他优化的情况下生成 TBAA 元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27686595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com