mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-19 22:41:28 +08:00
haifa-sched.c (dep_cost_1): Recognize the producer even if the consumer is an asm.
* haifa-sched.c (dep_cost_1): Recognize the producer even if the consumer is an asm. Add comment why this is important. (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 || recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it. From-SVN: r140444
This commit is contained in:
parent
38c4df0b85
commit
078a70a15e
@ -1,3 +1,11 @@
|
||||
2008-09-17 Adam Nemet <anemet@caviumnetworks.com>
|
||||
|
||||
* haifa-sched.c (dep_cost_1): Recognize the producer even if the
|
||||
consumer is an asm. Add comment why this is important.
|
||||
(choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
|
||||
recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around
|
||||
it.
|
||||
|
||||
2008-09-17 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* expr.c (emit_group_store): Do not shift before moving via a
|
||||
|
@ -646,10 +646,12 @@ insn_cost (rtx insn)
|
||||
|
||||
/* Compute cost of dependence LINK.
|
||||
This is the number of cycles between instruction issue and
|
||||
instruction results. */
|
||||
instruction results.
|
||||
??? We also use this function to call recog_memoized on all insns. */
|
||||
int
|
||||
dep_cost_1 (dep_t link, dw_t dw)
|
||||
{
|
||||
rtx insn = DEP_PRO (link);
|
||||
rtx used = DEP_CON (link);
|
||||
int cost;
|
||||
|
||||
@ -657,10 +659,12 @@ dep_cost_1 (dep_t link, dw_t dw)
|
||||
This allows the computation of a function's result and parameter
|
||||
values to overlap the return and call. */
|
||||
if (recog_memoized (used) < 0)
|
||||
cost = 0;
|
||||
{
|
||||
cost = 0;
|
||||
recog_memoized (insn);
|
||||
}
|
||||
else
|
||||
{
|
||||
rtx insn = DEP_PRO (link);
|
||||
enum reg_note dep_type = DEP_TYPE (link);
|
||||
|
||||
cost = insn_cost (insn);
|
||||
@ -2312,8 +2316,14 @@ choose_ready (struct ready_list *ready, rtx *insn_ptr)
|
||||
{
|
||||
insn = ready_element (ready, i);
|
||||
|
||||
#ifdef ENABLE_CHECKING
|
||||
/* If this insn is recognizable we should have already
|
||||
recognized it earlier.
|
||||
??? Not very clear where this is supposed to be done.
|
||||
See dep_cost_1. */
|
||||
gcc_assert (INSN_CODE (insn) >= 0
|
||||
|| recog_memoized (insn) < 0);
|
||||
#endif
|
||||
|
||||
ready_try [i]
|
||||
= (/* INSN_CODE check can be omitted here as it is also done later
|
||||
|
Loading…
x
Reference in New Issue
Block a user