From bb83aa4befca7648dc4cf75c1fe33130cdfb512d Mon Sep 17 00:00:00 2001
From: Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
Date: Tue, 6 Jun 2006 09:44:17 +0000
Subject: [PATCH] params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change
 default value to 0.

2006-06-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	* params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
	value to 0.
	* doc/invoke.texi (max-sched-extend-regions-iters): Document.
	* config/ia64/ia64.c (params.h): New header.
	(ia64_optimization_options): New function to adjust parameters.
	* config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
	* config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
	* config/ia64/t-ia64 (ia64.o): Add dependence from params.h .

From-SVN: r114425
---
 gcc/ChangeLog                 | 11 +++++++++++
 gcc/config/ia64/ia64-protos.h |  2 ++
 gcc/config/ia64/ia64.c        | 10 ++++++++++
 gcc/config/ia64/ia64.h        |  4 ++++
 gcc/config/ia64/t-ia64        |  2 +-
 gcc/doc/invoke.texi           |  2 +-
 gcc/params.def                |  2 +-
 7 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index db2574eda78f..ce5bda753d27 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2006-06-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+	* params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
+	value to 0.
+	* doc/invoke.texi (max-sched-extend-regions-iters): Document.
+	* config/ia64/ia64.c (params.h): New header.
+	(ia64_optimization_options): New function to adjust parameters.
+	* config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
+	* config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
+	* config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
+
 2006-06-05  Kazu Hirata  <kazu@codesourcery.com>
 
 	* stor-layout.c (debug_rli): Fix a typo in a debug message.
diff --git a/gcc/config/ia64/ia64-protos.h b/gcc/config/ia64/ia64-protos.h
index b05cdab6bf4c..c4bf61d98292 100644
--- a/gcc/config/ia64/ia64-protos.h
+++ b/gcc/config/ia64/ia64-protos.h
@@ -110,3 +110,5 @@ extern enum direction ia64_hpux_function_arg_padding (enum machine_mode, tree);
 extern void ia64_hpux_handle_builtin_pragma (struct cpp_reader *);
 extern void ia64_output_function_profiler (FILE *, int);
 extern void ia64_profile_hook (int);
+
+extern void ia64_optimization_options (int, int);
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 076814ec011a..14e85cae3c7b 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -54,6 +54,7 @@ Boston, MA 02110-1301, USA.  */
 #include "tree-gimple.h"
 #include "intl.h"
 #include "debug.h"
+#include "params.h"
 
 /* This is used for communication between ASM_OUTPUT_LABEL and
    ASM_OUTPUT_LABELREF.  */
@@ -9749,4 +9750,13 @@ ia64_invalid_binary_op (int op ATTRIBUTE_UNUSED, tree type1, tree type2)
   return NULL;
 }
 
+/* Implement overriding of the optimization options.  */
+void
+ia64_optimization_options (int level ATTRIBUTE_UNUSED,
+                           int size ATTRIBUTE_UNUSED)
+{
+  /* Let the scheduler form additional regions.  */
+  set_param_value ("max-sched-extend-regions-iters", 2);
+}
+
 #include "gt-ia64.h"
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index a4e0c7eba2cd..c9bb41716624 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -2043,4 +2043,8 @@ struct machine_function GTY(())
 /* Switch on code for querying unit reservations.  */
 #define CPU_UNITS_QUERY 1
 
+/* Define this to change the optimizations performed by default.  */
+#define OPTIMIZATION_OPTIONS(LEVEL, SIZE) \
+  ia64_optimization_options ((LEVEL), (SIZE))
+
 /* End of ia64.h */
diff --git a/gcc/config/ia64/t-ia64 b/gcc/config/ia64/t-ia64
index e3713f91f23b..60535882bb72 100644
--- a/gcc/config/ia64/t-ia64
+++ b/gcc/config/ia64/t-ia64
@@ -51,4 +51,4 @@ ia64-c.o: $(srcdir)/config/ia64/ia64-c.c $(CONFIG_H) $(SYSTEM_H) \
 # genattrtab generates very long string literals.
 insn-attrtab.o-warn = -Wno-error
 
-ia64.o: debug.h
+ia64.o: debug.h $(PARAMS_H)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index e877d7c37154..7e2f75790264 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -6225,7 +6225,7 @@ for interblock speculative scheduling.  The default value is 40.
 The maximum number of iterations through CFG to extend regions.
 0 - disable region extension,
 N - do at most N iterations.
-The default value is 2.
+The default value is 0.
 
 @item max-sched-insn-conflict-delay
 The maximum conflict delay for an insn to be considered for speculative motion.
diff --git a/gcc/params.def b/gcc/params.def
index e8d861515e56..6d230fc2cfc3 100644
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -502,7 +502,7 @@ DEFPARAM(PARAM_MIN_SPEC_PROB,
 DEFPARAM(PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS,
          "max-sched-extend-regions-iters",
          "The maximum number of iterations through CFG to extend regions",
-         2, 0, 0)
+         0, 0, 0)
 
 DEFPARAM(PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
          "max-sched-insn-conflict-delay",
-- 
GitLab