This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Dwarf2 question


Hi,

This is related to high-priority PR target/10114 on Sparc.

GCC dies because it can't generate a memory location for

(gdb) p debug_tree(decl)
 <var_decl 0x40188258 previous_skew
    type <real_type 0x40157bb8 double asm_written DF
        size <integer_cst 0x4014d8e0 constant 64>
        unit size <integer_cst 0x4014db00 constant 8>
        align 64 symtab 137966584 alias set -1 precision 64
        pointer_to_this <pointer_type 0x4015d0f0>>
    used DF file ../pr10114.c line 22 size <integer_cst 0x4014d8e0 64> unit 
size <integer_cst 0x4014db00 8>
    align 64 context <function_decl 0x40188168 REF_SetReference>
    (mem/f:DF (lo_sum:SI (reg/f:SI 16 %l0 [118])
        (symbol_ref:SI ("our_skew"))) [0 our_skew+0 S8 A64]) chain <var_decl 
0x401882d0 new_skew>>

The problem is the LO_SUM inside the MEM, that mem_loc_descriptor doesn't 
know how to handle. It is produced by the reload-after-global-alloc pass 
because the pseudo-reg which used to represent the variable is useless and 
thus eliminated.

Would it make any sense to teach mem_loc_descriptor to pass through the 
LO_SUM in search of a SYMBOL_REF?

-- 
Eric Botcazou


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]