From patchwork Wed Aug 6 17:20:09 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Malcolm X-Patchwork-Id: 377102 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id C9F5C1400AF for ; Thu, 7 Aug 2014 03:23:16 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:in-reply-to:references; q=dns; s= default; b=vZx3NMzABq1FVZT6u4Z11bCgFVw8ad9rNuQGn0RDk6IqeU2cp8/Q6 9ZbdUZjX4Zi3e4nfr525leSB5ywGyMKk9wUlIqMOzRKSYpvfwjVU0eXgi6ekBc84 xr9El+9n4AxR58+VIjz5+5DbRcrQFuK0+wyyVepQOVP8n53cJU+RVQ= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:in-reply-to:references; s= default; bh=Vm6hFcNq8MSyqDBUNYL9I7qsZaI=; b=tWlBE+e/uf7H123qfNKl 9pnTqS9KgaUEK5GQO2SMmEY4XgsHiYiTiobjQeEa3W9JmVtLlQm5Zxlrpu5yKWWS jpIQJQuXGXj2M1J/HIqS3zOPG0GhY3zEd1sI7mTWJ6TgznLxdj9VmwztcaVCdpdx rNvh88BDDJL94O/ocdm9IFk= Received: (qmail 29165 invoked by alias); 6 Aug 2014 17:19:26 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 28934 invoked by uid 89); 6 Aug 2014 17:19:24 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Wed, 06 Aug 2014 17:19:21 +0000 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 s76HJKcl028527 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 6 Aug 2014 13:19:20 -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 s76HJ2o6030913; Wed, 6 Aug 2014 13:19:20 -0400 From: David Malcolm To: gcc-patches@gcc.gnu.org Cc: David Malcolm Subject: [PATCH 030/236] Convert various rtx to rtx_note * Date: Wed, 6 Aug 2014 13:20:09 -0400 Message-Id: <1407345815-14551-31-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-IsSubscribed: yes gcc/ * basic-block.h (create_basic_block_structure): Strengthen third param "bb_note" from rtx to rtx_note *. * rtl.h (emit_note_before): Strengthen return type from rtx to rtx_note *. (emit_note_after): Likewise. (emit_note): Likewise. (emit_note_copy): Likewise. Also, strengthen param similarly. * function.h (struct rtl_data): Strengthen field "x_stack_check_probe_note" from rtx to rtx_note *. * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note" from rtx to rtx_note *. * cfgrtl.c (create_basic_block_structure): Strengthen third param "bb_note" from rtx to rtx_note *. (duplicate_insn_chain): Likewise for local "last". Add a checked cast when calling emit_note_copy. * emit-rtl.c (make_note_raw): Strengthen return type from rtx to rtx_note *. (emit_note_after): Likewise. (emit_note_before): Likewise. (emit_note_copy): Likewise. Also, strengthen param similarly. (emit_note): Likewise. * except.c (convert_to_eh_region_ranges): Strengthen local "note" from rtx to rtx_note *. * final.c (change_scope): Likewise. (reemit_insn_block_notes): Likewise, for both locals named "note". Also, strengthen local "insn" from rtx to rtx_insn *. * haifa-sched.c (sched_extend_bb): Strengthen local "note" from rtx to rtx_note *. * reg-stack.c (compensate_edge): Likewise for local "after". Also, strengthen local "seq" from rtx to rtx_insn *. * reload1.c (reload_as_needed): Strengthen local "marker" from rtx to rtx_note *. * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to vec. (get_bb_note_from_pool): Strengthen return type from rtx to rtx_note *. (sel_create_basic_block): Strengthen local "new_bb_note" from insn_t to rtx_note *. * var-tracking.c (emit_note_insn_var_location): Strengthen local "note" from rtx to rtx_note *. (emit_notes_in_bb): Likewise. --- gcc/basic-block.h | 3 ++- gcc/cfgexpand.c | 4 ++-- gcc/cfgrtl.c | 8 +++++--- gcc/emit-rtl.c | 22 +++++++++++----------- gcc/except.c | 3 ++- gcc/final.c | 7 ++++--- gcc/function.h | 2 +- gcc/haifa-sched.c | 2 +- gcc/reg-stack.c | 3 ++- gcc/reload1.c | 3 ++- gcc/rtl.h | 8 ++++---- gcc/sel-sched-ir.c | 10 +++++----- gcc/var-tracking.c | 6 ++++-- 13 files changed, 45 insertions(+), 36 deletions(-) diff --git a/gcc/basic-block.h b/gcc/basic-block.h index 87094c6..03dbdbc 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -412,7 +412,8 @@ extern void remove_edge_raw (edge); extern void redirect_edge_succ (edge, basic_block); extern edge redirect_edge_succ_nodup (edge, basic_block); extern void redirect_edge_pred (edge, basic_block); -extern basic_block create_basic_block_structure (rtx, rtx, rtx, basic_block); +extern basic_block create_basic_block_structure (rtx, rtx, rtx_note *, + basic_block); extern void clear_bb_flags (void); extern void dump_bb_info (FILE *, basic_block, int, int, bool, bool); extern void dump_edge_info (FILE *, edge, int, int); diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 643bb19..d2dc924 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -4878,7 +4878,7 @@ expand_gimple_basic_block (basic_block bb, bool disable_tail_calls) gimple_stmt_iterator gsi; gimple_seq stmts; gimple stmt = NULL; - rtx note; + rtx_note *note; rtx_insn *last; edge e; edge_iterator ei; @@ -4951,7 +4951,7 @@ expand_gimple_basic_block (basic_block bb, bool disable_tail_calls) maybe_dump_rtl_for_gimple_stmt (stmt, last); } else - note = SET_BB_HEAD (bb) = emit_note (NOTE_INSN_BASIC_BLOCK); + SET_BB_HEAD (bb) = note = emit_note (NOTE_INSN_BASIC_BLOCK); NOTE_BASIC_BLOCK (note) = bb; diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index ac3bc87..2a490f9 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -272,7 +272,8 @@ delete_insn_chain (rtx start, rtx finish, bool clear_bb) AFTER is the basic block we should be put after. */ basic_block -create_basic_block_structure (rtx head, rtx end, rtx bb_note, basic_block after) +create_basic_block_structure (rtx head, rtx end, rtx_note *bb_note, + basic_block after) { basic_block bb; @@ -4085,7 +4086,8 @@ cfg_layout_can_duplicate_bb_p (const_basic_block bb) rtx duplicate_insn_chain (rtx from, rtx to) { - rtx insn, next, last, copy; + rtx insn, next, copy; + rtx_note *last; /* Avoid updating of boundaries of previous basic block. The note will get removed from insn stream in fixup. */ @@ -4153,7 +4155,7 @@ duplicate_insn_chain (rtx from, rtx to) break; case NOTE_INSN_EPILOGUE_BEG: - emit_note_copy (insn); + emit_note_copy (as_a (insn)); break; default: diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index bbc7fb7..afbb6a0 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -3839,7 +3839,7 @@ make_call_insn_raw (rtx pattern) /* Like `make_insn_raw' but make a NOTE instead of an insn. */ -static rtx +static rtx_note * make_note_raw (enum insn_note subtype) { /* Some notes are never created this way at all. These notes are @@ -3847,7 +3847,7 @@ make_note_raw (enum insn_note subtype) gcc_assert (subtype != NOTE_INSN_DELETED_LABEL && subtype != NOTE_INSN_DELETED_DEBUG_LABEL); - rtx note = rtx_alloc (NOTE); + rtx_note *note = as_a (rtx_alloc (NOTE)); INSN_UID (note) = cur_insn_uid++; NOTE_KIND (note) = subtype; BLOCK_FOR_INSN (note) = NULL; @@ -4544,10 +4544,10 @@ note_outside_basic_block_p (enum insn_note subtype, bool on_bb_boundary_p) /* Emit a note of subtype SUBTYPE after the insn AFTER. */ -rtx +rtx_note * emit_note_after (enum insn_note subtype, rtx after) { - rtx note = make_note_raw (subtype); + rtx_note *note = make_note_raw (subtype); basic_block bb = BARRIER_P (after) ? NULL : BLOCK_FOR_INSN (after); bool on_bb_boundary_p = (bb != NULL && BB_END (bb) == after); @@ -4560,10 +4560,10 @@ emit_note_after (enum insn_note subtype, rtx after) /* Emit a note of subtype SUBTYPE before the insn BEFORE. */ -rtx +rtx_note * emit_note_before (enum insn_note subtype, rtx before) { - rtx note = make_note_raw (subtype); + rtx_note *note = make_note_raw (subtype); basic_block bb = BARRIER_P (before) ? NULL : BLOCK_FOR_INSN (before); bool on_bb_boundary_p = (bb != NULL && BB_HEAD (bb) == before); @@ -5010,11 +5010,11 @@ emit_barrier (void) /* Emit a copy of note ORIG. */ -rtx -emit_note_copy (rtx orig) +rtx_note * +emit_note_copy (rtx_note *orig) { enum insn_note kind = (enum insn_note) NOTE_KIND (orig); - rtx note = make_note_raw (kind); + rtx_note *note = make_note_raw (kind); NOTE_DATA (note) = NOTE_DATA (orig); add_insn (note); return note; @@ -5023,10 +5023,10 @@ emit_note_copy (rtx orig) /* Make an insn of code NOTE or type NOTE_NO and add it to the end of the doubly-linked list. */ -rtx +rtx_note * emit_note (enum insn_note kind) { - rtx note = make_note_raw (kind); + rtx_note *note = make_note_raw (kind); add_insn (note); return note; } diff --git a/gcc/except.c b/gcc/except.c index fe1de06..ec712a9 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -2479,7 +2479,8 @@ add_call_site (rtx landing_pad, int action, int section) static unsigned int convert_to_eh_region_ranges (void) { - rtx insn, iter, note; + rtx insn, iter; + rtx_note *note; action_hash_type ar_hash; int last_action = -3; rtx last_action_insn = NULL_RTX; diff --git a/gcc/final.c b/gcc/final.c index c6339ae..38f6e0c 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -1631,7 +1631,7 @@ change_scope (rtx orig_insn, tree s1, tree s2) s = s1; while (s != com) { - rtx note = emit_note_before (NOTE_INSN_BLOCK_END, insn); + rtx_note *note = emit_note_before (NOTE_INSN_BLOCK_END, insn); NOTE_BLOCK (note) = s; s = BLOCK_SUPERCONTEXT (s); } @@ -1653,7 +1653,8 @@ static void reemit_insn_block_notes (void) { tree cur_block = DECL_INITIAL (cfun->decl); - rtx insn, note; + rtx_insn *insn; + rtx_note *note; insn = get_insns (); for (; insn; insn = NEXT_INSN (insn)) @@ -1666,7 +1667,7 @@ reemit_insn_block_notes (void) for (tree s = cur_block; s != DECL_INITIAL (cfun->decl); s = BLOCK_SUPERCONTEXT (s)) { - rtx note = emit_note_before (NOTE_INSN_BLOCK_END, insn); + rtx_note *note = emit_note_before (NOTE_INSN_BLOCK_END, insn); NOTE_BLOCK (note) = s; note = emit_note_after (NOTE_INSN_BLOCK_BEG, insn); NOTE_BLOCK (note) = s; diff --git a/gcc/function.h b/gcc/function.h index 0367225..575de1b 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -286,7 +286,7 @@ struct GTY(()) rtl_data { struct frame_space *frame_space_list; /* Place after which to insert the tail_recursion_label if we need one. */ - rtx x_stack_check_probe_note; + rtx_note *x_stack_check_probe_note; /* Location at which to save the argument pointer if it will need to be referenced. There are two cases where this is done: if nonlocal gotos diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index caee1b8..04a3576 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -7549,7 +7549,7 @@ sched_extend_bb (void) /* Don't emit a NOTE if it would end up before a BARRIER. */ && !BARRIER_P (NEXT_INSN (end)))) { - rtx note = emit_note_after (NOTE_INSN_DELETED, end); + rtx_note *note = emit_note_after (NOTE_INSN_DELETED, end); /* Make note appear outside BB. */ set_block_for_insn (note, NULL); SET_BB_END (EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb) = end; diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index e0d5d70..94de021 100644 --- a/gcc/reg-stack.c +++ b/gcc/reg-stack.c @@ -2815,7 +2815,8 @@ compensate_edge (edge e) } else { - rtx seq, after; + rtx_insn *seq; + rtx_note *after; current_block = NULL; start_sequence (); diff --git a/gcc/reload1.c b/gcc/reload1.c index 9daafa4..940fa67 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -4586,7 +4586,8 @@ reload_as_needed (int live_known) #if defined (AUTO_INC_DEC) int i; #endif - rtx x, marker; + rtx x; + rtx_note *marker; memset (spill_reg_rtx, 0, sizeof spill_reg_rtx); memset (spill_reg_store, 0, sizeof spill_reg_store); diff --git a/gcc/rtl.h b/gcc/rtl.h index 51e8a45..cca0e20 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -2371,7 +2371,7 @@ extern rtx emit_debug_insn_before_noloc (rtx, rtx); extern rtx emit_debug_insn_before_setloc (rtx, rtx, int); extern rtx emit_barrier_before (rtx); extern rtx emit_label_before (rtx, rtx); -extern rtx emit_note_before (enum insn_note, rtx); +extern rtx_note *emit_note_before (enum insn_note, rtx); extern rtx emit_insn_after (rtx, rtx); extern rtx emit_insn_after_noloc (rtx, rtx, basic_block); extern rtx emit_insn_after_setloc (rtx, rtx, int); @@ -2386,7 +2386,7 @@ extern rtx emit_debug_insn_after_noloc (rtx, rtx); extern rtx emit_debug_insn_after_setloc (rtx, rtx, int); extern rtx emit_barrier_after (rtx); extern rtx emit_label_after (rtx, rtx); -extern rtx emit_note_after (enum insn_note, rtx); +extern rtx_note *emit_note_after (enum insn_note, rtx); extern rtx emit_insn (rtx); extern rtx emit_debug_insn (rtx); extern rtx emit_jump_insn (rtx); @@ -2394,8 +2394,8 @@ extern rtx emit_call_insn (rtx); extern rtx emit_label (rtx); extern rtx emit_jump_table_data (rtx); extern rtx emit_barrier (void); -extern rtx emit_note (enum insn_note); -extern rtx emit_note_copy (rtx); +extern rtx_note *emit_note (enum insn_note); +extern rtx_note *emit_note_copy (rtx_note *); extern rtx gen_clobber (rtx); extern rtx emit_clobber (rtx); extern rtx gen_use (rtx); diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c index 01e1dd3..d7352b7 100644 --- a/gcc/sel-sched-ir.c +++ b/gcc/sel-sched-ir.c @@ -126,7 +126,7 @@ static struct } nop_pool = { NULL, 0, 0 }; /* The pool for basic block notes. */ -static rtx_vec_t bb_note_pool; +static vec bb_note_pool; /* A NOP pattern used to emit placeholder insns. */ rtx nop_pattern = NULL_RTX; @@ -4981,14 +4981,14 @@ return_bb_to_pool (basic_block bb) } /* Get a bb_note from pool or return NULL_RTX if pool is empty. */ -static rtx +static rtx_note * get_bb_note_from_pool (void) { if (bb_note_pool.is_empty ()) - return NULL_RTX; + return NULL; else { - rtx note = bb_note_pool.pop (); + rtx_note *note = bb_note_pool.pop (); SET_PREV_INSN (note) = NULL_RTX; SET_NEXT_INSN (note) = NULL_RTX; @@ -5346,7 +5346,7 @@ static basic_block sel_create_basic_block (void *headp, void *endp, basic_block after) { basic_block new_bb; - insn_t new_bb_note; + rtx_note *new_bb_note; gcc_assert (flag_sel_sched_pipelining_outer_loops || !last_added_blocks.exists ()); diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c index 9e71165..ed8abdc 100644 --- a/gcc/var-tracking.c +++ b/gcc/var-tracking.c @@ -8588,7 +8588,8 @@ emit_note_insn_var_location (variable_def **varp, emit_note_data *data) rtx insn = data->insn; enum emit_note_where where = data->where; variable_table_type vars = data->vars; - rtx note, note_vl; + rtx_note *note; + rtx note_vl; int i, j, n_var_parts; bool complete; enum var_init_status initialized = VAR_INIT_STATUS_UNINITIALIZED; @@ -9134,7 +9135,8 @@ emit_notes_in_bb (basic_block bb, dataflow_set *set) dataflow_set_clear_at_call (set); emit_notes_for_changes (insn, EMIT_NOTE_AFTER_CALL_INSN, set->vars); { - rtx arguments = mo->u.loc, *p = &arguments, note; + rtx arguments = mo->u.loc, *p = &arguments; + rtx_note *note; while (*p) { XEXP (XEXP (*p, 0), 1)