Summary: | [4.9 Regression] ICE in simplify_subreg, at simplify-rtx.c:5901 on valid code (at -O1 and above with -g enabled) | ||
---|---|---|---|
Product: | gcc | Reporter: | Zhendong Su <su> |
Component: | rtl-optimization | Assignee: | Jakub Jelinek <jakub> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | jakub |
Priority: | P1 | ||
Version: | 4.9.0 | ||
Target Milestone: | 4.9.0 | ||
Host: | Target: | x86_64-*-* | |
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: | 2013-11-18 00:00:00 | |
Attachments: | gcc49-pr59166.patch |
Description
Zhendong Su
2013-11-18 07:40:32 UTC
Confirmed. In *.asmcons we still have correct: (debug_insn 30 29 31 7 (var_location:HI D#1 (subreg:HI (reg/v:SI 93 [ p ]) 0)) pr59166.c:20 -1 (nil)) but in *.ira we have: (debug_insn 30 29 31 7 (var_location:HI D#1 (reg/v:SI 97 [orig:93 p ] [93])) pr59166.c:20 -1 (nil)) (note the wrong mode). Created attachment 31297 [details] gcc49-pr59166.patch Untested fix. Author: jakub Date: Tue Nov 26 20:54:37 2013 New Revision: 205413 URL: http://gcc.gnu.org/viewcvs?rev=205413&root=gcc&view=rev Log: PR rtl-optimization/59166 * ira.c (find_moveable_pseudos): Use DF_REF_REAL_LOC instead of DF_REF_LOC in validate_change call. (split_live_ranges_for_shrink_wrap): Likewise. * gcc.dg/torture/pr59166.c: New test. Added: trunk/gcc/testsuite/gcc.dg/torture/pr59166.c Modified: trunk/gcc/ChangeLog trunk/gcc/ira.c trunk/gcc/testsuite/ChangeLog Fixed. |