aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r--gcc/rtl.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/gcc/rtl.h b/gcc/rtl.h
index b40ac72..3a0a019 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -110,9 +110,11 @@ struct rtx_def
ENUM_BITFIELD(machine_mode) mode : 8;
/* 1 in an INSN if it can alter flow of control
- within this function. */
+ within this function.
+ LINK_COST_ZERO in an INSN_LIST. */
unsigned int jump : 1;
- /* 1 in an INSN if it can call another function. */
+ /* 1 in an INSN if it can call another function.
+ LINK_COST_FREE in an INSN_LIST. */
unsigned int call : 1;
/* 1 in a REG if value of this expression will never change during
the current function, even though it is not manifestly constant.
@@ -897,6 +899,16 @@ extern unsigned int subreg_regno PARAMS ((rtx));
with the preceding insn. */
#define SCHED_GROUP_P(INSN) ((INSN)->in_struct)
+/* During sched, for the LOG_LINKS of an insn, these cache the adjusted
+ cost of the dependence link. The cost of executing an instruction
+ may vary based on how the results are used. LINK_COST_ZERO is 1 when
+ the cost through the link varies and is unchanged (i.e., the link has
+ zero additional cost). LINK_COST_FREE is 1 when the cost through the
+ link is zero (i.e., the link makes the cost free). In other cases,
+ the adjustment to the cost is recomputed each time it is needed. */
+#define LINK_COST_ZERO(X) ((X)->jump)
+#define LINK_COST_FREE(X) ((X)->call)
+
/* For a SET rtx, SET_DEST is the place that is set
and SET_SRC is the value it is set to. */
#define SET_DEST(RTX) XC2EXP(RTX, 0, SET, CLOBBER)