Optimizers

MODULE optimizer;

PATTERN optimizer.aliases():str;
COMMENT "";

PATTERN optimizer.aliases(X_0:str, X_1:str):str;
COMMENT "Alias removal optimizer";

PATTERN optimizer.candidates():str;
COMMENT "";

PATTERN optimizer.candidates(X_0:str, X_1:str):str;
COMMENT "Mark candidate list variables";

PATTERN optimizer.coercions():str;
COMMENT "";

PATTERN optimizer.coercions(X_0:str, X_1:str):str;
COMMENT "Handle simple type coercions";

PATTERN optimizer.commonTerms():str;
COMMENT "";

PATTERN optimizer.commonTerms(X_0:str, X_1:str):str;
COMMENT "Common sub-expression optimizer";

PATTERN optimizer.constants():str;
COMMENT "";

PATTERN optimizer.constants(X_0:str, X_1:str):str;
COMMENT "Duplicate constant removal optimizer";

PATTERN optimizer.costModel():str;
COMMENT "";

PATTERN optimizer.costModel(X_0:str, X_1:str):str;
COMMENT "Estimate the cost of a relational expression";

PATTERN optimizer.dataflow():str;
COMMENT "";

PATTERN optimizer.dataflow(X_0:str, X_1:str):str;
COMMENT "Dataflow bracket code injection";

PATTERN optimizer.deadcode():str;
COMMENT "";

PATTERN optimizer.deadcode(X_0:str, X_1:str):str;
COMMENT "Dead code optimizer";

PATTERN optimizer.defaultfast():str;
COMMENT "";

PATTERN optimizer.defaultfast(X_0:str, X_1:str):str;
COMMENT "Fast compound default optimizer pipe";

PATTERN optimizer.dict():str;
COMMENT "";

PATTERN optimizer.dict(X_0:str, X_1:str):str;
COMMENT "Push dict decompress down";

PATTERN optimizer.emptybind():str;
COMMENT "";

PATTERN optimizer.emptybind(X_0:str, X_1:str):str;
COMMENT "Evaluate empty set expressions";

COMMAND optimizer.epilogue():void;
COMMENT "release the resources held by the optimizer module";

PATTERN optimizer.evaluate():str;
COMMENT "";

PATTERN optimizer.evaluate(X_0:str, X_1:str):str;
COMMENT "Evaluate constant expressions once";

PATTERN optimizer.for():str;
COMMENT "";

PATTERN optimizer.for(X_0:str, X_1:str):str;
COMMENT "Push for decompress down";

PATTERN optimizer.garbageCollector():str;
COMMENT "";

PATTERN optimizer.garbageCollector(X_0:str, X_1:str):str;
COMMENT "Garbage collector optimizer";

PATTERN optimizer.generator():str;
COMMENT "";

PATTERN optimizer.generator(X_0:str, X_1:str):str;
COMMENT "Sequence generator optimizer";

PATTERN optimizer.inline():str;
COMMENT "";

PATTERN optimizer.inline(X_0:str, X_1:str):str;
COMMENT "Expand inline functions";

PATTERN optimizer.macro(X_0:str, X_1:str):void;
COMMENT "Inline the code of the target function.";

PATTERN optimizer.macro(X_0:str, X_1:str, X_2:str, X_3:str):void;
COMMENT "Inline a target function used in a specific function.";

PATTERN optimizer.matpack():str;
COMMENT "";

PATTERN optimizer.matpack(X_0:str, X_1:str):str;
COMMENT "Unroll the mat.pack operation";

PATTERN optimizer.mergetable():str;
COMMENT "";

PATTERN optimizer.mergetable(X_0:str, X_1:str):str;
COMMENT "Resolve the multi-table definitions";

PATTERN optimizer.minimalfast():str;
COMMENT "";

PATTERN optimizer.minimalfast(X_0:str, X_1:str):str;
COMMENT "Fast compound minimal optimizer pipe";

PATTERN optimizer.mitosis():str;
COMMENT "";

PATTERN optimizer.mitosis(X_0:str, X_1:str):str;
COMMENT "Modify the plan to exploit parallel processing on multiple cores";

PATTERN optimizer.multiplex():str;
COMMENT "";

PATTERN optimizer.multiplex(X_0:str, X_1:str):str;
COMMENT "Compiler for multiplexed instructions";

PATTERN optimizer.optimize(X_0:str, X_1:str):void;
COMMENT "Optimize a specific operation";

PATTERN optimizer.orcam(X_0:str, X_1:str):void;
COMMENT "Inverse macro processor for current function";

PATTERN optimizer.orcam(X_0:str, X_1:str, X_2:str, X_3:str):void;
COMMENT "Inverse macro, find pattern and replace with a function call.";

PATTERN optimizer.postfix():str;
COMMENT "";

PATTERN optimizer.postfix(X_0:str, X_1:str):str;
COMMENT "Postfix the plan,e.g. pushing projections";

PATTERN optimizer.profiler():str;
COMMENT "";

PATTERN optimizer.profiler(X_0:str, X_1:str):str;
COMMENT "Collect properties for the profiler";

PATTERN optimizer.projectionpath():str;
COMMENT "";

PATTERN optimizer.projectionpath(X_0:str, X_1:str):str;
COMMENT "Join path constructor";

PATTERN optimizer.pushselect():str;
COMMENT "";

PATTERN optimizer.pushselect(X_0:str, X_1:str):str;
COMMENT "Push selects down projections";

PATTERN optimizer.querylog():str;
COMMENT "";

PATTERN optimizer.querylog(X_0:str, X_1:str):str;
COMMENT "Collect SQL query statistics";

PATTERN optimizer.reduce():str;
COMMENT "";

PATTERN optimizer.reduce(X_0:str, X_1:str):str;
COMMENT "Reduce the stack space claims";

PATTERN optimizer.remap():str;
COMMENT "";

PATTERN optimizer.remap(X_0:str, X_1:str):str;
COMMENT "Remapping function calls to a their multiplex variant";

PATTERN optimizer.remoteQueries():str;
COMMENT "";

PATTERN optimizer.remoteQueries(X_0:str, X_1:str):str;
COMMENT "Resolve the multi-table definitions";

PATTERN optimizer.reorder():str;
COMMENT "";

PATTERN optimizer.reorder(X_0:str, X_1:str):str;
COMMENT "Reorder by dataflow dependencies";

PATTERN optimizer.strimps():str;
COMMENT "";

PATTERN optimizer.strimps(X_0:str, X_1:str):str;
COMMENT "Use strimps index if appropriate";

PATTERN optimizer.wrapper():str;
COMMENT "";

PATTERN optimizer.wrapper(X_0:str, X_1:str):str;
COMMENT "Fake optimizer";