Changeset: 23b1126001b2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=23b1126001b2
Modified Files:
monetdb5/optimizer/opt_dataflow.c
Branch: default
Log Message:
Squeeze a little more parallelism
when dealing with sequences of BAT updates
diffs (30 lines):
diff --git a/monetdb5/optimizer/opt_dataflow.c
b/monetdb5/optimizer/opt_dataflow.c
--- a/monetdb5/optimizer/opt_dataflow.c
+++ b/monetdb5/optimizer/opt_dataflow.c
@@ -130,7 +130,7 @@ static void setAssigned(InstrPtr p, int
}
static int
-dflowAssignConflict(InstrPtr p, int *assigned)
+dflowAssignConflict(InstrPtr p, int pc, int *assigned, int *eolife)
{
int j;
/* flow blocks should be closed when we reach a point
@@ -139,7 +139,7 @@ dflowAssignConflict(InstrPtr p, int *ass
for(j=0; j<p->retc; j++)
if ( assigned[getArg(p,j)] )
return 1;
- if ( isUpdateInstruction(p) && assigned[getArg(p,p->retc)] )
+ if ( isUpdateInstruction(p) && eolife[getArg(p,p->retc)] != pc )
return 1;
return 0;
}
@@ -237,7 +237,7 @@ OPTdataflowImplementation(Client cntxt,
assert(p);
conflict = 0;
- if ( dflowConflict(p) || (conflict =
dflowAssignConflict(p,assigned)) ) {
+ if ( dflowConflict(p) || (conflict =
dflowAssignConflict(p,i,assigned,eolife)) ) {
/* close previous flow block */
if ( !(simple = simpleFlow(old,start,i))){
for( j=start ; j<i; j++){
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list