Changeset: 47bc5f3f4b27 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/47bc5f3f4b27
Modified Files:
        clients/Tests/MAL-signatures-hge.test
        clients/Tests/MAL-signatures.test
        clients/Tests/exports.stable.out
Branch: txtsim
Log Message:

Merge with default.


diffs (truncated from 945 to 300 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
@@ -48304,16 +48304,6 @@ pattern optimizer.deadcode(X_0:str, X_1:
 OPTwrapper;
 Dead code optimizer
 optimizer
-default_fast
-function optimizer.default_fast():void;
-(empty)
-(empty)
-optimizer
-default_pipe
-function optimizer.default_pipe():void;
-(empty)
-(empty)
-optimizer
 defaultfast
 pattern optimizer.defaultfast():str 
 OPTwrapper;
@@ -48429,16 +48419,6 @@ pattern optimizer.mergetable(X_0:str, X_
 OPTwrapper;
 Resolve the multi-table definitions
 optimizer
-minimal_fast
-function optimizer.minimal_fast():void;
-(empty)
-(empty)
-optimizer
-minimal_pipe
-function optimizer.minimal_pipe():void;
-(empty)
-(empty)
-optimizer
 minimalfast
 pattern optimizer.minimalfast():str 
 OPTwrapper;
@@ -48469,11 +48449,6 @@ pattern optimizer.multiplex(X_0:str, X_1
 OPTwrapper;
 Compiler for multiplexed instructions
 optimizer
-no_mitosis_pipe
-function optimizer.no_mitosis_pipe():void;
-(empty)
-(empty)
-optimizer
 optimize
 pattern optimizer.optimize(X_0:str, X_1:str):void 
 QOToptimize;
@@ -48579,11 +48554,6 @@ pattern optimizer.reorder(X_0:str, X_1:s
 OPTwrapper;
 Reorder by dataflow dependencies
 optimizer
-sequential_pipe
-function optimizer.sequential_pipe():void;
-(empty)
-(empty)
-optimizer
 strimps
 pattern optimizer.strimps():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
@@ -36734,16 +36734,6 @@ pattern optimizer.deadcode(X_0:str, X_1:
 OPTwrapper;
 Dead code optimizer
 optimizer
-default_fast
-function optimizer.default_fast():void;
-(empty)
-(empty)
-optimizer
-default_pipe
-function optimizer.default_pipe():void;
-(empty)
-(empty)
-optimizer
 defaultfast
 pattern optimizer.defaultfast():str 
 OPTwrapper;
@@ -36859,16 +36849,6 @@ pattern optimizer.mergetable(X_0:str, X_
 OPTwrapper;
 Resolve the multi-table definitions
 optimizer
-minimal_fast
-function optimizer.minimal_fast():void;
-(empty)
-(empty)
-optimizer
-minimal_pipe
-function optimizer.minimal_pipe():void;
-(empty)
-(empty)
-optimizer
 minimalfast
 pattern optimizer.minimalfast():str 
 OPTwrapper;
@@ -36899,11 +36879,6 @@ pattern optimizer.multiplex(X_0:str, X_1
 OPTwrapper;
 Compiler for multiplexed instructions
 optimizer
-no_mitosis_pipe
-function optimizer.no_mitosis_pipe():void;
-(empty)
-(empty)
-optimizer
 optimize
 pattern optimizer.optimize(X_0:str, X_1:str):void 
 QOToptimize;
@@ -37009,11 +36984,6 @@ pattern optimizer.reorder(X_0:str, X_1:s
 OPTwrapper;
 Reorder by dataflow dependencies
 optimizer
-sequential_pipe
-function optimizer.sequential_pipe():void;
-(empty)
-(empty)
-optimizer
 strimps
 pattern optimizer.strimps():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
@@ -1002,7 +1002,7 @@ const char *ioRef;
 bool isExceptionVariable(const char *nme);
 int isIdentifier(str s);
 int isLoopBarrier(MalBlkPtr mb, int pc);
-int isOptimizerPipe(const char *name);
+bool isOptimizerPipe(const char *name);
 const char *iteratorRef;
 const char *joinRef;
 const char *jsonRef;
diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c
--- a/monetdb5/optimizer/opt_pipes.c
+++ b/monetdb5/optimizer/opt_pipes.c
@@ -32,12 +32,11 @@
 
 #define MAXOPTPIPES 64
 
-static struct PIPELINES {
+static struct pipeline {
        char *name;
-       char *def;
-       char *status;
-       MalBlkPtr mb;
-       char builtin;
+       const char *status;                     /* "stable" or "experimental" */
+       char **def;                                     /* NULL terminated list 
of optimizers */
+       bool builtin;
 } pipes[MAXOPTPIPES] = {
 /* The minimal pipeline necessary by the server to operate correctly
  *
@@ -46,65 +45,80 @@ static struct PIPELINES {
  * (see tools/mserver/mserver5.1) accordingly!
  */
        {"minimal_pipe",
-        "optimizer.inline();"
-        "optimizer.remap();"
-        "optimizer.emptybind();"
-        "optimizer.deadcode();"
-        "optimizer.for();"
-        "optimizer.dict();"
-        "optimizer.multiplex();"
-        "optimizer.generator();"
-        //"optimizer.candidates();" only for decoration in explain
-        "optimizer.garbageCollector();"
-        "optimizer.profiler();",
-        "stable", NULL, 1},
+        "stable",
+        (char *[]) {
+                "inline",
+                "remap",
+                "emptybind",
+                "deadcode",
+                "for",
+                "dict",
+                "multiplex",
+                "generator",
+                "garbageCollector",
+                "profiler",
+                NULL,
+        },
+        true,
+       },
        {"minimal_fast",
-        "optimizer.minimalfast()",
-        "stable", NULL, 1},
-/* The default pipe line contains as of Feb2010
- * mitosis-mergetable-reorder, aimed at large tables and improved
- * access locality.
- *
- * NOTE:
- * If you change the default pipe, please also update the no_mitosis pipe
- * and sequential pipe (see below, as well as the man page (see
+        "stable",
+        (char *[]) {
+                "minimalfast",
+                NULL,
+        },
+        true,
+       },
+/* NOTE:
+ * If you change the default pipe, please also update the no_mitosis
+ * pipe and sequential pipe (see below, as well as the man page (see
  * tools/mserver/mserver5.1) accordingly!
  */
        {"default_pipe",
-        "optimizer.inline();"
-        "optimizer.remap();"
-        "optimizer.costModel();"
-        "optimizer.coercions();"
-        "optimizer.aliases();"
-        "optimizer.evaluate();"
-        "optimizer.emptybind();"
-        "optimizer.deadcode();" /* Feb2021 update, I pushed deadcode optimizer 
earlier in the pipeline so it runs before mitosis, thus removing less 
instructions */
-        "optimizer.pushselect();"
-        "optimizer.aliases();"
-        "optimizer.for();"
-        "optimizer.dict();"
-        "optimizer.mitosis();"
-        "optimizer.mergetable();"
-        "optimizer.aliases();"
-        "optimizer.constants();"
-        "optimizer.commonTerms();"
-        "optimizer.projectionpath();"
-        "optimizer.deadcode();"
-        "optimizer.matpack();"
-        "optimizer.reorder();"
-        "optimizer.dataflow();"
-        "optimizer.querylog();"
-        "optimizer.multiplex();"
-        "optimizer.generator();"
-        "optimizer.candidates();"
-        "optimizer.deadcode();"
-        "optimizer.postfix();"
-        "optimizer.garbageCollector();"
-        "optimizer.profiler();",
-        "stable", NULL, 1},
+        "stable",
+        (char *[]) {
+                "inline",
+                "remap",
+                "costModel",
+                "coercions",
+                "aliases",
+                "evaluate",
+                "emptybind",
+                "deadcode",
+                "pushselect",
+                "aliases",
+                "for",
+                "dict",
+                "mitosis",
+                "mergetable",
+                "aliases",
+                "constants",
+                "commonTerms",
+                "projectionpath",
+                "deadcode",
+                "matpack",
+                "reorder",
+                "dataflow",
+                "querylog",
+                "multiplex",
+                "generator",
+                "candidates",
+                "deadcode",
+                "postfix",
+                "garbageCollector",
+                "profiler",
+                NULL,
+        },
+        true,
+       },
        {"default_fast",
-        "optimizer.defaultfast()",
-        "stable", NULL, 1},
+        "stable",
+        (char *[]) {
+                "defaultfast",
+                NULL,
+        },
+        true,
+       },
 /* The no_mitosis pipe line is (and should be kept!) identical to the
  * default pipeline, except that optimizer mitosis is omitted.  It is
  * used mainly to make some tests work deterministically, and to check
@@ -116,38 +130,43 @@ static struct PIPELINES {
  * (see tools/mserver/mserver5.1) accordingly!
  */
        {"no_mitosis_pipe",
-        "optimizer.inline();"
-        "optimizer.remap();"
-        "optimizer.costModel();"
-        "optimizer.coercions();"
-        "optimizer.aliases();"
-        "optimizer.evaluate();"
-        "optimizer.emptybind();"
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to