From: Michael McNamara (mac@verisity.com)
Date: Thu Feb 07 2002 - 13:42:11 PST
Precedence: bulk
Steven Sharp writes:
>
> >Certainly named.b could be modified by a hierarchial reference or from
> >the PLI; but if that resulted in scheduling the block to be evaluated,
> >a new value for b would be calculated based on <something>, and that
> >value would be used to fetch the value from the memory, and then would
> >be assigned to a. So it is sufficient to be sensitive to
> >mem8x10[<something>].
>
> The fact that in this particular example 'b' is always set just before
> it is used does not mean that all situations will do so. In general,
> it may be necessary to be sensitive to 'b'. And I wouldn't try to
> define the sensitivity in terms of some data-flow analysis of the block.
> If 'b' gets read inside the block, then 'named.b' needs to be in the
> sensitivity. Someone could try optimizing it away when it is unnecessary,
> but they risk getting obscure results if the block has side effects
> (i.e. doesn't actually just represent combinational logic).
>
> >Are you imagining the senario where 'b' is modifed by some nefarious
> >entity between the calculation of b = <something>; and a =
> >mem8x10[b];?
>
> Nope, just the scenario where there is not guaranteed to be a definition
> of 'b' before all uses of 'b' in the block.
OK, one can implement this conservatively (for example, as a cycle
based simulator might do); but as I cited in my previous reply, the
science of reaching definition calculus is a well defined concept that
was developed inthe 1960s and was part of standard college compiler
texts from the 1970s.
Algorithmns that run in linear time and are guaranteed to show you all
the reaching definitions for any directed acyclic graph can be cut and
pasted from these texts and result in safe, fast code.
Let us not deny the users of our tools the speed they deserve.
>
> Steven Sharp
> sharp@cadence.com
>
This archive was generated by hypermail 2.1.4
: Mon Jul 08 2002 - 12:55:35 PDT
and
sponsored by Boyd Technology, Inc.