Detail produktu
Frontend překladače jazyka C s podporou pragmat
Vznik: 2014
Husár Adam, Ing., Ph.D., MBA (VCIT FIT VUT)
Masařík Karel, Ing., Ph.D. (UIFS FIT VUT)
LLVM, clang, pragma, vektorizace, překladače
Jedná se o značné rozšíření frontendu překladače LLVM clang o podporu specifikace pragmat.
Pomocí pragmat může uživatel dodat překladači další informace o programu.
V překladači LLVM taková podpora předtím nebyla a z důvodu navazujích úkolů bylo nutné překladač značně upravit a dodat požadovanou funkcionalitu.
Využití je především v následujících optimalizacích překladače:
- alias analýza
- označení bloků kódu, kde nemůže docházet k překrývání ukazatelů
- vektorizace (nová pragmata jsou založena na pragmatech pro Intel C/C++ překladač)
- zde je specifikovat, že si přeji pro cyklus použít SIMD instrukce nehledě na odhad ceny
- nebo ignorovat závoslosti mezi iteracemi smyčky
- + dodat další informace
- označení specializovaných instrukcí
- zde je možné označit část kódu, která se má implementovat přímo v hardwaru
Pro zachování pragmat v kódu jsou použity speciální anotace v kódu, které mají ty výhodu, že narozdíl od ladicích informací v kódu zůstávají i po agresivních optimalizacích.
Pro informace o licenčních podmínkách prosím kontaktujte: Mgr. Michaela Kavková, Výzkumné centrum informačních technologií, Fakulta informačních technologií VUT v Brně, Božetěchova 2, 612 66 Brno, 541 141 470