do a bit of by-hand CSE
[ghc-hetmet.git] / rts / RtsFlags.c
index b0dd42b..9b33341 100644 (file)
@@ -156,7 +156,6 @@ void initRtsFlagsDefaults(void)
 #ifdef THREADED_RTS
     RtsFlags.ParFlags.nNodes           = 1;
     RtsFlags.ParFlags.migrate           = rtsTrue;
-    RtsFlags.ParFlags.wakeupMigrate     = rtsFalse;
     RtsFlags.ParFlags.parGcEnabled      = 1;
     RtsFlags.ParFlags.parGcGen          = 0;
     RtsFlags.ParFlags.parGcLoadBalancingEnabled = rtsTrue;
@@ -323,7 +322,6 @@ usage_text[] = {
 "            (default: 1, -qb alone turns off load-balancing)",
 "  -qa       Use the OS to set thread affinity (experimental)",
 "  -qm       Don't automatically migrate threads between CPUs",
-"  -qw       Migrate a thread to the current CPU when it is woken up",
 #endif
 "  --install-signal-handlers=<yes|no>",
 "            Install signal handlers (default: yes)",
@@ -454,16 +452,9 @@ setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[])
            mode = PGM;
        }
        else if (mode == RTS && *rts_argc < MAX_RTS_ARGS-1) {
-           if ((rtsOptsEnabled == rtsOptsAll) ||
-            strequal(argv[arg], "--info")) {
             rts_argv[(*rts_argc)++] = argv[arg];
         }
-        else {
-            errorBelch("Most RTS options are disabled. Link with -rtsopts to enable them.");
-            stg_exit(EXIT_FAILURE);
-        }
-       }
-       else if (mode == PGM) {
+        else if (mode == PGM) {
            argv[(*argc)++] = argv[arg];
        }
        else {
@@ -485,7 +476,25 @@ setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[])
            error = rtsTrue;
 
         } else {
-           switch(rts_argv[arg][1]) {
+
+            switch(rts_argv[arg][1]) {
+            case '-':
+                if (strequal("info", &rts_argv[arg][2])) {
+                    printRtsInfo();
+                    stg_exit(0);
+                }
+                break;
+            default:
+                break;
+            }
+
+            if (rtsOptsEnabled != rtsOptsAll)
+            {
+                errorBelch("Most RTS options are disabled. Link with -rtsopts to enable them.");
+                stg_exit(EXIT_FAILURE);
+            }
+
+            switch(rts_argv[arg][1]) {
 
              /* process: general args, then PROFILING-only ones, then
                 CONCURRENT-only, TICKY-only (same order as defined in
@@ -1056,10 +1065,10 @@ error = rtsTrue;
                    case 'm':
                        RtsFlags.ParFlags.migrate = rtsFalse;
                        break;
-                   case 'w':
-                       RtsFlags.ParFlags.wakeupMigrate = rtsTrue;
-                       break;
-                   default:
+                    case 'w':
+                        // -qw was removed; accepted for backwards compat
+                        break;
+                    default:
                        errorBelch("unknown RTS option: %s",rts_argv[arg]);
                        error = rtsTrue;
                        break;