-
Notifications
You must be signed in to change notification settings - Fork 4.3k
GH-51245: [C++][Compute][Gandiva] Add support for LLVM 23.1 #51266
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
7a63d79
658e96e
eee5f51
6c10961
1fedaa6
6e94005
f59ad59
4fddf8e
db80a5b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -16,4 +16,4 @@ | |
| # under the License. | ||
|
|
||
| clang | ||
| llvmdev<23 | ||
| llvmdev<24 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -1185,16 +1185,6 @@ class ScalarAggExecutor : public KernelExecutorImpl<ScalarAggregateKernel> { | |
| const FunctionOptions* options_; | ||
| }; | ||
|
|
||
| template <typename ExecutorType, | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's a template function which doesn't have any callers. |
||
| typename FunctionType = typename ExecutorType::FunctionType> | ||
| Result<std::unique_ptr<KernelExecutor>> MakeExecutor(ExecContext* ctx, | ||
| const Function* func, | ||
| const FunctionOptions* options) { | ||
| DCHECK_EQ(ExecutorType::function_kind, func->kind()); | ||
| auto typed_func = checked_cast<const FunctionType*>(func); | ||
| return std::make_unique<ExecutorType>(ctx, typed_func, options); | ||
| } | ||
|
|
||
| } // namespace | ||
|
|
||
| Status PropagateNulls(KernelContext* ctx, const ExecSpan& batch, ArrayData* output) { | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -481,8 +481,8 @@ struct UnboxScalar<Decimal256Type> { | |
|
|
||
| template <typename T, typename VisitFunc, typename NullFunc> | ||
| requires std::is_void_v<std::invoke_result_t<VisitFunc, typename GetViewType<T>::T>> | ||
| static void VisitArrayValuesInline(const ArraySpan& arr, VisitFunc&& valid_func, | ||
| NullFunc&& null_func) { | ||
| void VisitArrayValuesInline(const ArraySpan& arr, VisitFunc&& valid_func, | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. LLVM 23 added
I don't think there's any harm in removing |
||
| NullFunc&& null_func) { | ||
| VisitArraySpanInline<T>( | ||
| arr, | ||
| [&](typename GetViewType<T>::PhysicalType v) { | ||
|
|
@@ -494,8 +494,8 @@ static void VisitArrayValuesInline(const ArraySpan& arr, VisitFunc&& valid_func, | |
| template <typename T, typename VisitFunc, typename NullFunc> | ||
| requires std::is_same_v<std::invoke_result_t<VisitFunc, typename GetViewType<T>::T>, | ||
| Status> | ||
| static Status VisitArrayValuesInline(const ArraySpan& arr, VisitFunc&& valid_func, | ||
| NullFunc&& null_func) { | ||
| Status VisitArrayValuesInline(const ArraySpan& arr, VisitFunc&& valid_func, | ||
| NullFunc&& null_func) { | ||
| return VisitArraySpanInline<T>( | ||
| arr, | ||
| [&](typename GetViewType<T>::PhysicalType v) { | ||
|
|
@@ -507,8 +507,8 @@ static Status VisitArrayValuesInline(const ArraySpan& arr, VisitFunc&& valid_fun | |
| // Like VisitArrayValuesInline, but for binary functions. | ||
|
|
||
| template <typename Arg0Type, typename Arg1Type, typename VisitFunc, typename NullFunc> | ||
| static void VisitTwoArrayValuesInline(const ArraySpan& arr0, const ArraySpan& arr1, | ||
| VisitFunc&& valid_func, NullFunc&& null_func) { | ||
| void VisitTwoArrayValuesInline(const ArraySpan& arr0, const ArraySpan& arr1, | ||
| VisitFunc&& valid_func, NullFunc&& null_func) { | ||
| ArrayIterator<Arg0Type> arr0_it(arr0); | ||
| ArrayIterator<Arg1Type> arr1_it(arr1); | ||
|
|
||
|
|
@@ -584,7 +584,7 @@ namespace applicator { | |
| // static Status Call(KernelContext*, const Scalar& arg0, const ArraySpan& arg1, | ||
| // ExecResult* out) | ||
| template <typename Operator> | ||
| static Status SimpleBinary(KernelContext* ctx, const ExecSpan& batch, ExecResult* out) { | ||
| Status SimpleBinary(KernelContext* ctx, const ExecSpan& batch, ExecResult* out) { | ||
| if (batch.length == 0) return Status::OK(); | ||
|
|
||
| if (batch[0].is_array()) { | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -1191,21 +1191,21 @@ constexpr int64_t kMillisecondsInDay = 86400000; | |
|
|
||
| // date to date | ||
| template <typename To> | ||
| enable_if_t<std::is_same<To, Date64Scalar>::value, Result<std::shared_ptr<Scalar>>> | ||
| enable_if_t<std::is_same<To, Date64Type>::value, Result<std::shared_ptr<Scalar>>> | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is another issue exposed by |
||
| CastImpl(const Date32Scalar& from, std::shared_ptr<DataType> to_type) { | ||
| return std::make_shared<Date64Scalar>(from.value * kMillisecondsInDay, | ||
| std::move(to_type)); | ||
| } | ||
| template <typename To> | ||
| enable_if_t<std::is_same<To, Date32Scalar>::value, Result<std::shared_ptr<Scalar>>> | ||
| enable_if_t<std::is_same<To, Date32Type>::value, Result<std::shared_ptr<Scalar>>> | ||
| CastImpl(const Date64Scalar& from, std::shared_ptr<DataType> to_type) { | ||
| return std::make_shared<Date32Scalar>( | ||
| static_cast<int32_t>(from.value / kMillisecondsInDay), std::move(to_type)); | ||
| } | ||
|
|
||
| // timestamp to date | ||
| template <typename To> | ||
| enable_if_t<std::is_same<To, Date64Scalar>::value, Result<std::shared_ptr<Scalar>>> | ||
| enable_if_t<std::is_same<To, Date64Type>::value, Result<std::shared_ptr<Scalar>>> | ||
| CastImpl(const TimestampScalar& from, std::shared_ptr<DataType> to_type) { | ||
| ARROW_ASSIGN_OR_RAISE( | ||
| auto millis, | ||
|
|
@@ -1214,7 +1214,7 @@ CastImpl(const TimestampScalar& from, std::shared_ptr<DataType> to_type) { | |
| std::move(to_type)); | ||
| } | ||
| template <typename To> | ||
| enable_if_t<std::is_same<To, Date32Scalar>::value, Result<std::shared_ptr<Scalar>>> | ||
| enable_if_t<std::is_same<To, Date32Type>::value, Result<std::shared_ptr<Scalar>>> | ||
| CastImpl(const TimestampScalar& from, std::shared_ptr<DataType> to_type) { | ||
| ARROW_ASSIGN_OR_RAISE( | ||
| auto millis, | ||
|
|
@@ -1225,7 +1225,7 @@ CastImpl(const TimestampScalar& from, std::shared_ptr<DataType> to_type) { | |
|
|
||
| // date to timestamp | ||
| template <typename To, typename From> | ||
| enable_if_timestamp<Result<std::shared_ptr<To>>> CastImpl( | ||
| enable_if_timestamp<To, Result<std::shared_ptr<Scalar>>> CastImpl( | ||
| const DateScalar<From>& from, std::shared_ptr<DataType> to_type) { | ||
| using ToScalar = typename TypeTraits<To>::ScalarType; | ||
| int64_t millis = from.value; | ||
|
|
||