[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