From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8515 invoked by alias); 12 Aug 2014 21:15:30 -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 8493 invoked by uid 89); 12 Aug 2014 21:15:28 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 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; Tue, 12 Aug 2014 21:15:25 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s7CLFNt4008193 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 12 Aug 2014 17:15:24 -0400 Received: from stumpy.slc.redhat.com (ovpn-113-24.phx2.redhat.com [10.3.113.24]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s7CLFNl7015350; Tue, 12 Aug 2014 17:15:23 -0400 Message-ID: <53EA83EA.5050408@redhat.com> Date: Tue, 12 Aug 2014 21:15:00 -0000 From: Jeff Law User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.7.0 MIME-Version: 1.0 To: David Malcolm , gcc-patches@gcc.gnu.org Subject: Re: [PATCH 008/236] Split BB_HEAD et al into BB_HEAD/SET_BB_HEAD variants References: <1407345815-14551-1-git-send-email-dmalcolm@redhat.com> <1407345815-14551-9-git-send-email-dmalcolm@redhat.com> In-Reply-To: <1407345815-14551-9-git-send-email-dmalcolm@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2014-08/txt/msg01210.txt.bz2 On 08/06/14 11:19, David Malcolm wrote: > This is an enabling patch, splitting existing macros in two, covering > the rvalue and lvalue uses separately. > > Followup patches will replace these with functions, and gradually convert > the types from rtx to rtx_insn *, but we need to do this separately for > the lvalue vs rvalue use-cases, hence this patch. > > The plan is to eventually eliminate the split in a further followup patch, > and convert them back to macros, where the underlying fields are of type > rtx_insn *. > > gcc/ > * basic-block.h (BB_HEAD): Split macro in two: the existing one, > for rvalues, and... > (SET_BB_HEAD): New macro, for use as a lvalue. > (BB_END, SET_BB_END): Likewise. > (BB_HEADER, SET_BB_HEADER): Likewise. > (BB_FOOTER, SET_BB_FOOTER): Likewise. > > * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use > of BB_* macros into SET_BB_* macros. > (fix_crossing_unconditional_branches): Likewise. > * caller-save.c (save_call_clobbered_regs): Likewise. > (insert_one_insn): Likewise. > * cfgbuild.c (find_bb_boundaries): Likewise. > * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise. > (outgoing_edges_match): Likewise. > (try_optimize_cfg): Likewise. > * cfgexpand.c (expand_gimple_cond): Likewise. > (expand_gimple_tailcall): Likewise. > (expand_gimple_basic_block): Likewise. > (construct_exit_block): Likewise. > * cfgrtl.c (delete_insn): Likewise. > (create_basic_block_structure): Likewise. > (rtl_delete_block): Likewise. > (rtl_split_block): Likewise. > (emit_nop_for_unique_locus_between): Likewise. > (rtl_merge_blocks): Likewise. > (block_label): Likewise. > (try_redirect_by_replacing_jump): Likewise. > (emit_barrier_after_bb): Likewise. > (fixup_abnormal_edges): Likewise. > (record_effective_endpoints): Likewise. > (relink_block_chain): Likewise. > (fixup_reorder_chain): Likewise. > (fixup_fallthru_exit_predecessor): Likewise. > (cfg_layout_duplicate_bb): Likewise. > (cfg_layout_split_block): Likewise. > (cfg_layout_delete_block): Likewise. > (cfg_layout_merge_blocks): Likewise. > * combine.c (update_cfg_for_uncondjump): Likewise. > * emit-rtl.c (add_insn_after): Likewise. > (remove_insn): Likewise. > (reorder_insns): Likewise. > (emit_insn_after_1): Likewise. > * haifa-sched.c (get_ebb_head_tail): Likewise. > (restore_other_notes): Likewise. > (move_insn): Likewise. > (sched_extend_bb): Likewise. > (fix_jump_move): Likewise. > * ifcvt.c (noce_process_if_block): Likewise. > (dead_or_predicable): Likewise. > * ira.c (update_equiv_regs): Likewise. > * reg-stack.c (change_stack): Likewise. > * sel-sched-ir.c (sel_move_insn): Likewise. > * sel-sched.c (move_nop_to_previous_block): Likewise. > > * config/c6x/c6x.c (hwloop_optimize): Likewise. > * config/ia64/ia64.c (emit_predicate_relation_info): Likewise. > > / > * rtx-classes-status.txt (TODO): Add SET_BB_HEAD, SET_BB_END, > SET_BB_HEADER, SET_BB_FOOTER OK. For those watching at home, the scaffolding gets removed in patches 170 and 178 and we return to using BB_HEAD, BB_END, etc without a separate one for rvalues vs lvalues. Obviously as the bits stage in there may be a window where folks will have to deal with the split, but hopefully that window will be quite short. While I'd like to avoid that, I fear we'll have David spinning his wheels to get the patch series to a point where it can all go in at once. Jeff