This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/47283] [4.6 regression] ICE in refs_may_alias_p_1, at tree-ssa-alias.c
- From: "jamborm at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 17 Jan 2011 18:12:57 +0000
- Subject: [Bug tree-optimization/47283] [4.6 regression] ICE in refs_may_alias_p_1, at tree-ssa-alias.c
- Auto-submitted: auto-generated
- References: <bug-47283-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47283
--- Comment #5 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-01-17 18:12:53 UTC ---
THe ICE happens because refs_may_alias_p_1 gets an ao_ref initialized
from a MEM_REF of an ADDR_EXPR of a component_ref.
get_ref_base_and_extent then removes the MEM_REF but the base it
returns is a COMPONENT_REF which then confuses refs_may_alias_p_1.
The reference is fetched from MEM_EXPR (mem) in ao_ref_from_mem.
However, it should be noted that mem is
(gdb) call debug_rtx (mem)
(mem:SI (debug_implicit_ptr:SI D.58673) [0 D.58673.wd+0 S4 A32])
so perhaps some of the callers should ignore debug instructions or
debug-whatever-the-above-is? I don't know which one that would be,
the backtrace is (I added a few asserts to alias.c to produce it so
the line numbers are a bit off):
#0 fancy_abort (file=0x8aa5c84 "/home/mjambor/gcc/mine/gcc/alias.c", line=276,
function=0x8aa62a2 "ao_ref_from_mem") at
/home/mjambor/gcc/mine/gcc/diagnostic.c:893
#1 0x082e4432 in ao_ref_from_mem (ref=0xbfffe828, mem=0xb5941bac) at
/home/mjambor/gcc/mine/gcc/alias.c:276
#2 0x082e4bc8 in rtx_refs_may_alias_p (x=0xb5caf7c8, mem=<value optimized
out>, tbaa_p=0 '\000')
at /home/mjambor/gcc/mine/gcc/alias.c:380
#3 0x082e50a3 in write_dependence_p (mem=0xb5941bac, x=0xb5caf7c8,
writep=<value optimized out>)
at /home/mjambor/gcc/mine/gcc/alias.c:2598
#4 0x08a003c9 in sched_analyze_1 (deps=<value optimized out>, x=<value
optimized out>, insn=<value optimized out>)
at /home/mjambor/gcc/mine/gcc/sched-deps.c:2321
#5 0x08a042ac in sched_analyze_insn (deps=<value optimized out>, x=0xb5da6054,
insn=0xb633e678)
at /home/mjambor/gcc/mine/gcc/sched-deps.c:2656
#6 0x08a05df3 in deps_analyze_insn (deps=0xbfffeae0, insn=0xb633e678)
at /home/mjambor/gcc/mine/gcc/sched-deps.c:3259
#7 0x08a065b3 in sched_analyze (deps=0xbfffeae0, head=0xb633e678,
tail=0xb623cc80)
at /home/mjambor/gcc/mine/gcc/sched-deps.c:3407
#8 0x08573c3e in compute_block_dependences (bb=<value optimized out>)
at /home/mjambor/gcc/mine/gcc/sched-rgn.c:2725
#9 sched_rgn_compute_dependencies (bb=<value optimized out>) at
/home/mjambor/gcc/mine/gcc/sched-rgn.c:3162
#10 0x08576484 in schedule_region (rgn=<value optimized out>) at
/home/mjambor/gcc/mine/gcc/sched-rgn.c:2937
#11 schedule_insns (rgn=<value optimized out>) at
/home/mjambor/gcc/mine/gcc/sched-rgn.c:3321
#12 0x08576a8e in rest_of_handle_sched2 () at
/home/mjambor/gcc/mine/gcc/sched-rgn.c:3542
#13 0x085193b9 in execute_one_pass (pass=0x8cfaa60) at
/home/mjambor/gcc/mine/gcc/passes.c:1561