[Bug target/80101] ICE in store_data_bypass_p, at recog.c:3737
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80101 --- Comment #6 from kelvin at gcc dot gnu.org --- Author: kelvin Date: Thu Dec 7 13:20:27 2017 New Revision: 255465 URL: https://gcc.gnu.org/viewcvs?rev=255465=gcc=rev Log: gcc/testsuite/ChangeLog: 2017-12-07 Kelvin NilsenBackport from trunk 2017-05-08 Kelvin Nilsen PR target/80101 * gcc.target/powerpc/pr80101-1.c: New test. gcc/ChangeLog: 2017-12-07 Kelvin Nilsen Backport from trunk 2017-05-08 Kelvin Nilsen PR target/80101 * config/rs6000/power6.md: Replace store_data_bypass_p calls with rs6000_store_data_bypass_p in seven define_bypass directives and in several comments. * config/rs6000/rs6000-protos.h: Add prototype for rs6000_store_data_bypass_p function. * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New function implements slightly different (rs6000-specific) semantics than store_data_bypass_p, returning false rather than aborting with assertion error when arguments do not satisfy the requirements of store data bypass. (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with rs6000_store_data_bypass_p. Added: branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/pr80101-1.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/config/rs6000/power6.md branches/gcc-7-branch/gcc/config/rs6000/rs6000-protos.h branches/gcc-7-branch/gcc/config/rs6000/rs6000.c branches/gcc-7-branch/gcc/testsuite/ChangeLog
[Bug target/80101] ICE in store_data_bypass_p, at recog.c:3737
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80101 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #5 from Jakub Jelinek --- Note, the patch has been committed to trunk and backported to 6.x, but not 7.x in between those.
[Bug target/80101] ICE in store_data_bypass_p, at recog.c:3737
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80101 kelvin at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from kelvin at gcc dot gnu.org --- Patch was commited 2017-05-09. Was backported to GCC 6 2017-07-14.
[Bug target/80101] ICE in store_data_bypass_p, at recog.c:3737
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80101 --- Comment #3 from kelvin at gcc dot gnu.org --- Author: kelvin Date: Fri Jul 14 16:58:00 2017 New Revision: 250210 URL: https://gcc.gnu.org/viewcvs?rev=250210=gcc=rev Log: gcc/ChangeLog: 2017-07-14 Kelvin NilsenBackports from trunk 2017-03-23 Kelvin Nilsen * config/rs6000/rs6000.c (rs6000_option_override_internal): Change handling of certain combinations of target options, including the combinations -mpower8-vector vs. -mno-vsx, -mpower8-vector vs. -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector. 2017-03-27 Kelvin Nilsen PR target/80103 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add special handling for target option conflicts between dform options (-mpower9-dform, -mpower9-dform-vector, -mpower9-dform-scalar) and -mno-direct-move. 2017-05-08 Kelvin Nilsen PR target/80101 * config/rs6000/power6.md: Replace store_data_bypass_p calls with rs6000_store_data_bypass_p in seven define_bypass directives and in several comments. * config/rs6000/rs6000-protos.h: Add prototype for rs6000_store_data_bypass_p function. * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New function implements slightly different (rs6000-specific) semantics than store_data_bypass_p, returning false rather than aborting with assertion error when arguments do not satisfy the requirements of store data bypass. (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with rs6000_store_data_bypass_p. gcc/testsuite/ChangeLog: 2017-07-14 Kelvin Nilsen Backports from trunk: 2017-01-23 Kelvin Nilsen PR target/9 * gcc.dg/loop-8.c: Modify dg-skip-if directive to exclude this test on powerpc targets. 2017-02-08 Kelvin Nilsen PR target/68972 * g++.dg/cpp1y/vla-initlist1.C: Add dg-skip-if directive to disable this test on power architecture. 2017-03-23 Kelvin Nilsen * gcc.target/powerpc/p9-options-1.c: New test. 2017-03-27 Kelvin Nilsen PR target/80103 * gcc.target/powerpc/pr80103-1.c: New test. 2017-05-08 Kelvin Nilsen PR target/80101 * gcc.target/powerpc/pr80101-1.c: New test. 2017-07-05 Kelvin Nilsen PR target/80103 * gcc.target/powerpc/pr80103-1.c (b): Correct spelling of __attribute__. Added: branches/gcc-6-branch/gcc/testsuite/gcc.target/powerpc/p9-options-1.c branches/gcc-6-branch/gcc/testsuite/gcc.target/powerpc/pr80101-1.c branches/gcc-6-branch/gcc/testsuite/gcc.target/powerpc/pr80103-1.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/config/rs6000/power6.md branches/gcc-6-branch/gcc/config/rs6000/rs6000-protos.h branches/gcc-6-branch/gcc/config/rs6000/rs6000.c branches/gcc-6-branch/gcc/testsuite/ChangeLog branches/gcc-6-branch/gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C branches/gcc-6-branch/gcc/testsuite/gcc.dg/loop-8.c
[Bug target/80101] ICE in store_data_bypass_p, at recog.c:3737
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80101 --- Comment #2 from kelvin at gcc dot gnu.org --- Author: kelvin Date: Tue May 9 01:15:46 2017 New Revision: 24 URL: https://gcc.gnu.org/viewcvs?rev=24=gcc=rev Log: gcc/testsuite/ChangeLog: 2017-05-08 Kelvin NilsenPR target/80101 * gcc.target/powerpc/pr80101-1.c: New test. gcc/ChangeLog: 2017-05-08 Kelvin Nilsen PR target/80101 * config/rs6000/power6.md: Replace store_data_bypass_p calls with rs6000_store_data_bypass_p in seven define_bypass directives and in several comments. * config/rs6000/rs6000-protos.h: Add prototype for rs6000_store_data_bypass_p function. * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New function implements slightly different (rs6000-specific) semantics than store_data_bypass_p, returning false rather than aborting with assertion error when arguments do not satisfy the requirements of store data bypass. (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with rs6000_store_data_bypass_p. Added: trunk/gcc/testsuite/gcc.target/powerpc/pr80101-1.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/power6.md trunk/gcc/config/rs6000/rs6000-protos.h trunk/gcc/config/rs6000/rs6000.c trunk/gcc/testsuite/ChangeLog
[Bug target/80101] ICE in store_data_bypass_p, at recog.c:3737
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80101 --- Comment #1 from Segher Boessenkool --- power6.md defines a bypass: ; define the bypass for the case where the value written ; by a fixed point op is used as the source value on a ; store. (define_bypass 1 "power6-integer,\ power6-exts,\ power6-shift,\ power6-insert,\ power6-insert-dword" "power6-store,\ power6-store-update,\ power6-store-update-indexed,\ power6-fpstore,\ power6-fpstore-update" "store_data_bypass_p") where power6-integer is defined as: (define_insn_reservation "power6-integer" 1 (and (ior (eq_attr "type" "integer") (and (eq_attr "type" "add,logical") (eq_attr "dot" "no"))) (eq_attr "cpu" "power6")) "FXU_power6") and the default for "type" is "integer". The instruction on which we crash is: (define_insn "blockage" [(unspec_volatile [(const_int 0)] UNSPECV_BLOCK)] "" "") (which does not have a SET in it, which however is required by store_data_bypass_p). "blockage" should not have type "integer" for this to work. To fix it more generally, maybe we can teach bypass_p to ignore insns without outputs?
[Bug target/80101] ICE in store_data_bypass_p, at recog.c:3737
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80101 Segher Boessenkool changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2017-03-21 Ever confirmed|0 |1