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

Reply via email to