Open64

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Open64
Vývojář Silicon Graphics, Inc., Institute of Computing Technology, Chinese Academy of Sciences, Hewlett Packard, University of Delaware
Aktuální verze 5.0 (10. listopadu 2011)
Operační systém multiplatformní, Linux
Typ softwaru Compiler
Licence GNU General Public License
Web http://www.open64.net/

Open64 je svobodný software, s otevřeným zdrojovým kódem. Jedná se o optimalizovaný překladač pro mikroprocesory architektury Itanium a x86-64. Open64 je odvozen od kompilátoru SGI s názvem MIPSPro pro procesor MIPS R10000. Prvotní verze byla vydána v roce 2000 s názvem Pro64 pod licencí GNU GPL. Projekt v následujícím roce převzala University of Delaware a současně s ním byl celý projekt přejmenován na Open64. Na univerzitě je pak překladač využíván jako výzkumná platforma pro pracovní skupiny výzkumu kompilátorů a procesorových architektur.

Překladač Open64 podporuje jazyky Fortran, C a C++ a dále pak soustavu direktiv OpenMP pro překlad vícevláknových aplikací se sdílenou pamětí.

Překladač umožňuje vysoce kvalitní interprocedurální analýzu dat, data-flow analýzu, analýzu datové závislosti a analýzu oblasti pole.

Infrastruktura[editovat | editovat zdroj]

Hlavní složky infrastruktury tvoří frontent pro C/C++ (pomocí GCC) a Fortran (pomocí CraySoft frontendu a knihoven), interprocedurální analýza (IPA), optimalizace smyček, celkový optimalizátor a generátor kódu. Přesto, že byl překladač původně napsán pro jednu procesorovou architekturu, postupně dokázal, že může generovat velmi efektivní výsledný kód pro CISC, RISC a VLIW (Very Long Instruction Word - velmi dlouhá instrukční slova) architekturu zahrnující procesory MIPS, x86, IA-64, ARM a další.

Mezikód[editovat | editovat zdroj]

Hierarchická reprezentace mezikódu s 5. hlavními úrovněmi je použita v tomto překladači. Slouží především jako společné rozhraní mezi všemi komponentami frontendu a backendu. Tento jazyk mezikódu je v Open64 nazýván WHIRL (Winning Hierarchical Intermediate Representation Language).

Verze[editovat | editovat zdroj]

Open64 existuje v několika alternativních verzích (vývojových větvích) z nichž každá má jiné specifické funkce. „Klasická“ větev Open64 se nazývá Open Research Compiler (ORC), která podporuje pouze překlad pro procesory Itanium (IA-64). Tato větev byla vyvíjena společností Intel a její vývoj skončil v roce 2003. Další důležitou větví je překladač vyvíjen společností Tensilica. Vývoj aktuální oficiální větve je řízen společností Hewlet-Packard a Univerzitou Delaware. Tato větev je odnoží původní ORC od společnosti Intel. AMD podporuje překladač řady x86 Open64 založený na oficiální větvi.

Původní verzi Open64, která byla vydálna v roce 2002, chyběl pokročilý softwarový generátor pipeliningu a měla pouze primitivní základní generátor kódu pro procesory Itanium. Celý původní překladač MIPSPro s tímto generátorem kódu je k dispozici pod komerční licencí stejně jako Blackbird překladač od Reservoir Labs. Původní dokumentace popisuje generátor kódu, který ovšem v Open64 obsažen není. Velmi pokročilý překladač z Tilery, pro 64jádrový čip TILE64 je založen na překladači Blackbird. Nvidia také používá větve překladače Open64 pro optimalizaci kódu ve svém vývojovém nástroji pro technologii CUDA.

Aktuální projekty vývoje[editovat | editovat zdroj]

Open64 je také používán v mnoha různých výzkumných projektech, jako například Unified Parallel C nebo spekulativní multithreading v několika různých pracích na mnoha univerzitách. Na konferenci vývojářů v roce 2010 byly popsány již hotové projekty v AMD, Absoft, Čínské akademii věd, Hewlett-Packard, Fudan Univerzitě v Šangaji, Nvidia, Tensilica, Tsingua Univerzitě v Pekingu a v Houstonské Univerzitě. Čínská akademie věd například portovala Open64 na architekturu Loongson II. AMD například rozšířilo Open64 o optimalizace určené pro vícejádrové procesory architektury x86 a vícevláknové vývoj kódu. AMT taktéž podporuje Open64 jako doplňkový překladač k překladači GCC.

Externí odkazy[editovat | editovat zdroj]