On 03/20/2011 05:57 AM, Jakub Jelinek wrote:
>       * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
>       create ENTRY_VALUE if incoming or address of incoming's MEM
>       is a hard REG.
>       * dwarf2out.c (mem_loc_descriptor): Don't emit
>       DW_OP_GNU_entry_value of DW_OP_fbreg.

Ok.

>       * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
>       on ENTRY_VALUE is able to find the canonical parameter VALUE.

I don't really understand what's going on here.  Whatever it is, it
could definitely use some more commentary; there's almost nothing in
the surrounding context.  I also suggest pulling some of this out into
a new function.  You've got 2 exact copies here in the patch, and 2
more that are nearly the same already in the code.

>       * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
>       rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
>       ENTRY_VALUE_EXPs.

Ok.

>       (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
>       is a REG_P or MEM_P with REG_P address, compute hash directly
>       instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.

Why?

>       (preserve_only_constants): Don't clear VALUES forwaring
>       ENTRY_VALUE to some other VALUE.

Ok with a comment.  I guess the reasoning being that even though this
value isn't "constant", it's function invariant?


r~

Reply via email to