Michael Ho has uploaded a new change for review. http://gerrit.cloudera.org:8080/7140
Change subject: IMPALA-5479: Propagate the argument type in RawValue::Compare() ...................................................................... IMPALA-5479: Propagate the argument type in RawValue::Compare() CodegenAnyVal::Compare() generates code which calls the cross compiled version of RawValue::Compare() without propagating the type information into RawValue::Compare(). As a result, the generated code of RawValue::Compare() is not any more efficient than the interpreted version as we still have the big switch statement in it. This change creates a global constant for the argument 'type' passed to RawValue::Compare(). By inlining the call to RawValue::Compare(), LLVM was able to constant propagate the type and eliminate the dead code for non-target types. With this change, a query with top-n improves by 12% on average: select l_orderkey, l_partkey, l_suppkey from tpch50_parquet.lineitem order by l_orderkey, l_partkey, l_suppkey limit 10000; 4.49s -> 3.95s This change also adds the ALWAYS_INLINE attribute to RuntimeFilter::Eval() as it's needed to propagate the type after a recent change to not put ALWAYS_INLINE attribute on all cross-compiled functions. Change-Id: I10b5b284e3da03024476a9620a12d6e7fbf08b3c --- M be/src/codegen/codegen-anyval.cc M be/src/runtime/raw-value-ir.cc M be/src/runtime/raw-value.h M be/src/runtime/runtime-filter-ir.cc M be/src/runtime/runtime-filter.h 5 files changed, 14 insertions(+), 7 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/40/7140/1 -- To view, visit http://gerrit.cloudera.org:8080/7140 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I10b5b284e3da03024476a9620a12d6e7fbf08b3c Gerrit-PatchSet: 1 Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-Owner: Michael Ho <k...@cloudera.com>