Vývojář | Silicon Graphics, Inc., Institute of Computing Technology, Čínská akademie věd, 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/ |
Některá data mohou pocházet z datové položky. |
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.
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ší.
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).
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.
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.