Interaktivní kompilační rozhraní - Interactive Compilation Interface

The Interaktivní kompilační rozhraní (ICI) je systém zásuvných modulů s rozhraním API na vysoké úrovni nezávislým na kompilátoru a na nízké úrovni na kompilátoru, které slouží k transformaci současných kompilátorů black-box na spolupracující modulární interaktivní sady nástrojů. Byl vyvinut společností Grigori Fursin v průběhu Projekt MILEPOST.[1][2] Rámec ICI funguje jako „middlewarové“ rozhraní mezi kompilátorem a uživatelem definovatelnými pluginy. Otevírá a znovu používá infrastrukturu kompilátoru v kvalitě výroby, která umožňuje analýzu a instrumentaci programu, optimalizaci programu s jemnou strukturou, jednoduché prototypování nových vývojových a výzkumných nápadů a zároveň se vyhýbá vytváření nových kompilačních nástrojů od začátku. Například se používá v MILEPOST GCC automatizovat návrh kompilátoru a architektury a optimalizaci programu na základě statistické analýzy a strojového učení a předpovědět ziskovou optimalizaci, aby se zlepšila doba provádění programu, velikost kódu a doba kompilace.

Vývoj

ICI je nyní k dispozici v hlavní řadě GCC od verze 4.5[3]

Soubory ke stažení

  • ICI 2.0 - vydáno pro GCC v květnu 2009.
  • ICI 1.0 - vydáno pro GCC v roce 2008.
  • ICI beta - vyvinut pro GCC v letech 2006–2008.
  • ICI beta - vyvinut pro kompilátory Open64 / PathScale v letech 2004–2006.

Reference

  1. ^ Grigori Fursin. Kolektivní iniciativa pro ladění: automatizace a urychlení vývoje a optimalizace výpočetních systémů. Sborník ze summitu GCC'09, Montreal, Kanada, červen 2009 (odkaz )
  2. ^ Grigori Fursin, Yuriy Kashnikov, Abdul Wahid Memon, Zbigniew Chamski, Olivier Temam, Mircea Namolaru, Elad Yom-Tov, Bilha Mendelson, Ayal Zaks, Eric Courtois, Francois Bodin, Phil Barnard, Elton Ashton, Edwin Bonilla, John Thomson, Chris Williams , Michael O'Boyle. Milepost gcc: Samoladící kompilátor s povoleným strojovým učením Mezinárodní deník paralelního programování, svazek 39, číslo 3, str. 296-327, červen 2011 (odkaz )
  3. ^ „Pluginy GCC“. Citováno 2017-05-30.