[ARM] Switch to default sched pressure algorithm
authorWilco Dijkstra <wdijkstr@arm.com>
Mon, 14 Oct 2019 12:21:14 +0000 (12:21 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Mon, 14 Oct 2019 12:21:14 +0000 (12:21 +0000)
Currently the Arm backend selects the alternative sched pressure algorithm.
The issue is that this doesn't take register pressure into account, and so
it causes significant additional spilling on Arm where there are only 14
allocatable registers.  Building SPEC2006 showed significant codesize gains
with the default pressure algorithm, so switch back to that.  PR77308 shows
~800 fewer instructions.

SPECINT2006 is ~0.6% faster on Cortex-A57 together with the other DImode
patches. Overall SPEC codesize is 1.1% smaller.

    gcc/
* config/arm/arm.c (arm_option_override): Don't override sched
pressure algorithm.

From-SVN: r276960

gcc/ChangeLog
gcc/config/arm/arm.c

index c2cbd4274ca1fe47748fbf5919d1ee0ca4be217d..f07a0e61e6be6fbcb6983a3b8b6a8d617c5dad1a 100644 (file)
@@ -1,3 +1,8 @@
+2019-10-14  Wilco Dijkstra  <wdijkstr@arm.com>
+
+       * config/arm/arm.c (arm_option_override): Don't override sched
+       pressure algorithm.
+
 2019-10-14  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/92069
index 39e1a1ef9a2835dddb67eefe5939873fcf84172d..394b1dd1902b21006a512c52f71d13c422be4a59 100644 (file)
@@ -3555,11 +3555,6 @@ arm_option_override (void)
                           global_options.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,
-                        global_options.x_param_values,
-                        global_options_set.x_param_values);
-
   /* Look through ready list and all of queue for instructions
      relevant for L2 auto-prefetcher.  */
   int param_sched_autopref_queue_depth;