[Bug bootstrap/43994] [4.6 Regression] Revision 159063 failed to bootstrap on Linux/ia64
-- jakub at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2010-05-10 07:58:48 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43994
[Bug bootstrap/43994] [4.6 Regression] Revision 159063 failed to bootstrap on Linux/ia64
--- Comment #11 from jakub at gcc dot gnu dot org 2010-05-10 07:59 --- Fixed. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43994
[Bug bootstrap/43994] [4.6 Regression] Revision 159063 failed to bootstrap on Linux/ia64
--- Comment #7 from dominiq at lps dot ens dot fr 2010-05-06 08:23 --- Same bootstrap failure on powerpc-apple-darwin9. It seems to be fixed by the patch in comment #6, bootstrap in progress. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43994
[Bug bootstrap/43994] [4.6 Regression] Revision 159063 failed to bootstrap on Linux/ia64
--- Comment #8 from jiez at gcc dot gnu dot org 2010-05-06 16:35 --- I see similar issue on ARM target. It seems to be fixed by the patch in comment #6 . -- jiez at gcc dot gnu dot org changed: What|Removed |Added CC||jiez at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43994
[Bug bootstrap/43994] [4.6 Regression] Revision 159063 failed to bootstrap on Linux/ia64
--- Comment #9 from jakub at gcc dot gnu dot org 2010-05-06 16:59 --- The reference is created at df-scan.c:2940 in df_ref_record. reg (as well as *loc) passed to that function is SImode reg 112 (in0), i.e. a hard register, but df_ref_create_structure is called with regno_reg_rtx[i], which is DImode on ia64. Generally, if *loc/reg passed to this function is a hard register, df_ref_create_structure can be called either with smaller reg (for wide modes where *loc occupies several hard registers) or larger reg (as in this case). -- jakub at gcc dot gnu dot org changed: What|Removed |Added CC||zadeck at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43994
[Bug bootstrap/43994] [4.6 Regression] Revision 159063 failed to bootstrap on Linux/ia64
--- Comment #10 from jakub at gcc dot gnu dot org 2010-05-06 17:35 --- Subject: Bug 43994 Author: jakub Date: Thu May 6 17:34:47 2010 New Revision: 159117 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159117 Log: PR bootstrap/43994 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC instead of DF_REF_REAL_REG. Modified: trunk/gcc/ChangeLog trunk/gcc/df-problems.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43994
[Bug bootstrap/43994] [4.6 Regression] Revision 159063 failed to bootstrap on Linux/ia64
--- Comment #3 from hjl dot tools at gmail dot com 2010-05-05 16:26 --- It is caused by revision 159063: http://gcc.gnu.org/ml/gcc-cvs/2010-05/msg00112.html -- hjl dot tools at gmail dot com changed: What|Removed |Added Summary|[4.6 Regression] Failed to |[4.6 Regression] Revision |bootstrap on Linux/ia64 |159063 failed to bootstrap ||on Linux/ia64 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43994
[Bug bootstrap/43994] [4.6 Regression] Revision 159063 failed to bootstrap on Linux/ia64
--- Comment #4 from jakub at gcc dot gnu dot org 2010-05-05 16:45 --- Could you please attach preprocessed source? Setting up a ia64 build box always takes me a lot of time. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43994
[Bug bootstrap/43994] [4.6 Regression] Revision 159063 failed to bootstrap on Linux/ia64
--- Comment #5 from hjl dot tools at gmail dot com 2010-05-05 16:51 --- Created an attachment (id=20564) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20564action=view) A testcase -O2 -g will fail. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43994
[Bug bootstrap/43994] [4.6 Regression] Revision 159063 failed to bootstrap on Linux/ia64
--- Comment #6 from jakub at gcc dot gnu dot org 2010-05-05 18:00 --- Created an attachment (id=20566) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20566action=view) gcc46-pr43994.patch I must say I don't understand why this happens, but in this case DF_REF_REAL_REG is a (reg:DI 112 r32) while *DF_REF_REAL_LOC is (reg/v:SI 112 r32 [orig:369 up ] [369]) (perhaps a subreg has been simplified or something). Alex' code uses DF_REF_REAL_REG to find the largest reg's mode (that's not wrong in this case as DF_REAL_REG's mode is larger) but also that mode when deciding whether to create a subreg or not. So we end up with debug_insn containing var_location for SImode D#2 set from DImode D#3. The attached patch cures it, but is otherwise untested. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43994