1987-03-09 19:15:41 +00:00
|
|
|
/*
|
|
|
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
|
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
|
|
*/
|
1984-11-26 14:35:32 +00:00
|
|
|
|
|
|
|
/* C O N S T A N T P R O P A G A T I O N */
|
|
|
|
|
|
|
|
extern line_p unique_def(); /* ( line_p use; bblock_p b; short *defnr_out;)
|
|
|
|
* See if there is a unique explicit definition
|
|
|
|
* of the variable used by 'use' that
|
|
|
|
* reaches 'use'.
|
|
|
|
*/
|
|
|
|
extern bool value_known(); /* (line_p def; offset *val_out)
|
|
|
|
* See if the value stored by definition 'def'
|
|
|
|
* is known statically (i.e. is a constant).
|
|
|
|
*/
|
|
|
|
extern fold_const(); /* (line_p l; bblock_p b; offset val)
|
|
|
|
* Perform the substitutions required for
|
|
|
|
* constant folding.
|
|
|
|
*/
|
|
|
|
extern bool is_use(); /* (line_p l)
|
|
|
|
* See if 'l' is a use of a variable.
|
|
|
|
*/
|
|
|
|
extern bool affected(); /* (line_p use,l; short v)
|
|
|
|
* See if the variable referenced by 'use' may
|
|
|
|
* be changed by instruction l, which is
|
|
|
|
* either a cal, cai or an indirect assignment.
|
|
|
|
*/
|