https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81443
Joshua Kinard <kumba at gentoo dot org> changed: What |Removed |Added ---------------------------------------------------------------------------- Version|7.1.0 |7.2.0 Version|7.1.0 |7.2.0 --- Comment #4 from Joshua Kinard <kumba at gentoo dot org> --- After a week of bisecting, it looks like PR59461 is what causes this regression. Indeed, looking at the comments on #59461, Matthew Fortune thought that N64 could have been broken, and I am assuming that was fixed in PR78660? This issue I am seeing under N32 might be something different. Here is the git bisect history I followed: start: bad da8dff89fa93 (HEAD) good 45dd06cef49f (gcc-6_4_0-release) 1. a050099a416f (good) 2. 873a9b6435c7 (bad) 3. eedf6f96c360 (good) 4. 8139561f6fe6 (bad) 5. c02417adbaf1 (good) 6. 63c8aefc8cbf (bad) 7. 48baf518aeb5 (skip) 7. 36bb9d71a876 (good) 8. 44618e466be5 (bad) 9. 682d2b7ee96c (bad) 10. 4699a580bd1f (bad) 11. 15bd70ad1a73 (good) 12. 9dbb7881f36e (bad) 13. 454decdf75fc (bad) 14. 1998c023a3ed (bad) Which then yields: 1998c023a3ed6c59d8f1eea3a34528a9d6a93fe1 is the first bad commit commit 1998c023a3ed6c59d8f1eea3a34528a9d6a93fe1 Author: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Fri Nov 11 22:38:33 2016 +0000 PR rtl-optimization/59461 * doc/rtl.texi (paradoxical subregs): Add missing word. * combine.c (reg_nonzero_bits_for_combine): Do not discard results in modes with precision larger than that of last_set_mode. * rtlanal.c (nonzero_bits1) <SUBREG>: If WORD_REGISTER_OPERATIONS is set and LOAD_EXTEND_OP is appropriate, propagate results from inner REGs to paradoxical SUBREGs. (num_sign_bit_copies1) <SUBREG>: Likewise. Check that the mode is not larger than a word before invoking LOAD_EXTEND_OP on it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@242326 138bc75d-0d04-0410-961f-82ee72b054a4 :040000 040000 dd706ac97469731dec045095572859552211457b 59c5b8ea5e019c4e25f246a1295b244ba2a50c9a M gcc -------- Note that part of the way through the bisect (~step 8), I had to manually apply the patch from PR78338 to fix a build error. The first attempt at step 7 also had to be skipped one time due to another build error that I couldn't find much on. I'll try reverting the patch for PR59461 on gcc-7 HEAD and see if that actually completes or not and report back. Also confirmed this happens on both MIPS-III and MIPS-IV (r12000) ISA. --- Comment #5 from Joshua Kinard <kumba at gentoo dot org> --- After a week of bisecting, it looks like PR59461 is what causes this regression. Indeed, looking at the comments on #59461, Matthew Fortune thought that N64 could have been broken, and I am assuming that was fixed in PR78660? This issue I am seeing under N32 might be something different. Here is the git bisect history I followed: start: bad da8dff89fa93 (HEAD) good 45dd06cef49f (gcc-6_4_0-release) 1. a050099a416f (good) 2. 873a9b6435c7 (bad) 3. eedf6f96c360 (good) 4. 8139561f6fe6 (bad) 5. c02417adbaf1 (good) 6. 63c8aefc8cbf (bad) 7. 48baf518aeb5 (skip) 7. 36bb9d71a876 (good) 8. 44618e466be5 (bad) 9. 682d2b7ee96c (bad) 10. 4699a580bd1f (bad) 11. 15bd70ad1a73 (good) 12. 9dbb7881f36e (bad) 13. 454decdf75fc (bad) 14. 1998c023a3ed (bad) Which then yields: 1998c023a3ed6c59d8f1eea3a34528a9d6a93fe1 is the first bad commit commit 1998c023a3ed6c59d8f1eea3a34528a9d6a93fe1 Author: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Fri Nov 11 22:38:33 2016 +0000 PR rtl-optimization/59461 * doc/rtl.texi (paradoxical subregs): Add missing word. * combine.c (reg_nonzero_bits_for_combine): Do not discard results in modes with precision larger than that of last_set_mode. * rtlanal.c (nonzero_bits1) <SUBREG>: If WORD_REGISTER_OPERATIONS is set and LOAD_EXTEND_OP is appropriate, propagate results from inner REGs to paradoxical SUBREGs. (num_sign_bit_copies1) <SUBREG>: Likewise. Check that the mode is not larger than a word before invoking LOAD_EXTEND_OP on it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@242326 138bc75d-0d04-0410-961f-82ee72b054a4 :040000 040000 dd706ac97469731dec045095572859552211457b 59c5b8ea5e019c4e25f246a1295b244ba2a50c9a M gcc -------- Note that part of the way through the bisect (~step 8), I had to manually apply the patch from PR78338 to fix a build error. The first attempt at step 7 also had to be skipped one time due to another build error that I couldn't find much on. I'll try reverting the patch for PR59461 on gcc-7 HEAD and see if that actually completes or not and report back. Also confirmed this happens on both MIPS-III and MIPS-IV (r12000) ISA.