Changeset: c0a9461c941d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c0a9461c941d
Modified Files:
MonetDB5/src/mal/mal_interpreter.mx
Branch: Oct2010
Log Message:
cleaned-up & streamlined code in DFLOWeligible()
Only minor improvements for tests sql/src/test/rdf/Tests/q?_v.sql .
diffs (58 lines):
diff -r f5c8a35c3a48 -r c0a9461c941d MonetDB5/src/mal/mal_interpreter.mx
--- a/MonetDB5/src/mal/mal_interpreter.mx Thu Oct 07 14:18:37 2010 +0200
+++ b/MonetDB5/src/mal/mal_interpreter.mx Thu Oct 07 14:27:34 2010 +0200
@@ -1240,29 +1240,43 @@
for(j=0; j<p->argc && !blocked; j++) {
int var = getArg(p,j);
- if ( j >= p->retc && flow->blocked[var] )
- blocked++;
- if (j < p->retc && flow->inuse[var] )
- blocked++;
+ if ( j >= p->retc && flow->blocked[var] ) {
+ blocked = 1;
+ break;
+ }
+ else
+ if ( j < p->retc && flow->inuse[var] ) {
+ blocked = 1;
+ break;
+ }
else
if ( getEndOfLife(flow->mb,var) == fs[i].pc ) {
/* make sure all instructions interested have already
been executed */
/* and the eoscope variables are not used anymore */
- blocked += flow->inuse[var] != 0;
- for ( k=0; k < i && !blocked; k++)
- if (fs[k].status != DFLOWwrapup && fs[k].pc >=
0 ) /* pc = -1 could be the case before wrapup is set*/
- blocked +=
!isNotUsedIn(getInstrPtr(flow->mb, fs[k].pc), 0, var);
+ if (flow->inuse[var] != 0) {
+ blocked = 1;
+ break;
+ }
+ else
+ for ( k=0; k < i ; k++)
+ if ( fs[k].status != DFLOWwrapup &&
fs[k].pc >= 0 /* pc = -1 could be the case before wrapup is set*/
+ &&
!isNotUsedIn(getInstrPtr(flow->mb, fs[k].pc), 0, var) ) {
+ blocked = 1;
+ break;
+ }
} else {
/* handle the dependencies sketched above */
/* search the statement that assigns a value to the
argument or target */
/* it should have been finished already */
- for (l = i-1 ; l >= flow->assign[var] && !blocked; l--)
+ for (l = flow->assign[var]; l < i && !blocked; l++)
if ( fs[l].status != DFLOWwrapup && fs[l].pc >=
0){
q= getInstrPtr(flow->mb, fs[l].pc);
- for ( k=0; k < q->retc && !blocked; k++)
- if ( getArg(q,k) == var )
+ for ( k=0; k < q->retc; k++)
+ if ( getArg(q,k) == var ) {
blocked = 1;
+ break;
+ }
}
}
}
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list