Сравнивал два компилятора GCC 4.7 и ARMCC 4.1.0 в Keil'e. Код вида i+=a*a эти компиляторы исполняют по разному. В ARMCC это выглядит следующим образом:
т.е. используется одна команда MLA ( Multiply with accumulate).
А GCC делает этот код следующим образом:
сначала mul (умножение) потом adds (add with substract).
Т.е. команд в GCC становится на 3 больше. Вопрос можно ли заставить gcc использовать такие же инструкции как и в ARMCC. (MLA не DSP инструкция).
Уровни оптимизации одинаковые -O0
Сообщение отредактировал sidy - Jul 3 2013, 05:11