Andrew Sherman has uploaded this change for review. ( http://gerrit.cloudera.org:8080/12068
Change subject: IMPALA-7657: Codegen IsNotEmptyPredicate and ValidTupleIdExpr. ...................................................................... IMPALA-7657: Codegen IsNotEmptyPredicate and ValidTupleIdExpr. These two classes evaluate scalar expressions. Previously codegen was done by calling ScalarExpr::GetCodegendComputeFnWrapper which generates a static method that calls the scalar expression evaluation methods. Make this more efficient by using cross-compiled code which is customized at codegen time. Add cross-compiled files is-not-empty-predicate-ir.cc and valid-tuple-id-ir.cc These files contain the methods that will be specialized during code generation These methods have to be static to match the expected method signatures Refactor the existing scalar methods so that they call a new internal static method which contains the implementation of the scalar expression This static method is called from both the old member function and the new cross-compiled method. IMPALA-7657 also requests replacing GetCodegendComputeFnWrapper() in TupleIsNullPredicate. In the current Impala code this method is never called. This is because TupleIsNullPredicate is always wrapped in an IfExpr. This is always codegen'd by IfExpr's GetCodegendComputeFnWrapper() method. There is a separate Jira IMPALA-7655 to improve codegen of IfExpr. Minor corrections: Correct the link to llvm tutorial in LlvmCodegen. Make a method private in TupleIsNullPredicate.java. TESTING: The changed scalar expressions are well exercised by current tests. Ran end-to-end tests. Change-Id: Ifb87b9e3b879c278ce8638d97bcb320a7555a6b3 --- M be/src/codegen/gen_ir_descriptions.py M be/src/codegen/impala-ir.cc M be/src/codegen/llvm-codegen.h M be/src/exprs/CMakeLists.txt A be/src/exprs/is-not-empty-predicate-ir.cc M be/src/exprs/is-not-empty-predicate.cc M be/src/exprs/is-not-empty-predicate.h M be/src/exprs/slot-ref.cc A be/src/exprs/valid-tuple-id-ir.cc M be/src/exprs/valid-tuple-id.cc M be/src/exprs/valid-tuple-id.h M fe/src/main/java/org/apache/impala/analysis/TupleIsNullPredicate.java 12 files changed, 205 insertions(+), 41 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/68/12068/1 -- To view, visit http://gerrit.cloudera.org:8080/12068 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ifb87b9e3b879c278ce8638d97bcb320a7555a6b3 Gerrit-Change-Number: 12068 Gerrit-PatchSet: 1 Gerrit-Owner: Andrew Sherman <asher...@cloudera.com> Gerrit-Reviewer: Thomas Marshall <thomasmarsh...@cmu.edu>