Re[10]: Глюк оптимизатора?
От: Minstrell Россия  
Дата: 20.01.07 20:30
Оценка:
Здравствуйте, rm822, Вы писали:

R>Единственное с чем компилятор обязан в данном случае считаться это volatile и получение адреса, но ИМХО либо вы неверно интерпретируете результаты дизассембла.


Во всяком случае выносить из цикла константу — его прямая обязанность, а он заносит. Более пристальный осмотр показал, что в цикле производится 160 умножений (fmul) вместо 16 требуемых (вектор * матрицу 4x4). Причем сбой происходит именно из-за попытки оптимизатора функцию умножения вектора на число сделать inline. Если запретить inline, то скорость с 720 тактов на операцию возрастает до 95. Мораль всего этого такова — доверяй, но проверяй. Так на ровном месте можно терять порядки производительности...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.