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