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] Fix PR56888


On Tue, 23 Feb 2016, Jan Hubicka wrote:

> > 
> > Ok, so maybe a better question to symtab would be if there is an
> > actual definition for what __builtin_FOO will call.  Not really
> > whether that definition is cfun.  Of course all the fortify
> > always-inline wrappers should not count as such (just in case
> > the symtab code is confused about those).
> 
> Also GNU extern inlines that are often used to deal special cases.
> > 
> > So,
> > 
> > bool symbol_table::have_definition (enum built_in_fn);
> > 
> > ?  Not sure how to best implement that either.  asmname lookups are
> > expensive ...
> 
> I am back from China trip, so i can handle you patch if you want.
> 
> I see that by stopping the optimization on whole translation unit that
> defines memcpy/memset will solve the reachability issue I mentioned
> in previous mail, but also when LTOing stuff like Linux kernel, it will
> prevent the optimization on the whole program.

Yes, but I think it's reasonable to disable such transform if the
memcpy implementation is being optimized.

> I am not quite sure how to deal with the alwaysinline wrappers however,
> because there theoretically may contain memcpy/memset loops themselves.

It might be a non-issue as we are doing the transforms only after
inlining when those bodies should be gone and thus symtab shouldn't see
such implementation.

Better to double-check, of course.  We'd want

#include <string.h>

int main()
{
  int s[1204];
  for (int i = 0; i < 1204; ++i)
   s[i] = 0;
  memset (s, 0, sizeof (s));
}

still be optimized as memset.

Richard.

> Honza
> > 
> > Richard.
> 
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)


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