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 -- [email protected]
To unsubscribe send an email to [email protected]