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.

OK for commit?

2017-11-02  Wilco Dijkstra  <wdijk...@arm.com>

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

--
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 
34456e96497ac7b6d2f9931187ff05619e1934a4..750b0bc29c0963742d5d7bb4ae4619d93bec3e4a
 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -9276,6 +9276,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.  */

Reply via email to