diff options
author | Steven Bosscher <steven@gcc.gnu.org> | 2008-06-18 05:42:23 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2008-06-18 05:42:23 +0000 |
commit | 50e94c7e583d2be25b1f940923fa01203aac65c3 (patch) | |
tree | 0c8c1622859a712e7e554f00afbc548652bc9317 /gcc/df-problems.c | |
parent | 00bb81c15b2976156db1be68faee7071e9efdf8b (diff) | |
download | gcc-50e94c7e583d2be25b1f940923fa01203aac65c3.tar.gz |
df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
* df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
(DF_REF_INSN_INFO): New.
(DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
(DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
with a NULL DF_REF_INSN_INFO.
(DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
DF_INSN_SET.
(DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
DF_INSN_INFO_EQ_USES): New.
(DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
* df-core.c: Update comment for above changes.
(df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
DF_INSN_UID_* macros.
(df_ref_debug): Check for NULL DF_REF_INSN_INFO.
* df-scan.c (df_ref_record): Take a df_insn_info instead of an
insn rtx. Update all callers.
(df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
df_ref_create_structure, df_insn_refs_collect): Likewise.
(df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
* df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
(df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
macros to access the insn refs.
(df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
* fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
(all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
for accessing the refs.
(try_fwprop_subst): Likewise.
* ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
* web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
for accessing the refs.
* loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
(check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
to look at the insn refs.
(record_uses): Likewise.
* dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
function anymore.
(mark_artificial_uses): Don't mark_insn for artificial refs.
(mark_reg_rependencies): Likewise.
* doc/rtl.texi: Remove documentation of ADDRESSOF.
From-SVN: r136885
Diffstat (limited to 'gcc/df-problems.c')
-rw-r--r-- | gcc/df-problems.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/gcc/df-problems.c b/gcc/df-problems.c index 043cf38398f..b9f5eecec08 100644 --- a/gcc/df-problems.c +++ b/gcc/df-problems.c @@ -129,7 +129,7 @@ df_chain_dump (struct df_link *link, FILE *file) DF_REF_REG_DEF_P (link->ref) ? 'd' : 'u', DF_REF_ID (link->ref), DF_REF_BBNO (link->ref), - DF_REF_INSN (link->ref) ? DF_REF_INSN_UID (link->ref) : -1); + DF_REF_INSN_INFO (link->ref) ? DF_REF_INSN_UID (link->ref) : -1); } fprintf (file, "}"); } @@ -1429,15 +1429,15 @@ df_live_bb_local_compute (unsigned int bb_index) if (!insn_info) { gcc_assert (!INSN_P (insn)); - df_insn_create_insn_record (insn); + insn_info = df_insn_create_insn_record (insn); } - DF_INSN_LUID (insn) = luid; + DF_INSN_INFO_LUID (insn_info) = luid; if (!INSN_P (insn)) continue; luid++; - for (def_rec = DF_INSN_UID_DEFS (uid); *def_rec; def_rec++) + for (def_rec = DF_INSN_INFO_DEFS (insn_info); *def_rec; def_rec++) { struct df_ref *def = *def_rec; unsigned int regno = DF_REF_REGNO (def); @@ -2201,14 +2201,14 @@ df_chain_top_dump (basic_block bb, FILE *file) FOR_BB_INSNS (bb, insn) { - unsigned int uid = INSN_UID (insn); if (INSN_P (insn)) { - def_rec = DF_INSN_UID_DEFS (uid); + struct df_insn_info *insn_info = DF_INSN_INFO_GET (insn); + def_rec = DF_INSN_INFO_DEFS (insn_info); if (*def_rec) { fprintf (file, ";; DU chains for insn luid %d uid %d\n", - DF_INSN_LUID (insn), uid); + DF_INSN_INFO_LUID (insn_info), INSN_UID (insn)); while (*def_rec) { @@ -2250,15 +2250,15 @@ df_chain_bottom_dump (basic_block bb, FILE *file) FOR_BB_INSNS (bb, insn) { - unsigned int uid = INSN_UID (insn); if (INSN_P (insn)) { - struct df_ref **eq_use_rec = DF_INSN_UID_EQ_USES (uid); - use_rec = DF_INSN_UID_USES (uid); + struct df_insn_info *insn_info = DF_INSN_INFO_GET (insn); + struct df_ref **eq_use_rec = DF_INSN_INFO_EQ_USES (insn_info); + use_rec = DF_INSN_INFO_USES (insn_info); if (*use_rec || *eq_use_rec) { fprintf (file, ";; UD chains for insn luid %d uid %d\n", - DF_INSN_LUID (insn), uid); + DF_INSN_INFO_LUID (insn_info), INSN_UID (insn)); while (*use_rec) { @@ -2515,8 +2515,9 @@ df_byte_lr_alloc (bitmap all_blocks ATTRIBUTE_UNUSED) { if (INSN_P (insn)) { - df_byte_lr_check_regs (DF_INSN_DEFS (insn)); - df_byte_lr_check_regs (DF_INSN_USES (insn)); + struct df_insn_info *insn_info = DF_INSN_INFO_GET (insn); + df_byte_lr_check_regs (DF_INSN_INFO_DEFS (insn_info)); + df_byte_lr_check_regs (DF_INSN_INFO_USES (insn_info)); } } bitmap_set_bit (df_byte_lr->out_of_date_transfer_functions, bb->index); |