34 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*  S H A R E D    F I L E
 | |
|  *
 | |
|  *  G O . H
 | |
|  *
 | |
|  */
 | |
| 
 | |
| 
 | |
| extern go();		/* ( int argc; char *argv[];
 | |
| 			 *   int (*initialize)(); int (*optimize)(); 
 | |
| 			 *   int (*phase_machinit)(); int (*proc_flag)()  )
 | |
| 			 * This is the main driving routine of the optimizer.
 | |
| 			 * It first processes the flags given as argument;
 | |
| 			 * for every flag it does not recognize itself, it
 | |
| 			 * calls 'proc_flag'; as soon as the -M flag is seen,
 | |
| 			 * it opens the machine descriptor file and
 | |
| 			 * reads phase-independend information (notably the
 | |
| 			 * wordsize and pointersize of the target machine);
 | |
| 			 * next it calls 'phase_machinit' with this file as
 | |
| 			 * parameter. Subsequently it calls 'initialize'.
 | |
| 			 * Finally, all procedures are read, one at a time,
 | |
| 			 * and 'optimize' is called with the current procedure
 | |
| 			 * as parameter.
 | |
| 			 */
 | |
| extern no_action();	/* ()
 | |
| 			 * Parameter to be supplied for e.g. 'initialize' if
 | |
| 			 * no action is required.
 | |
| 			 */
 | |
| extern core_usage();	/* ()
 | |
| 			 * Report core usage, if core_flag is set.
 | |
| 			 */
 | |
| extern report();	/* ( char *s; int n)
 | |
| 			 * Report number of optimizations found, if 
 | |
| 			 * report_flag is set
 | |
| 			 */
 |