реклама на сайте
подробности

 
 
> Keil, оптимизация математики, почему так и что делать?
demiurg_spb
сообщение Apr 29 2011, 08:32
Сообщение #1


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Опции компиляции:
Код
--feedback ".\obj\xxxx.fed" -c --cpu Cortex-M3 -D__MICROLIB  -g -O3 -Otime --apcs=interwork --split_sections --asm --interleave --C99  --asm --interleave -I "C:\Keil\\ARM\INC" -I

Пример:
Код
float func(float x)
{
    return (x*pow(0.1, 0.01));
}

Этот негодяй прилинковывает функцию pow и по ходу дела считает её в рантайме, а не на этапе компиляции.
С gcc таких сюрпризов не припоминаю.
Есть идеи куда копать?


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DevL
сообщение Apr 29 2011, 21:36
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 254
Регистрация: 23-10-10
Из: астрал
Пользователь №: 60 371



стадия компиляции это может быть забавно - как раз попалось ,
Магия шаблонов или вычисление факториала на стадии компиляции

pow это конечно другое , но было бы интересно пример с constant propagation
Go to the top of the page
 
+Quote Post
ReAl
сообщение Apr 29 2011, 23:05
Сообщение #3


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(DevL @ Apr 30 2011, 00:36) *
pow это конечно другое , но было бы интересно пример с constant propagation
Просто pow() у него built-in, если это не отбить ключами -fno-builtin или -fno-builtin-pow
http://gcc.gnu.org/onlinedocs/gcc-4.6.0/gc...#Other-Builtins

А на built-in функции constant propagation распространяется естественнейшим образом.

Цитата(demiurg_spb @ Apr 29 2011, 11:32) *
--cpu Cortex-M3
...
Есть идеи куда копать?
В сторону Klen-овой сборки arm-gcc ? rolleyes.gif


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 21:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016