This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] [4.3 projects] Verctorizer - versioning for alias


Victor Kaplansky/Haifa/IBM wrote on 16/08/2007 16:48:11:

> Dorit Nuzman/Haifa/IBM wrote on 16/08/2007 04:11:46 PM:
> >
> > Is there a testcase that catches this case?
>
> vect-vfa-01.c catches it.
>
> >
> > >   - POINTER_PLUS_EXPR used insted of PLUS_EXPR for pointer
> > > arithmentics.
> > >   - Parameters "vect-max-version-for-alignment-checks" and
> > > "vect-max-version-for-alias-checks" documented in invoke.texi.
> >

I just realized that there's no check for optimize_size (we don't want to
allow versioining if we are optimizing for size). Please also include that
in the follow up patch.

thanks,
dorit

> > (make sure you pass make info/make dvi, if you haven't yet)
>
> OK.
>
> >
> > So you're going to address the rest of the comments in a separate
> > patch (cost-model updates, improved handling of interleaved-
> > accesses, adding testcases that combine interleaving and versioning-
> > for-aliasing, factoring out the versioning related stuff from
> > vect_transform_loop)? (that would be fine with me, just want to make
> > sure you're planning to address these issues too).
>
> Yes, sure. Just forgot to mention that I'm planing to submit an
> additional patch with performance and other imrovments to versioning for
> alias and above issued will be addressed there.
>
> > so I asked this before: I think you mean "don't perform **peeling**
> > for alignment if versioning for alias is required", right?
>
> Sorry, I'll fix this in the Changelog.
>
> > I think you can use TYPE_VECTOR_SUBPARTS() instead of
> > GET_MODE_SIZE (TYPE_MODE ()) (just a tiny bit more compact)
>
> I think that it slightly different.  For example TYPE_VECTOR_SUBPARTS()
> returns 4 for a vector of integers on ppc, while
> GET_MODE_SIZE (TYPE_MODE ()) returns 16 - size of vector in bytes.
>
> >
> > Also, for more compact code, you could compute the vf*step once and
> > reuse it for both then and else. For your consideration.
> >
> > +     (vinfo_for_stmt (DR_STMT (dr))))));
> > +
> > +      segment_length =
> > + fold_convert (sizetype,
> > +   fold_build2 (PLUS_EXPR, integer_type_node,
> > +     fold_build2 (MULT_EXPR, integer_type_node, DR_STEP (dr),
> > +    vect_factor),
> > +     vector_size));
> > +
> > +
> > +    }
> > +  else
> > +    {
> > +      segment_length =
> > + fold_convert (sizetype,
> > +   fold_build2 (MULT_EXPR, integer_type_node, DR_STEP (dr),
> > +         vect_factor));
> > +    }
> > +
> > +    return segment_length;
> > +}
>
> OK, I'll address this in next patch.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]