MIKROPROCESOROVÁ TECHNIKA OPTIMALIZACE KOMPILÁTORU Tuto šablonu lze použít jako počáteční soubor pro prezentaci výukových materiálů při práci ve skupině. Oddíly Po kliknutí na snímek pravým tlačítkem myši lze přidat oddíly. Oddíly mohou pomoci uspořádat snímky nebo usnadnit spolupráci mezi více autory. Poznámky Oddíl Poznámky použijte k zadání poznámek k doručení nebo dalších podrobností pro posluchače. Tyto poznámky lze zobrazit během prezentace. Vezměte v úvahu velikost písma (důležité pro usnadnění, viditelnost, pořízení videozáznamu a online provoz). Sladěné barvy Věnujte zvláštní pozornost obrázkům, grafům a textovým polím. Zvažte, zda účastníci budou tisknout černobíle nebo ve stupních šedé. Provedením zkušebního tisku ověřte, zda barvy fungují správně při vytištění černobíle i ve stupních šedé. Obrázky, tabulky a grafy Vsaďte na jednoduchost: pokud je to možné, použijte konzistentní a nerušivé styly a barvy. Označte popisky všechny grafy a tabulky.
Číslo projektu CZ.1.07/1.5.00/34.0808 Označení materiálu VY_52_INOVACE_09_24 Šablona V/2 Inovace a zkvalitnění výuky směřující k rozvoji odborných kompetencí žáků středních škol Tematická oblast MIKROPROCESOROVÁ TECHNIKA Škola Střední průmyslová škola strojní a elektrotechnická a Vyšší odborná škola, Liberec 1, Masarykova 3, příspěvková organizace Autor Ing. Marek Pospíchal Téma hodiny Optimalizace kompilátoru Předmět, ročník MIT, 3.-4.ročník Anotace Změny prováděné překladačem pro zvýšení rychlosti nebo zmenšení velikosti programu.
Optimalizace kompilátoru Cíle optimalizace Optimalizace závislé na hardware Optimalizace nezávislé na hardware Sdělte stručný přehled prezentace. Popište hlavní záměr prezentace a v čem spočívá její důležitost. Uveďte každé z hlavních témat. Aby se posluchači dokázali v prezentaci orientovat, můžete tento snímek s přehledem opakovat během celé prezentace vždy se zdůrazněním konkrétního tématu, které se chystáte probírat jako další.
Cíle optimalizace Optimalizace začíná u programátora návrhem programu a volbou reprezentace dat Zvýšení rychlosti programu Snížení velikosti programu a dat Způsob a stupeň optimalizace je možné volit v nastavení překladače
Optimalizace závislé na hardware Registrové proměnné - Automatické proměnné a parametry funkcí se pokud možno co nejvíce umísťují do registrů. Tím je přístup na ně efektivnější a nezabírají žádné paměťové místo v RAM. Optimalizace jednoduchým přístupem - Přístupy na interní datové a bitové adresy jsou optimalizovány strojovými instrukcemi závislými na MCU, využívají se speciální posloupnosti strojových příkazů.
Optimalizace závislé na hardware Reorganizace kódu - Je-li smyčka FOR efektivnější než programátorem použitá smyčka WHILE, kompilátor kód změní. Nebo jestliže smyčka čítá nahoru a pak následuje dotaz <> 0, zkouší se, zda existuje příkaz procesoru pro ?:<>. Pokud ne, smyčka se otočí a testuje se na = 0.
Optimalizace nezávislé na hardware Zpracování konstant - Výpočty, které obsahují konstanty, jsou v co největší míře prováděny již kompilátorem. Vyloučení opakujících se výpočtů nebo částí výrazů - Vícenásobné (opakované) výpočty nebo stejné části výrazů uvnitř výrazu nebo funkce jsou pokud možno co nejvíce eliminovány a počítají se jen jednou, přičemž výsledek prvního výpočtu se ukládá do registru.
Optimalizace nezávislé na hardware Optimalizace skokových příkazů - Meziskoky (skok na jiný skok) jsou odstraňovány tak, že se nahradí skokem na konečný cíl. Zahrnuje to také volbu optimálního skokového příkazu v závislosti na délce skoku (16bitový nebo 32bitový příkaz). Vyloučení „mrtvého" kódu - Odstranění nepoužívaného pasivního zdrojového kódu z programu
Optimalizace nezávislé na hardware Náhrada opakujících se úseků programu skoky - Identické úseky kódu na různých místech v programu se vytvářejí jen jednou a zpracovávají pomocí skokových příkazů. Negace skoků - Testy pro podmíněné skoky se invertují, lze-li tím odstranit jiné skoky nebo nepoužívaný kód.
Optimalizace nezávislé na hardware Překrýváni dat - Datové segmenty funkcí jsou označeny jako staticky překrývané. Spojovací program pak má možnost překrývat segmenty. Optimalizace plnění - Redundantní příkazy plnění (zavádění) se odstraňují. Vylučuje se tak nepotřebné zavádění dat a konstant z paměti. Složitější operace se nahrazují jednoduššími, je-li tím možno ušetřit paměťové místo nebo čas běhu programu.
Optimalizace nezávislé na hardware Optimalizace jednoduchých smyček - Jednoduché smyčky se optimalizují z hlediska doby běhu tak, že se kód vysune ze smyčky. Optimalizace obzvlášť »horkých« míst programu, většinou smyček (90% času v 10% kódu). Rotace smyček - V programových smyčkách se zamění uspořádání kódu, dosáhne-li se tím rychlejšího a efektivnějšího kódu.
Optimalizace nezávislé na hardware Optimalizace řídicího toku- Výrazy typu switch - case se optimalizují a zjednodušují jako skokové tabulky nebo skokové řetězce. Proměnné z různých oblastí paměti se zavádějí přímo do operace.
Microsoft Konstrukční dokonalost Děkuji za pozornost Důvěrné informace společnosti Microsoft
Použité zdroje [1] MANN, Burkhard. C pro mikrokontroléry: ANSI-C, kompilátory C, spojovací programy - linkery, práce s ATMEL AVR a MSC-51, příklady programování v jazyce C, nástroje pro programování, tipy a triky. Vyd. 1. Praha: BEN, 2003. ISBN 80-730-0077-6. Shrňte obsah prezentace zopakováním důležitých bodů z lekcí. Co si mají posluchači zapamatovat po skončení vaší prezentace? Uložte prezentaci jako video, což usnadní její distribuci. (Chcete-li vytvořit video, klikněte na kartu Soubor a na položku Sdílet. V poli Typy souborů klikněte na položku Vytvořit video.)