On Wed, Apr 04, 2012 at 05:00:05PM +0200, Duncan Sands wrote:> Hi Jack, > >> Duncan, any idea how to work around that for passing -bb-vectorize-req-chain-depth=3? > > it is being rejected by GCC's plugin options parser. I just implemented a hack > in dragonegg in which colons will be morphed into equals signs. So you should > now be able to pass -bb-vectorize-req-chain-depth:3 and have it work. > > Ciao, Duncan.Duncan, It would also be nice if -fplugin-arg-dragonegg-llvm-option= could allow multiple entries surrounded by quotes. Yesterday when I tested... de-gfortran46 -msse3 -ffast-math -funroll-loops -O3 -fno-tree-vectorize -fplugin-arg-dragonegg-llvm-option=-vectorize -fplugin-arg-dragonegg-llvm-option=- unroll-allow-partial -fplugin-arg-dragonegg-llvm-option=-unroll-runtime -fplugin-arg-dragonegg-llvm-option=-bb-vectorize-aligned-only -fplugin-arg-dragone gg-llvm-option=-bb-vectorize-no-ints %n.f90 -o %n this was longer than the pbharness would allow so I had to hard code those options into the de-gfortran46 compiler wrapper I use. I would be nice if we could group these together in order to be more concise... de-gfortran46 -msse3 -ffast-math -funroll-loops -O3 -fno-tree-vectorize -fplugin-arg-dragonegg-llvm-option="-vectorize -unroll-allow-partial -unroll-runtime -bb-vectorize-aligned-only -bb-vectorize-no-ints" %n.f90 -o %n with the current -fplugin-arg-dragonegg-llvm-option or a new -fplugin-arg-dragonegg-llvm-options. Jack
Hi Jack,> It would also be nice if -fplugin-arg-dragonegg-llvm-option= could allow multiple > entries surrounded by quotes. Yesterday when I tested...I implemented this: options passed this way are now split on spaces. Ciao, Duncan.
Duncan, Jack, et al., I realized yesterday that the basic-block vectorizer had not been vectorizing selects, so I've now corrected that, and I also added the capability for vectorizing pointers and generating the single-index vectorized-GEPs that Nadav added a few months ago. In my autovectorization benchmark suite, the select vectorization triggers only once, and the GEP vectorization does not trigger at all, so it is possible that these changes will currently have little practical effect. Regardless, I am curious whether either of these things might have an impact on the quoted results (especially the select vectorization, as I imagine that the fortran frontend might be smart enough to generate those). Jack, if you have a chance to re-run these benchmarks, I'd be interested to know if the result for the case using the basic-block vectorizer has changed (>= r154735). FWIW, I also added some additional options to help troubleshoot regressions: bb-vectorize-no-pointers, bb-vectorize-no-select, bb-vectorize-no-gep. Thanks again, Hal On Fri, 06 Apr 2012 11:06:37 +0200 Duncan Sands <baldrick at free.fr> wrote:> Hi Jack, > > > It would also be nice if -fplugin-arg-dragonegg-llvm-option> > could allow multiple entries surrounded by quotes. Yesterday when I > > tested... > > I implemented this: options passed this way are now split on spaces. > > Ciao, Duncan.-- Hal Finkel Postdoctoral Appointee Leadership Computing Facility Argonne National Laboratory