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

Reply via email to