From 740f35a0a1971dc4a0a5ffaaf62ec5859201abef Mon Sep 17 00:00:00 2001 From: Daniel Berlin Date: Wed, 27 Jun 2001 14:35:24 +0000 Subject: [PATCH] invoke.texi: Add description of max-gcse-passes param. 2001-06-26 Daniel Berlin * doc/invoke.texi: Add description of max-gcse-passes param. * gcse.c (gcse_main): Use MAX_GCSE_PASSES instead of MAX_PASSES. (MAX_PASSES): Remove now unneeded macro. * params.h (MAX_GCSE_PASSES): New macro, to get parameter value of max-gcse-passes param. * params.def (PARAM_MAX_GCSE_PASSES): New parameter, controlling maximum number of GCSE passes to run. Defaults to 1 (which is what MAX_PASSES in gcse.c used to be). From-SVN: r43610 --- gcc/ChangeLog | 14 ++++++++++++++ gcc/doc/invoke.texi | 3 +++ gcc/gcse.c | 7 ++----- gcc/params.def | 6 +++++- gcc/params.h | 3 ++- 5 files changed, 26 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2d087cd88ab..8c6197a72d1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,17 @@ +2001-06-26 Daniel Berlin + + * doc/invoke.texi: Add description of max-gcse-passes param. + + * gcse.c (gcse_main): Use MAX_GCSE_PASSES instead of MAX_PASSES. + (MAX_PASSES): Remove now unneeded macro. + + * params.h (MAX_GCSE_PASSES): New macro, to get parameter value of + max-gcse-passes param. + + * params.def (PARAM_MAX_GCSE_PASSES): New parameter, controlling + maximum number of GCSE passes to run. Defaults to 1 (which is what + MAX_PASSES in gcse.c used to be). + 2001-06-27 Neil Booth * system.h (TARGET_ESC): Move to ... diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 94d4e0c06de..b93a80ea1fd 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -3784,6 +3784,9 @@ order to perform the global common subexpression elimination optimization. If more memory than specified is required, the optimization will not be done. +@item max-gcse-passes +The maximum number of passes of GCSE to run. + @item max-inline-insns If an function contains more than this many instructions, it will not be inlined. This option is precisely equivalent to diff --git a/gcc/gcse.c b/gcc/gcse.c index 82f2787c6a3..76687dee782 100644 --- a/gcc/gcse.c +++ b/gcc/gcse.c @@ -166,9 +166,6 @@ Boston, MA 02111-1307, USA. */ #define obstack_chunk_alloc gmalloc #define obstack_chunk_free free -/* Maximum number of passes to perform. */ -#define MAX_PASSES 1 - /* Propagate flow information through back edges and thus enable PRE's moving loop invariant calculations out of loops. @@ -232,7 +229,7 @@ Boston, MA 02111-1307, USA. */ substitutions. PRE is quite expensive in complicated functions because the DFA can take - awhile to converge. Hence we only perform one pass. Macro MAX_PASSES can + awhile to converge. Hence we only perform one pass. The parameter max-gcse-passes can be modified if one wants to experiment. ********************** @@ -810,7 +807,7 @@ gcse_main (f, file) max_pass_bytes = 0; gcse_obstack_bottom = gcse_alloc (1); changed = 1; - while (changed && pass < MAX_PASSES) + while (changed && pass < MAX_GCSE_PASSES) { changed = 0; if (file) diff --git a/gcc/params.def b/gcc/params.def index 24b3aa26bb1..eff8a231e83 100644 --- a/gcc/params.def +++ b/gcc/params.def @@ -74,7 +74,11 @@ DEFPARAM(PARAM_MAX_GCSE_MEMORY, "max-gcse-memory", "The maximum amount of memory to be allocated by GCSE", 50 * 1024 * 1024) - +/* The number of repetitions of copy/const prop and PRE to run. */ +DEFPARAM(PARAM_MAX_GCSE_PASSES, + "max-gcse-passes", + "The maximum number of passes to make when doing GCSE", + 1) /* Local variables: mode:c diff --git a/gcc/params.h b/gcc/params.h index 7f0bacd4346..2b29094a6f2 100644 --- a/gcc/params.h +++ b/gcc/params.h @@ -92,5 +92,6 @@ typedef enum compiler_param PARAM_VALUE (PARAM_MAX_DELAY_SLOT_LIVE_SEARCH) #define MAX_GCSE_MEMORY \ ((size_t) PARAM_VALUE (PARAM_MAX_GCSE_MEMORY)) - +#define MAX_GCSE_PASSES \ + PARAM_VALUE (PARAM_MAX_GCSE_PASSES) #endif /* ! GCC_PARAMS_H */ -- 2.30.2