-
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: Grzegorz Kurczyk <g...@a...control.slupsk.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: WinAVR-20090313 "inlajnowanie" funkcji.
Date: Mon, 07 Sep 2009 11:44:21 +0200
Organization: TP - http://www.tp.pl/
Lines: 33
Message-ID: <h82l8t$s69$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>
NNTP-Posting-Host: 226.gino-rossi.eu
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: nemesis.news.neostrada.pl 1252317277 28873 213.25.19.226 (7 Sep 2009
09:54:37 GMT)
X-Complaints-To: u...@n...neostrada.pl
NNTP-Posting-Date: Mon, 7 Sep 2009 09:54:37 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; U; Linux i686; PL; rv:1.8.1.17) Gecko/20080829
SeaMonkey/1.1.12
In-Reply-To: <h7tsjo$i7o$1@atlantis.news.neostrada.pl>
Xref: news-archive.icm.edu.pl pl.misc.elektronika:570641
[ ukryj nagłówki ]Użytkownik identyfikator: 20040501 napisał:
>> Dla potomnych: dyrektywy kompilatora
>
> 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
:-)
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.
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.
Pozdrawiam
Grzegorz
Następne wpisy z tego wątku
- 07.09.09 20:44 T.M.F.
Najnowsze wątki z tej grupy
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
Najnowsze wątki
- 2025-02-27 Nagranie poglądowe
- 2025-02-26 Zasilacz USB na ścianę.
- 2025-02-26 Błonie => Specjalista ds. public relations <=
- 2025-02-26 Zielonka => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-26 Warszawa => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-02-26 Białystok => Data Engineer (Tech Leader) <=
- 2025-02-26 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-02-26 Kraków => Business Development Manager - Network and Network Security
- 2025-02-26 Warszawa => Młodszy Specjalista ds. wsparcia sprzedaży <=
- 2025-02-26 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A
- 2025-02-26 Warszawa => Sales Assistant <=
- 2025-02-26 Rzeszów => International Freight Forwarder <=
- 2025-02-26 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-26 Warszawa => Node.js / Fullstack Developer <=
- 2025-02-26 Warszawa => Gen AI Engineer <=