Changeset: 97441f628bd9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=97441f628bd9
Modified Files:
        monetdb5/optimizer/optimizer.c
Branch: copybinary
Log Message:

Use macro to make editing mel_func_optimizer_init_funcs more fun


diffs (118 lines):

diff --git a/monetdb5/optimizer/optimizer.c b/monetdb5/optimizer/optimizer.c
--- a/monetdb5/optimizer/optimizer.c
+++ b/monetdb5/optimizer/optimizer.c
@@ -81,78 +81,52 @@ QOToptimize(Client cntxt, MalBlkPtr mb, 
 
 #include "opt_macro.h"
 
+#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)))
+
+
 #include "mel.h"
 static mel_func optimizer_init_funcs[] = {
- pattern("optimizer", "aliases", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "aliases", OPTwrapper, false, "Alias removal optimizer", 
args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "coercions", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "coercions", OPTwrapper, false, "Handle simple type 
coercions", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "commonTerms", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "commonTerms", OPTwrapper, false, "Common sub-expression 
optimizer", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "candidates", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "candidates", OPTwrapper, false, "Mark candidate list 
variables", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "volcano", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "volcano", OPTwrapper, false, "Simulate volcano style 
execution", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "constants", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "constants", OPTwrapper, false, "Duplicate constant 
removal optimizer", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "profiler", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "profiler", OPTwrapper, false, "Collect properties for 
the profiler", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "costModel", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "costModel", OPTwrapper, false, "Estimate the cost of a 
relational expression", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "dataflow", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "dataflow", OPTwrapper, false, "Dataflow bracket code 
injection", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "deadcode", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "deadcode", OPTwrapper, false, "Dead code optimizer", 
args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "emptybind", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "emptybind", OPTwrapper, false, "Evaluate empty set 
expressions.", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "jit", OPTwrapper, false, "", args(1,1, arg("",str))),
- pattern("optimizer", "jit", OPTwrapper, false, "Propagate candidate lists in 
just-in-time optimization", args(1,3, 
arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "evaluate", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "evaluate", OPTwrapper, false, "Evaluate constant 
expressions once.", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "garbageCollector", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "garbageCollector", OPTwrapper, false, "Garbage 
collector optimizer", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "generator", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "generator", OPTwrapper, false, "Sequence generator 
optimizer", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "querylog", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "querylog", OPTwrapper, false, "Collect SQL query 
statistics", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
+ optwrapper_pattern("aliases", "Alias removal optimizer"),
+ optwrapper_pattern("coercions", "Handle simple type coercions"),
+ optwrapper_pattern("commonTerms", "Common sub-expression optimizer"),
+ optwrapper_pattern("candidates", "Mark candidate list variables"),
+ optwrapper_pattern("volcano", "Simulate volcano style execution"),
+ optwrapper_pattern("constants", "Duplicate constant removal optimizer"),
+ optwrapper_pattern("profiler", "Collect properties for the profiler"),
+ optwrapper_pattern("costModel", "Estimate the cost of a relational 
expression"),
+ optwrapper_pattern("dataflow", "Dataflow bracket code injection"),
+ optwrapper_pattern("deadcode", "Dead code optimizer"),
+ optwrapper_pattern("emptybind", "Evaluate empty set expressions"),
+ optwrapper_pattern("jit", "Propagate candidate lists in just-in-time 
optimization"),
+ optwrapper_pattern("evaluate", "Evaluate constant expressions once"),
+ optwrapper_pattern("garbageCollector", "Garbage collector optimizer"),
+ optwrapper_pattern("generator", "Sequence generator optimizer"),
+ optwrapper_pattern("querylog", "Collect SQL query statistics"),
  pattern("optimizer", "prelude", optimizer_prelude, false, "Initialize the 
optimizer", noargs),
  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))),
- pattern("optimizer", "inline", OPTwrapper, false, "", args(1,1, arg("",str))),
- pattern("optimizer", "inline", OPTwrapper, false, "Expand inline functions", 
args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "projectionpath", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "projectionpath", OPTwrapper, false, "Join path 
constructor", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
+ optwrapper_pattern("inline", "Expand inline functions"),
+ optwrapper_pattern("projectionpath", "Join path constructor"),
  pattern("optimizer", "macro", OPTmacro, false, "Inline the code of the target 
function.", args(1,3, arg("",void),arg("targetmod",str),arg("targetfcn",str))),
  pattern("optimizer", "macro", OPTmacro, false, "Inline a target function used 
in a specific function.", args(1,5, 
arg("",void),arg("mod",str),arg("fcn",str),arg("targetmod",str),arg("targetfcn",str))),
  pattern("optimizer", "orcam", OPTorcam, false, "Inverse macro processor for 
current function", args(1,3, 
arg("",void),arg("targetmod",str),arg("targetfcn",str))),
  pattern("optimizer", "orcam", OPTorcam, false, "Inverse macro, find pattern 
and replace with a function call.", args(1,5, 
arg("",void),arg("mod",str),arg("fcn",str),arg("targetmod",str),arg("targetfcn",str))),
- pattern("optimizer", "mergetable", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "mergetable", OPTwrapper, false, "Resolve the 
multi-table definitions", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "mitosis", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "mitosis", OPTwrapper, false, "Modify the plan to 
exploit parallel processing on multiple cores", args(1,3, 
arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "multiplex", OPTwrapper, false, "Compiler for 
multiplexed instructions.", args(1,1, arg("",void))),
- pattern("optimizer", "multiplex", OPTwrapper, false, "Compiler for 
multiplexed instructions.", args(1,3, 
arg("",void),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "matpack", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "matpack", OPTwrapper, false, "Unroll the mat.pack 
operation", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "json", OPTwrapper, false, "", args(1,1, arg("",str))),
- pattern("optimizer", "json", OPTwrapper, false, "Unroll the mat.pack 
operation", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "reduce", OPTwrapper, false, "", args(1,1, arg("",str))),
- pattern("optimizer", "reduce", OPTwrapper, false, "Reduce the stack space 
claims", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "remap", OPTwrapper, false, "", args(1,1, arg("",str))),
- pattern("optimizer", "remap", OPTwrapper, false, "Remapping function calls to 
a their multiplex variant", args(1,3, 
arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "remoteQueries", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "remoteQueries", OPTwrapper, false, "Resolve the 
multi-table definitions", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "reorder", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "reorder", OPTwrapper, false, "Reorder by dataflow 
dependencies", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
+ optwrapper_pattern("mergetable", "Resolve the multi-table definitions"),
+ optwrapper_pattern("mitosis", "Modify the plan to exploit parallel processing 
on multiple cores"),
+ optwrapper_pattern("multiplex", "Compiler for multiplexed instructions"),
+ optwrapper_pattern("matpack", "Unroll the mat.pack operation"),
+ optwrapper_pattern("json", "Unroll the mat.pack operation"),
+ optwrapper_pattern("reduce", "Reduce the stack space claims"),
+ optwrapper_pattern("remap", "Remapping function calls to a their multiplex 
variant"),
+ optwrapper_pattern("remoteQueries", "Resolve the multi-table definitions"),
+ optwrapper_pattern("reorder", "Reorder by dataflow dependencies"),
  pattern("inspect", "optimizer_stats", OPTstatistics, false, "Get optimizer 
use statistics, i.e. calls and total time", args(3,3, 
batarg("",str),batarg("",int),batarg("",lng))),
- pattern("optimizer", "pushselect", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "pushselect", OPTwrapper, false, "Push selects down 
projections", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "oltp", OPTwrapper, false, "", args(1,1, arg("",str))),
- pattern("optimizer", "oltp", OPTwrapper, false, "Inject the OLTP locking 
primitives.", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "wlc", OPTwrapper, false, "", args(1,1, arg("",str))),
- pattern("optimizer", "wlc", OPTwrapper, false, "Inject the workload 
capture-replay primitives.", args(1,3, 
arg("",str),arg("mod",str),arg("fcn",str))),
- pattern("optimizer", "postfix", OPTwrapper, false, "", args(1,1, 
arg("",str))),
- pattern("optimizer", "postfix", OPTwrapper, false, "Postfix the plan,e.g. 
pushing projections", args(1,3, arg("",str),arg("mod",str),arg("fcn",str))),
+ optwrapper_pattern("pushselect", "Push selects down projections"),
+ optwrapper_pattern("oltp", "Inject the OLTP locking primitives"),
+ optwrapper_pattern("wlc", "Inject the workload capture-replay primitives"),
+ optwrapper_pattern("postfix", "Postfix the plan,e.g. pushing projections"),
  { .imp=NULL }
 };
 #include "mal_import.h"
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to