[ https://issues.apache.org/jira/browse/DRILL-3912?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14986653#comment-14986653 ]
ASF GitHub Bot commented on DRILL-3912: --------------------------------------- Github user StevenMPhillips commented on a diff in the pull request: https://github.com/apache/drill/pull/189#discussion_r43715208 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/expr/ClassGenerator.java --- @@ -218,11 +220,16 @@ public HoldingContainer addExpr(LogicalExpression ex) { } public HoldingContainer addExpr(LogicalExpression ex, boolean rotate) { + return addExpr(ex, rotate, false); --- End diff -- I actually think I will just remove the boolean flag altogether. Originally I wanted to limit the scope, but I think it makes sense to always have it enabled. > Common subexpression elimination in code generation > --------------------------------------------------- > > Key: DRILL-3912 > URL: https://issues.apache.org/jira/browse/DRILL-3912 > Project: Apache Drill > Issue Type: Improvement > Reporter: Steven Phillips > Assignee: Jinfeng Ni > > Drill currently will evaluate the full expression tree, even if there are > redundant subtrees. Many of these redundant evaluations can be eliminated by > reusing the results from previously evaluated expression trees. > For example, > {code} > select a + 1, (a + 1)* (a - 1) from t > {code} > Will compute the entire (a + 1) expression twice. With CSE, it will only be > evaluated once. > The benefit will be reducing the work done when evaluating expressions, as > well as reducing the amount of code that is generated, which could also lead > to better JIT optimization. -- This message was sent by Atlassian JIRA (v6.3.4#6332)