-
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!new
sfeed.neostrada.pl!nemesis.news.neostrada.pl!atlantis.news.neostrada.pl!news.ne
ostrada.pl!not-for-mail
From: "T.M.F." <t...@n...mp.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: WinAVR-20090313 "inlajnowanie" funkcji.
Date: Mon, 07 Sep 2009 22:44:36 +0200
Organization: TP - http://www.tp.pl/
Lines: 44
Message-ID: <h83ruo$q14$1@nemesis.news.neostrada.pl>
References: <h7rrop$2kc$1@nemesis.news.neostrada.pl>
<h7rs08$1nh$1@atlantis.news.neostrada.pl> <h7s08d$i3f$1@inews.gazeta.pl>
<h7s563$dhg$1@nemesis.news.neostrada.pl>
<h7tsjo$i7o$1@atlantis.news.neostrada.pl>
<h82l8t$s69$1@nemesis.news.neostrada.pl>
Reply-To: t...@n...mp.pl
NNTP-Posting-Host: dvl193.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: nemesis.news.neostrada.pl 1252356888 26660 83.22.45.193 (7 Sep 2009 20:54:48
GMT)
X-Complaints-To: u...@n...neostrada.pl
NNTP-Posting-Date: Mon, 7 Sep 2009 20:54:48 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.1) Gecko/20090814
Fedora/3.0-2.6.b3.fc11 Thunderbird/3.0b3
In-Reply-To: <h82l8t$s69$1@nemesis.news.neostrada.pl>
Xref: news-archive.icm.edu.pl pl.misc.elektronika:570777
[ ukryj 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
- Waga z legalizacją
- Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- Pendrive zdycha, czy coś jeszcze innego? Problem z plikami.
- Odkurzacz Smapp Dynamic - dawny Zelmer
- Nagra IV i zewnętrzny pilot
- Fejk muzyczny czy nie fejk
- Raspberry Pi 3 Model B+
- Kuchenka elektryczna
- test
- Cewka elektrozaworu
- zapytanie o chip r5f21275nfp
- nie naprawiam więcej telewizorów
- Zrobił TV OLED z TV LCD
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
Najnowsze wątki
- 2025-03-23 Rozkaz 5-2025: O Umorzeniu Postępowania Sądowego
- 2025-03-23 Rozkaz 4-2025: O Ochronie Praw Autorskich
- 2025-03-23 Rozkaz 3-2025: O Zaprzestaniu Bratobójczych Walk Na Ukrainie
- 2025-03-23 Rozkaz 2-2025: O Zaprzestaniu Zaciągania Kredytów
- 2025-03-23 Rozkaz 1-2025: O Uchwaleniu Totaliztycznych Praw i Obowiązków Człowieka
- 2025-03-23 Waga z legalizacją
- 2025-03-23 Nowy VW 208 :-)
- 2025-03-23 ile Tesla ma gwarancji?
- 2025-03-22 OT Silnik sie przegrzewa
- 2025-03-22 Przenoszenie przez wifi na nowego Androida
- 2025-03-22 Warszawa => Senior Account Manager <=
- 2025-03-22 Wrocław => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, Produk
- 2025-03-22 Warszawa => Spedytor Międzynarodowy <=
- 2025-03-22 Warszawa => NMS System Administrator <=
- 2025-03-22 Warszawa => Analityk IT (projekty z obszaru telco) <=