1987-03-10 11:49:39 +00:00
|
|
|
/* $Header$ */
|
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 15:04:22 +00:00
|
|
|
/* S H A R E D
|
|
|
|
*
|
|
|
|
* A U X I L I A R Y R O U T I N E S
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
extern offset off_set(); /* (line_p lnp)
|
|
|
|
* lnp has a SHORT or OFFSET operand. Return
|
|
|
|
* the value of this operand as an offset.
|
|
|
|
*/
|
|
|
|
extern offset aoff(); /* (arg_p list; int n)
|
|
|
|
* Determine the offset field of the
|
|
|
|
* n'th argument in the list (this argument
|
|
|
|
* must have type ARGOFF). Start counting at 0.
|
|
|
|
*/
|
1985-01-23 16:23:15 +00:00
|
|
|
extern offset tmplocal(); /* (proc_p p, offset size)
|
1984-11-26 15:04:22 +00:00
|
|
|
* Allocate a new local variable in the
|
|
|
|
* stack frame of p.
|
|
|
|
*/
|
|
|
|
line_p int_line(); /* (offset off)
|
|
|
|
* Allocate a line struct of type OPSHORT
|
|
|
|
* or OPOFFSET, whichever one fits best.
|
|
|
|
*/
|
|
|
|
extern line_p reg_mes(); /* (offset tmp; short size; int typ,score)
|
|
|
|
* Generate a register message with the
|
|
|
|
* given arguments.
|
|
|
|
*/
|
|
|
|
extern bool dom(); /* (bblock_p b1,b2)
|
|
|
|
/* See if b1 dominates b2. Note that a
|
|
|
|
* block always * dominates itself.
|
|
|
|
*/
|
|
|
|
extern bblock_p common_dom(); /* (bblock_p a,b)
|
|
|
|
* find a basic block that dominates a as
|
|
|
|
* well as b; note that a basic block also
|
|
|
|
* dominates itself.
|
|
|
|
*/
|
|
|
|
extern short add_timespace(); /* (short time,space)
|
|
|
|
* Add together a time and space, using
|
|
|
|
* the time_space_ratio parameter that
|
|
|
|
* may be set by the user.
|
|
|
|
*/
|
|
|
|
extern rm_line(); /* ( line_p l; bblock_p b)
|
|
|
|
* Remove line l from b basic block b.
|
|
|
|
*/
|
|
|
|
|
|
|
|
extern appnd_line(); /* ( line_p l1,l2)
|
|
|
|
* Put line l1 after l2.
|
|
|
|
*/
|
|
|
|
extern line_p last_instr(); /* ( bblock_p b)
|
|
|
|
* Determine the last line of a basic block.
|
|
|
|
*/
|
|
|
|
extern line_p find_mesreg(); /* (offset off)
|
|
|
|
* Find the register message for the local
|
|
|
|
* with the given offset.
|
|
|
|
*/
|
|
|
|
extern bool is_regvar(); /* (offset off)
|
|
|
|
* See if there is a 'register message'
|
|
|
|
* for the local variable with the
|
|
|
|
* given offset.
|
|
|
|
*/
|
|
|
|
extern offset regv_arg(); /* (offset off; int n)
|
|
|
|
* Fetch the n'th argument of the
|
|
|
|
* register message of the local with
|
|
|
|
* the given offset.
|
|
|
|
*/
|