[Bug target/79514] [5/6/7 Regression] ICE in curr_insn_transform, at lra-constraints.c:3773
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79514 --- Comment #19 from uros at gcc dot gnu.org --- Author: uros Date: Fri Mar 3 09:18:01 2017 New Revision: 245861 URL: https://gcc.gnu.org/viewcvs?rev=245861=gcc=rev Log: PR target/79514 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.md
[Bug target/79514] [5/6/7 Regression] ICE in curr_insn_transform, at lra-constraints.c:3773
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79514 Uroš Bizjak changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #18 from Uroš Bizjak --- Fixed everywhere.
[Bug target/79514] [5/6/7 Regression] ICE in curr_insn_transform, at lra-constraints.c:3773
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79514 --- Comment #17 from uros at gcc dot gnu.org --- Author: uros Date: Thu Mar 2 21:35:38 2017 New Revision: 245854 URL: https://gcc.gnu.org/viewcvs?rev=245854=gcc=rev Log: PR target/79514 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern. testsuite/ChangeLog: PR target/79514 * gcc.target/i386/pr79514.c: New test. Added: branches/gcc-5-branch/gcc/testsuite/gcc.target/i386/pr79514.c Modified: branches/gcc-5-branch/gcc/ChangeLog branches/gcc-5-branch/gcc/config/i386/i386.md branches/gcc-5-branch/gcc/testsuite/ChangeLog
[Bug target/79514] [5/6/7 Regression] ICE in curr_insn_transform, at lra-constraints.c:3773
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79514 --- Comment #16 from uros at gcc dot gnu.org --- Author: uros Date: Thu Mar 2 20:42:33 2017 New Revision: 245851 URL: https://gcc.gnu.org/viewcvs?rev=245851=gcc=rev Log: PR target/79514 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern. testsuite/ChangeLog: PR target/79514 * gcc.target/i386/pr79514.c: New test. Added: branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr79514.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/config/i386/i386.md branches/gcc-6-branch/gcc/testsuite/ChangeLog
[Bug target/79514] [5/6/7 Regression] ICE in curr_insn_transform, at lra-constraints.c:3773
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79514 --- Comment #15 from uros at gcc dot gnu.org --- Author: uros Date: Thu Mar 2 18:47:03 2017 New Revision: 245844 URL: https://gcc.gnu.org/viewcvs?rev=245844=gcc=rev Log: PR target/79514 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern. testsuite/ChangeLog: PR target/79514 * gcc.target/i386/pr79514.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr79514.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.md trunk/gcc/testsuite/ChangeLog
[Bug target/79514] [5/6/7 Regression] ICE in curr_insn_transform, at lra-constraints.c:3773
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79514 --- Comment #14 from Jakub Jelinek --- Comment on attachment 40870 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40870 Proposed patch LGTM.
[Bug target/79514] [5/6/7 Regression] ICE in curr_insn_transform, at lra-constraints.c:3773
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79514 --- Comment #13 from Uroš Bizjak --- Created attachment 40870 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40870=edit Proposed patch Patch that implements *pushxf_rounded pattern.
[Bug target/79514] [5/6/7 Regression] ICE in curr_insn_transform, at lra-constraints.c:3773
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79514 Uroš Bizjak changed: What|Removed |Added Status|NEW |ASSIGNED Component|middle-end |target --- Comment #12 from Uroš Bizjak --- (In reply to Jakub Jelinek from comment #11) > (In reply to Uroš Bizjak from comment #10) > > (In reply to Jakub Jelinek from comment #9) > > Years ago, I defined HAVE_PRE_DEC, and I was told that it is intended for > > targets that can increment pointer on *any* memory access, not just on stack > > pointer. So, x86 uses PRE_DEC and POST_INC only to abstract push and pop > > insn. Various parts of the compiler (modulo auto-inc-dec.c) mostly check for > > PRE_DEC and POST_INC to skip further optimizations, which is non-issue for > > push and pop. > > > > But this generic part of the code assumes that any target can handle > > PRE_MODIFY, and emits insn even for !HAVE_PRE_MODIFY_DISP. This is > > conservatively incorrect, so conditionally disabling the part that blindly > > emits PRE_MODIFY is IMO the way to go. > > But isn't that the same? Targets can only define HAVE_PRE_MODIFY_DISP, if > they support PRE_MODIFY with arbitrary registers, but when they only support > it with the stack pointer, they can't. Yes, this makes sense. I have a patch.
[Bug target/79514] [5/6/7 Regression] ICE in curr_insn_transform, at lra-constraints.c:3773
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79514 --- Comment #3 from Uroš Bizjak --- (In reply to Gerhard Steinmetz from comment #0) > (insn 10 9 11 2 (set (mem:XF (pre_modify:DI (reg/f:DI 7 sp) > (plus:DI (reg/f:DI 7 sp) > (const_int -16 [0xfff0]))) [2 S12 A32]) > (reg:XF 87 [ _1 ])) "pr46251.c":3 118 {*pushxf} > (expr_list:REG_DEAD (reg:XF 87 [ _1 ]) > (expr_list:REG_ARGS_SIZE (const_int 16 [0x10]) > (nil This doesn't look like a valid RTL to me.
[Bug target/79514] [5/6/7 Regression] ICE in curr_insn_transform, at lra-constraints.c:3773
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79514 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org, ||uros at gcc dot gnu.org --- Comment #2 from Jakub Jelinek --- With -m96bit-long-double pr79514.c -mno-accumulate-outgoing-args it goes all the way back to r95000 (still ICEs), but r9 doesn't ICE. We get a pre_modify and perhaps that is what the backend doesn't like.
[Bug target/79514] [5/6/7 Regression] ICE in curr_insn_transform, at lra-constraints.c:3773
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79514 Richard Biener changed: What|Removed |Added Priority|P3 |P2 Target Milestone|--- |5.5
[Bug target/79514] [5/6/7 Regression] ICE in curr_insn_transform, at lra-constraints.c:3773
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79514 Martin Liška changed: What|Removed |Added Keywords||ice-on-valid-code Status|UNCONFIRMED |NEW Last reconfirmed||2017-02-15 CC||marxin at gcc dot gnu.org Summary|ICE in curr_insn_transform, |[5/6/7 Regression] ICE in |at lra-constraints.c:3773 |curr_insn_transform, at ||lra-constraints.c:3773 Ever confirmed|0 |1 --- Comment #1 from Martin Liška --- Confirmed, started with GCC 4.9.1.