From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13984 invoked by alias); 6 Aug 2014 17:41:18 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 13928 invoked by uid 89); 6 Aug 2014 17:41:17 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 X-HELO: eggs.gnu.org Received: from eggs.gnu.org (HELO eggs.gnu.org) (208.118.235.92) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Wed, 06 Aug 2014 17:41:15 +0000 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XF4tM-00012y-6m for gcc-patches@gcc.gnu.org; Wed, 06 Aug 2014 13:20:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:6296) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XF4tL-00012q-WA for gcc-patches@gcc.gnu.org; Wed, 06 Aug 2014 13:20:48 -0400 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s76HJl0S005643 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 6 Aug 2014 13:19:47 -0400 Received: from c64.redhat.com (vpn-239-139.phx2.redhat.com [10.3.239.139]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s76HJ2oq030913; Wed, 6 Aug 2014 13:19:46 -0400 From: David Malcolm To: gcc-patches@gcc.gnu.org Cc: David Malcolm Subject: [PATCH 076/236] function.c: Use rtx_insn Date: Wed, 06 Aug 2014 17:41:00 -0000 Message-Id: <1407345815-14551-77-git-send-email-dmalcolm@redhat.com> In-Reply-To: <1407345815-14551-1-git-send-email-dmalcolm@redhat.com> References: <1407345815-14551-1-git-send-email-dmalcolm@redhat.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 209.132.183.28 X-IsSubscribed: yes X-SW-Source: 2014-08/txt/msg00623.txt.bz2 gcc/ * function.c (emit_initial_value_sets): Strengthen local "seq" from rtx to rtx_insn *. (instantiate_virtual_regs_in_insn): Likewise for param "insn" and local "seq". (instantiate_virtual_regs): Likewise for local "insn". (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn". (reorder_blocks_1): Likewise for param "insns" and local "insn". (expand_function_end): Likewise for locals "insn" and "seq". (epilogue_done): Likewise for local "insn". (thread_prologue_and_epilogue_insns): Likewise for locals "prev", "last", "trial". (reposition_prologue_and_epilogue_notes): Likewise for locals "insn", "last", "note", "first". (match_asm_constraints_1): Likewise for param "insn" and local "insns". (pass_match_asm_constraints::execute): Likewise for local "insn". --- gcc/function.c | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/gcc/function.c b/gcc/function.c index 4d8d32d..b2c9d81 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -114,7 +114,7 @@ vec *types_used_by_cur_var_decl; static struct temp_slot *find_temp_slot_from_address (rtx); static void pad_to_arg_alignment (struct args_size *, int, struct args_size *); static void pad_below (struct args_size *, enum machine_mode, tree); -static void reorder_blocks_1 (rtx, tree, vec *); +static void reorder_blocks_1 (rtx_insn *, tree, vec *); static int all_blocks (tree, tree *); static tree *get_block_vector (tree, int *); extern tree debug_find_var_in_block_tree (tree, tree); @@ -1299,7 +1299,7 @@ emit_initial_value_sets (void) { struct initial_value_struct *ivs = crtl->hard_reg_initial_vals; int i; - rtx seq; + rtx_insn *seq; if (ivs == 0) return 0; @@ -1492,12 +1492,13 @@ safe_insn_predicate (int code, int operand, rtx x) registers present inside of insn. The result will be a valid insn. */ static void -instantiate_virtual_regs_in_insn (rtx insn) +instantiate_virtual_regs_in_insn (rtx_insn *insn) { HOST_WIDE_INT offset; int insn_code, i; bool any_change = false; - rtx set, new_rtx, x, seq; + rtx set, new_rtx, x; + rtx_insn *seq; /* There are some special cases to be handled first. */ set = single_set (insn); @@ -1888,7 +1889,7 @@ instantiate_decls (tree fndecl) static unsigned int instantiate_virtual_regs (void) { - rtx insn; + rtx_insn *insn; /* Compute the offsets to use for this function. */ in_arg_offset = FIRST_PARM_OFFSET (current_function_decl); @@ -3161,8 +3162,9 @@ assign_parm_setup_reg (struct assign_parm_data_all *all, tree parm, && reg_mentioned_p (virtual_incoming_args_rtx, XEXP (data->stack_parm, 0))) { - rtx linsn = get_last_insn (); - rtx sinsn, set; + rtx_insn *linsn = get_last_insn (); + rtx_insn *sinsn; + rtx set; /* Mark complex types separately. */ if (GET_CODE (parmreg) == CONCAT) @@ -4145,9 +4147,10 @@ clear_block_marks (tree block) } static void -reorder_blocks_1 (rtx insns, tree current_block, vec *p_block_stack) +reorder_blocks_1 (rtx_insn *insns, tree current_block, + vec *p_block_stack) { - rtx insn; + rtx_insn *insn; tree prev_beg = NULL_TREE, prev_end = NULL_TREE; for (insn = insns; insn; insn = NEXT_INSN (insn)) @@ -4976,7 +4979,7 @@ expand_function_end (void) space for another stack frame. */ if (flag_stack_check == GENERIC_STACK_CHECK) { - rtx insn, seq; + rtx_insn *insn, *seq; for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) if (CALL_P (insn)) @@ -5735,7 +5738,7 @@ thread_prologue_and_epilogue_insns (void) EPILOGUE_BEG note and mark the insns as epilogue insns. */ FOR_EACH_EDGE (e, ei, EXIT_BLOCK_PTR_FOR_FN (cfun)->preds) { - rtx prev, last, trial; + rtx_insn *prev, *last, *trial; if (e->flags & EDGE_FALLTHRU) continue; @@ -5844,7 +5847,7 @@ epilogue_done: ) { basic_block bb = e->src; - rtx insn = BB_END (bb); + rtx_insn *insn = BB_END (bb); rtx ep_seq; if (!CALL_P (insn) @@ -5923,7 +5926,7 @@ reposition_prologue_and_epilogue_notes (void) if (prologue_insn_hash != NULL) { size_t len = htab_elements (prologue_insn_hash); - rtx insn, last = NULL, note = NULL; + rtx_insn *insn, *last = NULL, *note = NULL; /* Scan from the beginning until we reach the last prologue insn. */ /* ??? While we do have the CFG intact, there are two problems: @@ -5974,7 +5977,7 @@ reposition_prologue_and_epilogue_notes (void) FOR_EACH_EDGE (e, ei, EXIT_BLOCK_PTR_FOR_FN (cfun)->preds) { - rtx insn, first = NULL, note = NULL; + rtx_insn *insn, *first = NULL, *note = NULL; basic_block bb = e->src; /* Scan from the beginning until we reach the first epilogue insn. */ @@ -6306,7 +6309,7 @@ make_pass_thread_prologue_and_epilogue (gcc::context *ctxt) asm ("": "=mr" (inout_2) : "0" (inout_2)); */ static void -match_asm_constraints_1 (rtx insn, rtx *p_sets, int noutputs) +match_asm_constraints_1 (rtx_insn *insn, rtx *p_sets, int noutputs) { int i; bool changed = false; @@ -6318,7 +6321,8 @@ match_asm_constraints_1 (rtx insn, rtx *p_sets, int noutputs) memset (output_matched, 0, noutputs * sizeof (bool)); for (i = 0; i < ninputs; i++) { - rtx input, output, insns; + rtx input, output; + rtx_insn *insns; const char *constraint = ASM_OPERANDS_INPUT_CONSTRAINT (op, i); char *end; int match, j; @@ -6439,7 +6443,8 @@ unsigned pass_match_asm_constraints::execute (function *fun) { basic_block bb; - rtx insn, pat, *p_sets; + rtx_insn *insn; + rtx pat, *p_sets; int noutputs; if (!crtl->has_asm_statement) -- 1.8.5.3