[dataflow]: PATCH: two fixes for regressions on x86_64 and PPC.

Seongbae Park seongbae.park@gmail.com
Fri Nov 3 18:21:00 GMT 2006


This patch contains fixes for two regressions on x86_64 and PPC,
and one minor debugging support.

One is to put USE rtx of the frame pointer at the prologue end
when the profiling is on and the frame pointer is deemed necessary,
to ensure that dataflow sees and preserves the frame pointer
at least within the prologue. This is required for correct functioning
of mcount() function on certain platforms, including x86_64.

The other is to compute and use the live register set
at the top of the block (that is, just before the first insn in the block),
instead of the "live in" set of the block when appropriate.
The difference between those two are due to the artificial defs at the
top of the block
- e.g. exception handler argument register (r3 on PPC).

Also, the patch adds a new function current_function_assembler_name()
which returns the raw, mangled name (c.f current_function_name()).
It is intended to be used inside debugger (e.g. for setting a conditional
breakpoint based on the function name).

The fix has been boostrapped and passed make check on x86_64 and PPC.


2006-11-03  Seongbae Park <seongbae.park@gmail.com>
        * global.c (global_conflicts): Use df_urec_get_live_at_top ()
        instead of DF_RA_LIVE_IN ().
        * function.h: Add a declaration for current_function_assembler_name().
        * function.c (current_function_assembler_name):  New function.
        (thread_prologue_and_epilogue_insns): Insert rtx_USE when profiling.
        * df.h (DF_REF_FLAGS_CLEAR): New macro.
        (df_urec_get_live_at_top): New function declaration.
        * df-problems.c (df_urec_get_live_at_top): New function.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: frame-pointer-and-artificial-def.diff
Type: application/octet-stream
Size: 5011 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20061103/cabfbbc9/attachment.obj>

More information about the Gcc-patches mailing list