[PATCH] more enhancements to df on the mainline.

Kenneth Zadeck zadeck@naturalbridge.com
Wed Jan 18 14:10:00 GMT 2006


Ian,

This patch is built on top of the two patches that I submitted yesterday 
(http://gcc.gnu.org/ml/gcc-patches/2006-01/msg00971.html and
http://gcc.gnu.org/ml/gcc-patches/2006-01/msg00889.html).

This patch deals with the rtl scanning (the patches yesterday dealt with 
propagation and storage management).  This patch contains all of the 
code necessary to find the registers live on entry to a function that we 
discussed earlier.

This patch has been bootstrapped and regression tested on i686-pc-linux-gnu.

Thanks,

Kenny

 2005-01-17  Daniel Berlin  <dberlin@dberlin.org>
        Kenneth Zadeck <zadeck@naturalbridge.com>

    * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
    * targhooks.c (hook_void_voidp): New hook prototype.
    * targhoohs.h (hook_void_voidp): New hook prototype.
    * df-scan.c (df_all_hard_regs): Removed.
    (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
    (df_scan_free_internal, df_scan_alloc, df_scan_dump): Added
    df->entry_block_defs.
    (df_uses_record): Plumbed flag field properly thru calls.
    Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
    (df_bb_refs_record): Added code to make the frame and arg
    pointers live in EH blocks.
    (df_refs_record): Added call to df_record_entry_block_defs.
    (df_record_entry_block_defs): New function.
    * df-core.c: Added comments to describe new artifical defs.
    * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
    (entry_block_defs): New field in struct df.
    (df_all_hard_regs): Deleted.
    * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
    * df-problems.c (df_ru_bb_local_compute_process_def,
    df_ru_bb_local_compute, df_rd_bb_local_compute_process_def,
    df_rd_bb_local_compute, df_lr_bb_local_compute,
    df_ur_bb_local_compute, df_urec_bb_local_compute,
    df_chain_create_bb): Added code to handle artifical
    defs in the entry to a function.
    (df_ur_local_finalize, df_urec_init, df_urec_local_finalize):
    Removed entry.
    (df_ri_bb_compute): Added detection of last use of pseudos.
    Makefile.in (df-scan.o): Updated dependencies.
    config/mips/mips-protos.h (mips_set_live_on_entry): Added.
    config/mips/mips.c (mips_set_live_on_entry): Added.
    config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
    for target hook.
    dce.c (marked_insn_p): Added code to handle artifical defs.




More information about the Gcc-patches mailing list