|[5 earlier articles]|
|Value range tracing email@example.com (Dave Lloyd) (1995-12-09)|
|Re: Value range tracing firstname.lastname@example.org (1995-12-09)|
|Re: Value range tracing email@example.com (1995-12-09)|
|Value range tracing firstname.lastname@example.org (1995-12-09)|
|Re: Value range tracing email@example.com (John Gough) (1995-12-09)|
|Re: Value range tracing firstname.lastname@example.org (Jason Patterson) (1995-12-09)|
|Re: Value range tracing email@example.com (1995-12-09)|
|Re: Value range tracing firstname.lastname@example.org (1995-12-17)|
|Re: Value range tracing email@example.com (1995-12-17)|
|From:||firstname.lastname@example.org (Bill Leonard)|
|Date:||9 Dec 1995 19:48:47 -0500|
|Organization:||Harris Computer Systems, Ft. Lauderdale FL|
email@example.com (Jeremy Fitzhardinge) writes:
> I'm wondering if people bother with value range tracing. That is,
> keeping track of the possible range of variables at each point in the
> Is this kind of thing useful? Is it useful enough to implement?
> This isn't very complex, so I assume people have thought about it,
> but I've seen very little literature on it.
The Harris Ada compiler does range propagation and optimizations based on
range information. We don't do it for other languages because the
perceived payoff is small. For Ada, the payoff is potentially much larger
because of all the constraint checks that Ada normally requires.
Our range propagation makes use of declarative information, of course, so
that if a variable is declared to have the range 1..10, we take that as a
given. Constraint checks inserted by the front end and user-specified
comparisons provide further information.
We use the derived range information to eliminate constraint checks,
substitute constants (if the range degenerates to a single value), and
eliminate user-specified if-tests. Eliminating the constraint checks is by
far the biggest winner -- the other possibilities don't occur nearly as
Harris Computer Systems Corporation
2101 W. Cypress Creek Road
Fort Lauderdale, FL 33309
Return to the
Search the comp.compilers archives again.