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