IBM XL C / C ++相当于#pragma GCC优化

时间:2017-09-16 10:17:39

标签: optimization pragma powerpc compiler-options xlc

对于在PowerPC平台上-O3使用IBM XL C / C ++的源文件,我们遇到bad code generation。它的表面挂起,看起来特定的循环没有被打破。

问题只出现在XL C / C ++下。我们的测试机制表明源文件清除了未定义的行为,内存错误和其他勘误。我们也没有收到编译器对源文件的严格/非严格警告。

我们希望在-O2而不是-O3编译源文件。我们希望将诸如编译指示之类的检测添加到源文件中,以便可以为编译器适当地保护它。仪器允许其他人接入其他构建系统,如Cmake和Autotools,并且事情将“正常工作”。 (必要的信息在源代码中可用,而不是我们的makefile)。

编译器的IBM手册位于IBM XL C/C++ for AIX, V13.1,但如果我能找到该选项,该死的。

什么是IBM XL C / C ++等同于#pragma GCC optimize?我们如何检测源代码以告诉XL C / C ++使用-O2而不是-O3

1 个答案:

答案 0 :(得分:4)

可用于在-O2编译该源文件的IBM XL C / C ++ for AIX V13.1选项为#pragma options optimize=2。有关它的信息可以在线here或PDF here找到。如果要覆盖已在命令行中指定的-O3,并在功能级别控制它,则可以使用#pragma option_override(<your function name>, "opt(level, 2)")。有关它的信息可以在线here或PDF here找到。您也可以通过修改Makefile来实现相同的目的,以便在-O2而不是-O3编译一个源文件。

另外,您确定从tea.cpp:27:26开始报告的错误消息来自IBM XL C / C ++ for AIX V13.1吗?它看起来不像是该产品的诊断消息的格式。

我们将继续监控您对Stack Overflow的评论(使用xlc进行标记可帮助我们找到它),但如果您在http://ibm.biz/xl-power-compilers-forum我们的论坛上发布您的问题,您可能会发现更快的响应时间, IBM编译器开发团队更积极地监控它。