public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [Patch ARM] Turn on sched-pressure by default on the ARM architecture.
@ 2012-07-17  9:20 Ramana Radhakrishnan
  0 siblings, 0 replies; only message in thread
From: Ramana Radhakrishnan @ 2012-07-17  9:20 UTC (permalink / raw)
  To: gcc-patches; +Cc: Patch Tracking, Ulrich Weigand

[-- Attachment #1: Type: text/plain, Size: 1017 bytes --]

Hi,

After benchmarking on a number of cores and measuring good
improvements across the board on the Cortex-A9 ,  on some cores
(Cortex M) we saw no great improvements but no regressions either,  we
should just turn this on by default for the ARM port as in general it
appears to give us a good win. Theoretically there's no reason why
this will not benefit us by default on single issue machines as it
prevents the first sched pass from having excessive register pressure.

I have turned this on by default for O1_PLUS level of optimization so
that if someone uses -O1 -fschedule-insns they get the benefit of
having sched-pressure on by default.

Applied.

Thanks,
Ramana

2012-07-17  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
	    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* common/config/arm/arm-common.c (arm_option_optimization_table):
	Enable -fsched-pressure by default while optimizing.
	* config/arm/arm.c (arm_option_override): Use the alternate scheduler
	pressure algorithm by default.

[-- Attachment #2: sched-pressure-turnon.txt --]
[-- Type: text/plain, Size: 1199 bytes --]

Index: gcc/common/config/arm/arm-common.c
===================================================================
--- gcc/common/config/arm/arm-common.c	(revision 189562)
+++ gcc/common/config/arm/arm-common.c	(working copy)
@@ -35,6 +35,7 @@
     /* Enable section anchors by default at -O1 or higher.  */
     { OPT_LEVELS_1_PLUS, OPT_fsection_anchors, NULL, 1 },
     { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 },
+    { OPT_LEVELS_1_PLUS, OPT_fsched_pressure, NULL, 1 },
     { OPT_LEVELS_NONE, 0, NULL, 0 }
   };
 
Index: gcc/config/arm/arm.c
===================================================================
--- gcc/config/arm/arm.c	(revision 189562)
+++ gcc/config/arm/arm.c	(working copy)
@@ -2009,6 +2009,11 @@
                            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, 2,
+                         global_options.x_param_values,
+                         global_options_set.x_param_values);
+
   /* Register global variables with the garbage collector.  */
   arm_add_gc_roots ();
 }

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2012-07-17  9:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-17  9:20 [Patch ARM] Turn on sched-pressure by default on the ARM architecture Ramana Radhakrishnan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).