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