m |
|
(16 intermediate revisions not shown.) |
Line 3: |
Line 3: |
| ---- | | ---- |
| | | |
- | == Fine-grain optimization project == | + | = Documentation Page = |
- | Yuanjie Huang (ICT, China)
| + | |
| | | |
- | This project aims to provide fine-grain optimization selection and tuning abilities in GCC, and thus enable GCC to tune default optimization heuristic of the compiler or fine optimizations for a given program on a given architecture entirely automatically using statistical and machine learning techniques from the MILEPOST project.
| + | *[[CTools:ICI:Projects:GSOC09:Fine_grain_tuning|Fine-grain optimization tuning]] |
| | | |
- | === ICI Events ===
| + | *[[CTools:ICI:Projects:GSOC09:Function_cloning_and_program_instrumentation|Function cloning and program instrumentation]] |
- | ICI events added to the framework for fine-grain tuning are documented here.
| + | |
| | | |
- | === ICI Features ===
| + | *[[CTools:ICI:Projects:GSOC09:Scripts|Scripts for these projects]] |
- | ICI features added to the framework for fine-grain tuning are documented here.
| + | |
- | {| border="1" cellspacing="0" cellpadding="3" style="text-align:left;"
| + | |
- | ! Feature name !! Type of contents !! Description
| + | |
- | |- | + | |
- | ! "dummy"
| + | |
- | | array of strings, i.e., char **
| + | |
- | | dummy feature here.
| + | |
- | |}
| + | |
| | | |
- | === Plugins ===
| + | *[[CTools:ICI:Projects:GSOC09:Ideas_and_todos|Ideas and todos]] |
- | Plugins developed for fine-grain tuning are documented here. These plugins are developed to work with ICI-2.0 interface.
| + | |
- | ==== adapt-passes ====
| + | |
- | '''Description'''
| + | |
- | | + | |
- | The function of this plugin depends on ICI_ADAPT_CONTROL environmental variable, which can be either set to 1 to record passes for each function into XML files or set to 2 to reuse passes from XML files to substitute passes in GCC compiling process.
| + | |
- | | + | |
- | '''Required Events and parameters'''
| + | |
- | | + | |
- | * '''"pass_execution"''': this event is triggered when a GCC pass is about to run. | + | |
- | * '''"all_passes_manager"''':
| + | |
- | * '''"avoid_gate"''':
| + | |
- | | + | |
- | <!-- TODO: add other events needed, and give links to them. -->
| + | |
- | | + | |
- | '''State'''
| + | |
- | This plugin now can record and reuse optimization passes without problem, with the following issues to solve:
| + | |
- | | + | |
- | * The compilation won't fall to default compilation process when no corresponding XML can be found.
| + | |
- | * The plugin cannot handle interprocedual passes well.
| + | |