===================================================================
@@ -1,5 +1,9 @@
2014-08-19 David Malcolm <dmalcolm@redhat.com>
+ * rtx-classes-status.txt (TODO): Add SET_DEP_PRO, SET_DEP_CON.
+
+2014-08-19 David Malcolm <dmalcolm@redhat.com>
+
* rtx-classes-status.txt (TODO): Add DF_REF_INSN.
2014-08-19 Joost VandeVondele <vondele@gcc.gnu.org>
===================================================================
@@ -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
===================================================================
@@ -1,3 +1,23 @@
+2014-08-19 David Malcolm <dmalcolm@redhat.com>
+
+ * 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 <yselkowi@redhat.com>
* config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
===================================================================
@@ -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);
}
}
===================================================================
@@ -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 <rtx_insn *> (dep->pro);
+}
+
+rtx_insn *DEP_CON (dep_t dep)
+{
+ return safe_as_a <rtx_insn *> (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 */
===================================================================
@@ -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)