71 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* $Header$ */
 | 
						|
/*
 | 
						|
 * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
 | 
						|
 * See the copyright notice in the ACK home directory, in the file "Copyright".
 | 
						|
 */
 | 
						|
/*  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.
 | 
						|
				 */
 | 
						|
extern	offset tmplocal();	/* (proc_p p, offset size)
 | 
						|
				 * 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.
 | 
						|
				 */
 |