ON THE CALL: Kenny Zadack (Natural Bridge), Diego Novillo (Red Hat), Vladimir Makarov (Red Hat), Mark Smith (Gelato), Bob Kidd (UIUC), Andrey Belevantsev (RAS), Arutyun Avetisyan (RAS), Mark Davis (Intel), Sebastian Pop (Ecole des Mines de Paris)
Agenda: 1) Gelato ICE April GCC track proposed content (Mark S.) 2) GCC4.2 & GCC 4.3 update, alias analysis update (Diego) 3) Scheduler work update, potential new software pipelining project (Andrey) 4) LTO update (Kenny) 5) Superblock work update (Bob) ################## 1) Gelato ICE April GCC track proposed content (Mark S.) The content for the GCC track at the upcoming Gelato ICE San Jose (April 15-18) conference was proposed (still need to confirm with several speakers): - ISP-Russian Academy of Sciences: update on scheduler work, discuss progress on new software pipelining work - Martin Michlmayr: compiling Debian using GCC 4.2 and Osprey - Shin-ming Liu: HP GCC and Osprey update - Kenny Zadack - update on LTO - Bob Kidd - update on superblock work - Zdenek Dvorak - update on prefetching work - Diego Novillo - update on alias analysis work - Matthieu Delahaye - update on Gelato GCC build farm - Dan Berlin - GPL2 and GPL3 presentation ################## 2) GCC4.2 & GCC 4.3 update, alias analysis update (Diego) GCC 4.2 & 4.3 update: --------------------- 4.2 has branched. Likely release in early 2007. Many major pieces of work being scheduled for GCC 4.3 (SSA across the callgraph, overhaul dataflow in the backend, overhaul SSA form for memory, reduce memory footprint in the IL, autoparallelization, new vectorization, new interprocedural optimizations, etc). The full list is at http://gcc.gnu.org/wiki/GCC_4.3_Release_Planning Alias analysis update: ---------------------- no changes to analysis, representation of aliasing is being modified for 4.3 ################## 3) Scheduler work update, potential new software pipelining project (Andrey) We have merged all major features of selective scheduling and are tuning it for Itanium. We use a set of small benchmarks to analyze the performance of the scheduler. At this moment we are neutral on half of the benchmarks, we get 3% speedup on linpack and 5% speedup on mgrid. We have fixed all of >1% regressions except dhrystone, which regresses on 4% due to alignment issues. Major part of the bugs we've fixed is because bundling and instruction choosing mechanism are tightly coupled with the Haifa scheduler, and we need to support both schedulers at the same time. We plan to proceed with tuning and implement the driver for software pipelining for the next month. We also plan to fix swing modulo scheduling to make it work on ia64 and improve it by propagating data dependency information to RTL. We plan to discuss this project on the GCC mailing list in a few weeks. Comments by Vladimir: --------------------- About software pipelining for Itanium: It is completely broken, more accurately it never worked for Itanium. Because it is very (probably most) important optimization for Itanium, after making SP working it should be switched on by default at least for Itanium to keep it working. GCC has a lot of optimizations which are not on by default and they have tendency to be broken sometime. About insn bundling and insn scheduler hooks for Itanium: Usually the scheduler hooks are very few lines. This is not case for Itanium.I believe there is a potential for generating better quality code by improving bundling and hooks. Unfortunately, the code is "spaghetti" code which is hard to understand. ################## 4) LTO update (Kenny) The LTO branch has made some progress: there is work underway by Mark Mitchell, Sandra Loosemore, and myself to serialize three codes and the declarations and types into sections inside the .o files. I have stopped working on this temporarily while I complete the work on the dataflow branch. I expect that after the first of the year there will be a lot of progress on this. We should soon be able to serialize code and compile it at link time. This will still leave many problems open for other to help with, including more aggressive optimizations, as well as providing some mechanism to distributing/parallelizing the compilation. ################## 5) Superblock work update (Bob) I'm merging mainline into the ia64-improvements branch. As soon as that is finished, I will run a regression on the Superblock pass and prepare a patch to submit to gcc-patches. This work has been on the back burner for the past couple weeks due to an upcoming paper deadline. I'm writing a paper documenting the changes we made to IMPACT's intermediate representation to allow interprocedural analysis to be performed more easily. We were able to extend IMPACT's IR from one stored completely in memory to one that can be stored partially in memory and partially on disk. This allows us to reduce the memory requirements for the compiler when processing modern, large program. This paper will likely be of interest to those working on whole program analysis and link time optimization in GCC. We will submit this paper for publication in the next week.