From 7a35b9cbba693c3661aaeb0fed88f2769fd5c6f7 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Mon, 30 Dec 2013 17:12:08 -0500 Subject: [PATCH 022/159] FIXME: rtx_base_insn within gcse.c --- gcc/gcse.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/gcc/gcse.c b/gcc/gcse.c index 72cee55..e6def18 100644 --- a/gcc/gcse.c +++ b/gcc/gcse.c @@ -296,7 +296,7 @@ struct occr /* Next occurrence of this expression. */ struct occr *next; /* The insn that computes the expression. */ - rtx insn; + rtx_base_insn insn; /* Nonzero if this [anticipatable] occurrence has been deleted. */ char deleted_p; /* Nonzero if this [available] occurrence has been copied to @@ -462,16 +462,16 @@ static void *gcalloc (size_t, size_t) ATTRIBUTE_MALLOC; static void *gcse_alloc (unsigned long); static void alloc_gcse_mem (void); static void free_gcse_mem (void); -static void hash_scan_insn (rtx, struct hash_table_d *); -static void hash_scan_set (rtx, rtx, struct hash_table_d *); -static void hash_scan_clobber (rtx, rtx, struct hash_table_d *); -static void hash_scan_call (rtx, rtx, struct hash_table_d *); +static void hash_scan_insn (rtx_base_insn, struct hash_table_d *); +static void hash_scan_set (rtx, rtx_base_insn, struct hash_table_d *); +static void hash_scan_clobber (rtx, rtx_base_insn, struct hash_table_d *); +static void hash_scan_call (rtx, rtx_base_insn, struct hash_table_d *); static int want_to_gcse_p (rtx, int *); static int oprs_unchanged_p (const_rtx, const_rtx, int); static int oprs_anticipatable_p (const_rtx, const_rtx); static int oprs_available_p (const_rtx, const_rtx); -static void insert_expr_in_table (rtx, enum machine_mode, rtx, int, int, int, - struct hash_table_d *); +static void insert_expr_in_table (rtx, enum machine_mode, rtx_base_insn, + int, int, int, struct hash_table_d *); static unsigned int hash_expr (const_rtx, enum machine_mode, int *, int); static void record_last_reg_set_info (rtx, int); static void record_last_mem_set_info (rtx); @@ -493,7 +493,7 @@ static struct edge_list *compute_pre_data (void); static int pre_expr_reaches_here_p (basic_block, struct expr *, basic_block); static void insert_insn_end_basic_block (struct expr *, basic_block); -static void pre_insert_copy_insn (struct expr *, rtx); +static void pre_insert_copy_insn (struct expr *, rtx_base_insn); static void pre_insert_copies (void); static int pre_delete (void); static int pre_gcse (struct edge_list *); @@ -1121,8 +1121,9 @@ expr_equiv_p (const_rtx x, const_rtx y) be moved. */ static void -insert_expr_in_table (rtx x, enum machine_mode mode, rtx insn, int antic_p, - int avail_p, int max_distance, struct hash_table_d *table) +insert_expr_in_table (rtx x, enum machine_mode mode, rtx_base_insn insn, + int antic_p, int avail_p, + int max_distance, struct hash_table_d *table) { int found, do_not_record_p; unsigned int hash; @@ -1226,7 +1227,7 @@ insert_expr_in_table (rtx x, enum machine_mode mode, rtx insn, int antic_p, /* Scan SET present in INSN and add an entry to the hash TABLE. */ static void -hash_scan_set (rtx set, rtx insn, struct hash_table_d *table) +hash_scan_set (rtx set, rtx_base_insn insn, struct hash_table_d *table) { rtx src = SET_SRC (set); rtx dest = SET_DEST (set); @@ -1345,14 +1346,14 @@ hash_scan_set (rtx set, rtx insn, struct hash_table_d *table) } static void -hash_scan_clobber (rtx x ATTRIBUTE_UNUSED, rtx insn ATTRIBUTE_UNUSED, +hash_scan_clobber (rtx x ATTRIBUTE_UNUSED, rtx_base_insn insn ATTRIBUTE_UNUSED, struct hash_table_d *table ATTRIBUTE_UNUSED) { /* Currently nothing to do. */ } static void -hash_scan_call (rtx x ATTRIBUTE_UNUSED, rtx insn ATTRIBUTE_UNUSED, +hash_scan_call (rtx x ATTRIBUTE_UNUSED, rtx_base_insn insn ATTRIBUTE_UNUSED, struct hash_table_d *table ATTRIBUTE_UNUSED) { /* Currently nothing to do. */ @@ -1361,7 +1362,7 @@ hash_scan_call (rtx x ATTRIBUTE_UNUSED, rtx insn ATTRIBUTE_UNUSED, /* Process INSN and add hash table entries as appropriate. */ static void -hash_scan_insn (rtx insn, struct hash_table_d *table) +hash_scan_insn (rtx_base_insn insn, struct hash_table_d *table) { rtx pat = PATTERN (insn); int i; @@ -2348,7 +2349,7 @@ pre_edge_insert (struct edge_list *edge_list, struct expr **index_map) MEM <- reaching_reg. */ static void -pre_insert_copy_insn (struct expr *expr, rtx insn) +pre_insert_copy_insn (struct expr *expr, rtx_base_insn insn) { rtx reg = expr->reaching_reg; int regno = REGNO (reg); @@ -2471,7 +2472,7 @@ pre_insert_copies (void) for (avail = expr->avail_occr; avail != NULL; avail = avail->next) { - rtx insn = avail->insn; + rtx_base_insn insn = avail->insn; /* No need to handle this one if handled already. */ if (avail->copied_p) @@ -4025,7 +4026,7 @@ update_ld_motion_stores (struct expr * expr) for ( ; list != NULL_RTX; list = XEXP (list, 1)) { - rtx insn = XEXP (list, 0); + rtx_base_insn insn = XEXP (list, 0)->as_an_rtx_base_insn (); rtx pat = PATTERN (insn); rtx src = SET_SRC (pat); rtx reg = expr->reaching_reg; -- 1.7.11.7