diff options
author | Adam Nemet <anemet@caviumnetworks.com> | 2008-09-18 05:24:57 +0000 |
---|---|---|
committer | Adam Nemet <nemet@gcc.gnu.org> | 2008-09-18 05:24:57 +0000 |
commit | 078a70a15ed75e2e9ed4c4d09450b2522e82e6ae (patch) | |
tree | 388b3c690b3ecfc5059bdde479615be0a23582dd /gcc/haifa-sched.c | |
parent | 38c4df0b852230edc05c20b000bec61819735ecf (diff) | |
download | gcc-078a70a15ed75e2e9ed4c4d09450b2522e82e6ae.tar.gz |
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
Diffstat (limited to 'gcc/haifa-sched.c')
-rw-r--r-- | gcc/haifa-sched.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index ba604371745..46640c4a645 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -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 |