From: Jeff Law Date: Wed, 29 May 2002 19:55:34 +0000 (-0600) Subject: Revert this patch: X-Git-Tag: releases/gcc-3.3.0~4726 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e7206fbc5c2615615180bf23d52727994d6b4a63;p=thirdparty%2Fgcc.git Revert this patch: - * haifa-sched.c (schedule_block): Do not count USE and CLOBBER - insns against the issue rate. - - * sched-deps.c (sched_create_groups_for_libcalls): New function. - (sched_analyze): Use it. From-SVN: r54015 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8b9cce85f989..11e769a729d1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -63,17 +63,6 @@ (SUBTARGET_EXTRA_SPECS): Define. (CPP_SPEC): Remove. -2002-05-29 Dale Johannesen - Michael Matz - David Edelsohn - Jeff Law - - * haifa-sched.c (schedule_block): Do not count USE and CLOBBER - insns against the issue rate. - - * sched-deps.c (sched_create_groups_for_libcalls): New function. - (sched_analyze): Use it. - 2002-05-29 Chris Lattner * ssa.c (rename_insn_1): Rename uses of undefined registers to diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index a03b9b346b48..63a31352a5b7 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -2179,10 +2179,7 @@ schedule_block (b, rgn_n_insns) can_issue_more = (*targetm.sched.variable_issue) (sched_dump, sched_verbose, insn, can_issue_more); - /* A naked CLOBBER or USE generates no instruction, so do - not count them against the issue rate. */ - else if (GET_CODE (PATTERN (insn)) != USE - && GET_CODE (PATTERN (insn)) != CLOBBER) + else can_issue_more--; schedule_insn (insn, &ready, clock_var); diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 715463547770..0afb21bcf6b6 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -88,7 +88,6 @@ static void flush_pending_lists PARAMS ((struct deps *, rtx, int, int)); static void sched_analyze_1 PARAMS ((struct deps *, rtx, rtx)); static void sched_analyze_2 PARAMS ((struct deps *, rtx, rtx)); static void sched_analyze_insn PARAMS ((struct deps *, rtx, rtx, rtx)); -static void sched_create_groups_for_libcalls PARAMS ((rtx, rtx)); static rtx group_leader PARAMS ((rtx)); static rtx get_condition PARAMS ((rtx)); @@ -1211,57 +1210,6 @@ sched_analyze_insn (deps, x, insn, loop_notes) } } -/* Find any libcall sequences between HEAD and TAIL inclusive; set - SCHED_GROUP_P appropriately for such sequences. */ - -static void -sched_create_groups_for_libcalls (head, tail) - rtx head, tail; -{ - rtx insn; - int tail_seen_p = 0; - - for (insn = head;; insn = NEXT_INSN (insn)) - { - rtx link, end_seq, set, r0, note; - if (INSN_P (insn) && GET_CODE (PATTERN (insn)) == CLOBBER - && (r0 = XEXP (PATTERN (insn), 0), GET_CODE (r0) == REG) - && (link = find_reg_note (insn, REG_LIBCALL, NULL_RTX)) != 0 - && (end_seq = XEXP (link, 0)) != 0 - && INSN_P (end_seq) - && (set = single_set (end_seq)) != 0 - && SET_DEST (set) == r0 && SET_SRC (set) == r0 - && (note = find_reg_note (end_seq, REG_EQUAL, NULL_RTX)) != 0) - { - /* We found a libcall block between insn and end_seq. - The inner insns should be scheduled in a block. */ - rtx inner; - /* Paranoia. */ - if (insn == tail) - tail_seen_p = 1; - /* We don't want to set this flag on the initial clobber, because - the semantic of SCHED_GROUP_P is to make insn be scheduled - together with the previous insn. */ - for (inner = NEXT_INSN (insn); inner; inner = NEXT_INSN (inner)) - { - if (INSN_P (inner)) - set_sched_group_p (inner); - /* Paranoia. */ - if (inner == tail) - tail_seen_p = 1; - if (inner == end_seq) - break; - } - /* We should be able to skip the whole lib-call block. - Remember that one NEXT_INSN is done in the loop-iteration. */ - insn = end_seq; - } - if (insn == tail || tail_seen_p) - break; - } - return; -} - /* Analyze every insn between HEAD and TAIL inclusive, creating LOG_LINKS for every dependency. */ @@ -1409,10 +1357,6 @@ sched_analyze (deps, head, tail) { if (current_sched_info->use_cselib) cselib_finish (); - - if (! reload_completed) - sched_create_groups_for_libcalls (head, tail); - return; } }