[Bug middle-end/26977] [4.2 regression] ICE in emit_move_insn
--- Comment #7 from pinskia at gcc dot gnu dot org 2006-04-03 18:16 --- Fixed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26977
[Bug middle-end/26977] [4.2 regression] ICE in emit_move_insn
--- Comment #6 from sayle at gcc dot gnu dot org 2006-04-02 22:23 --- Subject: Bug 26977 Author: sayle Date: Sun Apr 2 22:23:44 2006 New Revision: 112626 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=112626 Log: PR middle-end/26977 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns NULL_RTX, indicating it couldn't create a valid paradoxical subreg. Modified: trunk/gcc/ChangeLog trunk/gcc/expr.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26977
[Bug middle-end/26977] [4.2 regression] ICE in emit_move_insn
--- Comment #5 from schwab at suse dot de 2006-04-02 16:43 --- Trying again with a different browser. (gdb) p outer $1 = TImode (gdb) p tmps[start] $2 = (rtx) 0x20783460 (gdb) pr (reg:SF 354) (gdb) p inner $3 = SFmode (gdb) p bytepos $4 = 0 (gdb) p src $5 = (rtx) 0x20713450 (gdb) pr (parallel:TI [ (expr_list:REG_DEP_TRUE (reg:SF 354) (const_int 0 [0x0])) (expr_list:REG_DEP_TRUE (reg:SF 355) (const_int 4 [0x4])) (expr_list:REG_DEP_TRUE (reg:SF 356) (const_int 8 [0x8])) (expr_list:REG_DEP_TRUE (reg:SF 357) (const_int 12 [0xc])) ]) (gdb) p dst $6 = (rtx) 0x20783560 (gdb) pr (reg:TI 358) (gdb) p type $8 = (tree) 0x20552940 (gdb) pt constant invariant 128> unit size constant invariant 16> align 128 symtab 0 alias set -1 fields unit size user align 128 symtab 5597424 alias set -1 fields Ada size chain > TI file g-alvevi.ads line 142 size unit size align 128 offset_align 128 offset bit offset context > Ada size > -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26977
[Bug middle-end/26977] [4.2 regression] ICE in emit_move_insn
--- Comment #4 from schwab at suse dot de 2006-04-02 16:35 --- (gdb) p outer $1 = TImode (gdb) p tmps[start] $2 = (rtx) 0x20783460 (gdb) pr (reg:SF 354) (gdb) p inner $3 = SFmode (gdb) p bytepos $4 = 0 (gdb) p src $5 = (rtx) 0x20713450 (gdb) pr (parallel:TI [ (expr_list:REG_DEP_TRUE (reg:SF 354) (const_int 0 [0x0])) (expr_list:REG_DEP_TRUE (reg:SF 355) (const_int 4 [0x4])) (expr_list:REG_DEP_TRUE (reg:SF 356) (const_int 8 [0x8])) (expr_list:REG_DEP_TRUE (reg:SF 357) (const_int 12 [0xc])) ]) (gdb) p dst $6 = (rtx) 0x20783560 (gdb) pr (reg:TI 358) (gdb) p type $8 = (tree) 0x20552940 (gdb) pt constant invariant 128> unit size constant invariant 16> align 128 symtab 0 alias set -1 fields unit size user align 128 symtab 5597424 alias set -1 fields Ada size chain > TI file g-alvevi.ads line 142 size unit size align 128 offset_align 128 offset bit offset context > Ada size > -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26977
[Bug middle-end/26977] [4.2 regression] ICE in emit_move_insn
--- Comment #3 from roger at eyesopen dot com 2006-04-02 15:53 --- Thanks Andreas. Well my prediction that the bogus call wouldn't come from emit_group_store was wrong. There's now a trivial fix to resolve this PR which is to add "if (temp)" tests around the "emit_move_insn", "done=true" and start/end updates. But this may be papering over the problem. Could you list the arguments that we pass to the immediately preceding call to simplify_gen_subreg? Ohhh... simplify_gen_subreg can return a NULL_RTX! I'll prepare a patch, but I'm curious what SUBREG we attempt to construct on IA-64. Should have a fix tested/committed in a few hours. -- roger at eyesopen dot com changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |roger at eyesopen dot com |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-04-02 15:53:38 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26977
[Bug middle-end/26977] [4.2 regression] ICE in emit_move_insn
--- Comment #2 from schwab at suse dot de 2006-04-02 13:03 --- #0 0x408dbf11 in emit_move_insn (x=0x20783560, y=0x0) at ../../gcc/expr.c:3229 #1 0x408df180 in emit_group_store (orig_dst=0x20783560, src=0x20713450, type=0x20552940, ssize=16) at ../../gcc/expr.c:1948 #2 0x409759f0 in assign_parm_setup_block (all=, parm=0x20558780, data=0x607ffe2e6288) at ../../gcc/function.c:2508 #3 0x40978ac0 in assign_parms (fndecl=0x20515600) at ../../gcc/function.c:3016 #4 0x4097a750 in expand_function_start (subr=0x20515600) at ../../gcc/function.c:4185 #5 0x40bd4c20 in tree_expand_cfg () at ../../gcc/cfgexpand.c:1607 #6 0x40bcac80 in execute_one_pass (pass=0x6001b118) at ../../gcc/passes.c:863 #7 0x40bcaff0 in execute_pass_list (pass=0x6001b118) at ../../gcc/passes.c:910 #8 0x406b2500 in tree_rest_of_compilation (fndecl=0x20515600) at ../../gcc/tree-optimize.c:418 #9 0x4003e850 in gnat_expand_body (gnu_decl=0x20515600) at ../../gcc/ada/misc.c:653 #10 0x40c6b0f0 in cgraph_expand_function (node=0x2057f300) at ../../gcc/cgraphunit.c:1102 #11 0x40c718e0 in cgraph_optimize () at ../../gcc/cgraphunit.c:1167 #12 0x4003fe30 in gnat_parse_file (set_yydebug=11888480) at ../../gcc/ada/misc.c:245 #13 0x40b56760 in toplev_main (argc=, argv=) at ../../gcc/toplev.c:999 #14 0x406a0450 in main (argc=13, argv=0x607ffe2e65b8) at ../../gcc/main.c:35 (gdb) up #1 0x408df180 in emit_group_store (orig_dst=0x20783560, src=0x20713450, type=0x20552940, ssize=16) at ../../gcc/expr.c:1948 1948 emit_move_insn (dst, temp); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26977
[Bug middle-end/26977] [4.2 regression] ICE in emit_move_insn
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.2.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26977
[Bug middle-end/26977] [4.2 regression] ICE in emit_move_insn
--- Comment #1 from roger at eyesopen dot com 2006-04-02 03:07 --- Damn. Unfortunately, although I have four different IA-64 boxes, one none of them can I test Ada. Is it possible to attach the traceback of the failure to the bugzilla PR? Clearly the fact that y is NULL_RTX at the assertion is problematic, but I can't tell where the call to emit_move_insn is coming from. The new calls to emit_move_insn in the PR17959 fix both pass the result from simplify_gen_subreg which should never return NULL, i.e. the problematic call is probably not directly related to the change. I'll start an ia64-unknown-linux-gnu bootstrap here anyway, just to see if anything strange is happening in the testsuite. Sorry for the inconvenience. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26977