Internal Jenkins has submitted this change and it was merged. Change subject: Reduce dependencies on inline header functions ......................................................................
Reduce dependencies on inline header functions This patch helps reduce compile times when modifying function implementations in decimal-value.h, e.g. when tuning the implementations of decimal operators. decimal-value.h was included in many places that only need to know about the layout of DecimalValue, not the implementation of decimal operations. It was included indirectly in many files, e.g. via runtime-state.h. The patch moves those functions to decimal-value.inline.h and is able to avoid including decimal-value.inline.h in most headers. We also need to do the same thing for raw-value.h and runtime-filter.h, because some of the inline functions in raw-value.h referenced inline functions in decimal-value.h, and functions in runtime-filter.h referenced inline functions in runtime-filter.h. It also moves timestamp parsing logic from .h to .cc file. This slightly reduces the size of the llvm bitcode module and will slightly reduce compile times. The functions are too large to benefit from inlining in generated code. Change-Id: Ic7a2f388cd14a4427c43af2724340a2ffe8fae3d Reviewed-on: http://gerrit.cloudera.org:8080/2485 Reviewed-by: Tim Armstrong <[email protected]> Tested-by: Internal Jenkins --- M be/src/benchmarks/hash-benchmark.cc M be/src/benchmarks/overflow-benchmark.cc M be/src/codegen/llvm-codegen-test.cc M be/src/common/init.cc M be/src/exec/hash-table.cc M be/src/exec/hbase-table-writer.cc M be/src/exec/hdfs-avro-scanner-ir.cc M be/src/exec/hdfs-avro-table-writer.cc M be/src/exec/hdfs-parquet-scanner.cc M be/src/exec/hdfs-parquet-table-writer.cc M be/src/exec/hdfs-rcfile-scanner.cc M be/src/exec/hdfs-scan-node.cc M be/src/exec/hdfs-scanner.cc M be/src/exec/hdfs-sequence-table-writer.cc M be/src/exec/hdfs-table-sink.cc M be/src/exec/hdfs-text-scanner.cc M be/src/exec/hdfs-text-table-writer.cc M be/src/exec/kudu-testutil.h M be/src/exec/old-hash-table.cc M be/src/exec/parquet-common.h M be/src/exec/partitioned-aggregation-node-ir.cc M be/src/exec/partitioned-hash-join-node.cc M be/src/exec/select-node.cc M be/src/exec/topn-node.cc M be/src/exprs/agg-fn-evaluator.cc M be/src/exprs/aggregate-functions.cc M be/src/exprs/anyval-util.h M be/src/exprs/cast-functions.cc M be/src/exprs/decimal-operators.cc M be/src/exprs/decimal-operators.h M be/src/exprs/expr-context.cc M be/src/exprs/expr-test.cc M be/src/exprs/expr-value.h M be/src/exprs/expr.cc M be/src/exprs/expr.h M be/src/exprs/literal.cc M be/src/exprs/math-functions.cc M be/src/exprs/operators.cc M be/src/exprs/slot-ref.cc M be/src/exprs/timestamp-functions.cc M be/src/exprs/timestamp-functions.h M be/src/runtime/buffered-tuple-stream-test.cc M be/src/runtime/buffered-tuple-stream.cc M be/src/runtime/data-stream-mgr.cc M be/src/runtime/data-stream-sender.cc M be/src/runtime/data-stream-test.cc M be/src/runtime/decimal-test.cc M be/src/runtime/decimal-value.h A be/src/runtime/decimal-value.inline.h M be/src/runtime/raw-value-ir.cc M be/src/runtime/raw-value-test.cc M be/src/runtime/raw-value.cc M be/src/runtime/raw-value.h A be/src/runtime/raw-value.inline.h M be/src/runtime/row-batch-serialize-test.cc M be/src/runtime/runtime-filter.cc M be/src/runtime/runtime-filter.h A be/src/runtime/runtime-filter.inline.h M be/src/runtime/string-value.h M be/src/runtime/string-value.inline.h M be/src/runtime/timestamp-parse-util.cc M be/src/runtime/timestamp-parse-util.h M be/src/runtime/timestamp-test.cc M be/src/runtime/timestamp-value.cc M be/src/runtime/timestamp-value.h M be/src/service/hs2-util.cc M be/src/service/impala-beeswax-server.cc M be/src/service/impala-hs2-server.cc M be/src/util/debug-util.cc M be/src/util/decimal-util.h M be/src/util/tuple-row-compare.h 71 files changed, 1,637 insertions(+), 1,364 deletions(-) Approvals: Internal Jenkins: Verified Tim Armstrong: Looks good to me, approved -- To view, visit http://gerrit.cloudera.org:8080/2485 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ic7a2f388cd14a4427c43af2724340a2ffe8fae3d Gerrit-PatchSet: 15 Gerrit-Project: Impala Gerrit-Branch: cdh5-trunk Gerrit-Owner: Tim Armstrong <[email protected]> Gerrit-Reviewer: Dan Hecht <[email protected]> Gerrit-Reviewer: Internal Jenkins Gerrit-Reviewer: Michael Ho <[email protected]> Gerrit-Reviewer: Skye Wanderman-Milne <[email protected]> Gerrit-Reviewer: Tim Armstrong <[email protected]>
