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.

Reply via email to