<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><font face="Arial">1. Jak ale poznáte, že máte volat
        ZmenaZlozenejPodmienky?</font></p>
    <p><font face="Arial">2. Cortex-M3/4 neznám, ale pokud ten
        mechanismus urychlí vyhodnocení a je to důležité, pak má určitě
        přednost před přehledností.<br>
      </font></p>
    <pre class="moz-signature" cols="72">Martin Záruba</pre>
    <div class="moz-cite-prefix">Dne 12.4.2024 v 10:26 Jan Waclawek
      napsal(a):<br>
    </div>
    <blockquote type="cite"
      cite="mid:PC1993202404121026500019913c9445@wekovci">
      <pre class="moz-quote-pre" wrap="">Vcera zhodou okolnosti som mal "prilezitost" sa na takych zlozenych
podmienkach vyburit, a tak by som este rad doplnil dve navzajom pribuzne,
relativne marginalne optimalizacne techniky, ktore pouzivam:

1. ak sa zlozena podmienka vypocitava casto ale meni zriedkavo, tak si ju
"predpocitavam" do pomocnej premennej (sam pre seba to volam "cache", aj
ked to nie je asi spravne z pohladu standardneho pouzitia toho slova).
T.j. namiesto
if (podmienka1 && podmienka2 && podmienka3) {}
napisem 
if (zlozenaPodmienka) {}
a vzdy ked sa meni podmienka1, podmienka2, podmienka3 tak zavolam
void ZmenaZlozenejPodmienky(void) {
  zlozenaPodmienka = podmienka1 && podmienka2 && podmienka3;
}

2. ak podmienky su bitove stavy, tak ich s oblubou skladam do bytu/wordu,
kde potom namiesto testu s && staci otestovat cely byte/word na nulu.
Na toto sa da s vyhodou vyuzit bit-banding v Cortex-M3/4 (resp. bitova
oblast v '51, bit-banding na rozhrani pamati v niektorych Kinetisoch,
apod.)

Obe tieto techniky maju pomerne zasadny nedostatok v tom, ze na prvy pohlad
"nie je vidiet" pouzitie tych jednotlivych podmienok.

wek


_______________________________________________
HW-list mailing list  -  sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
    </blockquote>
  </body>
</html>