Patchwork Scheduler cleanups, 4/N

login
register
mail settings
Submitter Bernd Schmidt
Date March 24, 2011, 1:14 p.m.
Message ID <4D8B43CD.3010101@codesourcery.com>
Download mbox | patch
Permalink /patch/88194/
State New
Headers show

Comments

Bernd Schmidt - March 24, 2011, 1:14 p.m.
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.
Jeff Law - March 25, 2011, 6:31 p.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 03/24/11 07:14, Bernd Schmidt wrote:
> 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).
OK.
Jeff
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJNjN+NAAoJEBRtltQi2kC7msMIAIARUmWJGlRbdnhTVtHw9svk
mNVQw5Se1BCzjDjERcuH8nZ2J0RcejNQWSCfYOBjGW3u5bzqYNPsjFkMj4TXCH3N
az7EAlj6uw6IcqnOL2HsoH89zMDNp5bUanKmlUDznTyaDAutYL+LAp3if5EbBFn8
C6LQHJDlnmYYmZohW3aYyJ+mGKhA3gODFJsWt7uWKuPEjedHY8Jztuc72gSavHo2
qxPze59QyHkC9VaTPdt7wYgsA2UtNmbNIfZIVluutXBKQGXC5xEHszbS16OvcK/v
RS9dQVpNZlfQVz+V6iLywET0/OM9leOHQRTAGwx4g9ffLuBOiAXrjW2Dbj6gclg=
=NmoH
-----END PGP SIGNATURE-----

Patch

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;
 	}