Мы столкнулись с генерацией неправильного кода для исходного файла с использованием IBM XL C/C++ по адресу -O3
. на платформах PowerPC. Его поверхности как бы висят, и кажется, что конкретная петля не разорвана.
Проблема проявляется только в XL C/C++. Наш режим тестирования показывает, что исходный файл свободен от неопределенного поведения, ошибок памяти и других опечаток. Мы также не получаем strict/nostrict предупреждений от компилятора для исходного файла.
Мы хотим скомпилировать исходный файл в -O2
вместо -O3
. Мы хотим добавить инструменты, такие как прагма, к исходному файлу, чтобы его можно было надлежащим образом защитить для компилятора. Инструментарий позволяет другим подключать другие системы сборки, такие как Cmake и Autotools, и все будет «просто работать» для них. (Необходимая информация доступна в исходниках, а не в нашем make-файле).
Руководство IBM для компилятора находится по адресу IBM XL C/C++. для AIX, V13.1, но черт возьми, если я смогу найти эту опцию.
Что эквивалентно #pragma GCC optimize
в IBM XL C/C++? Как настроить исходный код, чтобы указать XL C/C++ использовать -O2
вместо -O3
?