-
Data: 2009-09-07 20:44:36
Temat: Re: WinAVR-20090313 "inlajnowanie" funkcji.
Od: "T.M.F." <t...@n...mp.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]>> a może jak Ktoś kiedyś będzie szukał i znajdzie Twojego posta jako
>> mało oblatany nie będzie wiedział o co chodzi... więc może byś
>> wyjaśnił co to jest to "inlajnowanie" funkcji?
>
> Witam ponownie.
>
> Generalnie te informacje są istotne dla ZSOKW i ZBOKB czyli:
> Zwolenników Skrajnej Optymalizacji Kodu Wynikowego
> i
> Związku Bojowników o Każdy Bajt
Ja bym to nazwal Zwiazkiem Bojownikow o Kazda Instrukcje - w skrocie
"ZBoKI" co lepiej oddaje istote problemu :)
> Owo "inlajnowanie" to jedna z metod optymalizacji kodu wynikowego przez
> kompilator. Przykładowo mamy funkcję A wywoływaną przez funkcję B. Jeśli
> w wyniku kompilacji wyszło, że ciało funkcji A to w efekcie trzy bajty
> na krzyż, to nie ma sensu we wnętrzu funkcji B wstawiać wywołania
> funkcji A przez rozkaz CALL (i potem wracać przez RET co jest dodatkowym
> obciążeniem czasowym) ekonomiczniej jest wkompilować ciało funkcji A
> bezpośrednio w ciało funkcji B. Chodzi tylko aby nie przegiąć przy tej
> optymalizacji i nie doprowadzić do rozrostu kodu wynikowego.
To jest jeden powod, drugi czestszy to optymalizacja pod wzgledem
szybkosci. Czyli zamiast robic np. petle for mozna ja rozwinac na ciag
instrukcji (to kontroluje inna dyrektywa kompilatora), albo wlasnie
wstawic nawet dluzsza sekwencje rozkazow, ale za to uniknac RCALL/CALL z
RET, ktore sa dlugie.
> P.S. Z wyłączeniem onlajnowania dyrektywą -fno-inline trzeba uważać, bo
> np. bloki ATOMIC zaczynają generować prawdziwe koszmarki w kodzie
> wynikowym zamiast prostego in r15, SREG; cli; ..... out SREG, r15.
> Korzystniej jest poeksperymentować z parametrem -finline-limit=3
> osiągając stosowny kompromis.
O ile sie nie myle to z gcc w WinAVR z 13.03.09 jest pewien problem -
nie do konca poprawnie reaguje na te dyrektywy. Jest obejscie tego, ale
w tej chwili nie pamietam, zainteresowani wygooglaja.
--
Inteligentny dom - http://idom.wizzard.one.pl
http://idom.sourceforge.net/
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz do projektu.
Najnowsze wątki z tej grupy
- Zagadka radiowa
- Prostownik
- Nowy akumulator Donut Lab
- Pilot do zamka/bramy
- Jaka myjka ultradźwiękowa?
- Retro organizer ale współcześnie
- Skąd diody LED 1,5V?
- Apollo Comm
- PICkit3 mnie pokonał
- LEDy na choinkę zdechły
- Wtopa LED
- Miało być zniesienie abonamentu RTV, a jest podwyżka!!!
- Microsoft, C/C++ na Rust - news
- Pierwsza mapa kosmosu w 102 długościach fal podczerwieni! To początek nowej ery w astronomii
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
Najnowsze wątki
- 2026-01-11 Po zniszczeniu w okolicy Lwowa [Ukraina] fabryki dronów przenoszą ją do Polski
- 2026-01-11 Auta spalinowe tylko dla zarządu. Tak UE ratuje spalinową motoryzację
- 2026-01-11 Dziki trener ZIELONY ŁAD W KRAKOWIE: WIELKI PRZEKRĘT CZY RATUNEK?
- 2026-01-11 [prezydent - przyp. JMJ] Nawrocki zawetował wprowadzenie w Polsce unijnej cenzury
- 2026-01-11 ciekawostka prawno-obyczajowa
- 2026-01-10 Przeprosiny
- 2026-01-10 Kominiarze
- 2026-01-10 Zagadka radiowa
- 2026-01-10 Prostownik
- 2026-01-09 EKOFASZYŚCI DO NAUKI Chiny odpaliły reaktor na tor. Zachód przespał ten moment? - AstroSzort
- 2026-01-09 Sebastian M
- 2026-01-09 weto nowelizacji ustawy o ś.u.d.e. (wz. DSA)
- 2026-01-09 Warszawa => Dynamics 365 Commerce/POS Developer <=
- 2026-01-09 Ładowanie w 13 minut
- 2026-01-08 Umiejętność tankowania na egzaminie z prawa jazdy




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]