Hello Alan, On Apr 4, 2012, at 03:22 , Alan Modra wrote: > I'll see whether my approach fixes pr30282 for gcc-4.4 which has known > deficiencies in alias analysis. Olivier, would you be kind enough to > backport and test against other versions of gcc that needed your > bigger hammer?
Sure. I can debug the paths taken for the testcases where we had observed problems and see. I'll see if I can do a few tests comparing generated code on some source base. The problems are hard to observe at runtime because they are very timing/event/environment dependant. I still feel a bit unclear/concerned on a couple of aspects. One is: There are lots of places in the emit_epilogue code that assign frame_reg_rtx with different possible values, (hard_fp, sp, r11) before we first get to points where we emit ties. There are also multiple places where we do emit ties. It is not at all obvious to me that the all places where we emit ties have an accurate perception of what frame_reg's were possibly used before. IOW, I am not 100% convinced that we cannot have a bad case where we emit a tie that misses a reg reference. The various paths are all controlled by intricate conditions, so getting that 100% conviction (at least on paper) isn't easy to me. Is it clearer to you ? FWIW, I had made an experiment at trying to extract subfunctions, which might help such reasoning. Set of patches attached. This doesn't apply to the current mainline, would need to refined, and we probably couldn't/shouldn't put something like this on the path to the resolution of our current issue, so this is JIC you are curious.
ppcepi-split.tar.gz
Description: GNU Zip compressed data