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: "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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

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: