Fwd: [Bug tree-optimization/14741] graphite with loop blocking and interchanging doesn't optimize a matrix multiplication loop

2013-07-14 Thread Sebastian Pop
Hi Jeff,

let's start with getting this bug fixed.

Thanks,
Sebastian

-- Forwarded message --
From: spop at gcc dot gnu.org 
Date: Sun, Jul 14, 2013 at 2:09 AM
Subject: [Bug tree-optimization/14741] graphite with loop blocking and
interchanging doesn't optimize a matrix multiplication loop
To: s...@gcc.gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14741

--- Comment #18 from Sebastian Pop  ---
On my laptop ARM Exynos5 at 1.6GHz I get this:

gfortran -ffast-math -O3 t.f90
./a.out
   192.7510.2399826

gfortran -ffast-math -O3 -fgraphite -floop-interchange -floop-block t.f90
./a.out
   193.77500110.2399826

gfortran -ffast-math -O3 -floop-nest-optimize t.f90
t.f90: In function ‘MAIN__’:
t.f90:5:0: warning: iteration 31 invokes undefined behavior
[-Waggressive-loop-optimizations]
 B=0.1D0
 ^
f951: note: containing loop
t.f90:4:0: warning: iteration 31 invokes undefined behavior
[-Waggressive-loop-optimizations]
 A=0.1D0
 ^
f951: note: containing loop
./a.out
./a.out: No such file or directory

I don't know why the compiler does not produce an executable: -S does produce a
.s file.

Adding -fdump-tree-graphite-all produces a file t.f90.106t.graphite containing
the information about what graphite has done: I see that we do loop block the
loop nest like this:

gfortran -ffast-math -O3 -floop-nest-optimize -fdump-tree-graphite-all t.f90

CLAST generated by CLooG:
for (scat_0=0;scat_0<=1023;scat_0+=32) {
  for (scat_1=0;scat_1<=1023;scat_1+=32) {
for (scat_2=scat_0;scat_2<=scat_0+31;scat_2++) {
  for (scat_3=scat_1;scat_3<=scat_1+31;scat_3++) {
(scat_2,scat_3);
  }
}
  }
}

I see that the tile size is hard coded as a constant in graphite-optimize-isl.c

  TileMap = getTileMap(ctx, *Dimensions, 32);

that should be replaced by a param and tuned.

--
You are receiving this mail because:
You are on the CC list for the bug.


gcc-4.9-20130714 is now available

2013-07-14 Thread gccadmin
Snapshot gcc-4.9-20130714 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.9-20130714/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.9 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/trunk revision 200950

You'll find:

 gcc-4.9-20130714.tar.bz2 Complete GCC

  MD5=55bcfa4d0b16894b2e95a32e5dbb0ab9
  SHA1=dee13ecb873a40264ce86aa89a5eea9268f2e970

Diffs from 4.9-20130707 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.9
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.


Re: ELF specification

2013-07-14 Thread Vaptistis Anogeianakis
> Traditionally ELF has been managed by the owner of Unix, and the
> current owner of Unix is SCO or whatever they have evolved now.  The
> current ELF spec can be found at http://sco.com/developers/gabi/ .
> ELF does not have a formal standards body, but you can contact the
> relevant people at the mailing list generic-...@googlegroups.com (or
> see https://groups.google.com/forum/#!forum/generic-abi).  ELF does
> not depend on any other specification, though of course the
> processor-dependent parts require an understanding of the processor.
> For each processor that ELF supports, there is a processor supplement
> to the standard.  You can find copies of the x86 ELF processor
> supplements in various places, including
> http://refspecs.linuxbase.org/ .
> 
> Hope this helps.
> 
> Ian
> 
Yep, that was helpful (and very interesting I might add!). Thanks!