diff options
author | Paolo Bonzini <bonzini@gnu.org> | 2005-05-26 08:12:35 +0000 |
---|---|---|
committer | Paolo Bonzini <bonzini@gcc.gnu.org> | 2005-05-26 08:12:35 +0000 |
commit | 57a95bc48d07fcd237553acf979f2e340590ed48 (patch) | |
tree | de741b09a4c6275ce287d076d0076ab1b43d2a63 /gcc/df.h | |
parent | 383898f7654cd9e2db0586fa2ff18ec933a61a81 (diff) | |
download | gcc-57a95bc48d07fcd237553acf979f2e340590ed48.zip gcc-57a95bc48d07fcd237553acf979f2e340590ed48.tar.gz gcc-57a95bc48d07fcd237553acf979f2e340590ed48.tar.bz2 |
df.h (DF_SUBREGS, [...]): New.
2005-05-26 Paolo Bonzini <bonzini@gnu.org>
* df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
* df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
From-SVN: r100197
Diffstat (limited to 'gcc/df.h')
-rw-r--r-- | gcc/df.h | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -38,6 +38,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #define DF_ALL 255 #define DF_HARD_REGS 1024 /* Mark hard registers. */ #define DF_EQUIV_NOTES 2048 /* Mark uses present in EQUIV/EQUAL notes. */ +#define DF_SUBREGS 4096 /* Return subregs rather than the inner reg. */ enum df_ref_type {DF_REF_REG_DEF, DF_REF_REG_USE, DF_REF_REG_MEM_LOAD, DF_REF_REG_MEM_STORE}; @@ -207,11 +208,9 @@ struct df_map ((DF)->regs[REGNUM].uses ? (DF)->regs[REGNUM].uses->ref : 0) #define DF_REGNO_FIRST_BB(DF, REGNUM) \ -(DF_REGNO_FIRST_DEF (DF, REGNUM) \ -? DF_REF_BB (DF_REGNO_FIRST_DEF (DF, REGNUM)) : 0) +((DF)->regs[REGNUM].defs ? DF_REF_BB ((DF)->regs[REGNUM].defs->ref) : 0) #define DF_REGNO_LAST_BB(DF, REGNUM) \ -(DF_REGNO_LAST_USE (DF, REGNUM) \ -? DF_REF_BB (DF_REGNO_LAST_USE (DF, REGNUM)) : 0) +((DF)->regs[REGNUM].uses ? DF_REF_BB ((DF)->regs[REGNUM].uses->ref) : 0) /* Macros to access the elements within the insn_info structure table. */ @@ -235,6 +234,8 @@ extern void df_dump (struct df *, int, FILE *); /* Functions to modify insns. */ +extern bool df_insn_modified_p (struct df *, rtx); + extern void df_insn_modify (struct df *, basic_block, rtx); extern rtx df_insn_delete (struct df *, basic_block, rtx); @@ -280,6 +281,8 @@ extern int df_bb_reg_live_end_p (struct df *, basic_block, rtx); extern int df_bb_regs_lives_compare (struct df *, basic_block, rtx, rtx); +extern bool df_local_def_available_p (struct df *, struct ref *, struct ref *); + extern rtx df_bb_single_def_use_insn_find (struct df *, basic_block, rtx, rtx); extern struct ref *df_bb_regno_last_use_find (struct df *, basic_block, unsigned int); |