eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikawinavr problemikRe: winavr problemik
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!postnews.google.com!v8g200
    0yqe.googlegroups.com!not-for-mail
    From: shg <s...@g...com>
    Newsgroups: pl.misc.elektronika
    Subject: Re: winavr problemik
    Date: Wed, 18 Aug 2010 23:19:33 -0700 (PDT)
    Organization: http://groups.google.com
    Lines: 40
    Message-ID: <3...@v...googlegroups.com>
    References: <i4i9si$bjb$1@opal.futuro.pl>
    NNTP-Posting-Host: 157.158.182.53
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    X-Trace: posting.google.com 1282198773 18134 127.0.0.1 (19 Aug 2010 06:19:33 GMT)
    X-Complaints-To: g...@g...com
    NNTP-Posting-Date: Thu, 19 Aug 2010 06:19:33 +0000 (UTC)
    Complaints-To: g...@g...com
    Injection-Info: v8g2000yqe.googlegroups.com; posting-host=157.158.182.53;
    posting-account=I-P_YQoAAAA5OYA-ULbU61NLL7UHiy4J
    User-Agent: G2/1.0
    X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100401
    Firefox/3.6.3,gzip(gfe)
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:593907
    [ ukryj nagłówki ]

    On 19 Sie, 05:53, "newxmega" <m...@m...mm> wrote:
    > Mam dużo "swich" -ów lub
    > if
    > elsif
    > elsif
    > ..
    >
    > tak po kilkadziesiąt.
    >
    > Co tu zrobić żeby winavr używał indirect jumpów zamiast zamieniał swich na
    > if wlsif.
    >
    > To bez sensu żeby robić
    > cpi stała
    > cpi stał
    >
    > i tak 60 razy.
    >
    > Mam małe procedurki, a indirecty by mi przyspieszyły kod.

    Tablice skoków są tworzone chyba tylko z bloków switch.
    Do tego wartości przy case muszą spełniać odpowiednie warunki, tzn.
    musi być ich dostatecznie dużo i muszą być ułożone po kolei (wartości
    jako zbiór, w kodzie już kolejność występowania jest dowolna).
    Jest gdzieś do tego jakaś reguła, ale nie jestem w stanie jej znaleźć.
    O ile pamiętam (ale to mogło być akurat w innym kompilatorze) to
    dopuszczalne są niewielkie dziury w wartościach, była na to jakaś
    matematyczna formułka, typu ilość wartości w jednym ciągu / szerokość
    zakresu > jakaś stała, do tego jeszcze musiała być odpowiednio duża
    ilość przypadków, ale to akurat u Ciebie nie jest problemem, to było
    raczej w okolicy 5. Jeżeli się zgadzało to switch był zamieniany na
    tablicę skoków.
    Coś znalazłem, może się przyda, nie za bardzo mam czas żeby
    przeczytać: http://ivoras.sharanet.org/papers/switch-complexity.
    pdf

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: