Changeset: 77b10924c410 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=77b10924c410
Modified Files:
        MonetDB5/src/optimizer/opt_recycler.mx
Branch: default
Log Message:

Extend recycler with a simple mode of operation, BaseTable recycler, that 
considers only data transfer between octopus head and tentacles ( i.e. 
octopus.bind() instructions).


diffs (52 lines):

diff -r e3cd9e47a471 -r 77b10924c410 MonetDB5/src/optimizer/opt_recycler.mx
--- a/MonetDB5/src/optimizer/opt_recycler.mx    Thu Oct 14 14:53:12 2010 +0200
+++ b/MonetDB5/src/optimizer/opt_recycler.mx    Thu Oct 14 15:23:50 2010 +0200
@@ -64,7 +64,7 @@
 address OPTrecycle;
 pattern optimizer.recycle(mod:str, fcn:str):str
 address OPTrecycle
-comment "Replicator code injection";
+comment "Recycler marking and code injection";
 
 @{
 @-
@@ -109,6 +109,7 @@
 #include "mal_instruction.h"
 
 static lng recycleSeq = 0;
+static bte baseTableMode = 1;
 
 static int
 OPTrecycleImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
@@ -239,6 +240,18 @@
                        continue;
                } 
 
+               if (getModuleId(p) == octopusRef && 
+                        ( getFunctionId(p) == bindRef || getFunctionId(p) == 
bindidxRef) ) {
+                               recycled[getArg(p,0)] = 1;
+                               p->recycle = recycleMaxInterest; 
+                               marks++;
+               }
+               /* In mode of base table recycling skip marking instructions 
other than octopus.bind */
+               if( baseTableMode ){
+                       pushInstruction(mb,p);
+                       continue;
+               } 
+
                /* general rule: all arguments are constants or recycled, 
                ignore C ponter arguments from mvc*/
                cnt = 0;
@@ -345,12 +358,6 @@
                                p->recycle = REC_NO_INTEREST; 
                        }
 */
-               if (getModuleId(p) == octopusRef && 
-                        ( getFunctionId(p) == bindRef || getFunctionId(p) == 
bindidxRef) ) {
-                               recycled[getArg(p,0)] = 1;
-                               p->recycle = recycleMaxInterest; 
-                               marks++;
-               }
 
                pushInstruction(mb,p);
        }
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to