2014-11-21 2 views
1

Согласно документации, лязг поддерживает options to emit optimisation reports:Как исправить отчеты об оптимизации с помощью Apple clang 3.5?

  1. When the pass makes a transformation (-Rpass).
  2. When the pass fails to make a transformation (-Rpass-missed).
  3. When the pass determines whether or not to make a transformation (-Rpass-analysis).

Они обеспечивают следующий пример командной строки:

$ 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:

$ 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

Работы для 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 
+0

Да, это действительно вещь Apple. После перехода на выпуск с http://llvm.org он работает как задокументированный. –

Смежные вопросы