首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clang++ PGO:空.profraw

Clang++ PGO:空.profraw
EN

Stack Overflow用户
提问于 2016-02-23 16:01:11
回答 1查看 1.6K关注 0票数 1

我正在寻求帮助与Clang配置文件引导优化的问题。我使用的是clang++-3.7,但是clang++-3.6仍然存在问题。

如果我尝试使用虚拟代码执行PGO,那么一切都很好:

  • 我用-fprofile-instr-generate编译: clang++ -o测试-fprofile-instr-生成dummy.cpp
  • 可执行文件"test“在启动时生成一个default.profraw文件。
  • 我可以将配置文件与llvm-profdata合并合并。
  • 最后,我可以使用配置文件集成进行编译,在.profdata上使用-fprofile-instr-use。

但是,随着一个更大的项目,有一些问题。我使用makefile和脚本来自动化流程,但这是操作流程:

  • 我编译了包含创建对象文件的类的源代码: clang++ -c --std=c++0x -O3 -flto -fprofile-instr-生成src/foo1.cpp -o obj/foo1.o clang++ -c --std=c++0x -O3 -flto -fprofile-instr-生成src/foo2.cpp -o obj/foo2.o clang++ -c --std=c++0x -O3 -flto -fprofile-instr-生成src/foo3.cpp -o obj/foo3.o
  • 然后我将对象链接起来: clang++ -O3 -flto -fprofile-instr-生成obj/foo1.o obj/foo2.o obj/foo3.o -o foobar.out
  • 此时有一个问题:当我尝试使用训练实例执行foobar.out时,生成的.profraw总是空的(执行速度是正常的,不像在pgo创建期间那样慢),当我试图使用概要文件集成编译时(在合并了.profraw文件之后),编译器总是为我的项目中的每个foo*.cpp文件提供警告“警告:没有文件foo*.cpp可用的概要文件数据”。 有人能帮我弄清楚问题出在哪里吗?提前谢谢你!
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-24 09:40:03

解决了。问题是,只有在正常退出(返回或退出)情况下才会生成配置文件,而在我的代码中,主文件以_exit结尾。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35582268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档