[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #19 from Hans-Peter Nilsson hp at gcc dot gnu.org --- (In reply to Eric Botcazou from comment #18) Let's just reapply r192676 on the mainline. We just need to make sure that the failures on i686 don't reappear. Done now less than half a year later! (Just r192676, no dse.c or cselib.c changes, leaving that to interested parties.)
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #18 from Eric Botcazou ebotcazou at gcc dot gnu.org --- FWIW, I've bootstrapped and regtested gcc 4.9 with r192676 reapplied and the dse.c and cselib.c hunks of r193802 reverted on several hosts (x86_64, sparc64, powerpc64, armv5tel, m68k) without regressions. Let's just reapply r192676 on the mainline. We just need to make sure that the failures on i686 don't reappear.
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 Mikael Pettersson mikpe at it dot uu.se changed: What|Removed |Added CC||mikpe at it dot uu.se --- Comment #16 from Mikael Pettersson mikpe at it dot uu.se --- FWIW, I've bootstrapped and regtested gcc 4.9 with r192676 reapplied and the dse.c and cselib.c hunks of r193802 reverted on several hosts (x86_64, sparc64, powerpc64, armv5tel, m68k) without regressions.
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #17 from Hans-Peter Nilsson hp at gcc dot gnu.org --- (In reply to Mikael Pettersson from comment #16) FWIW, I've bootstrapped and regtested gcc 4.9 with r192676 reapplied and the dse.c and cselib.c hunks of r193802 reverted on several hosts (x86_64, sparc64, powerpc64, armv5tel, m68k) without regressions. Wow, thanks. So, what's needed is to just spell out the exact patch (a description as above doesn't suffice unfortunately), send it to gcc-patches and CC Eric who I think would ok it at a glance. Here's me hoping someone will beat me to it, but it just might happen *this* month...
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #15 from Eric Botcazou ebotcazou at gcc dot gnu.org 2013-02-19 11:32:24 UTC --- Thanks for clarifying, I (think I) get it now. Not sure when I can revisit, maybe this month, maybe the next, so I won't feel bad if someone beats me to it. Sure, no urgency at all, thanks.
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #13 from Eric Botcazou ebotcazou at gcc dot gnu.org 2013-02-18 10:48:18 UTC --- I've lost track. What was the original patch, what do you mean by the blockage patch (that has been installed) and I'm pretty sure there were several follow-up patches, so I can't say I'm confident about reverting something from just this subset. (To wit: if it's something that causes volatile asms to again be treated different from (other) blockages, then that's wrong, as a volatile asm is the default blockage.) The original patch was the patch you reverted in comment #1 and the fix for the original issue. As far as I can see, you didn't put it back after installing the blockage patch, which is the patch in comment #5. The dse.c and cselib.c hunks were not necessary and not in the submission, but I asked you to add them for the sake of consistency; then Jakub pointed out that they pessimize volatile asms.
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #14 from Hans-Peter Nilsson hp at gcc dot gnu.org 2013-02-18 22:21:28 UTC --- (In reply to comment #13) The original patch was the patch you reverted in comment #1 and the fix for the original issue. As far as I can see, you didn't put it back after installing the blockage patch, which is the patch in comment #5. The dse.c and cselib.c hunks were not necessary and not in the submission, but I asked you to add them for the sake of consistency; then Jakub pointed out that they pessimize volatile asms. Thanks for clarifying, I (think I) get it now. Not sure when I can revisit, maybe this month, maybe the next, so I won't feel bad if someone beats me to it.
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 Eric Botcazou ebotcazou at gcc dot gnu.org changed: What|Removed |Added CC||ebotcazou at gcc dot ||gnu.org --- Comment #10 from Eric Botcazou ebotcazou at gcc dot gnu.org 2013-02-16 09:37:22 UTC --- I'm getting back to this because I think that we should reinstate the original patch, now that the blockage patch has been installed. I have run into the same issue as your original issue with a private port on the 4.7 branch: the clobber causes the restoring of the frame pointer to be deleted http://gcc.gnu.org/ml/gcc-patches/2012-10/msg01172.html Later reload allocates a stack slot to a pseudo that is set before the setjmp and used after, but the frame pointer doesn't have a consistent value... Clearly the frame pointer needs to be restored so the clobber is wrong. It was there because the final blockage wasn't blocking enough, but the blockage patch is supposed to have fixed that.
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #11 from Eric Botcazou ebotcazou at gcc dot gnu.org 2013-02-16 09:44:31 UTC --- While we are at it, we could also revert the dse.c and cselib.c hunks of the blockage patch, which weren't strictly necessary. Jakub was really concerned about their impact on volatile asms.
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #12 from Hans-Peter Nilsson hp at gcc dot gnu.org 2013-02-17 00:33:17 UTC --- (In reply to comment #10) I'm getting back to this because I think that we should reinstate the original patch, now that the blockage patch has been installed. *wake-up reactions* I have run into the same issue as your original issue with a private port on the 4.7 branch: the clobber causes the restoring of the frame pointer to be deleted http://gcc.gnu.org/ml/gcc-patches/2012-10/msg01172.html Later reload allocates a stack slot to a pseudo that is set before the setjmp and used after, but the frame pointer doesn't have a consistent value... Yup, this far I remember. Clearly the frame pointer needs to be restored so the clobber is wrong. It was there because the final blockage wasn't blocking enough, but the blockage patch is supposed to have fixed that. I've lost track. What was the original patch, what do you mean by the blockage patch (that has been installed) and I'm pretty sure there were several follow-up patches, so I can't say I'm confident about reverting something from just this subset. (To wit: if it's something that causes volatile asms to again be treated different from (other) blockages, then that's wrong, as a volatile asm is the default blockage.) Can you please a candidate (reverting?) patch gcc-patches@ *and CC me* (I'm far behind on reading gcc lists).
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #8 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-11-27 11:54:47 UTC --- (In reply to comment #7) This patch broke bootstrap on s390x. Please open a new PR, assigned to me, and attach preprocessed code. Make it depend on this PR.
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 Hans-Peter Nilsson hp at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #9 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-11-27 23:16:27 UTC --- This PR is fixed. For fallouts like the one hinted in comment #7, please open new PR's.
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added CC||krebbel at gcc dot gnu.org --- Comment #7 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-11-27 07:40:41 UTC --- (In reply to comment #5) Author: hp Date: Mon Nov 26 03:22:15 2012 New Revision: 193802 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193802 Log: PR middle-end/55030 * builtins.c (expand_builtin_setjmp_receiver): Update comment regarding purpose of blockage. * emit-rtl.c [!HAVE_blockage] (gen_blockage): Similarly for the head comment. * rtlanal.c (volatile_insn_p): Ditto. * doc/md.texi (blockage): Update similarly. Change wording to require one of two forms, rather than implying a wider choice. * cse.c (cse_insn): Where checking for blocking insns, use volatile_insn_p instead of manual check for volatile ASM. * dse.c (scan_insn): Ditto. * cselib.c (cselib_process_insn): Ditto. This patch broke bootstrap on s390x. /home/andreas/git/gcc-head/libgcc/libgcc2.c: In function ‘__powitf2’: /home/andreas/git/gcc-head/libgcc/libgcc2.c:1779:1: internal compiler error: in vt_expand_var_loc_chain, at var-tracking.c:8020 } ^ 0x80b9c219 vt_expand_var_loc_chain /home/andreas/git/gcc-head/gcc/var-tracking.c:8020 0x80b9cf23 vt_expand_loc_callback /home/andreas/git/gcc-head/gcc/var-tracking.c:8216 0x80305c7d cselib_expand_value_rtx_1 /home/andreas/git/gcc-head/gcc/cselib.c:1683 0x80305e3b cselib_expand_value_rtx_1 /home/andreas/git/gcc-head/gcc/cselib.c:1721 0x8030568d cselib_expand_value_rtx_cb(rtx_def*, bitmap_head_def*, int, rtx_def* (*)(rtx_def*, bitmap_head _def*, int, void*), void*) /home/andreas/git/gcc-head/gcc/cselib.c:1530 0x80b9c39b vt_expand_var_loc_chain /home/andreas/git/gcc-head/gcc/var-tracking.c:8054 0x80b9cf23 vt_expand_loc_callback /home/andreas/git/gcc-head/gcc/var-tracking.c:8216 0x80305c7d cselib_expand_value_rtx_1 /home/andreas/git/gcc-head/gcc/cselib.c:1683 0x80305e3b cselib_expand_value_rtx_1 /home/andreas/git/gcc-head/gcc/cselib.c:1721 0x8030568d cselib_expand_value_rtx_cb(rtx_def*, bitmap_head_def*, int, rtx_def* (*)(rtx_def*, bitmap_head _def*, int, void*), void*) /home/andreas/git/gcc-head/gcc/cselib.c:1530 0x80b9c39b vt_expand_var_loc_chain /home/andreas/git/gcc-head/gcc/var-tracking.c:8054 0x80b9cf23 vt_expand_loc_callback /home/andreas/git/gcc-head/gcc/var-tracking.c:8216 0x80305c7d cselib_expand_value_rtx_1 /home/andreas/git/gcc-head/gcc/cselib.c:1683 0x8030568d cselib_expand_value_rtx_cb(rtx_def*, bitmap_head_def*, int, rtx_def* (*)(rtx_def*, bitmap_head_def*, int, void*), void*) /home/andreas/git/gcc-head/gcc/cselib.c:1530 0x80b9c39b vt_expand_var_loc_chain /home/andreas/git/gcc-head/gcc/var-tracking.c:8054 0x80b9d67d vt_expand_1pvar /home/andreas/git/gcc-head/gcc/var-tracking.c:8331 0x80b9d9c7 emit_note_insn_var_location /home/andreas/git/gcc-head/gcc/var-tracking.c:8385 0x80f1a4e3 htab_traverse_noresize /home/andreas/git/gcc-head/libiberty/hashtab.c:784 0x80f1a5bf htab_traverse /home/andreas/git/gcc-head/libiberty/hashtab.c:800 0x80b9f613 emit_notes_for_changes /home/andreas/git/gcc-head/gcc/var-tracking.c:8749 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. make[5]: *** [_powitf2.o] Error 1 make[5]: *** Waiting for unfinished jobs
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #5 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-11-26 03:22:19 UTC --- Author: hp Date: Mon Nov 26 03:22:15 2012 New Revision: 193802 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193802 Log: PR middle-end/55030 * builtins.c (expand_builtin_setjmp_receiver): Update comment regarding purpose of blockage. * emit-rtl.c [!HAVE_blockage] (gen_blockage): Similarly for the head comment. * rtlanal.c (volatile_insn_p): Ditto. * doc/md.texi (blockage): Update similarly. Change wording to require one of two forms, rather than implying a wider choice. * cse.c (cse_insn): Where checking for blocking insns, use volatile_insn_p instead of manual check for volatile ASM. * dse.c (scan_insn): Ditto. * cselib.c (cselib_process_insn): Ditto. Modified: trunk/gcc/ChangeLog trunk/gcc/builtins.c trunk/gcc/cse.c trunk/gcc/cselib.c trunk/gcc/doc/md.texi trunk/gcc/dse.c trunk/gcc/emit-rtl.c trunk/gcc/rtlanal.c
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #6 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-11-26 03:26:00 UTC --- Author: hp Date: Mon Nov 26 03:25:57 2012 New Revision: 193803 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193803 Log: PR middle-end/55030 * gcc.dg/guality/pr36728-1.c, gcc.dg/guality/pr36728-2.c (foo): Don't use volatile asms, use plain asms. Where the output value for the asm is unused, write a global variable. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/guality/pr36728-1.c trunk/gcc/testsuite/gcc.dg/guality/pr36728-2.c
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #3 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-11-12 04:37:04 UTC --- Created attachment 28664 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28664 reduced test-case Reduced test-case. Do e.g. cc1 -fpreprocessed pr55030-chk.i -quiet -dumpbase pr55030-chk.c -m32 -mtune=generic -march=x86-64 -auxbase pr55030-chk -Os -w -version -fno-diagnostics-show-caret -fno-tree-loop-distribute-patterns -o pr55030-chk.s
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #4 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-11-12 04:53:55 UTC --- (In reply to comment #3) Created attachment 28664 [details] reduced test-case Only intended for code inspection, not a self-contained test-case; that's already covered as in the original description.
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 --- Comment #1 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-10-23 01:05:29 UTC --- Author: hp Date: Tue Oct 23 01:05:25 2012 New Revision: 192701 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=192701 Log: PR middle-end/55030 Revert: * stmt.c (expand_nl_goto_receiver): Remove almost-copy of expand_builtin_setjmp_receiver. (expand_label): Adjust, call expand_builtin_setjmp_receiver with NULL for the label parameter. * builtins.c (expand_builtin_setjmp_receiver): Don't clobber the frame-pointer. Adjust comments. [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver only if LABEL is non-NULL. Modified: trunk/gcc/ChangeLog trunk/gcc/builtins.c trunk/gcc/stmt.c
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 Hans-Peter Nilsson hp at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-10-23 Ever Confirmed|0 |1 --- Comment #2 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-10-23 01:08:33 UTC --- This PR is kept open until the underlying issue is analyzed and fixed.
[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 Hans-Peter Nilsson hp at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |hp at gcc dot gnu.org |gnu.org |