<!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>