public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* SMS parameters
@ 2004-11-26 14:17 Nathan Sidwell
  0 siblings, 0 replies; 2+ messages in thread
From: Nathan Sidwell @ 2004-11-26 14:17 UTC (permalink / raw)
  To: gcc

The following sms parameters exist.

max-sms-loop-number
sms-max-ii-factor
sms-dfa-history
sms-loop-average-count-threshold

None of these are documented in invoke.texi.

The first one is odd, as its help string says,
   "Maximum number of loops to perform swing modulo scheduling on \
	  (mainly for debugging)"
and its implementation is via a static counter that counts bbs in a *program*

   static int passes = 0;
   ...
   FOR_EACH_BB (bb)
      ...
      /* For debugging.  */
      if ((passes++ > MAX_SMS_LOOP_NUMBER) && (MAX_SMS_LOOP_NUMBER != -1))

it doesn't look like a particularly sensible thing to expose.  If
it must be exposed, it should probably be called 'sms-max-loop-number'.
Notice the fence-post error there, we'll actually schedule 1 more
than MAX_SMS_LOOP_NUMBER.

nathan
-- 
Nathan Sidwell    ::   http://www.codesourcery.com   ::     CodeSourcery LLC
nathan@codesourcery.com    ::     http://www.planetfall.pwp.blueyonder.co.uk

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: SMS parameters
       [not found] <OF3E4E9FA9.D93D01B8-ONC2256F5A.003AC37E-C2256F5A.003AC996@LocalDomain>
@ 2004-11-29  9:59 ` Mostafa Hagog
  0 siblings, 0 replies; 2+ messages in thread
From: Mostafa Hagog @ 2004-11-29  9:59 UTC (permalink / raw)
  To: Nathan Sidwell; +Cc: gcc

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





Nathan Sidwell  wrote on 26/11/2004 13:02:23:

> The following sms parameters exist.
>
> max-sms-loop-number
> sms-max-ii-factor
> sms-dfa-history
> sms-loop-average-count-threshold
>
> None of these are documented in invoke.texi.

I have attached a patch for this.

>
> The first one is odd, as its help string says,
>    "Maximum number of loops to perform swing modulo scheduling on \
>      (mainly for debugging)"
> and its implementation is via a static counter that counts bbs in a
*program*
>
>    static int passes = 0;
>    ...
>    FOR_EACH_BB (bb)
>       ...
>       /* For debugging.  */
>       if ((passes++ > MAX_SMS_LOOP_NUMBER) && (MAX_SMS_LOOP_NUMBER !=
-1))
>
> it doesn't look like a particularly sensible thing to expose.

You are correct, this is used for debugging usually by gcc developers,
I use it intensively in debugging and tuning SMS.  How can we hide this
parameter from the GCC users and keep it for the developers?
In the meanwhile I didn't add documentation for this parameter to
invoke.texi

> If it must be exposed, it should probably be called
'sms-max-loop-number'.
> Notice the fence-post error there, we'll actually schedule 1 more
> than MAX_SMS_LOOP_NUMBER.

Agree.

Mostafa.

(See attached file: sms_params_doc.patch)

[-- Attachment #2: sms_params_doc.patch --]
[-- Type: application/octet-stream, Size: 1831 bytes --]

Index: params.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/params.def,v
retrieving revision 1.48
diff -c -p -r1.48 params.def
*** params.def	27 Oct 2004 21:02:07 -0000	1.48
--- params.def	29 Nov 2004 07:37:17 -0000
*************** DEFPARAM(PARAM_MAX_ITERATIONS_TO_TRACK,
*** 266,272 ****
  	1000)
  
  DEFPARAM(PARAM_MAX_SMS_LOOP_NUMBER,
! 	 "max-sms-loop-number",
  	 "Maximum number of loops to perform swing modulo scheduling on \
  	  (mainly for debugging)",
  	 -1)
--- 266,272 ----
  	1000)
  
  DEFPARAM(PARAM_MAX_SMS_LOOP_NUMBER,
! 	 "sms-max-loop-number",
  	 "Maximum number of loops to perform swing modulo scheduling on \
  	  (mainly for debugging)",
  	 -1)
Index: doc/invoke.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/invoke.texi,v
retrieving revision 1.558
diff -c -p -r1.558 invoke.texi
*** doc/invoke.texi	23 Nov 2004 17:39:55 -0000	1.558
--- doc/invoke.texi	29 Nov 2004 07:37:25 -0000
*************** induction variable uses.
*** 5483,5488 ****
--- 5483,5503 ----
  The maximum number of iterations of a loop the brute force algorithm
  for analysis of # of iterations of the loop tries to evaluate.
  
+ @item sms-max-ii-factor
+ 
+ A factor for tuning the upper bound of the Initiation Interval that 
+ swing modulo scheduler uses for scheduling a loop.
+ 
+ @item sms-dfa-history
+ 
+ The number of cycles the swing modulo scheduler considers when checking 
+ conflicts using DFA.
+ 
+ @item sms-loop-average-count-threshold
+ 
+ A threshold on the average count for loops to be considered by the swing 
+ modulo scheduler.
+ 
  @item hot-bb-count-fraction
  Select fraction of the maximal count of repetitions of basic block in program
  given basic block needs to have to be considered hot.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-11-29  7:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-11-26 14:17 SMS parameters Nathan Sidwell
     [not found] <OF3E4E9FA9.D93D01B8-ONC2256F5A.003AC37E-C2256F5A.003AC996@LocalDomain>
2004-11-29  9:59 ` Mostafa Hagog

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).