Update of /cvsroot/monetdb/MonetDB5/src/mal
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv17201/mal
Modified Files:
mal_instruction.mx mal_parser.mx
Log Message:
The code has been tested for robustness. The minimal size of the
instruction argument list was downgraded from 9 to 4. It uncovered
sloppyness in taking care of a possibly enlarged instruction.
The code in SQL code generation was properly done.
The look back for constants has been reduced a little (36->32 instructions)
without a major loss of opportunities.
The BMP, partitions and mergetable optimizer are still the focus
of further improvements. Mergetable optimizer first run indicates
about 60 test problems.
Index: mal_parser.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_parser.mx,v
retrieving revision 1.200
retrieving revision 1.201
diff -u -d -r1.200 -r1.201
--- mal_parser.mx 25 Jul 2007 10:49:13 -0000 1.200
+++ mal_parser.mx 17 Aug 2007 13:56:23 -0000 1.201
@@ -1445,7 +1445,7 @@
advance(cntxt,1); /* skip ')' */
if( curInstr->retc == 0){
/* add dummy variable */
- pushArgument(curBlk,curInstr,
newTmpVariable(curBlk,TYPE_any));
+ curInstr= pushArgument(curBlk,curInstr,
newTmpVariable(curBlk,TYPE_any));
curInstr->retc++;
}
} else {
Index: mal_instruction.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_instruction.mx,v
retrieving revision 1.282
retrieving revision 1.283
diff -u -d -r1.282 -r1.283
--- mal_instruction.mx 10 Jul 2007 11:14:11 -0000 1.282
+++ mal_instruction.mx 17 Aug 2007 13:56:23 -0000 1.283
@@ -302,7 +302,7 @@
#endif
#define DEBUG_MAL_INSTR
-#define MAXARG 9
+#define MAXARG 4
#define STMT_INCREMENT 32
#define STMT_MAXIMUM 1<<16
#define MAXVARS 32
@@ -1752,7 +1752,7 @@
return vr->vtype != type;
}
-#define MAL_VAR_WINDOW 4*MAXARG
+#define MAL_VAR_WINDOW 32
int
fndConstant(MalBlkPtr mb, ValPtr cst)
{
@@ -1834,10 +1834,12 @@
pn = GDKmalloc(space + MAXARG * sizeof(int));
memcpy((char *) pn, (char *) p, space);
pn->maxarg = p->maxarg + MAXARG;
- pc = getPC(mb, p);
- if (pc >= 0)
+ /* most likely the last instruction is affected */
+ for(pc= mb->stop-1; pc >= 0; pc--)
+ if( mb->stmt[pc]== p){
mb->stmt[pc] = pn;
-
+ break;
+ }
GDKfree(p);
p = pn;
}
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Monetdb-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins