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.

Open64
VývojářSilicon Graphics, Inc., Institute of Computing Technology, Čínská akademie věd, Hewlett Packard, University of Delaware
Aktuální verze5.0 (10. listopadu 2011)
Operační systémmultiplatformní, Linux
Typ softwaruCompiler
LicenceGNU General Public License
Webhttp://www.open64.net/
Některá data mohou pocházet z datové položky.

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

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

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

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

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, univerzitě Čching-chua v Pekingu a na 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