Changeset: 4132a3fae9cc for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4132a3fae9cc Modified Files: MonetDB5/src/mal/mal_interpreter.mx Branch: default Log Message:
Merge with Oct2010 branch. diffs (60 lines): diff -r c85e8b28c130 -r 4132a3fae9cc MonetDB5/src/mal/mal_interpreter.mx --- a/MonetDB5/src/mal/mal_interpreter.mx Thu Oct 07 18:40:28 2010 +0200 +++ b/MonetDB5/src/mal/mal_interpreter.mx Thu Oct 07 19:13:08 2010 +0200 @@ -1396,6 +1396,12 @@ for( ; pc < limit; pc++) if ( fs[pc].status != DFLOWwrapup) break; + if (flow->stk->admit == 0) { + @:DFLOWscheduler_body( DFLOWeligible(flow,fs,i,p,pc) )@ + } else { + @:DFLOWscheduler_body( DFLOWeligible(flow,fs,i,p,pc) && (*flow->stk->admit)(flow->cntxt, flow->mb, flow->stk, p) )@ + } +...@= DFLOWscheduler_body /* first try to find all instructions that use the released target */ candidates = 0; for(i = pc; i < limit ; i++) @@ -1403,14 +1409,13 @@ p = getInstrPtr(flow->mb, fs[i].pc); for ( j= p->retc; j < p->argc; j++) if ( getArg(p,j)== oa ) { - if ( flow->stk->admit == 0 || (*flow->stk->admit)(flow->cntxt, flow->mb, flow->stk, p) ) - if ( DFLOWeligible(flow,fs,i,p,pc) ) { - queued++; - todo++; - candidates = 1; - DFLOWactivate(flow,fs,i,p); - q_enqueue(flow->todo, fs+i); - } + if ( @1 ) { + queued++; + todo++; + candidates = 1; + DFLOWactivate(flow,fs,i,p); + q_enqueue(flow->todo, fs+i); + } break; } } @@ -1419,14 +1424,14 @@ for(i = pc ; i < limit && queued < flow->nway ; i++) if (fs[i].status == DFLOWpending ) { p = getInstrPtr(flow->mb, fs[i].pc); - if ( flow->stk->admit == 0 || (*flow->stk->admit)(flow->cntxt, flow->mb, flow->stk, p) ) - if ( DFLOWeligible(flow,fs,i,p,pc) ) { - queued++; - todo++; - DFLOWactivate(flow,fs,i,p); - q_enqueue(flow->todo, fs+i); - } + if ( @1 ) { + queued++; + todo++; + DFLOWactivate(flow,fs,i,p); + q_enqueue(flow->todo, fs+i); + } } +...@c } PARDEBUG { int candidates = 0; _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list