From cTuning.org

(Difference between revisions)
Jump to: navigation, search
m (Added news items for GCC patch, new SVN revision 144785 and 4.2.4 support)
Current revision (15:51, 12 September 2015) (view source)
 
(72 intermediate revisions not shown.)
Line 1: Line 1:
-
{{CTitle|http://ctuning.org/wiki/images/logo_ici.gif|Interactive Compilation Interface|Enabling Collaborative Interactive Compilers}}
+
'''''NEWS: Since 2015, we moved all related developments to our new [http://github.com/ctuning/ck/wiki Collective Knowledge Framework]! Demo of a new live repository is available [http://cknowledge.org/repo here].'''''
-
{{News|
+
-
* '''2009.Mar.24''' - the new functionality implemented in the '''''<tt>master</tt>''''' branch on [http://www.gitorious.org/projects/gcc-ici/ Gitorious] was backported to a newly created '''''<tt>gcc-4.2.4</tt>''''' branch to support and promote the use of ICI in production environments.
+
-
* '''2009.Mar.20''' - the master branch of the ICI framework was updated to SVN revision 144783 dated 2009-03-11 16:57:01.
 
-
* '''2009.Mar.02''' - [http://code.google.com/soc/ Google Summer of Code'2009] will be accepting development applications soon - you are welcome to check [[CTools:ICI:Projects|ICI extension projects]] and [[CTools:ICI:Feedback|ICI feedback/suggestion]] pages if you would like to help us to extend our collaborative tools within this program!<br>
 
-
* '''2009.Feb.27''' - a [http://gcc.gnu.org/ml/gcc-patches/2009-02/msg01242.html GCC patch] combining ICI-based high-level plugin infrastructure with low-level plugin infrastructure of GCC was submitted to the '''''gcc-patches''''' mailing list.
+
{{CTitle|http://ctuning.org/wiki/images/logo_ici.gif|Interactive Compilation Interface|Enabling Collaborative Interactive Research Compilers}}
-
* '''2009.Feb.13''' - the comparison of Mozilla and ICI plugin APIs was uploaded to the GCC Wiki.
+
{{CShortCut|ici}}
-
* '''2009.Feb.9''' - the master branch of the ICI framework was updated to SVN revision 144014 dated 2009-02-08 09:10:15.
+
{{CMenu:CTools|}}
-
* '''2009.Feb.6''' - the GCC Steering Committee agreed on the way plugins should be integrated into GCC. A new GCC Wiki page devoted to plugins was opened, and a dedicated "plugins" branch (svn://gcc.gnu.org/svn/gcc/branches/plugins) created in GCC SVN.
+
{{NEWS}}
 +
{{Reference}}
-
* '''2009.Jan.12''' - the result of a new SVN sync (SVN rev. 143113 dated 6 January 2009) has been uploaded to Gitorious. It fixes several performance issues which were introduced in GCC 4.3.x.  
+
The Interactive Compilation Interface (or 'ICI' for short) is a plugin system with a high-level compiler-independent and low-level compiler-dependent API to transform current compilers into collaborative open modular interactive toolsets. The ICI framework acts as a "middleware" interface between the compiler and the user-definable plugins. It opens up and reuses the production-quality compiler infrastructure to enable program analysis and instrumentation, fine-grain program optimizations, simple prototyping of new development and research ideas while avoiding building new compilation tools from scratch. For example, it is used in [http://cTuning.org/milepost-gcc MILEPOST GCC] to automate compiler and architecture design and program optimizations based on statistical analysis and machine learning. It should enable universal self-tuning compilers adaptable to heterogeneous, reconfigurable, multi-core architectures ranging from supercomputers to embedded systems.
-
{{Link4}}
+
'''At the beginning of 2010, parts of ICI and related plugin frameworks have been finally included in mainline [http://gcc.gnu.org/gcc-4.5 GCC 4.5]!'''
-
}}
+
-
 
+
-
{{CMenu:CTools|}}
+
-
 
+
-
The Interactive Compilation Interface (or 'ICI' for short) is a plugin system with a high-level compiler-independent and low-level compiler-dependent API to transform current compilers into collaborative open modular interactive toolsets. The ICI framework acts as a "middleware" interface between the compiler and the user-definable plugins. It opens up and reuses the production-quality compiler infrastructure to enable program analysis and instrumentation, fine-grain program optimizations, simple prototyping of new development and research ideas while avoiding building new compilation tools from scratch. For example, it is used in [http://unidapt.org/index.php/Developments:MilepostGCC MILEPOST GCC] to enable to automate program optimizations and compiler optimization heuristic tuning based on statistical analysis and machine learning.<br>
+
* '''Background:'''
* '''Background:'''
Line 30: Line 22:
**[[CTools:ICI:Resources|Resources (links, publications, tutorials)]]
**[[CTools:ICI:Resources|Resources (links, publications, tutorials)]]
-
* '''[[CTools:ICI:Downloads|Downloads]]'''
+
* '''[[CTools:ICI:Development|Current development]]''' - source code repository, bug reports, discussions
-
* '''[[CTools:ICI:Plugins|Plugin repository]]'''
+
* '''[[CTools:ICI:Downloads|ICI Downloads]]''' / '''[[CTools:ICI:Plugins|Plugin repository]]'''
* '''[[CTools:ICI:Documentation|Documentation and API]]''' - functionality, API reference guide, features, FAQ
* '''[[CTools:ICI:Documentation|Documentation and API]]''' - functionality, API reference guide, features, FAQ
-
 
-
* '''[[CTools:ICI:Feedback|User suggestions and feedback]]'''
 
* '''[[CTools:ICI:Projects|Projects to extend ICI, plugins and compilers]]''' - more than 15 projects currently
* '''[[CTools:ICI:Projects|Projects to extend ICI, plugins and compilers]]''' - more than 15 projects currently
-
 
-
* '''[[CTools:ICI:Development|Current development]]''' - source code repository, bug reports, discussions
 
<div align="center">http://ctuning.org/wiki/images/gcc-ici-structure.gif</div>
<div align="center">http://ctuning.org/wiki/images/gcc-ici-structure.gif</div>
Line 53: Line 41:
|-
|-
| align="center" valign="top" | {{CTools:ICI:Logo_Friends}}
| align="center" valign="top" | {{CTools:ICI:Logo_Friends}}
-
<div align="center"><br>''You are welcome to register your interest at this [[Community:Friends|page]]''.</div>
 
|}
|}
</div>
</div>

Current revision

NEWS: Since 2015, we moved all related developments to our new Collective Knowledge Framework! Demo of a new live repository is available here.


logo_ici.gif

Interactive Compilation Interface

Enabling Collaborative Interactive Research Compilers
Web shortcut: http://cTuning.org/ici
Navigation: cTuning.org > CTools 

NOTES:

cTuning Google discussions list

cTuning.org is based on the following reference publications: GCC Summit'09, CPE'04, HiPEAC'05, PhD thesis'04, SMART'09, PLDI'10, HiPEAC'09, IJPP'11

The Interactive Compilation Interface (or 'ICI' for short) is a plugin system with a high-level compiler-independent and low-level compiler-dependent API to transform current compilers into collaborative open modular interactive toolsets. The ICI framework acts as a "middleware" interface between the compiler and the user-definable plugins. It opens up and reuses the production-quality compiler infrastructure to enable program analysis and instrumentation, fine-grain program optimizations, simple prototyping of new development and research ideas while avoiding building new compilation tools from scratch. For example, it is used in MILEPOST GCC to automate compiler and architecture design and program optimizations based on statistical analysis and machine learning. It should enable universal self-tuning compilers adaptable to heterogeneous, reconfigurable, multi-core architectures ranging from supercomputers to embedded systems.

At the beginning of 2010, parts of ICI and related plugin frameworks have been finally included in mainline GCC 4.5!

gcc-ici-structure.gif

ICI is an open collaborative community-driven project. You are welcome to join and participate in developments, discussions, provide feedback or suggestions to extend ICI or add new features. We develop ICI for GCC at the moment, but trying to keep it compiler independent in case someone would like to port it to other compilers to extend collaborative tools.

ICI supporters:
logo_inria.gif logo_uvsq1.jpg logo_ue.gif logo_ibm.jpg logo_caps.gif logo_arc.gif logo_milepost.jpg logo_unidapt1.gif logo_cea.gif logo_nxp.gif logo_st.gif logo_mandriva.gif logo_ict.gif logo_hipeac.jpg
Locations of visitors to this page