Eric Botcazou wrote:
> > The patch below is a backport of those fixes to the 4.5 branch, which
> > fixes the profiled-bootstrap failure for me.  (Note that on current
> > mainling, the ifcvt.c dead_or_predictable routine has been significantly
> > rewritten beyond what was done by those patches.  These additional
> > changes do not appear to be necessary to fix the PR ...)
> 
> Do you really need to backport the MERGE_SET_NOCLOBBER stuff?  This will 
> cause 
> the branch to optimize more aggressively than before.

Well, the specific problem I was running into is that the original 4.5 code
handled partial sets incorrectly.  My understanding was that Bernd's patch
introduced the noclobber stuff to fix this problem:

  "The function calls df_simulate_find_defs to mark all set registers as
  live, then clears anything for which it can find a REG_DEAD/REG_UNUSED
  note.  df_simulate_find_defs is broken for this purpose: it should
  ignore clobbers, but it ignores partial and conditional sets."
  (http://gcc.gnu.org/ml/gcc-patches/2010-04/msg01364.html)

I guess that patch does indeed address both correctness and performance
aspects, but I wasn't sure attempting to pull those apart was a safer option,
given that at least in its current form it has seen testing in mainline ...

I'd certainly be happy to try out a more stripped down patch; could you be
more specific about exactly which parts you want me to omit?

Thanks,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  ulrich.weig...@de.ibm.com

Reply via email to