| |||||||||||||||||||||||||||||
|
The tuples branch was scheduled to merge last during stage 1 (21/Apr). At this point, it will be impossible for the branch to be ready for that date. The current status is (http://gcc.gnu.org/wiki/tuples): - The C front end is bootstrapping. The failure rate in the testsuites is in the 2-4% range. - We are close (~3 weeks) to having the C++ and Fortran FEs bootstrapping. - A good number of passes have been converted (55%) or are in the process of being converted (70%). The conversion process is usually a matter of 1-2 days. The passes that I expect may be problematic are PRE and FRE, but not overly so. - Two big items left to convert are mudflap and OpenMP (which Aldy is finishing up). - We continuously test the branch on ppc, x86 and x86_64. Backend conversion is usually a matter of a few hours. The biggest constraints we have for tuples is that we absolutely must go last in the merging order. Going first would be convenient for us, but it would mess everyone up (particularly things like the openmp3 branch). Although it's not crucial for tuples to go in GCC 4.4, we would prefer not to carry all this baggage around for LTO. At the rate that we are currently progressing, I estimate that it will take us around 5-7 more weeks to finish all the conversion. So, I see a couple different scenarios that we may want to consider: 1- Push back and tell us to come back at the next stage 1. This is certainly the easiest for everyone else, and will create a few challenges for us on the LTO branch. 2- Once bootstrap is working for the major languages and targets, merge and finish fixing remaining passes during stage 2. Pass conversion is highly mechanical, so I don't consider it risky for stage 2 stabilization. We will be at this point in the 5-7 weeks I mentioned earlier. Merge metrics: the branch has one main goal: strict API and data structure separation between GENERIC and GIMPLE. We achieved this at the statement level, though operands are still represented as trees. The new API is reportedly cleaner and we think this will make things easier for LTO and pass writing in general. A secondary goal was to provide a more space-efficient data structure for representing statements. The idea is to provide a better foundation for GIMPLE streaming in LTO. I don't think we will see huge savings in terms of memory utilization (the projections were in the high single digit), because statements are not actually a big part of the IL (symbols, pools and debug info are pretty big). We still need to do measurements here, but they are a bit hard to perform now. I am content if the memory utilization remains the same and I will be very surprised if it goes up (modulo bugs or implementation boneheadedness, which should be easy to fix). A third risk that we need to analyze are the delays that other branches will present (they need to be converted too). Does any one see other risks and/or scenarios we could consider for the branch? Thanks. Diego.
| ||||||||||||||||||||||||||||
© 2004-2008 readlist.com