我正在研究使用 llvm 工具来生成小程序的块级配置文件。看起来在旧版本中这就像运行一样简单:
perl utils/profile.pl -block program.bc
在新版本的 LLVM 中如何进行分析?
使用 Clang 和 llvm-profdata
使用仪器访问 Clang 用户手册配置文件
llvm doc llvm-profdata
总之:
构建代码的检测版本
clang -O2 -fprofile-instr-generate code.c
运行检测的可执行文件以获取配置文件数据文件
./a.out
合并来自多次运行的配置文件并通过运行格式化文件
llvm-profdata merge *.profraw -output=code.profdata
再次构建代码
clang -O2 -fprofile-instr-use=code.profdata code.c
(可选?) 5. 显示此文件和任何指定函数的配置文件计数器
llvm-profdata show -all-functions code.profdata