Set default sched pressure algorithm
authorWilco Dijkstra <wdijkstr@arm.com>
Fri, 3 Nov 2017 15:20:53 +0000 (15:20 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Fri, 3 Nov 2017 15:20:53 +0000 (15:20 +0000)
The Arm backend sets the default sched-pressure algorithm to SCHED_PRESSURE_MODEL.
Benchmarking on AArch64 shows this speeds up floating point performance on SPEC -
eg. CactusBSSN improves by ~16%.  The gains are mostly due to less spilling,
so enable this on AArch64 by default.

    gcc/
* config/aarch64/aarch64.c (aarch64_override_options_internal):
Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL.

From-SVN: r254378

gcc/ChangeLog
gcc/config/aarch64/aarch64.c

index bbfdfe2f81843c8dd2e9df9f8d0e7f250770eb2c..26cf22cca5f0316c6e25980751fbcf74d0083236 100644 (file)
@@ -1,3 +1,8 @@
+2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_override_options_internal):
+       Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL.
+
 2017-11-03  Kito Cheng  <kito.cheng@gmail.com>
 
        * config/riscv/riscv.c (riscv_legitimize_move): Handle
index eb2d5f8ad456ad57b6a9032bdf6ebbac84965679..1e12645cdd2a34a8e5dc031260cadfbd51fbc204 100644 (file)
@@ -9110,6 +9110,11 @@ aarch64_override_options_internal (struct gcc_options *opts)
                           opts->x_param_values,
                           global_options_set.x_param_values);
 
+  /* Use the alternative scheduling-pressure algorithm by default.  */
+  maybe_set_param_value (PARAM_SCHED_PRESSURE_ALGORITHM, SCHED_PRESSURE_MODEL,
+                        opts->x_param_values,
+                        global_options_set.x_param_values);
+
   /* Enable sw prefetching at specified optimization level for
      CPUS that have prefetch.  Lower optimization level threshold by 1
      when profiling is enabled.  */