From patchwork Thu Mar 24 13:14:53 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bernd Schmidt X-Patchwork-Id: 88194 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id B7BEDB6F83 for ; Fri, 25 Mar 2011 00:16:06 +1100 (EST) Received: (qmail 10032 invoked by alias); 24 Mar 2011 13:16:04 -0000 Received: (qmail 10024 invoked by uid 22791); 24 Mar 2011 13:16:04 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL, BAYES_00, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 24 Mar 2011 13:15:59 +0000 Received: (qmail 31374 invoked from network); 24 Mar 2011 13:15:58 -0000 Received: from unknown (HELO ?84.152.193.230?) (bernds@127.0.0.2) by mail.codesourcery.com with ESMTPA; 24 Mar 2011 13:15:58 -0000 Message-ID: <4D8B43CD.3010101@codesourcery.com> Date: Thu, 24 Mar 2011 14:14:53 +0100 From: Bernd Schmidt User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.15) Gecko/20110309 Lightning/1.0b3pre Thunderbird/3.1.9 MIME-Version: 1.0 To: GCC Patches Subject: Scheduler cleanups, 4/N Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org We have a mechanism to prevent the scheduler from touching certain blocks; this is used by modulo scheduling. sched-ebb does not honor this flag currently; this patch fixes it. Bootstrapped and tested on i686-linux (pointlessly... but it's also used in our local tree for a new target, TI C6X). Bernd * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE_FLAG. Index: gcc/sched-ebb.c =================================================================== --- gcc/sched-ebb.c.orig +++ gcc/sched-ebb.c @@ -585,6 +585,9 @@ schedule_ebbs (void) { rtx head = BB_HEAD (bb); + if (bb->flags & BB_DISABLE_SCHEDULE) + continue; + for (;;) { edge e; @@ -597,6 +600,8 @@ schedule_ebbs (void) break; if (e->probability <= probability_cutoff) break; + if (e->dest->flags & BB_DISABLE_SCHEDULE) + break; bb = bb->next_bb; }