eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingCPU nie wykonujący pustych procedur › Re: CPU nie wykonujący pustych procedur
  • Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
    From: Jacek Czerwinski <...@...z.pl>
    Newsgroups: pl.comp.programming
    Subject: Re: CPU nie wykonujący pustych procedur
    Date: Sun, 26 Jul 2009 18:39:19 +0200
    Organization: http://onet.pl
    Lines: 40
    Message-ID: <h4i0rp$r0m$1@news.onet.pl>
    References: <2...@p...null.onet.pl.invalid>
    <h4hvun$92b$1@polsl.pl>
    NNTP-Posting-Host: 77-254-151-31.adsl.inetia.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1248626361 27670 77.254.151.31 (26 Jul 2009 16:39:21 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Sun, 26 Jul 2009 16:39:21 +0000 (UTC)
    User-Agent: Thunderbird 2.0.0.22 (Windows/20090605)
    In-Reply-To: <h4hvun$92b$1@polsl.pl>
    Xref: news-archive.icm.edu.pl pl.comp.programming:182797
    [ ukryj nagłówki ]

    Adam Przybyla pisze:
    > Wojciech Muła <w...@p...null.onet.pl.invalid> wrote:
    >> Czy jest jakiś procesor, który "widząc", że pierwszym
    >> rozkazem procedury jest powrót z podprogramu, w ogóle
    >> nie przekazuje tam sterowania?
    > ... tym zajmoje sie kompilator, przyklad z gcc:
    > smtp:/home/adam>gcc -S x.c
    > smtp:/home/adam>mv x.s x.s1
    > smtp:/home/adam>gcc -O2 -S x.c
    > smtp:/home/adam>diff x.s x.s1
    > 3d2
    > < .p2align 4,,15
    > 12c11
    > < .section .rodata.str1.1,"aMS",@progbits,1
    > ---
    >> .section .rodata
    > 16d14
    > < .p2align 4,,15
    > 28a27
    >> call x
    > smtp:/home/adam>cat x.c
    > #include <stdio.h>
    > void x() { };
    > int main() {
    > printf("123\n");
    > x();
    > }
    > smtp:/home/adam>
    >
    > jak widzisz, kod wygenerowany przy optymalizacji -O2 nie wywoluje procedury
    > pustej. Inne kompilatory maja tak samo IMHO.
    rzekłeś wodu:
    a) kompilatory (wątek chyba jest zainteresowany CPU)
    b) funkcja lokalna w jednostce kompilacji (module) bo tylko wtedy
    kompilator posiada tę wiedzę. Ciekaw będę twojego testu, czy
    kwalifikatory przy funkcji x coś zmieniają (np. static ale i
    niestandardowe) lub f. x jest zewnętrzna.

    W podanych warunkach minusów nie ma, tylko można zyskać.

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: