Michael Smith has uploaded a new patch set (#2). ( 
http://gerrit.cloudera.org:8080/24940 )

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 Clang to a newer
version. Upgrades to LLVM 22 as a recent stable version that doesn't
show a performance regression in Impala; the update requires moving to
opaque pointers.

Fixes code now flagged by Clang or _GLIBCXX_ASSERTIONS.

Switches LLVM code generation to opaque pointers. Some additional work
was needed to ensure types are defined in generated code now that
they're not part of the pointer definition.

An LLVM version after 15 stopped including explicit padding in struct
layout, which affected offsets for DecimalVal.

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.

Updates boolean, tinyint, and smallint type layout as LLVM on aarch64
now matches x86_64.

Disables GlobalISel as in AArch64 it can spin indefinitely.

Updates all backend executables to call InitCommonRuntime to force the
static linker to pull in Common/GlobalFlags archive members.

Fixes possible signed integer overflow during UBSAN in
IcebergFunctions::TruncatePartitionTransformNumericImpl.

Fixes invalid memory_order use in atomicops, detected by UBSAN. store
with memory_order_acquire and load with memory_order_release are
undefinied 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.

Testing:
- Passed DEBUG, RELEASE, and TSAN builds. UBSAN and ASAN in progress.
- Passed RELEASE on ARM.

Assisted-by: Claude Sonnet 4.5, 5 (GitHub Copilot)
Change-Id: I7dda730fa98ebe3825969265627a560b0c3095f9
---
M be/CMakeLists.txt
M be/src/benchmarks/atof-benchmark.cc
M be/src/benchmarks/atoi-benchmark.cc
M be/src/benchmarks/bit-packing-benchmark.cc
M be/src/benchmarks/bitmap-benchmark.cc
M be/src/benchmarks/bswap-benchmark.cc
M be/src/benchmarks/decimal-util-benchmark.cc
M be/src/benchmarks/hash-benchmark.cc
M be/src/benchmarks/int-hash-benchmark.cc
M be/src/benchmarks/lock-benchmark.cc
M be/src/benchmarks/multiint-benchmark.cc
M be/src/benchmarks/parquet-byte-stream-split-decoder-benchmark.cc
M be/src/benchmarks/parquet-delta-length-byte-array-benchmark.cc
M be/src/benchmarks/rle-benchmark.cc
M be/src/benchmarks/runtime-profile-benchmark.cc
M be/src/benchmarks/status-benchmark.cc
M be/src/benchmarks/string-benchmark.cc
M be/src/benchmarks/string-compare-benchmark.cc
M be/src/benchmarks/string-search-benchmark.cc
M be/src/benchmarks/tuple-layout-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-anyval.h
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.cc
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/kudu/kudu-array-inserter.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/scanner-context.h
M be/src/exec/text-converter.cc
M be/src/experiments/hash-partition-test.cc
M be/src/exprs/aggregate-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/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/client-request-state.cc
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.cc
M be/src/statestore/statestore.cc
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/compression-util.cc
M be/src/util/container-util.h
M be/src/util/jwt-util-internal.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/runtime-profile-counters.h
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
109 files changed, 949 insertions(+), 1,368 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/40/24940/2
--
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: 2
Gerrit-Owner: Michael Smith <[email protected]>

Reply via email to