Changeset: 615b605d96fe for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/615b605d96fe
Modified Files:
        clients/Tests/MAL-signatures-hge.test
        clients/Tests/MAL-signatures.test
        clients/Tests/exports.stable.out
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_instruction.h
        monetdb5/optimizer/opt_wrapper.c
        monetdb5/optimizer/optimizer.c
        monetdb5/optimizer/optimizer.h
Branch: Dec2025
Log Message:

Cleanup: remove unused functions and QOT optimizer.


diffs (197 lines):

diff --git a/clients/Tests/MAL-signatures-hge.test 
b/clients/Tests/MAL-signatures-hge.test
--- a/clients/Tests/MAL-signatures-hge.test
+++ b/clients/Tests/MAL-signatures-hge.test
@@ -49064,11 +49064,6 @@ pattern optimizer.nomitosispipe(X_0:str,
 OPTwrapper
 Fast compound optimizer pipe without mitosis
 optimizer
-optimize
-pattern optimizer.optimize(X_0:str, X_1:str):void
-QOToptimize
-Optimize a specific operation
-optimizer
 postfix
 pattern optimizer.postfix():str
 OPTwrapper
diff --git a/clients/Tests/MAL-signatures.test 
b/clients/Tests/MAL-signatures.test
--- a/clients/Tests/MAL-signatures.test
+++ b/clients/Tests/MAL-signatures.test
@@ -37544,11 +37544,6 @@ pattern optimizer.nomitosispipe(X_0:str,
 OPTwrapper
 Fast compound optimizer pipe without mitosis
 optimizer
-optimize
-pattern optimizer.optimize(X_0:str, X_1:str):void
-QOToptimize
-Optimize a specific operation
-optimizer
 postfix
 pattern optimizer.postfix():str
 OPTwrapper
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1095,7 +1095,6 @@ const char mitosisRef[];
 const char mmathRef[];
 const char modRef[];
 char monet_cwd[FILENAME_MAX];
-void moveInstruction(MalBlkPtr mb, int pc, int target);
 const char mtimeRef[];
 const char mulRef[];
 const char multiplexRef[];
@@ -1192,8 +1191,6 @@ const char registerRef[];
 const char register_supervisorRef[];
 const char remapRef[];
 const char remoteRef[];
-void removeInstruction(MalBlkPtr mb, InstrPtr p);
-void removeInstructionBlock(MalBlkPtr mb, int pc, int cnt);
 const char rename_columnRef[];
 const char rename_schemaRef[];
 const char rename_tableRef[];
diff --git a/monetdb5/mal/mal_instruction.c b/monetdb5/mal/mal_instruction.c
--- a/monetdb5/mal/mal_instruction.c
+++ b/monetdb5/mal/mal_instruction.c
@@ -506,60 +506,6 @@ freeInstruction(MalBlkPtr mb, InstrPtr p
 }
 
 
-/* Query optimizers walk their way through a MAL program block. They
- * require some primitives to move instructions around and to remove
- * superfluous instructions. The removal is based on the assumption
- * that indeed the instruction belonged to the block. */
-void
-removeInstruction(MalBlkPtr mb, InstrPtr p)
-{
-       int i;
-       for (i = 0; i < mb->stop - 1; i++)
-               if (mb->stmt[i] == p)
-                       break;
-       if (i == mb->stop)
-               return;
-       for (; i < mb->stop - 1; i++)
-               mb->stmt[i] = mb->stmt[i + 1];
-       mb->stmt[i] = 0;
-       mb->stop--;
-       assert(i == mb->stop);          /* move statement after stop */
-       mb->stmt[i] = p;
-}
-
-void
-removeInstructionBlock(MalBlkPtr mb, int pc, int cnt)
-{
-       int i;
-       InstrPtr p;
-       for (i = pc; i < pc + cnt; i++) {
-               p = getInstrPtr(mb, i);
-               freeInstruction(mb, p);
-               mb->stmt[i] = NULL;
-       } for (i = pc; i < mb->stop - cnt; i++)
-               mb->stmt[i] = mb->stmt[i + cnt];
-       mb->stop -= cnt;
-       for (; i < mb->stop; i++)
-               mb->stmt[i] = 0;
-}
-
-void
-moveInstruction(MalBlkPtr mb, int pc, int target)
-{
-       InstrPtr p;
-       int i;
-       p = getInstrPtr(mb, pc);
-       if (pc > target) {
-               for (i = pc; i > target; i--)
-                       mb->stmt[i] = mb->stmt[i - 1];
-               mb->stmt[i] = p;
-       } else {
-               for (i = target; i > pc; i--)
-                       mb->stmt[i] = mb->stmt[i - 1];
-               mb->stmt[i] = p;
-       }
-}
-
 /* Beware that the first argument of a signature is reserved for the
  * function return type , which should be equal to the destination
  * variable type.
diff --git a/monetdb5/mal/mal_instruction.h b/monetdb5/mal/mal_instruction.h
--- a/monetdb5/mal/mal_instruction.h
+++ b/monetdb5/mal/mal_instruction.h
@@ -167,9 +167,6 @@ mal_export void freeMalBlk(MalBlkPtr mb)
 mal_export MalBlkPtr copyMalBlk(MalBlkPtr mb);
 mal_export void trimMalVariables(MalBlkPtr mb, MalStkPtr stk);
 mal_export void trimMalVariables_(MalBlkPtr mb, MalStkPtr glb);
-mal_export void moveInstruction(MalBlkPtr mb, int pc, int target);
-mal_export void removeInstruction(MalBlkPtr mb, InstrPtr p);
-mal_export void removeInstructionBlock(MalBlkPtr mb, int pc, int cnt);
 mal_export str operatorName(int i);
 
 mal_export int findVariable(MalBlkPtr mb, const char *name);
diff --git a/monetdb5/optimizer/opt_wrapper.c b/monetdb5/optimizer/opt_wrapper.c
--- a/monetdb5/optimizer/opt_wrapper.c
+++ b/monetdb5/optimizer/opt_wrapper.c
@@ -137,7 +137,6 @@ OPTwrapper(Client cntxt, MalBlkPtr mb, M
                        modnme = getArgDefault(mb, p, 1);
                        fcnnme = getArgDefault(mb, p, 2);
                }
-               //removeInstruction(mb, p);
                p->token = REMsymbol;
                s = findSymbol(cntxt->usermodule, putName(modnme), 
putName(fcnnme));
 
diff --git a/monetdb5/optimizer/optimizer.c b/monetdb5/optimizer/optimizer.c
--- a/monetdb5/optimizer/optimizer.c
+++ b/monetdb5/optimizer/optimizer.c
@@ -38,35 +38,6 @@ optimizer_epilogue(Client ctx, void *ret
        return MAL_SUCCEED;
 }
 
-/*
- * MAL functions can be optimized explicitly using the routines below.
- * Beware, the function names should be known as literal strings, because
- * you may not know the runtime situation.
-*/
-
-str
-QOToptimize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
-{
-       str modnme;
-       str fcnnme;
-       Symbol s;
-
-       (void) stk;
-       if (stk != 0) {
-               modnme = *getArgReference_str(stk, pci, 1);
-               fcnnme = *getArgReference_str(stk, pci, 2);
-       } else {
-               modnme = getArgDefault(mb, pci, 1);
-               fcnnme = getArgDefault(mb, pci, 2);
-       }
-       s = findSymbol(cntxt->usermodule, putName(modnme), fcnnme);
-       if (s == NULL)
-               throw(MAL, "optimizer.optimize",
-                         SQLSTATE(HY002) SEMANTIC_OPERATION_MISSING);
-       removeInstruction(mb, pci);
-       return optimizeMALBlock(cntxt, s->def);
-}
-
 #define optwrapper_pattern(NAME, DESC) \
        pattern("optimizer", NAME, OPTwrapper, false, "", args(1,1, 
arg("",str))), \
        pattern("optimizer", NAME, OPTwrapper, false, DESC, args(1,3, 
arg("",str),arg("mod",str),arg("fcn",str)))
@@ -98,9 +69,6 @@ static mel_func optimizer_init_funcs[] =
        command("optimizer", "epilogue", optimizer_epilogue, false,
                        "release the resources held by the optimizer module",
                        args(1, 1, arg("", void))),
-       pattern("optimizer", "optimize", QOToptimize, false,
-                       "Optimize a specific operation",
-                       args(0, 2, arg("mod", str), arg("fcn", str))),
        optwrapper_pattern("inline", "Expand inline functions"),
        optwrapper_pattern("projectionpath", "Join path constructor"),
        optwrapper_pattern("mergetable", "Resolve the multi-table definitions"),
diff --git a/monetdb5/optimizer/optimizer.h b/monetdb5/optimizer/optimizer.h
--- a/monetdb5/optimizer/optimizer.h
+++ b/monetdb5/optimizer/optimizer.h
@@ -18,6 +18,5 @@
 #include "opt_support.h"
 
 extern str optimizer_epilogue(Client ctx, void *ret);
-extern str QOToptimize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 
 #endif /* _OPTIMIZER_H */
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to