nik*_*aza 6 c++ g++ clang compiler-optimization
我想知道是否/如何可以看到编译器在启用优化时如何使用clang ++/g ++重构一段代码.我知道英特尔编译器有一个标志来产生相关的输出,但我似乎无法找到其他编译器中的等价物.
因此,由于您的指示,我得以发现一些非常酷的东西,所以我想分享一下:
使用Clang ++-4.0,可以如下编译可执行文件:
clang++-4.0 -std=c++14 -O3 -fsave-optimization-record -foptimization-record-file=myOptfile.yaml sourceFile.cpp
Run Code Online (Sandbox Code Playgroud)
这节省了创纪录的成功和失败中myOptfile.yaml优化。可以使用llvm-opt-report-4.0进行查看,但是如果使用llvm / utils / opt-viewer.py可以查看其真正功能。
为此,请克隆llvm存储库,导航到您的源目录,并在生成myOptFile.yaml之后运行以下命令:
python ~/myInstallDir/llvm/utils/opt-viewer/opt-viewer.py myOptFile.yaml reportsDirectory/
Run Code Online (Sandbox Code Playgroud)
这将创造大量的HTML文件,您可以使用的index.html(在reportsDirectory文件夹)导航。
其结果是真棒,看起来像这样:
大多数事情都是可单击的,因此您可以使用html超链接导航到源代码的其他部分,包括c ++库,然后查看发生了什么!