Commit a62de84f by Joern Rennecke

(ADJUST_COSTS): Define.

From-SVN: r13825
parent 86144b75
...@@ -1730,7 +1730,36 @@ extern int pragma_interrupt; ...@@ -1730,7 +1730,36 @@ extern int pragma_interrupt;
clear if this would give better code. If implemented, should check for clear if this would give better code. If implemented, should check for
compatibility problems. */ compatibility problems. */
/* ??? Define ADJUST_COSTS? */ /* A C statement (sans semicolon) to update the integer variable COST
based on the relationship between INSN that is dependent on
DEP_INSN through the dependence LINK. The default is to make no
adjustment to COST. This can be used for example to specify to
the scheduler that an output- or anti-dependence does not incur
the same cost as a data-dependence. */
/* ??? Should anticipate the effect of delayed branch scheduling
and arrange for a second instruction to be put between the
load of the function's address and the call. */
#define ADJUST_COST(insn,link,dep_insn,cost) \
if (GET_CODE(insn) == CALL_INSN) \
{ \
/* The only input for a call that is timing-critical is the \
function's address. */ \
rtx call = PATTERN (insn); \
\
if (GET_CODE (call) == PARALLEL) \
call = XVECEXP (call, 0 ,0); \
if (GET_CODE (call) == SET) \
call = SET_SRC (call); \
if (GET_CODE (call) == CALL && GET_CODE (XEXP (call, 0)) == MEM) \
{ \
rtx set = single_set (dep_insn); \
\
if (set && ! rtx_equal_p (SET_DEST (set), XEXP (XEXP (call, 0), 0)))\
(cost) = 0; \
} \
}
/* Since the SH architecture lacks negative address offsets, /* Since the SH architecture lacks negative address offsets,
the givs should be sorted smallest to largest so combine_givs the givs should be sorted smallest to largest so combine_givs
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment