gcc-6-20150830 is now available
Snapshot gcc-6-20150830 is now available on ftp://gcc.gnu.org/pub/gcc/snapshots/6-20150830/ and on various mirrors, see http://gcc.gnu.org/mirrors.html for details. This snapshot has been generated from the GCC 6 SVN branch with the following options: svn://gcc.gnu.org/svn/gcc/trunk revision 227326 You'll find: gcc-6-20150830.tar.bz2 Complete GCC MD5=93a84108555b5583379752c667b51e91 SHA1=95d85eb3af95540efc1ebb765ccc29ac5f27ec05 Diffs from 6-20150823 are available in the diffs/ subdirectory. When a particular snapshot is ready for public consumption the LATEST-6 link is updated and a message is sent to the gcc list. Please do not use a snapshot before it has been announced that way.
Problem with tree pass pre
When dealing with an array with known values, pre will evaluate the first iteration of a loop over the elements. The code generator with then jump into the loop. This is at best increasing the size of the code. It also creates inferior code when the hardware supports zero overhead loops. The attached code demonstrates the difference between an unknown array and a known array. The loop size has been picked large enough for cunrolli to not fully unroll the loop. The problem did not exist in gcc 4.8. extern int B[27]; int foo() { int i; int t=0; for(i=0;i<27;i++) t+=B[i]; return t; } int boo() { int i; int t=0; static int A[] = {1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9}; for(i=0;i<27;i++) t+=A[i]; return t; }