http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58831
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- Btw, at some point during DSE true_dependence_1 still returns true for (mem/f/c:DI (symbol_ref:DI ("r") <var_decl 0x7ffff6e3ba18 r>) [3 r+0 S8 A64]) (mem/f:DI (reg/v/f:DI 90 [ p2 ]) [3 *p2_9(D)+0 S8 A64]) but later when sched2 asks (maybe the wrong question?) base_alias_check says that for Breakpoint 8, true_dependence_1 (mem=0x7ffff6e6c360, mem_mode=VOIDmode, mem_addr=0x0, x=0x7ffff6e6c420, x_addr=0x0, mem_canonicalized=false) at /space/rguenther/src/svn/trunk/gcc/alias.c:2520 2520 gcc_checking_assert (mem_canonicalized ? (mem_addr != NULL_RTX) (mem/f:DI (reg/v/f:DI 4 si [orig:90 p2 ] [90]) [3 *p2_9(D)+0 S8 A64]) (mem/f/c:DI (symbol_ref:DI ("r") <var_decl 0x7ffff6e3ba18 r>) [3 r+0 S8 A64]) rtx mem_base = find_base_term (mem_addr); if (! base_alias_check (x_addr, base, mem_addr, mem_base, GET_MODE (x), mem_mode)) return 0; we pass (gdb) call debug_rtx (mem_base) (symbol_ref/f:DI ("*.LC0") [flags 0x2] <var_decl 0x7ffff6e6b098 *.LC0>) !? to it. find_base_term uses REG_BASE_VALUE which is initialized to the above.