diff options
author | bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-04 07:26:39 +0000 |
---|---|---|
committer | bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-04 07:26:39 +0000 |
commit | c989ecc17b6ce839293ad15598c3dce3b252f935 (patch) | |
tree | a7671f002a287d6524319f97f4f6fceea0ed368b /gcc/df.h | |
parent | 0c05fe4992fe55a40ff8fbaa36baadef48f0ce8a (diff) | |
download | gcc-c989ecc17b6ce839293ad15598c3dce3b252f935.tar.gz |
2010-09-04 Paolo Bonzini <bonzini@gnu.org>
* df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
(struct df_extract_ref): Remove.
(union df_ref_d): Remove extract_ref member.
(df_ref_create): Remove last three arguments.
(DF_REF_LOC): Remove DF_REF_EXTRACT case.
* df-scan.c (df_ref_record): Remove last three arguments, do not
pass them to df_ref_create_structure.
(df_uses_record): Remove first and last three arguments. Replace
first argument with DF_REF_REGULAR, adjust calls to remove the
width, offset and mode. Always call recursively on the second
and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
(df_ref_create_structure): Remove first argument.
(struct df_scan_problem_data): Remove ref_extract_pool.
(df_scan_free_internal): Do not free it.
(df_scan_alloc): Do not allocate it.
(df_ref_create): Remove last three arguments, do not pass them to
df_ref_create_structure.
(df_free_ref): Remove DF_REF_EXTRACT case.
(df_notes_rescan): Adjust call to df_uses_record.
(df_ref_equal_p, df_ref_compare, df_ref_create_structure):
Remove DF_REF_EXTRACT case.
(df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
and SUBREG definitions.
(df_get_conditional_uses): Remove references to width/offset/mode,
adjust call to df_ref_create_structure.
(df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
calls to df_uses_record and df_ref_record.
* fwprop.c (update_df): Remove references to width/offset/mode,
adjust call to df_ref_create.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163854 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/df.h')
-rw-r--r-- | gcc/df.h | 21 |
1 files changed, 3 insertions, 18 deletions
@@ -67,7 +67,7 @@ enum df_flow_dir }; /* Descriminator for the various df_ref types. */ -enum df_ref_class {DF_REF_BASE, DF_REF_ARTIFICIAL, DF_REF_REGULAR, DF_REF_EXTRACT}; +enum df_ref_class {DF_REF_BASE, DF_REF_ARTIFICIAL, DF_REF_REGULAR}; /* The first of these us a set of a registers. The remaining three are all uses of a register (the mem_load and mem_store relate to @@ -402,26 +402,12 @@ struct df_regular_ref rtx *loc; }; - -/* A df_ref_extract is just a df_ref with a width and offset field at - the end of it. It is used to hold this information if the ref was - wrapped by a SIGN_EXTRACT or a ZERO_EXTRACT and to pass this info - to passes that wish to process partial regs precisely. */ -struct df_extract_ref -{ - struct df_regular_ref base; - int width; - int offset; - enum machine_mode mode; -}; - /* Union of the different kinds of defs/uses placeholders. */ union df_ref_d { struct df_base_ref base; struct df_regular_ref regular_ref; struct df_artificial_ref artificial_ref; - struct df_extract_ref extract_ref; }; typedef union df_ref_d *df_ref; @@ -645,7 +631,7 @@ struct df_d #define DF_REF_REAL_LOC(REF) (GET_CODE (*((REF)->regular_ref.loc)) == SUBREG \ ? &SUBREG_REG (*((REF)->regular_ref.loc)) : ((REF)->regular_ref.loc)) #define DF_REF_REG(REF) ((REF)->base.reg) -#define DF_REF_LOC(REF) ((DF_REF_CLASS(REF) == DF_REF_REGULAR || DF_REF_CLASS(REF) == DF_REF_EXTRACT) ? \ +#define DF_REF_LOC(REF) (DF_REF_CLASS(REF) == DF_REF_REGULAR ? \ (REF)->regular_ref.loc : NULL) #define DF_REF_BB(REF) (DF_REF_IS_ARTIFICIAL(REF) ? \ (REF)->artificial_ref.bb : BLOCK_FOR_INSN (DF_REF_INSN(REF))) @@ -994,8 +980,7 @@ extern void df_grow_reg_info (void); extern void df_grow_insn_info (void); extern void df_scan_blocks (void); extern df_ref df_ref_create (rtx, rtx *, rtx,basic_block, - enum df_ref_type, int ref_flags, - int, int, enum machine_mode); + enum df_ref_type, int ref_flags); extern void df_ref_remove (df_ref); extern struct df_insn_info * df_insn_create_insn_record (rtx); extern void df_insn_delete (basic_block, unsigned int); |