GCC和Clang优化选项之间的区别

时间:2013-12-12 10:48:35

标签: c gcc compiler-construction clang llvm

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

我在手册中没有找到任何有用的问题:
http://llvm.org/releases/3.3/tools/clang/docs/UsersManual.html
我甚至找不到可以与clang一起使用的可能的GCC兼容选项列表。

clang甚至对GCC选项做了什么(或者只是忽略它们?)
我只需要澄清它是如何工作的。

1 个答案:

答案 0 :(得分:5)

虽然一般来说Clang尝试从GCC复制命令行选项,但GCC和LLVM中有不同的优化传递,因此不共享特定的优化标志。特别是,这意味着-O2在两个编译器中的行为不同。

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