On Mon, Oct 26, 2020 at 7:36 AM Jan Hubicka <hubi...@ucw.cz> wrote:
>
> > On Mon, Oct 26, 2020 at 7:23 AM Jan Hubicka <hubi...@ucw.cz> wrote:
> > >
> > > Hi,
> > > this patch implements thre two-state optimize_for_size predicates, so 
> > > with -Os
> > > and with profile feedback for never executed code it returns 
> > > OPTIMIZE_SIZE_MAX
> > > while in cases we decide to optimize for size based on branch prediction 
> > > logic
> > > it return OPTIMIZE_SIZE_BALLANCED.
> > >
> > > The idea is that for places where we guess that code is unlikely we do not
> > > want to do extreme optimizations for size that leads to many fold 
> > > slowdowns
> > > (using idiv rather than few shigts or using rep based inlined stringops).
> > >
> > > I will update RTL handling code to also support this with BB granuality 
> > > (which
> > > we don't currently).   We also should make attribute cold to lead to
> > > OPTIMIZE_SIZE_MAX I would say.
> > >
> > > LLVM has -Os and -Oz levels where -Oz is our -Os and LLVM's -Os would
> > > ocrrespond to OPTIMIZE_SIZE_BALLANCED.  I wonder if we want to export
> > > this to command line somehow?  For me it would be definitly useful to
> > > test things, I am not sure how "weaker" -Os is desired in practice.
> > >
> > > Bootstrapped/regtested x86_64-linux, I will commit it later today if
> > > there are no comments.
> > >
> > > H.J., can you plase update your patch on stringopts?
> > >
> >
> > Please ahead.  My patches should be orthogonal to yours.
>
> For example you had patch that limited "rep cmpsb" expansion for
> -minline-all-stringops.  Now the conditions could be
> -minline-all-stringops || optimize_insn_for_size () == OPTIMIZE_SIZE_MAX
> since it is still useful size optimization.
>
> I am not sure if you had other changes of this nature? (It is bit hard
> to grep compiler for things like this and I would like to get these
> organized to optimize_size levels now).

Shouldn't it apply to all functions inlined by -minline-all-stringops?


-- 
H.J.

Reply via email to