Changeset: 2e2f96bf2e92 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2e2f96bf2e92
Added Files:
monetdb5/extras/bwd/bwd.h
Modified Files:
monetdb5/extras/bwd/bwd.c
monetdb5/extras/bwd/opt_bwd.mal
Branch: bwd
Log Message:
* added stubs for the optimizer implementation
Unterschiede (95 Zeilen):
diff --git a/monetdb5/extras/bwd/bwd.c b/monetdb5/extras/bwd/bwd.c
--- a/monetdb5/extras/bwd/bwd.c
+++ b/monetdb5/extras/bwd/bwd.c
@@ -0,0 +1,65 @@
+#include "monetdb_config.h"
+#include "mal_interpreter.h"
+#include "opt_statistics.h"
+#include "bwd.h"
+
+
+str OPTBWDImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
p){
+}
+
+str OPTBWD(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p){
+ str modnme;
+ str fcnnme;
+ str msg= MAL_SUCCEED;
+ Symbol s= NULL;
+ lng t,clk= GDKusec();
+ int actions = 0;
+ const int debug = 0;
+
+ optimizerInit();
+ if( p )
+ removeInstruction(mb, p);
+ if(debug)
+ mnstr_printf(cntxt->fdout,"=APPLY OPTIMIZER BWD\n");
+ if( p && p->argc > 1 ){
+ if( getArgType(mb,p,1) != TYPE_str ||
+ getArgType(mb,p,2) != TYPE_str ||
+ !isVarConstant(mb,getArg(p,1)) ||
+ !isVarConstant(mb,getArg(p,2))
+ ) {
+ throw(MAL, "optimizer.BWD", ILLARG_CONSTANTS);
+ }
+ if( stk != 0){
+ modnme= *(str*)getArgReference(stk,p,1);
+ fcnnme= *(str*)getArgReference(stk,p,2);
+ } else {
+ modnme= getArgDefault(mb,p,1);
+ fcnnme= getArgDefault(mb,p,2);
+ }
+ s= findSymbol(cntxt->nspace,
putName(modnme,strlen(modnme)),putName(fcnnme,strlen(fcnnme)));
+
+ if( s == NULL) {
+ char buf[1024];
+ snprintf(buf,1024, "%s.%s",modnme,fcnnme);
+ throw(MAL, "optimizer.BWD", RUNTIME_OBJECT_UNDEFINED
":%s", buf);
+ }
+ mb = s->def;
+ stk= 0;
+ }
+ if( mb->errors ){
+ /* when we have errors, we still want to see them */
+ addtoMalBlkHistory(mb,"BWD");
+ return MAL_SUCCEED;
+ }
+ actions= OPTBWDImplementation(cntxt, mb,stk,p);
+ msg= optimizerCheck(cntxt, mb, "optimizer.BWD", actions, t=(GDKusec() -
clk),OPT_CHECK_ALL);
+ if(debug) {
+ mnstr_printf(cntxt->fdout,"=FINISHED BWD %d\n",actions);
+ printFunction(cntxt->fdout,mb,0,LIST_MAL_STMT | LIST_MAPI);
+ }
+ DEBUGoptimizers
+ mnstr_printf(cntxt->fdout,"#opt_reduce: " LLFMT " ms\n",t);
+ QOTupdateStatistics("BWD",actions,t);
+ addtoMalBlkHistory(mb,"BWD");
+ return msg;
+}
diff --git a/monetdb5/extras/bwd/bwd.h b/monetdb5/extras/bwd/bwd.h
new file mode 100644
--- /dev/null
+++ b/monetdb5/extras/bwd/bwd.h
@@ -0,0 +1,11 @@
+#ifndef _BWD_H_
+#define _BWD_H_
+
+#include "opt_prelude.h"
+
+
+extern str OPTBWD(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
+
+
+#endif /* _BWD_H_ */
+
diff --git a/monetdb5/extras/bwd/opt_bwd.mal b/monetdb5/extras/bwd/opt_bwd.mal
--- a/monetdb5/extras/bwd/opt_bwd.mal
+++ b/monetdb5/extras/bwd/opt_bwd.mal
@@ -0,0 +1,5 @@
+pattern optimizer.bwd():str
+address OPTBWD;
+pattern optimizer.bwd(mod:str, fcn:str):str
+address OPTBWD
+comment "Optimizer that inserts statements to approximate results of
operations using Bitwise Decomposition";
\ No newline at end of file
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list