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

 
 
 
Reply to this topicStart new topic
> gcc компиляция с обратной связью, feedback based optimization
demiurg_spb
сообщение Sep 6 2010, 13:05
Сообщение #1


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

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



Ребята, кто-нибудь имеет положительный опыт по использованию опций компиляции с обратной связью?
Что-то пока не выходит каменный цветок...

-fprofile-arcs

-fprofile-generate
-fprofile-use

Хочу впихнуть невпихуемое:-)


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
klen
сообщение Sep 6 2010, 13:19
Сообщение #2


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



а что не выходит? чтото сгенеренное из выходного отверстия выходит или вообще неработает?
оч интересно разобратся с этим
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Sep 6 2010, 13:36
Сообщение #3


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

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



Да не лезет в кринку вроде бы только, а очень хочется..

у меня так еле-еле помещается в 14К + 2К boot
Код
CFLAGS += --combine
CFLAGS += -fwhole-program

а с
Код
CFLAGS += -fprofile-arcs

имею
Код
xxx.elf section .text will not fit in region text
ld.exe: region text overflowed by 159476 bytes

Хоть gcc значительно дольше размышляет над исходниками.
Надо на другом проекте потренироваться видимо.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
klen
сообщение Sep 6 2010, 16:26
Сообщение #4


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



мож я чето не понимаю, но мысль такая.

1. компилируется проектс опциями -fprofile-generate -fprofile-arcs -fprofile-values и тд
2. в скомпирированный код добавляется профилировцик - поеэтому код будет значительно больше чем обычная сборка.
3. запускается процесс, за время работы накапливается профилировачная информация - сохраняется в файл с расширением gcda
4. опять запускается компиляция с опциями fprofile-correction -fprofile-use -fbranch-probabilities -fprofile-values - уже используя статистику собранную профайлером из файла gcda.

вывод, как это провернуть на таргете с линуксом - понятно - главное чтоб в нем был интерфейс с возможностью записис вывода процесса куданить. а вот как на микроконтроллере это сделать - хрен его знает, мож под симулятором smile.gif

Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Sep 6 2010, 17:19
Сообщение #5


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

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



Цитата(klen @ Sep 6 2010, 20:26) *
мож я чето не понимаю, но мысль такая.
Да это несколько другое чем я понял с первого раза.
Я тоже об этом почитал внимательно.
Я то ведь понял что он без выполнения делает n-проходов компиляции
и всякий раз что-то подкручивает и сравнивает с уже полученным результатом. И запоминает лучший.
Раскатл губу, блинsad.gif
Целый день пытаюсь выкроить 40 байт в уже вылизанном проекте. Хрен-там...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
klen
сообщение Sep 6 2010, 17:40
Сообщение #6


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(demiurg_spb @ Sep 6 2010, 21:19) *
Целый день пытаюсь выкроить 40 байт в уже вылизанном проекте. Хрен-там...


давай помагу
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Sep 7 2010, 17:16
Сообщение #7


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

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



Спасибо!
Я победил:-)
Переписал модуль rs485, отказался от указателей на регистры в дескрипторе порта в случае если в системе лишь один последовательный порт. Пришлось сделать макросы-обёртки для сохранения читабельности кода, но мне и так нравится.
Выиграл 224 байта!

PS: ничто так не стимулирует на изучение компилятора как закончившаяся память программsmile.gif


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 04:15
Рейтинг@Mail.ru


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