Added some code to handle -Oego,opt,asopt and the like.

By default, optimizers can be excluded by giving them a negative
priority in the description files. This is currently done for
the global optimizer
This commit is contained in:
ceriel 1987-02-10 16:50:32 +00:00
parent 5ab4d1d2f8
commit 2295cd130a
3 changed files with 9 additions and 4 deletions

View file

@ -5,7 +5,9 @@
EXTERN char *stopsuffix; /* Suffix to stop at */ EXTERN char *stopsuffix; /* Suffix to stop at */
EXTERN char *machine; /* The machine id */ EXTERN char *machine; /* The machine id */
EXTERN char *callname; /* argv[0] */ EXTERN char *callname; /* argv[0] */
EXTERN char *rts; /* The runtime-system id */ EXTERN char *rts; /* The runtime-system */
EXTERN char *rtsuf; /* The runtime-system module suffix */
EXTERN char *Optlist; /* Which optimizers */
EXTERN list_head arguments; /* List of arguments */ EXTERN list_head arguments; /* List of arguments */
EXTERN list_head flags; /* List of flags */ EXTERN list_head flags; /* List of flags */

View file

@ -175,6 +175,8 @@ vieuwargs(argc,argv) char **argv ; {
hide=YES ; hide=YES ;
break ; break ;
case 'O': Optflag++ ; case 'O': Optflag++ ;
Optlist= &argp[2] ;
eaten=1 ;
break ; break ;
case 'v': if ( argp[2] ) { case 'v': if ( argp[2] ) {
v_flag += atoi(&argp[2]) ; v_flag += atoi(&argp[2]) ;

View file

@ -84,6 +84,7 @@ try(f_scan,suffix) list_elem *f_scan; char *suffix; {
scan_found(); scan_found();
return ; return ;
} }
if (! f_scan) return;
scanlist(f_scan, scan) { scanlist(f_scan, scan) {
trafo= t_cont(*scan) ; trafo= t_cont(*scan) ;
if ( satisfy(trafo,suffix) ) { if ( satisfy(trafo,suffix) ) {
@ -129,10 +130,10 @@ try(f_scan,suffix) list_elem *f_scan; char *suffix; {
scan_found() ; scan_found() ;
return ; return ;
} }
if ( l_next(*scan) ) { if (! l_next(*scan) && !stopsuffix) {
try(l_next(*scan),trafo->t_out); scan_found() ;
} else { } else {
if ( !stopsuffix ) scan_found() ; try(l_next(*scan),trafo->t_out);
} }
trafo->t_scan= NO ; trafo->t_scan= NO ;
} }