Support for IA-64 speculation
- Speculation is one of the features of the IA-64 architecture aimed to expose instruction-level parallelism (ILP). Using speculation allows for a compiler to overcome the dependencies by moving a load through the ambiguous store or
across a branch (withdataandcontrolspeculation, respectively). This technique helps to hide the latency of memory loads and reduce the execution time. The patch adds support for both data and control speculation to the GCC instruction scheduler. Implementation issues of the patch are described in the paper 'Improving GCC instruction scheduler for IA-64', which can be found in the proceedings of the GCC Summit 2005.
- Maxim Kuvyrkov, Andrey Belevantsev (Institute for System Programming, Russian Academy of Sciences)
- This project will be ready during the first stage of GCC 4.2.
- The patch improves SPEC FP on 2% (with -O2, as of May 2005). Aggressive inlining and loop unrolling help the patch to produce better results on SPEC INT. Detailed results are given in the abovementioned paper.
- Target-independent parts of the patch modify the scheduler source files. A new flag and params are added for enabling and controlling speculation support. Target-dependent parts include new speculative instructions and pipeline descriptions in the ia64 backend, and ia64.c changes.