gcc-6-20150830 is now available

2015-08-30 Thread gccadmin
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

2015-08-30 Thread shmeel gutl
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;
}