Detail produktu
Frontend překladače jazyka C s podporou pragmat
Vznik: 2014
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