ON THE CALL: Shin-ming Liu (HP), Vladimir Makarov (Red Hat), Diego Novillo (Red Hat), Mark Smith (Gelato), Bob Kidd (UIUC), Andrey Belevantsev (RAS), Arutyun Avetisyan (RAS)
Dan Berlin (IBM) was not able to join the call but did email an aliasing update (see below). We spent some time up front discussing the GCC track at the upcoming Gelato ICE conference (www.gelato.org/meeting). Potential topics and speaker candidates include: 1) Parallel programming with GCC - Diego Novillo 2) Aliasing - Diego Novillo or Dan Berlin (Diego to coordinate with Dan) 3) LLVM - Chris Lattner? (Mark will approach Chris) 4) LTO - Mark Mitchell? (Shin-ming will approach Mark M.) 5) ORC back end for GCC - Shin-Ming Liu 6) Superblock work - Bob Kidd 7) GCC IP issues - Dan Berlin? (Diego will ask Dan) 8) NUDT update - Canqun Yang? (Mark will approach Canqun) 9) RAS update - Andrey Belevantsev and Arutyun Avetisyan 10) Intel micro-architecture talk - Cameron McNairy Also we discussed holding a face-to-face GCC Improvement meeting in mid August in Moscow. Expected benefits: strong participation from Europe GCC community, Intel Moscow, and RAS. Updates from call participants can be found below. NEXT MEETING: Feb 16th, 2006. Details will be emailed out prior to the call. Dan Berlin: ----------- Update on aliasing: Improvements to the actual points-to analyzer from the improved-aliasing-branch of gcc have been merged into mainline. This includes: 1. An initial implementation of interprocedural pointer analysis (though this is disabled by default for the moment until i finish some follow up patches). 2. Significantly better results for pointers inside structures. 3. Not punting on structures that contain arrays (we used to treat all the fields like a single variable). There is work by Richard Guenther on treating small arrays as if they were structures so we can get better information about them (without resorting to pair based querying). Work on the aliasing query system for those optimizations that want to disambiguate results for specific stores/loads better than we do now will start soon on IAB. Call clobbering changes from IAB are in the process of being merged into the mainline. This mainly consists of much better non-context sensitive intraprocedural call clobbering information, combined with better use of the interprocedural clobber information for static variables that we compute. Once the aliasing query system is done, i will revisit this and implement some context-sensitive analysis for call clobbering to get better results. I also reviewed the patch for propagating points-to sets to RTL, and sent the review to the list. Andrey Belevantsev: ------------------- Dan Berlin has reviewed the alias propagation patch about two weeks ago. Diego mentioned that his concerns about the patch are in line with Dan's. I had a chance to read the review only recently due to the mail problems of our provider. Dan has pointed out to the implementation flaw of the patch, which is using varrays for storing points-to sets instead of bitmaps. This should be fixed to avoid memory and compilation time issues. There are some other less serious issues and the coding style issues. We are going to fix all problems pointed to by Dan and resend the patch. We've sent five parts of the speculation patch to the gcc-patches list, and Vladimir Makarov has taken them for the review. Some issues were already raised in the list, mentioning documentation issues and the effects of the patch for the other platforms. For the x86-64, the influence of the patch is pretty neutral. We're going to address the issues Vlad would probably raise in his review and then resend the patch. We're advancing in the implementation of the new scheduler. We're working on the code motion part, which fixes the scheduling DAG and the data sets after the selected insruction has been scheduled. Part of those is already implemented and under testing. Another part we're starting to work on is the selection of the best instruction for scheduling from the set of available ones. We plan to adopt the corresponding routines from the haifa scheduler. Bob Kidd: --------- The Superblock formation pass now duplicates the loop header to allow Superblock loops to be unrolled. On a trivial test case, this improves performance on x86_64 and PPC. I'm currently benchmarking the patch on SPEC. Vladimir Makarov: ----------------- I am working on review of ISP RAS patch for control and data specualtion support. In general the patch is ok. As for idea of gelato meeting devoted to gcc in Moscow, that is a not bad place because gcc developers from Europe could be there. But probably time (August) is not so good. Diego Novillo: -------------- I briefly described the OpenMP implementation and what it requires in terms of runtime support. It is now being merged into mainline to be released with GCC 4.2. The Fedora Core GCC 4.1 compiler will also include it. It should work well on Itanium systems running Linux. We'll be publishing SPEC-OMP results shortly.