LINUX.ORG.RU

как компилер умудряется при -O3 заоптимизировать код до нерабочего состояния?


0

0

$gcc --version
gcc (GCC) 3.3.4
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$


неработающий код:

static inline void check_plugin_data(   Mbeq*plugin_data){
    if(!plugin_data->mmap_ctl){
        plugin_data->mmap_ctl=attach_ladspa_control(*(plugin_data->ctl));

        plugin_data->band_1 =plugin_data->mmap_ctl+MBEQ_BAND_1;
        plugin_data->band_2 =plugin_data->mmap_ctl+MBEQ_BAND_2;
        plugin_data->band_3 =plugin_data->mmap_ctl+MBEQ_BAND_3;
        plugin_data->band_4 =plugin_data->mmap_ctl+MBEQ_BAND_4;
        plugin_data->band_5 =plugin_data->mmap_ctl+MBEQ_BAND_5;
        plugin_data->band_6 =plugin_data->mmap_ctl+MBEQ_BAND_6;
        plugin_data->band_7 =plugin_data->mmap_ctl+MBEQ_BAND_7;
        plugin_data->band_8 =plugin_data->mmap_ctl+MBEQ_BAND_8;
        plugin_data->band_9 =plugin_data->mmap_ctl+MBEQ_BAND_9;
        plugin_data->band_10=plugin_data->mmap_ctl+MBEQ_BAND_10;
        plugin_data->band_11=plugin_data->mmap_ctl+MBEQ_BAND_11;
        plugin_data->band_12=plugin_data->mmap_ctl+MBEQ_BAND_12;
        plugin_data->band_13=plugin_data->mmap_ctl+MBEQ_BAND_13;
        plugin_data->band_14=plugin_data->mmap_ctl+MBEQ_BAND_14;
        plugin_data->band_15=plugin_data->mmap_ctl+MBEQ_BAND_15;
    }
}

ф-я attach_ladspa_control возвращает указатель на область памяти в которую отмеплен некоторый файл

что ещё мож быть полезным?
★★★★★

ну сделай, чтобы он выдал ассемблерный код с помощью -S опции, и посмотри что генерит компилятор.

anonymous
()

У меня бывало что собраный с -O3 код периодичести сигфолтится, поэтому уже давно всё -O2

golodranez ★★★★
()
Ответ на: комментарий от golodranez

Не в курсе, кстати, в каких крупных софтинах когда-либо применялся -O3?

Ядро фряхи, ОпенОфис, глибся - по-моему все использует -О2 поголовно, а к -О3 разве что гентушнеги неравнодушны...

e
()
Ответ на: комментарий от e

>Не в курсе, кстати, в каких крупных софтинах когда-либо применялся -O3?

реалтаймовая обработка звука

cvv ★★★★★
() автор топика
Ответ на: комментарий от e

>Не в курсе, кстати, в каких крупных софтинах когда-либо применялся -O3?

Как то не интересовался... я говорил про мной писаный код

golodranez ★★★★
()
Ответ на: комментарий от cvv

сгенерил ассемблер, получил сырцы по 44к. неуверен что смогу вырезать интересующие места, а всё сюда не запостиш.

как лучше выйти из ситуации ?

cvv ★★★★★
() автор топика
Ответ на: комментарий от cvv

>ф-я attach_ladspa_control возвращает указатель на область памяти в которую отмеплен некоторый файл

Т.е. в файле какие-то свои структуры. Компилятор мог перестараться с выравниванием.

anonymous
()
Ответ на: комментарий от unDEFER

не я придумал. я только разгребаю, чтоли

cvv ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.