http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52983
Uros Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ubizjak at gmail dot com --- Comment #6 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-06-28 07:39:33 UTC --- Author: aoliva Date: Thu Jun 28 07:39:25 2012 New Revision: 189036 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=189036 Log: PR debug/53740 PR debug/52983 PR debug/48866 * dce.c (word_dce_process_block): Check whether inserting debug temps are needed even for needed insns. (dce_process_block): Likewise. * df-problems.c (dead_debug_add): Add comment about multi-regs. (dead_debug_insert_temp): Likewise. Don't subreg when we're setting fewer regs than a multi-reg requires. Modified: trunk/gcc/ChangeLog trunk/gcc/dce.c trunk/gcc/df-problems.c --- Comment #7 from Uros Bizjak <ubizjak at gmail dot com> 2012-07-01 09:22:16 UTC --- I have hit similar ICE on i64-linux-gnu: (xgcc (GCC) 4.8.0 20120701 (experimental) [trunk revision 189100]) crosscompiler from x86_64-pc-linux-gnu to ia64-linux-gnu: ../../../gcc-svn/trunk/libgfortran/generated/iall_i2.c: In function ‘iall_i2’: ../../../gcc-svn/trunk/libgfortran/generated/iall_i2.c:187:1: internal compiler error: in df_uses_record, at df-scan.c:3303 Please submit a full bug report, with preprocessed source if appropriate. Breakpoint 1, internal_error (gmsgid=gmsgid@entry=0xd958ea "in %s, at %s:%d") at ../../gcc-svn/trunk/gcc/diagnostic.c:951 951 { (gdb) bt #0 internal_error (gmsgid=gmsgid@entry=0xd958ea "in %s, at %s:%d") at ../../gcc-svn/trunk/gcc/diagnostic.c:951 #1 0x0000000000bd8804 in fancy_abort (file=file@entry=0xc681c8 "../../gcc-svn/trunk/gcc/df-scan.c", line=line@entry=3303, function=function@entry=0xc68bbe "df_uses_record") at ../../gcc-svn/trunk/gcc/diagnostic.c:1011 #2 0x00000000005ce81b in df_uses_record (collection_rec=collection_rec@entry=0x7fffffffd780, loc=<optimized out>, ref_type=DF_REF_REG_MEM_LOAD, ref_type@entry=DF_REF_REG_USE, bb=bb@entry=0x7ffff12be380, insn_info=insn_info@entry=0x134d040, flags=<optimized out>, flags@entry=0) at ../../gcc-svn/trunk/gcc/df-scan.c:3303 #3 0x00000000005ce96f in df_insn_refs_collect (collection_rec=collection_rec@entry=0x7fffffffd780, bb=bb@entry=0x7ffff12be380, insn_info=0x134d040) at ../../gcc-svn/trunk/gcc/df-scan.c:3510 #4 0x00000000005cf4f0 in df_insn_rescan (insn=insn@entry=0x7ffff0f3de58) at ../../gcc-svn/trunk/gcc/df-scan.c:1280 #5 0x000000000061a251 in add_insn_before (insn=0x7ffff0f3de58, before=before@entry=0x7ffff0f30630, bb=<optimized out>, bb@entry=0x0) at ../../gcc-svn/trunk/gcc/emit-rtl.c:3883 #6 0x000000000061a3b2 in emit_pattern_before_noloc (x=0x7ffff0f3fae0, before=0x7ffff0f30630, last=<optimized out>, bb=0x0, make_raw=<optimized out>) at ../../gcc-svn/trunk/gcc/emit-rtl.c:4161 #7 0x000000000061a42c in emit_pattern_before_setloc (pattern=0x7ffff0f3fae0, before=<optimized out>, loc=112, insnp=<optimized out>, make_raw=<optimized out>) at ../../gcc-svn/trunk/gcc/emit-rtl.c:4528 #8 0x00000000005c7367 in dead_debug_insert_temp (debug=debug@entry=0x7fffffffd920, uregno=<optimized out>, insn=insn@entry=0x7ffff0f30630, where=where@entry=DEBUG_TEMP_BEFORE_WITH_VALUE) at ../../gcc-svn/trunk/gcc/df-problems.c:3349 #9 0x0000000000afef4e in dce_process_block (au=0x136a928, redo_out=<optimized out>, bb=0x7ffff12be380) at ../../gcc-svn/trunk/gcc/dce.c:976 #10 fast_dce (word_level=word_level@entry=0 '\000') at ../../gcc-svn/trunk/gcc/dce.c:1044 (gdb) f 2 #2 0x00000000005ce81b in df_uses_record (collection_rec=collection_rec@entry=0x7fffffffd780, loc=<optimized out>, ref_type=DF_REF_REG_MEM_LOAD, ref_type@entry=DF_REF_REG_USE, bb=bb@entry=0x7ffff12be380, insn_info=insn_info@entry=0x134d040, flags=<optimized out>, flags@entry=0) at ../../gcc-svn/trunk/gcc/df-scan.c:3303 3303 gcc_assert (!DEBUG_INSN_P (insn_info->insn)); (gdb) p debug_rtx (insn_info->insn) (debug_insn 685 441 442 36 (var_location:HI D#33 (mem:HI (post_modify:DI (reg/v/f:DI 450 [ src ]) (plus:DI (reg/v/f:DI 450 [ src ]) (reg:DI 639 [ pretmp.129 ]))) [6 *src_178+0 S2 A16])) -1 (nil)) $1 = void