Index: ChangeLog =================================================================== --- ChangeLog (revision 214163) +++ ChangeLog (revision 214164) @@ -1,5 +1,9 @@ 2014-08-19 David Malcolm + * rtx-classes-status.txt (TODO): Add SET_DEP_PRO, SET_DEP_CON. + +2014-08-19 David Malcolm + * rtx-classes-status.txt (TODO): Add DF_REF_INSN. 2014-08-19 Joost VandeVondele Index: rtx-classes-status.txt =================================================================== --- rtx-classes-status.txt (revision 214163) +++ rtx-classes-status.txt (revision 214164) @@ -16,4 +16,5 @@ ================================= * DF_REF_INSN * SET_BB_HEAD, SET_BB_END, SET_BB_HEADER, SET_BB_FOOTER +* SET_DEP_PRO, SET_DEP_CON * SET_NEXT_INSN, SET_PREV_INSN Index: gcc/ChangeLog =================================================================== --- gcc/ChangeLog (revision 214163) +++ gcc/ChangeLog (revision 214164) @@ -1,3 +1,23 @@ +2014-08-19 David Malcolm + + * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will + eventually be rtx_insn *, but to help with transition, for now, + convert from an access macro into a pair of functions: DEP_PRO + returning an rtx_insn * and... + (SET_DEP_PRO): New function, for use where DEP_PRO is used as an + lvalue, returning an rtx&. + (DEP_CON): Analogous changes to DEP_PRO above. + (SET_DEP_CON): Likewise. + + * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as + an lvalue to SET_DEP_CON. + * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON. + (sd_copy_back_deps): Likewise for DEP_CON. + (DEP_PRO): New function, adding a checked cast for now. + (DEP_CON): Likewise. + (SET_DEP_PRO): New function. + (SET_DEP_CON): Likewise. + 2014-08-19 Yaakov Selkowitz * config.gcc (*-*-cygwin*): Use __cxa_atexit by default. Index: gcc/haifa-sched.c =================================================================== --- gcc/haifa-sched.c (revision 214163) +++ gcc/haifa-sched.c (revision 214164) @@ -7947,7 +7947,7 @@ if (rec != EXIT_BLOCK_PTR_FOR_FN (cfun)) { - DEP_CON (new_dep) = twin; + SET_DEP_CON (new_dep) = twin; sd_add_dep (new_dep, false); } } Index: gcc/sched-deps.c =================================================================== --- gcc/sched-deps.c (revision 214163) +++ gcc/sched-deps.c (revision 214164) @@ -103,8 +103,8 @@ void init_dep_1 (dep_t dep, rtx pro, rtx con, enum reg_note type, ds_t ds) { - DEP_PRO (dep) = pro; - DEP_CON (dep) = con; + SET_DEP_PRO (dep) = pro; + SET_DEP_CON (dep) = con; DEP_TYPE (dep) = type; DEP_STATUS (dep) = ds; DEP_COST (dep) = UNKNOWN_DEP_COST; @@ -1416,7 +1416,7 @@ dep_def _new_dep, *new_dep = &_new_dep; copy_dep (new_dep, dep); - DEP_CON (new_dep) = to; + SET_DEP_CON (new_dep) = to; sd_add_dep (new_dep, resolved_p); } } @@ -4915,4 +4915,24 @@ success_in_block); } +rtx_insn *DEP_PRO (dep_t dep) +{ + return safe_as_a (dep->pro); +} + +rtx_insn *DEP_CON (dep_t dep) +{ + return safe_as_a (dep->con); +} + +rtx& SET_DEP_PRO (dep_t dep) +{ + return dep->pro; +} + +rtx& SET_DEP_CON (dep_t dep) +{ + return dep->con; +} + #endif /* INSN_SCHEDULING */ Index: gcc/sched-int.h =================================================================== --- gcc/sched-int.h (revision 214163) +++ gcc/sched-int.h (revision 214164) @@ -250,8 +250,10 @@ typedef struct _dep dep_def; typedef dep_def *dep_t; -#define DEP_PRO(D) ((D)->pro) -#define DEP_CON(D) ((D)->con) +extern rtx_insn *DEP_PRO (dep_t dep); +extern rtx_insn *DEP_CON (dep_t dep); +extern rtx& SET_DEP_PRO (dep_t dep); +extern rtx& SET_DEP_CON (dep_t dep); #define DEP_TYPE(D) ((D)->type) #define DEP_STATUS(D) ((D)->status) #define DEP_COST(D) ((D)->cost)