Interaktywny interfejs kompilacji
Interactive Compilation Interface ( ICI ) to system wtyczek z niezależnym od kompilatora wysokiego poziomu i zależnym od kompilatora niskiego poziomu interfejsem API do przekształcania obecnych kompilatorów czarnej skrzynki we współpracujące modułowe interaktywne zestawy narzędzi. Został opracowany przez Grigorija Fursina w ramach projektu MILEPOST . Ramy ICI działają jako interfejs „oprogramowania pośredniego” między kompilatorem a wtyczkami definiowanymi przez użytkownika. Otwiera i ponownie wykorzystuje infrastrukturę kompilatora o jakości produkcyjnej, aby umożliwić analizę i oprzyrządowanie programu, szczegółową optymalizację programu, proste prototypowanie nowych pomysłów rozwojowych i badawczych, unikając jednocześnie tworzenia nowych narzędzi do kompilacji od zera. Na przykład jest używany w MILEPOST GCC do automatyzacji projektowania kompilatorów i architektury oraz optymalizacji programów w oparciu o analizę statystyczną i uczenie maszynowe oraz przewidywania opłacalnej optymalizacji w celu poprawy czasu wykonywania programu, rozmiaru kodu i czasu kompilacji.
Rozwój
ICI jest teraz dostępny w głównym GCC od wersji 4.5
- Witryna poświęcona rozwojowi współpracy
- Rozszerzenia Google Summer of Code'2009 : umożliwiające precyzyjne optymalizacje programów, w tym transformacje wielościenne, adaptację czasu wykonywania na poziomie funkcji i optymalizację zbiorczą]
- Lista mailingowa rozwoju
Pliki do pobrania
- ICI 2.0 - wydany dla GCC w maju 2009.
- ICI 1.0 - wydany dla GCC w 2008 roku.
- ICI beta - opracowany dla GCC w latach 2006–2008.
- ICI beta - opracowany dla kompilatorów Open64 / PathScale w latach 2004–2006.