Michael Smith has uploaded this change for review. ( 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. 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/1 -- 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: newchange Gerrit-Change-Id: I7dda730fa98ebe3825969265627a560b0c3095f9 Gerrit-Change-Number: 24940 Gerrit-PatchSet: 1 Gerrit-Owner: Michael Smith <[email protected]>
