eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › AtmelStudio6 gcc
Ilość wypowiedzi w tym wątku: 4

  • 1. Data: 2013-04-14 23:37:11
    Temat: AtmelStudio6 gcc
    Od: "Zbynio" <...@d...pl>

    Pytanie :-) Może głupie może nie. :-)

    Powiedzcie mi czy mam walczyć z kompilatorem w taki sposób żeby sam zapis w
    języku C był możliwie pozbawiony podfunkcji?
    Czy może dla czystości kodu powinienem się skupić na problemie do
    rozwiązania, a nie nad sposobem zapisu?

    NP:

    a() {
    ...
    }

    b() {
    ...
    }

    foo {
    a();
    b();
    ...
    }

    Czy może powinienem za wszelką cenę zapisywać ciała funkcji a i b wewnątrz
    funkcji foo ? Analizując assembler mam mieszane uczucia. Raz mi się tworzą
    call-e / rcall-e a raz kod jest strasznie posiekany ale nie wynika, że mi
    calluje tylko jakby sobie je wkleił i wiedział, że to nie jest konieczne
    żeby rekursywnie wywoływać a() i b() ?

    No jak to jest ? Od czego to zależy kiedy kompilator wie co z tym zrobić
    ?Często na PC widzę czyjeś źródłą posiekane na dziesiątki małych funkcji,
    później jedna jest w drugiej, a trzecia w czwartej jak ruskie babuszki. ?

    ???


  • 2. Data: 2013-04-15 01:10:50
    Temat: Re: AtmelStudio6 gcc
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl>

    Zbynio <...@d...pl> napisał(a):
    > Pytanie :-) Może głupie może nie. :-)
    > Powiedzcie mi czy mam walczyć z kompilatorem w taki sposób żeby sam
    > zapis w języku C był możliwie pozbawiony podfunkcji?
    > Czy może dla czystości kodu powinienem się skupić na problemie do
    > rozwiązania, a nie nad sposobem zapisu?
    > NP:
    > a() {
    > ...
    > }
    > b() {
    > ...
    > }
    > foo {
    > a();
    > b();
    > ...
    > }
    > Czy może powinienem za wszelką cenę zapisywać ciała funkcji a i b
    > wewnątrz funkcji foo ? Analizując assembler mam mieszane uczucia. Raz
    > mi się tworzą call-e / rcall-e a raz kod jest strasznie posiekany ale
    > nie wynika, że mi calluje tylko jakby sobie je wkleił i wiedział, że to
    > nie jest konieczne żeby rekursywnie wywoływać a() i b() ?
    > No jak to jest ? Od czego to zależy kiedy kompilator wie co z tym zrobić
    > ?Często na PC widzę czyjeś źródłą posiekane na dziesiątki małych funkcji,
    > później jedna jest w drugiej, a trzecia w czwartej jak ruskie babuszki. ?
    > ???

    Zależy od wielu rzeczy, nie da się tego wytłumaczyć w jednym zdaniu.
    Poczytaj sobie
    http://gcc.gnu.org/onlinedocs/gcc-4.7.0/gcc/Optimize
    -Options.html Zobacz,
    ile tam jest opcji konfiguracyjnych optymalizację oraz jak często pojawia
    się w ich opisie odniesienie do heurystyki. Czasem heurystyka może
    stwierdzić, że inline się opłaca, a innym razem, że nie.

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 3 days, 6 hours, 32 minutes and 23 seconds


  • 3. Data: 2013-04-15 01:56:12
    Temat: Re: AtmelStudio6 gcc
    Od: "Zbynio" <...@d...pl>


    "Grzegorz Niemirowski" <g...@p...onet.pl> wrote in message
    news:kkfd21$tva$1@news.icpnet.pl...

    > Zależy od wielu rzeczy, nie da się tego wytłumaczyć w jednym zdaniu.
    > Poczytaj sobie
    > http://gcc.gnu.org/onlinedocs/gcc-4.7.0/gcc/Optimize
    -Options.html Zobacz,
    > ile tam jest opcji konfiguracyjnych optymalizację oraz jak często pojawia
    > się w ich opisie odniesienie do heurystyki. Czasem heurystyka może
    > stwierdzić, że inline się opłaca, a innym razem, że nie.

    \Ja wiem, czytałem to nie raz :-) I atmelowskie opracowania i tyle samo wiem
    co wcześniej :-)
    Ogólnie to trzeba obserwować jak przyrasta kodu po kolejnej kompilacji i
    debugować :-)


  • 4. Data: 2013-04-15 07:47:13
    Temat: Re: AtmelStudio6 gcc
    Od: Zbych <a...@o...pl>

    W dniu 2013-04-15 01:56, Zbynio pisze:
    >
    > "Grzegorz Niemirowski" <g...@p...onet.pl> wrote in message
    > news:kkfd21$tva$1@news.icpnet.pl...
    >
    >> Zależy od wielu rzeczy, nie da się tego wytłumaczyć w jednym zdaniu.
    >> Poczytaj sobie
    >> http://gcc.gnu.org/onlinedocs/gcc-4.7.0/gcc/Optimize
    -Options.html
    >> Zobacz, ile tam jest opcji konfiguracyjnych optymalizację oraz jak
    >> często pojawia się w ich opisie odniesienie do heurystyki. Czasem
    >> heurystyka może stwierdzić, że inline się opłaca, a innym razem, że nie.
    >
    > \Ja wiem, czytałem to nie raz :-) I atmelowskie opracowania i tyle samo
    > wiem co wcześniej :-)
    > Ogólnie to trzeba obserwować jak przyrasta kodu po kolejnej kompilacji i
    > debugować :-)

    Gcc można zmusić do inline'owania atrybutem always_inline:

    __attribute__((always_inline)) void foo(const char c) {
    ... some code
    }

    Oczywiście funkcja musi być widoczna w danej jednostce kompilacji.

strony : [ 1 ]


Szukaj w grupach

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: