[m-dev.] for review: rewrite of termination analysis (part 2)

Fergus Henderson fjh at cs.mu.oz.au
Mon Dec 22 15:40:37 AEDT 1997


On 22-Dec-1997, Zoltan Somogyi <zs at cs.mu.oz.au> wrote:
[options.m:]
> +	io__write_string("\t--term-single-arg <n>, --termination-single-argument-analysis <n>\n"),
> +	io__write_string("\t\tWhen performing termination analysis, try analyzing\n"),
> +	io__write_string("\t\trecursion on single arguments in strongly connected\n"),
> +	io__write_string("\t\tcomponents of the call graph that have up to n procedures.\n"),

I suggest s/n/<n>/

>  	io__write_string("\t--termination-norm {simple, total, num-data-elems}\n"),
>  	io__write_string("\t\tThe norm defines how termination analysis measures the size\n"),
>  	io__write_string("\t\tof a memory cell. The simple norm says that size is always one.\n"),
> @@ -1538,6 +1550,12 @@
>  	io__write_string("\t\tThe num-data-elems norm says that it is the number of words in\n"),
>  	io__write_string("\t\tthe cell that contain something other than pointers to cells of\n"),
>  	io__write_string("\t\tthe same type.\n"),

What about the total norm?
Also it would be clearer if you did s/simple/`simple'/
and s/num-data-elems/`num-data-elems'/.

> +	io__write_string("\t--termination-error-limit <n>, --term-err-limit <n>\n"),

It would more consistent to list the shorter message first,
since that's what is done elsewhere.

> +	io__write_string("\t\tPrint at most n reasons for any single termination error\n"),

s/n/<n>/.

> +	io__write_string("\t--termination-path-limit <n>, --term-path-limit <n>\n"),

It would more consistent to list the shorter message first, since
that's what is done elsewhere.

> +	io__write_string("\t\tPerform termination analysis only on predicates\n"),
> +	io__write_string("\t\twith at most n paths (default: 256).\n"),

s/n/<n>/

> +++ compiler_design.html	1997/12/22 03:31:22
> @@ -32,12 +32,12 @@
>  stages:
>  
>  <ol>
> -<li> parsing (source files -> HLDS)
> -<li> semantic analysis and error checking (HLDS -> annotated HLDS)
> -<li> high-level transformations (annotated HLDS -> annotated HLDS)
> -<li> code generation (annotated HLDS -> LLDS)
> -<li> low-level optimizations (LLDS -> LLDS)
> -<li> output C code (LLDS -> C)
> +<li> parsing (source files -&gt HLDS)
> +<li> semantic analysis and error checking (HLDS -&gt annotated HLDS)
> +<li> high-level transformations (annotated HLDS -&gt annotated HLDS)
> +<li> code generation (annotated HLDS -&gt LLDS)
> +<li> low-level optimizations (LLDS -&gt LLDS)
> +<li> output C code (LLDS -&gt C)

I think `&gt' should be `>'.
I'm pretty sure HTML requires &-escapes to be terminated with a semicolon.

> + at sp 1
> + at item --termination-single-argument-analysis @var{limit}
> + at itemx --term-single-arg @var{limit}

I suggest swapping the order here.

> + at sp 1
> + at item --termination-error-limit @var{limit}
> + at itemx --term-err-limit @var{limit}

Ditto.

> + at item --termination-path-limit @var{limit}
> + at itemx --term-path-limit @var{limit}

Ditto.

-- 
Fergus Henderson <fjh at cs.mu.oz.au>   |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>   |  of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3         |     -- the last words of T. S. Garp.



More information about the developers mailing list