ON THE CALL: Bob Kidd (UIUC), Vladimir Makarov (Red Hat), Mark Smith (Gelato), Wenguang Chen (Tsinghua), Mark Davis (Intel), Diego Novillo (Red Hat), Andrey Belevantsev (RAS), Dan Berlin (dberlin.org), Wen-mei Hwu (UIUC)
The call covered: - current status / updates on the 3 improvement areas - brain storming how to help out Dan with the alias analysis improvement TODO list - GCC session at Brazil Gelato meeting - planned presentations (tentative schedule): - Diego Novillo (Monday 10/3, 7:30 to 8pm) - Shin-ming Liu (Monday 10/3, 8 to 8:30pm) - Bob Kidd (Monday 10/3, 8:30 to 9pm - Canqun Yang (Tuesday 10/4, 10 to 10:30am) - general discussion (Tuesday 10/4, 10:30 to 11:30am) - next steps, action items - continue discussion on alias analysis improvements and determine concrete ways to help - review and update IA-64 project list - a discussion on corporate IP needed for GCC -- can companies donate IP to GCC? - planned attendance (from those on the call) - Bob Kidd - Shin-ming Liu - Mark Davis - Wenguang Chen - Diego Novillo - Mark Smith Additional detail can be found below. NEXT MEETING: At Gelato Meeting in Porto Alegre, Brazil, October 2-5, 2005. Bob Kidd: --------- The patch to move superblock formation is ready to go and tested on x86, x86_64, and ia64. I'll post it to gcc-patches and post a message to the gcc mailing list with details shortly. Dan Berlin: ----------- The current status of the aliasing work is that work is proceeding on both intraprocedural and interprocedural call clobbering. Most of the infrasturcture to get it to be able to be start work on the actual improved algorithms and use the results is done, or will be done by next week. The main task that it would be helpful to have other people work on would be the "Aliasing Oracle" (pairwise query system for statements) implementation for tree-ssa. The backend already uses a query system exclusively (because it's aliasing is almost exclusively type based). This is an alternate way of representing and accessing the aliasing results that can provide better information (though more expensive to query) than the current representation provides. Our current analyses can actually provide better information that we represent. The eventual plan is to have a hybrid where optimizations use the current "virtual ssa" form to discover what appear to be things that alias, then query the "Aliasing Oracle" to see if it can disambiguate the aliases further if necessary (IE it decides it wants to try to sink a store past that point, or whatever). The implementation can start out simple, (IE even something that simply looked at base + offset of pointers in the two statements, and gave answers, would be a good start) and I'm more than happy to help mentor/introduce anyone to how to work with GCC's tree-ssa form to make this work, if they want to help implement it. Seriously. I'm really more than happy to spend hours teaching someone how to work with this stuff. IBM Research is also more than happy to let me do so. I already help Ken Zadeck a lot with understanding how to get things done in GCC, and he has become quite adept at working with GCC in a short time (< 6 months). If somebody has the resources to provide someone competent to work on aliasing, I'm glad to put them to work for you being productive on GCC :). Vladimir Makarov: ----------------- Zdenek Dvorak submitted a patch implementing prefetching on tree-ssa recently. It would be interesting to look how it will work for Itanium. HP and Intel are interesting in gcc performance improvement. If HP and Intel guys know for sure that gcc uses their patents or some their patents could be used for gcc performance improvement, it would be good to give FSF a permission to use the patents in gcc. On the other hand, investigating what patents gcc uses might be a dangerous thing because any compiler most probably uses algorithms patented by other companies. Diego Novillo: -------------- I spoke briefly about GCC's development process: * Legal issues need to be resolved early. Assign personal and corporate copyright to the FSF. * It's important to participate in the main development lists (gcc and gcc-patches). IRC is a good meeting place, too. * GCC works in three main stages: o Stage 1: Everything goes. o Stage 2: Stabilization. o Stage 3: Bug fixes only. * Work that spans multiple GCC stages is done on CVS branches in the main FSF repository. * I will present at the next Gelato conference. I'll describe GCC's internals, its development process, what is going on and what needs to be done.