2013-12-12 48 views
1

前提条件:我使用-O2优化标志调用gcc并使用-O2优化标志调用clang。
这是否意味着传递给编译器的选项列表将是相同的?
Do clang了解标准GCC选项,如-funroll-loops?GCC和Clang优化选项之间的区别

我没有找到任何关于这个问题,在手动有用:
http://llvm.org/releases/3.3/tools/clang/docs/UsersManual.html
我甚至不能找到可以与铛使用的可能GCC兼容的选项列表。

做铛即使做任何与海湾合作委员会的选项(或它只是忽略它们?)
我只是需要一些澄清它如何工作。

+0

检查铛手册。它理解这个选择,但我不确定它会理解所有这些。 –

+0

不能保证'-O2'在gcc中的叮当中意味着相同。鉴于他们有不同的优化器,无论如何这种保证是不可能的。 – user4815162342

+1

@Adriano [clang手册](http://clang.llvm.org/docs/UsersManual.html)对于它实际支持哪些优化选项以及它们的含义感到惊讶地保持沉默。 – user4815162342

回答

5

虽然通常Clang会尝试复制GCC中的命令行选项,但GCC和LLVM中存在不同的优化传递,因此不会共享特定的优化标志。特别是,这意味着-O2在两个编译器中表现不一样。

如果您想查看GCC在-O2下应用的优化列表,请检查its documentation;如果您想查看Clang所适用的列表,请检查this related Stackoverflow question about how to see the list

相关问题