如何使用Apple clang 3.5发出优化报告?

时间:2014-11-21 12:14:26

标签: c++ clang

根据文档,clang支持options to emit optimisation reports

  
      
  1. 当传球进行转换时(-Rpass)。
  2.   
  3. 当传球未能进行转换时(-Rpass-missed)。
  4.   
  5. 当通过确定是否进行转换时(-Rpass-analysis)。
  6.   

它们提供以下示例命令行:

  

$ clang -O2 -Rpass=inline code.cc -o code

当我尝试这个时,我收到一个错误:

$ clang src/test/tests.cpp -Rpass=inline    
clang: error: unknown argument: '-Rpass=inline'
scons: *** [build/test/tests.o] Error 1
scons: building terminated because of errors.

我的铿锵声版本是:

$ clang --version
Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix

此选项在Mac OS上不可用吗?文档是否错误?或者我做错了吗?如果是这样,怎么做呢?

1 个答案:

答案 0 :(得分:1)

适用于Debian clang-3.5.0-6,所以这可能是Apple clang限制。

% clang++ -O2 -Rpass=inline foo.cpp
foo.cpp:11:2: remark: _ZN1CC2Ev inlined into main [-Rpass=inline]
        P* p = new C();
        ^
% clang --version
Debian clang version 3.5.0-6 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
Target: i386-pc-linux-gnu
Thread model: posix