From c1286e0b87cad2589a09ae0380d969499c29ce43 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Tue, 19 Aug 2014 16:39:52 +0000 Subject: [PATCH] BND_TO scaffolding gcc/ 2014-08-19 David Malcolm * sel-sched-ir.h (BND_TO): insn_t will eventually be an rtx_insn *. To help with transition, for now, convert from an access macro into a pair of functions: BND_TO, returning an rtx_insn *, and... (SET_BND_TO): New function, for use where BND_TO is used as an lvalue. * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to SET_BND_TO. (BND_TO): New function, adding a checked cast. (SET_BND_TO): New function. * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to SET_BND_TO. (compute_av_set_on_boundaries): Likewise. / 2014-08-19 David Malcolm * rtx-classes-status.txt (TODO): Add SET_BND_TO From-SVN: r214170 --- ChangeLog | 4 ++++ gcc/ChangeLog | 18 ++++++++++++++++++ gcc/sel-sched-ir.c | 12 +++++++++++- gcc/sel-sched-ir.h | 3 ++- gcc/sel-sched.c | 4 ++-- rtx-classes-status.txt | 1 + 6 files changed, 38 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index b06346ce702..3265772827c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2014-08-19 David Malcolm + + * rtx-classes-status.txt (TODO): Add SET_BND_TO + 2014-08-19 David Malcolm * rtx-classes-status.txt (TODO): Add SET_BB_NOTE_LIST. diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 01597a4c325..f3aea7a0d44 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,21 @@ +2014-08-19 David Malcolm + + * sel-sched-ir.h (BND_TO): insn_t will eventually be an + rtx_insn *. To help with transition, for now, convert from an + access macro into a pair of functions: BND_TO, returning an + rtx_insn *, and... + (SET_BND_TO): New function, for use where BND_TO is used as an + lvalue. + + * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to + SET_BND_TO. + (BND_TO): New function, adding a checked cast. + (SET_BND_TO): New function. + + * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to + SET_BND_TO. + (compute_av_set_on_boundaries): Likewise. + 2014-08-19 H.J. Lu * config/i386/i386.md (*ctz2_falsedep_1): Don't clear diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c index 91656499a7f..8e257c509a8 100644 --- a/gcc/sel-sched-ir.c +++ b/gcc/sel-sched-ir.c @@ -207,7 +207,7 @@ blist_add (blist_t *lp, insn_t to, ilist_t ptr, deps_t dc) _list_add (lp); bnd = BLIST_BND (*lp); - BND_TO (bnd) = to; + SET_BND_TO (bnd) = to; BND_PTR (bnd) = ptr; BND_AV (bnd) = NULL; BND_AV1 (bnd) = NULL; @@ -6463,4 +6463,14 @@ rtx& SET_BB_NOTE_LIST (basic_block bb) return SEL_REGION_BB_INFO (bb)->note_list; } +rtx_insn *BND_TO (bnd_t bnd) +{ + return safe_as_a (bnd->to); +} + +insn_t& SET_BND_TO (bnd_t bnd) +{ + return bnd->to; +} + #endif diff --git a/gcc/sel-sched-ir.h b/gcc/sel-sched-ir.h index 81accaf6e7c..ab1f42f3a6c 100644 --- a/gcc/sel-sched-ir.h +++ b/gcc/sel-sched-ir.h @@ -233,7 +233,8 @@ struct _bnd deps_t dc; }; typedef struct _bnd *bnd_t; -#define BND_TO(B) ((B)->to) +extern rtx_insn *BND_TO (bnd_t bnd); +extern insn_t& SET_BND_TO (bnd_t bnd); /* PTR stands not for pointer as you might think, but as a Path To Root of the current instruction group from boundary B. */ diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c index 2d9bc81b27a..3248629e89d 100644 --- a/gcc/sel-sched.c +++ b/gcc/sel-sched.c @@ -4954,7 +4954,7 @@ move_cond_jump (rtx insn, bnd_t bnd) /* Jump is moved to the boundary. */ next = PREV_INSN (insn); - BND_TO (bnd) = insn; + SET_BND_TO (bnd) = insn; ft_edge = find_fallthru_edge_from (block_from); block_next = ft_edge->dest; @@ -5095,7 +5095,7 @@ compute_av_set_on_boundaries (fence_t fence, blist_t bnds, av_set_t *av_vliw_p) { gcc_assert (FENCE_INSN (fence) == BND_TO (bnd)); FENCE_INSN (fence) = bnd_to; - BND_TO (bnd) = bnd_to; + SET_BND_TO (bnd) = bnd_to; } av_set_clear (&BND_AV (bnd)); diff --git a/rtx-classes-status.txt b/rtx-classes-status.txt index ea0941a03bd..50daeaca148 100644 --- a/rtx-classes-status.txt +++ b/rtx-classes-status.txt @@ -17,6 +17,7 @@ TODO: "Scaffolding" to be removed * DF_REF_INSN * SET_BB_HEAD, SET_BB_END, SET_BB_HEADER, SET_BB_FOOTER * SET_BB_NOTE_LIST +* SET_BND_TO * SET_DEP_PRO, SET_DEP_CON * SET_NEXT_INSN, SET_PREV_INSN * SET_VINSN_INSN_RTX