Re: On UDOs ...

From: Robin Davies (rerdavies@msn.com)
Date: Mon May 22 2000 - 21:46:49 EDT


> if (!b)
> {
> b = a;
> }
>
> statement in bar doesn't execute for the first time until
> foo() calls bar for the first time -- which is different than
> the Sfx method of unconditionally executing it (and sfront's method
> of deleting the lines and issuing a warning message :-).

Um. No. Sfx does the same thing as Saint for the first example. Haven't
worked through the second example yet.

Sfx only executes unconditionally when the rate of the statement is less
than the rate of the enclosing guard. You'd have to put i-rate statements in
opcode to get them to execute uncoditionally.

Sfx generates (roughly) the following code:

aopcode bar (ksig a)
>
>{
> ksig b;
>
> if (!b)
> {
> b = a;
> }
> return(aphasor(b) - 0.5);
>}
>
>
>instr foo () {
>
> ksig d;
>
> d = d + 1;
> if (d > 100)
> {
> output(bar(d));
> }
>

IPass:
    Zero/clear all the variables.

KPass:
    d = d + 1;
    if (d > 100) {
        if (!b)
    {
         b = a;
       }
      kpass of aphasor(b)
    }

APass:
    if (d > 100) {
        output(apass of aphasor(b))
   }

Isn't that the same?



This archive was generated by hypermail 2b29 : Mon Jan 28 2002 - 12:03:56 EST