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

在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,但是如果我能找到该选项,该死的.

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

最佳答案
可用于编译-O2处的一个源文件的IBM XL C/C++ for AIX V13.1选项是#pragma optionsoptimize = 2.可以在在线here或PDF here中找到有关它的信息.如果要覆盖已在命令行中指定的-O3并在功能级别进行控制,可以使用#pragma option_override(< name&gt ;,“ opt(level,2)”).有关该文件的信息,请参见在线here或PDFhere.您也可以通过修改Makefile来实现相同的目的,从而使一个源文件在-O2而不是-O3编译.

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

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

转载注明原文:优化-相当于#pragma GCC优化的IBM XL C/C++ - 代码日志