Hello Impala Public Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/25010
to look at the new patch set (#4).
Change subject: TBD: Avoid trunc to i1 in CodegenAnyVal::GetIsNull
......................................................................
TBD: Avoid trunc to i1 in CodegenAnyVal::GetIsNull
In DEBUG builds on aarch64, LLVM uses GlobalISel at -O0. Codegen for
string aggregates such as GROUP_CONCAT hung in its legalizer. GetIsNull
emitted 'trunc i64 to i1' for the null flag, which InstCombine rewrites
to an extractelement on a <128 x i1> bitcast of the SROA'd StringVal
vector. GlobalISel cannot legalize that efficiently.
Test the low bit with 'and 1; icmp ne 0' instead, which LLVM turns into
an i8 extractelement. This replaces the aarch64 -O0 GlobalISel disable
flag added in the previous commit, so GlobalISel is no longer bypassed.
Testing:
- load_nested.py's tmp_orders query hung for over 120s before and now
completes in about 8s on an aarch64 DEBUG build.
- The optimized IR for that query contains no <N x i1> vectors.
- LLVM 22 hangs on test_very_large_strings. Fixed in 23.1.2.
Change-Id: I9882bc674d7d852e04786cae71faa415ba397140
Assisted-by: Claude Sonnet 5.5 (GitHub Copilot)
---
M be/src/codegen/codegen-anyval.cc
M be/src/codegen/llvm-codegen.cc
2 files changed, 14 insertions(+), 13 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/10/25010/4
--
To view, visit http://gerrit.cloudera.org:8080/25010
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9882bc674d7d852e04786cae71faa415ba397140
Gerrit-Change-Number: 25010
Gerrit-PatchSet: 4
Gerrit-Owner: Michael Smith <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>
Gerrit-Reviewer: Michael Smith <[email protected]>