Hello Laszlo Gaal, Balazs Hevele, Joe McDonnell, Csaba Ringhofer, Impala Public
Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/24940
to look at the new patch set (#14).
Change subject: IMPALA-11917: Upgrade to GCC 15 and LLVM 22
......................................................................
IMPALA-11917: Upgrade to GCC 15 and LLVM 22
Upgrades to GCC 15, which also requires upgrading to Clang 12+. Upgrades
to LLVM 22 as a recent stable version that doesn't show a performance
regression in Impala.
Switches LLVM code generation to opaque pointers. Explicitly ensures
types are defined in generated code now that they're not part of the
pointer definition.
LLVM and GCC became more aggressive optimizing i128 access assuming
16-byte alignment, but our memory allocation is only 8-byte aligned.
Applies fixes so 128-bit int alignment is correctly identified. In
particular aligned was added to DecimalVal in udf.h; explicit padding
was added to preserve backwards compatibility with UDFs compiled on
x86_64. UDF layout on aarch64 was normalized to match, so UDFs compiled
on aarch64 that use DecimalVal will need to be recompiled.
Updates boolean, tinyint, and smallint type layout as LLVM on aarch64
now matches x86_64.
Fixes possible signed integer overflow during UBSAN in
IcebergFunctions::TruncatePartitionTransformNumericImpl.
Fixes code now flagged by Clang or _GLIBCXX_ASSERTIONS.
Fixes invalid memory_order use in atomicops, detected by UBSAN. Store
with memory_order_acquire and load with memory_order_release are
undefined according to the C++ standard. _GLIBCXX_ASSERTIONS is enabled
in UBSAN and asserts. Updates their semantics to match the old
x86-specific implementation from atomicops-internals-x86.h.
Adds handle_segv=0 to UBSAN options to match ASAN, fixing FE tests.
Removes custom SectionMemoryManager as fix is present as
https://github.com/llvm/llvm-project/commit/35b2b24e62 in LLVM 22.1.
Removes AnalyzeTemporaryDtors as it was removed in LLVM 18. Disables new
clang-tidy checks; will be addressed in follow-up commits.
Testing:
- Passed DEBUG, RELEASE, ASAN, TSAN, and UBSAN builds. TSAN and ASAN
builds are 20% faster, the rest unchanged.
- Passed RELEASE on ARM.
- Shows ~1% improvement in perf-AB-test runs with codegen caching
disabled.
Assisted-by: Claude Sonnet 4.5, 5 (GitHub Copilot)
Change-Id: I7dda730fa98ebe3825969265627a560b0c3095f9
---
M .clang-tidy
M be/CMakeLists.txt
M be/src/benchmarks/hash-benchmark.cc
M be/src/catalog/catalog-service-client-wrapper.h
M be/src/codegen/CMakeLists.txt
M be/src/codegen/codegen-anyval.cc
M be/src/codegen/codegen-callgraph.cc
M be/src/codegen/codegen-symbol-emitter.cc
M be/src/codegen/codegen-symbol-emitter.h
M be/src/codegen/instruction-counter-test.cc
M be/src/codegen/instruction-counter.cc
M be/src/codegen/llvm-codegen-cache-test.cc
M be/src/codegen/llvm-codegen-cache.cc
M be/src/codegen/llvm-codegen-test.cc
M be/src/codegen/llvm-codegen.cc
M be/src/codegen/llvm-codegen.h
M be/src/codegen/mcjit-mem-mgr.h
M be/src/common/init.cc
M be/src/exec/aggregator.cc
M be/src/exec/avro/hdfs-avro-scanner-ir.cc
M be/src/exec/avro/hdfs-avro-scanner.cc
M be/src/exec/avro/hdfs-avro-scanner.h
M be/src/exec/catalog-op-executor.h
M be/src/exec/exec-node.cc
M be/src/exec/filter-context.cc
M be/src/exec/grouping-aggregator.cc
M be/src/exec/hash-table.cc
M be/src/exec/hdfs-scanner.cc
M be/src/exec/parquet/hdfs-parquet-table-writer.cc
M be/src/exec/partitioned-hash-join-builder.cc
M be/src/exec/partitioned-hash-join-node.cc
M be/src/exec/text-converter.cc
M be/src/exprs/aggregate-functions-ir.cc
M be/src/exprs/decimal-functions-ir.cc
M be/src/exprs/expr-test.cc
M be/src/exprs/hive-udf-call.cc
M be/src/exprs/iceberg-functions-ir.cc
M be/src/exprs/iceberg-functions-test.cc
M be/src/exprs/iceberg-functions.h
M be/src/exprs/is-not-empty-predicate.cc
M be/src/exprs/kudu-partition-expr.cc
M be/src/exprs/scalar-fn-call.cc
M be/src/exprs/slot-ref.cc
M be/src/exprs/valid-tuple-id.cc
M be/src/gutil/atomicops-internals-portable.h
M be/src/gutil/ref_counted.h
M be/src/gutil/stl_util.h
M be/src/gutil/strings/human_readable.cc
M be/src/gutil/strings/human_readable.h
M be/src/gutil/strings/join.h
M be/src/gutil/strings/numbers.h
M be/src/gutil/strings/split_internal.h
M be/src/gutil/strings/util.h
M be/src/kudu/util/locks.h
M be/src/rpc/thrift-server-test.cc
M be/src/runtime/buffered-tuple-stream.cc
M be/src/runtime/coordinator.cc
M be/src/runtime/decimal-value.h
M be/src/runtime/descriptors.cc
M be/src/runtime/descriptors.h
M be/src/runtime/mem-tracker.h
M be/src/runtime/outbound-row-batch.cc
M be/src/runtime/tmp-file-mgr-test.cc
M be/src/runtime/tuple.cc
M be/src/service/CMakeLists.txt
M be/src/service/query-options-test.cc
M be/src/statestore/statestore-service-client-wrapper.h
M be/src/statestore/statestore-subscriber-client-wrapper.h
M be/src/statestore/statestore-subscriber.h
M be/src/statestore/statestore.h
D be/src/thirdparty/llvm/LICENSE.TXT
D be/src/thirdparty/llvm/SectionMemoryManager.cpp
D be/src/thirdparty/llvm/SectionMemoryManager.h
M be/src/udf/udf-test.cc
M be/src/udf/udf.cc
M be/src/udf/udf.h
M be/src/util/codec.h
M be/src/util/container-util.h
M be/src/util/mem-info.cc
M be/src/util/parse-util.h
M be/src/util/roaring-bitmap-test.cc
M be/src/util/sql-util.h
M be/src/util/tuple-row-compare.cc
M bin/impala-config.sh
M cmake_modules/FindLlvmBinaries.cmake
85 files changed, 909 insertions(+), 1,204 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/40/24940/14
--
To view, visit http://gerrit.cloudera.org:8080/24940
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I7dda730fa98ebe3825969265627a560b0c3095f9
Gerrit-Change-Number: 24940
Gerrit-PatchSet: 14
Gerrit-Owner: Michael Smith <[email protected]>
Gerrit-Reviewer: Balazs Hevele <[email protected]>
Gerrit-Reviewer: Csaba Ringhofer <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>
Gerrit-Reviewer: Joe McDonnell <[email protected]>
Gerrit-Reviewer: Laszlo Gaal <[email protected]>
Gerrit-Reviewer: Michael Smith <[email protected]>