-
- Downloads
re PR rtl-optimization/24762 ([killloop-branch] code motion of non-invariant...
re PR rtl-optimization/24762 ([killloop-branch] code motion of non-invariant expressions with hard registers.)
2006-01-27 Daniel Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
PR rtl-optimization/24762
* doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
* targhooks.c (hook_void_bitmap): New hook prototype.
* targhoohs.h (hook_void_bitmap): Ditto.
* bitmap.h (bitmap_head_def): Moved to coretypes.h.
* coretypes.h (bitmap_head_def): Moved from bitmap.h.
* target.h (live_on_entry): New function pointer.
* df-scan.c (df_all_hard_regs): Removed.
(df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
(df_scan_free_internal): Added df->entry_block_defs.
(df_scan_alloc): Ditto.
(df_scan_dump): Ditto.
(df_uses_record): Plumbed flag field properly thru calls.
Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
This part fixes PR24762.
(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):
Added code to handle artifical defs in the entry to a function.
(df_ru_bb_local_compute): Ditto.
(df_rd_bb_local_compute_process_def): Ditto.
(df_rd_bb_local_compute): Ditto.
(df_lr_bb_local_compute): Ditto.
(df_ur_bb_local_compute): Ditto.
(df_urec_bb_local_compute): Ditto.
(df_chain_create_bb): Ditto.
(df_ur_local_finalize): Removed entry.
(df_urec_init): Ditto.
(df_urec_local_finalize): Ditto.
(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.
Co-Authored-By:
Kenneth Zadeck <zadeck@naturalbridge.com>
From-SVN: r110312
Showing
- gcc/ChangeLog 47 additions, 0 deletionsgcc/ChangeLog
- gcc/Makefile.in 3 additions, 3 deletionsgcc/Makefile.in
- gcc/bitmap.h 0 additions, 2 deletionsgcc/bitmap.h
- gcc/config/mips/mips-protos.h 1 addition, 0 deletionsgcc/config/mips/mips-protos.h
- gcc/config/mips/mips.c 19 additions, 0 deletionsgcc/config/mips/mips.c
- gcc/coretypes.h 2 additions, 0 deletionsgcc/coretypes.h
- gcc/df-core.c 17 additions, 12 deletionsgcc/df-core.c
- gcc/df-problems.c 146 additions, 127 deletionsgcc/df-problems.c
- gcc/df-scan.c 169 additions, 40 deletionsgcc/df-scan.c
- gcc/df.h 11 additions, 4 deletionsgcc/df.h
- gcc/doc/tm.texi 9 additions, 0 deletionsgcc/doc/tm.texi
- gcc/target-def.h 5 additions, 0 deletionsgcc/target-def.h
- gcc/target.h 5 additions, 0 deletionsgcc/target.h
- gcc/targhooks.c 5 additions, 0 deletionsgcc/targhooks.c
- gcc/targhooks.h 1 addition, 0 deletionsgcc/targhooks.h
Loading
Please register or sign in to comment