eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaWinAVR-20090313 "inlajnowanie" funkcji.Re: WinAVR-20090313 "inlajnowanie" funkcji.
  • 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: