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

 
 
 
Reply to this topicStart new topic
> Запретить автоматический инлайнинг функций в avr-gcc
ukpyr
сообщение Nov 13 2010, 18:20
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



Из прерывания таймера много раз вызываются несколько мелких функций.
При уровнях оптимизации s,2,3 компилятор упорно инлайнит эти функции в тело обработчика прерывания вместо обычного вызова.
В результате по сравнению с оптимизацией 1 объем увеличивается на 500 байт.

Как принудительно запретить инлайнинг и вызывать как обычные функции ?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 13 2010, 18:35
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(ukpyr @ Nov 13 2010, 20:20) *
Как принудительно запретить инлайнинг и вызывать как обычные функции ?
__attribute__((__noinline__))?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Exstreem
сообщение Nov 13 2010, 18:38
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 5-02-09
Пользователь №: 44 428



При определении функции (примерно так):
void F (void) __attribute__((noinline));
void F(void);
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 13 2010, 19:41
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Exstreem @ Nov 13 2010, 20:38) *
При определении функции (примерно так):
Излишне сложно.


__attribute__((noinline)) void F (void)
{
.......
}




--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Nov 14 2010, 09:40
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



спасибо, помогло
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 18:00
Рейтинг@Mail.ru


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