From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28893 invoked by alias); 6 Aug 2014 17:44:00 -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 28853 invoked by uid 89); 6 Aug 2014 17:43:59 -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:43:58 +0000 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XF4tl-0001VL-Ul for gcc-patches@gcc.gnu.org; Wed, 06 Aug 2014 13:21:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53452) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XF4tl-0001UC-Mj for gcc-patches@gcc.gnu.org; Wed, 06 Aug 2014 13:21:13 -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 s76HKC81005855 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 6 Aug 2014 13:20:13 -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 s76HJ2pZ030913; Wed, 6 Aug 2014 13:20:11 -0400 From: David Malcolm To: gcc-patches@gcc.gnu.org Cc: David Malcolm Subject: [PATCH 119/236] store-motion.c: Use rtx_insn Date: Wed, 06 Aug 2014 17:44:00 -0000 Message-Id: <1407345815-14551-120-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/msg00671.txt.bz2 gcc/ * store-motion.c (store_killed_in_insn): Strengthen param "insn" from const_rtx to const rtx_insn *. (store_killed_after): Likewise. Strengthen locals "last", "act" from rtx to rtx_insn *. (store_killed_before): Strengthen param "insn" from const_rtx to const rtx_insn *. Strengthen local "first" from rtx to rtx_insn *. (find_moveable_store): Strengthen param "insn" from rtx to rtx_insn *. (compute_store_table): Likewise for local "insn". (insert_insn_start_basic_block): Likewise for param "insn" and locals "prev", "before", "insn". (insert_store): For now, add a checked cast to rtx_insn * on the result of gen_move_insn. (remove_reachable_equiv_notes): Strengthen local "insn" from rtx to rtx_insn *. (replace_store_insn): Likewise. For now, add a checked cast to rtx_insn * on the result of gen_move_insn. --- gcc/store-motion.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/gcc/store-motion.c b/gcc/store-motion.c index b3e5890..567ab07 100644 --- a/gcc/store-motion.c +++ b/gcc/store-motion.c @@ -396,7 +396,7 @@ store_killed_in_pat (const_rtx x, const_rtx pat, int after) after the insn. Return true if it does. */ static bool -store_killed_in_insn (const_rtx x, const_rtx x_regs, const_rtx insn, int after) +store_killed_in_insn (const_rtx x, const_rtx x_regs, const rtx_insn *insn, int after) { const_rtx reg, note, pat; @@ -458,10 +458,11 @@ store_killed_in_insn (const_rtx x, const_rtx x_regs, const_rtx insn, int after) is killed, return the last insn in that it occurs in FAIL_INSN. */ static bool -store_killed_after (const_rtx x, const_rtx x_regs, const_rtx insn, const_basic_block bb, +store_killed_after (const_rtx x, const_rtx x_regs, const rtx_insn *insn, + const_basic_block bb, int *regs_set_after, rtx *fail_insn) { - rtx last = BB_END (bb), act; + rtx_insn *last = BB_END (bb), *act; if (!store_ops_ok (x_regs, regs_set_after)) { @@ -487,10 +488,10 @@ store_killed_after (const_rtx x, const_rtx x_regs, const_rtx insn, const_basic_b within basic block BB. X_REGS is list of registers mentioned in X. REGS_SET_BEFORE is bitmap of registers set before or in this insn. */ static bool -store_killed_before (const_rtx x, const_rtx x_regs, const_rtx insn, const_basic_block bb, - int *regs_set_before) +store_killed_before (const_rtx x, const_rtx x_regs, const rtx_insn *insn, + const_basic_block bb, int *regs_set_before) { - rtx first = BB_HEAD (bb); + rtx_insn *first = BB_HEAD (bb); if (!store_ops_ok (x_regs, regs_set_before)) return true; @@ -536,7 +537,7 @@ store_killed_before (const_rtx x, const_rtx x_regs, const_rtx insn, const_basic_ */ static void -find_moveable_store (rtx insn, int *regs_set_before, int *regs_set_after) +find_moveable_store (rtx_insn *insn, int *regs_set_before, int *regs_set_after) { struct st_expr * ptr; rtx dest, set, tmp; @@ -644,7 +645,8 @@ compute_store_table (void) #ifdef ENABLE_CHECKING unsigned regno; #endif - rtx insn, tmp; + rtx_insn *insn; + rtx tmp; df_ref *def_rec; int *last_set_in, *already_set; struct st_expr * ptr, **prev_next_ptr_ptr; @@ -739,11 +741,11 @@ compute_store_table (void) the BB_HEAD if needed. */ static void -insert_insn_start_basic_block (rtx insn, basic_block bb) +insert_insn_start_basic_block (rtx_insn *insn, basic_block bb) { /* Insert at start of successor block. */ - rtx prev = PREV_INSN (BB_HEAD (bb)); - rtx before = BB_HEAD (bb); + rtx_insn *prev = PREV_INSN (BB_HEAD (bb)); + rtx_insn *before = BB_HEAD (bb); while (before != 0) { if (! LABEL_P (before) @@ -773,7 +775,8 @@ insert_insn_start_basic_block (rtx insn, basic_block bb) static int insert_store (struct st_expr * expr, edge e) { - rtx reg, insn; + rtx reg; + rtx_insn *insn; basic_block bb; edge tmp; edge_iterator ei; @@ -787,7 +790,7 @@ insert_store (struct st_expr * expr, edge e) return 0; reg = expr->reaching_reg; - insn = gen_move_insn (copy_rtx (expr->pattern), reg); + insn = as_a (gen_move_insn (copy_rtx (expr->pattern), reg)); /* If we are inserting this expression on ALL predecessor edges of a BB, insert it at the start of the BB, and reset the insert bits on the other @@ -845,7 +848,8 @@ remove_reachable_equiv_notes (basic_block bb, struct st_expr *smexpr) int sp; edge act; sbitmap visited = sbitmap_alloc (last_basic_block_for_fn (cfun)); - rtx last, insn, note; + rtx last, note; + rtx_insn *insn; rtx mem = smexpr->pattern; stack = XNEWVEC (edge_iterator, n_basic_blocks_for_fn (cfun)); @@ -922,10 +926,11 @@ remove_reachable_equiv_notes (basic_block bb, struct st_expr *smexpr) static void replace_store_insn (rtx reg, rtx del, basic_block bb, struct st_expr *smexpr) { - rtx insn, mem, note, set, ptr; + rtx_insn *insn; + rtx mem, note, set, ptr; mem = smexpr->pattern; - insn = gen_move_insn (reg, SET_SRC (single_set (del))); + insn = as_a (gen_move_insn (reg, SET_SRC (single_set (del)))); for (ptr = smexpr->antic_stores; ptr; ptr = XEXP (ptr, 1)) if (XEXP (ptr, 0) == del) -- 1.8.5.3