Ira and Dorit, Is there any chance that PR33113 will be addressed for gcc 4.5? If I recall correctly, it was one of the last major issues with vectorization in gfortran that wasn't addressed yet. Dorit made the following comment back in Aug 2008...
>From: Dorit Nuzman <do...@il.ibm.com> >Date: Tue, 12 Aug 2008 14:48:07 +0300 >X-MIMETrack: Serialize by Router on D12MC102/12/M/IBM(Release 8.0.1|February >07, 2008) at > 12/08/2008 14:43:23 >MIME-Version: 1.0 >Content-type: text/plain; charset=US-ASCII >Status: RO >X-Status: A >Content-Length: 11751 >Lines: 335 > >Jack Howarth <howa...@bromo.msbb.uc.edu> wrote on 10/08/2008 19:00:08: > >> Dorit, >> I believe the attached email has the most detailed discussion of the >> issue that I recall seeing. Perhaps Tobias can expand on these previous >> conversations. >> Jack >> ps I was hoping that the graphite code generation would be enabled by >>default >> at -O3 in gcc 4.4 and that the vectorization code could be modified to >utilize >> its presence to do some optimizations on gfortran flat arrays which will >now >> have stride information via graphite. > >Hi Jack, > >There is currently no connection between the Graphite pass and any passes >that follow it. We will be looking into how to incorporate vectorization >with Graphite, but that will not happen during the 4.4 timeframe. However, >I think that this is not a prerequisite for vectorizing flat arrays; AFAIU, >Graphite itself is based on the scev analysis, so whichever stride >information Graphite gets out of scev, the vectorizer can already get it >too. Following our discussion below I had opened PR33113, where it turned >out that scev can easily be made to return symbolic stride information >instead of failing, and the problem is only inside the vectorizer which >needs to be enhanced to handle symbolic strides. I would actually be >interested in enabling that - I will try to look into it in the coming >weeks. > >dorit I ask because we seem to only get marginal improvements in the Polyhedron 2005 benchmarks between recent releases and these missed vectorization opportunities might provide a significant performance increase for those benchmarks. Thanks in advance for any clarifications. Jack