diff options
Diffstat (limited to 'gcc/sel-sched.c')
-rw-r--r-- | gcc/sel-sched.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c index 1ec2eeb292d..1b8f47187a9 100644 --- a/gcc/sel-sched.c +++ b/gcc/sel-sched.c @@ -588,6 +588,7 @@ advance_one_cycle (fence_t fence) FENCE_ISSUED_INSNS (fence) = 0; FENCE_STARTS_CYCLE_P (fence) = 1; can_issue_more = issue_rate; + FENCE_ISSUE_MORE (fence) = can_issue_more; for (i = 0; VEC_iterate (rtx, FENCE_EXECUTING_INSNS (fence), i, insn); ) { @@ -3301,8 +3302,8 @@ sel_target_adjust_priority (expr_t expr) gcc_assert (EXPR_PRIORITY_ADJ (expr) >= 0); - if (sched_verbose >= 2) - sel_print ("sel_target_adjust_priority: insn %d, %d +%d = %d.\n", + if (sched_verbose >= 4) + sel_print ("sel_target_adjust_priority: insn %d, %d+%d = %d.\n", INSN_UID (EXPR_INSN_RTX (expr)), EXPR_PRIORITY (expr), EXPR_PRIORITY_ADJ (expr), new_priority); @@ -4103,7 +4104,7 @@ invoke_reorder_hooks (fence_t fence) ran_hook = true; } else - issue_more = issue_rate; + issue_more = FENCE_ISSUE_MORE (fence); /* Ensure that ready list and vec_av_set are in line with each other, i.e. vec_av_set[i] == ready_element (&ready, i). */ @@ -4294,8 +4295,6 @@ get_expr_cost (expr_t expr, fence_t fence) if (recog_memoized (insn) < 0) { if (!FENCE_STARTS_CYCLE_P (fence) - /* FIXME: Is this condition necessary? */ - && VINSN_UNIQUE_P (EXPR_VINSN (expr)) && INSN_ASM_P (insn)) /* This is asm insn which is tryed to be issued on the cycle not first. Issue it on the next cycle. */ @@ -5283,6 +5282,7 @@ advance_state_on_fence (fence_t fence, insn_t insn) debug_state (FENCE_STATE (fence)); if (!DEBUG_INSN_P (insn)) FENCE_STARTS_CYCLE_P (fence) = 0; + FENCE_ISSUE_MORE (fence) = can_issue_more; return asm_p; } @@ -5480,6 +5480,7 @@ fill_insns (fence_t fence, int seqno, ilist_t **scheduled_insns_tailpp) blist_add (&bnds, insn, NULL, FENCE_DC (fence)); bnds_tailp = &BLIST_NEXT (bnds); set_target_context (FENCE_TC (fence)); + can_issue_more = FENCE_ISSUE_MORE (fence); target_bb = INSN_BB (insn); /* Do while we can add any operation to the current group. */ |