Add LLVM 19.1.x support for LDC#4772
Conversation
|
Cheers! I'm preparing the LLVM fork based on v19.1.3. |
|
Okay not looking bad, just lit-test failures to look into, most apparently intrinsic-related too. |
8edf863 to
5265dcb
Compare
|
Done; now all tests passed on CI systems. I also "accidentally" fixed a D-Compute regression introduced in the LLVM 18 port. |
|
Awesome! - I've released https://github.com/ldc-developers/llvm-project/releases/tag/ldc-v19.1.3, so we can switch back to v19.1.3 in the YAMLs. |
Done. I have edited your commit to exclude the commit hash changes. |
|
Done. CI passed again. |
|
Oh, I think I accidentally shadowed #4726 |
| #define SPIR_DATALAYOUT64 \ | ||
| "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128" \ | ||
| "-v192:256-v256:256-v512:512-v1024:1024-G1" | ||
| #endif |
There was a problem hiding this comment.
@thewilsonator: Is your approval a definitive this-is-OK, or rather a I-guess-it's-OK? :) - Just wondering wrt. #4772 (comment), the missing n parts that clang uses.
I don't know why the macOS ARM64 CI runner had a problem. According to https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md, the CI runner image did not change. Maybe it is a temporary failure that can be fixed by a retry. |
|
Yeah don't worry about that apparent GHA hickup. And note that I can take care of the remaining nits, I'll add a changelog entry anyway. Just waiting for @thewilsonator to confirm the SPIRV stuff. - Thanks! |
f5eb0e0 to
90c43e0
Compare
I will need to rebase the pull request against the latest master branch anyways, I will just address those.
For the context, the new data layout string comes from: https://github.com/llvm/llvm-project/blob/85eec89600085a054650585d3a3287a6e0a93a50/clang/lib/Basic/Targets/SPIR.h#L248-L276 |
Ah thx. I see there are similar strings for SPIRV targets a bit below: https://github.com/llvm/llvm-project/blob/85eec89600085a054650585d3a3287a6e0a93a50/clang/lib/Basic/Targets/SPIR.h#L321-L367. Those have an extra |
I have tested both data layouts; the one with the |
|
Rebased the pull request against the latest master branch. |
|
The CI blew up because CircleCI recently upgraded their VM host to Ubuntu 24.04 which uses |
|
Thx for digging wrt. Circle! Keeping CI working can be tedious at times indeed. I lean towards trying to use the latest Ubuntu image (24.04 or 24.10) for Circle (the 2 jobs don't offer much value, not covering a lot that isn't covered by other CI jobs); hopefully their gdb is recent enough to not hit #4389, which is the main (only?) blocker for using more recent distros for CI. |
I see, Ubuntu 24.04 is the first release that got GDB regression fixed. Also Ubuntu 22.04 will also get this regression fixed very soon: https://launchpad.net/ubuntu/+source/gdb/12.1-0ubuntu1~22.04.3 |
... because now LLVM requires most intrinsics to have parameter types specified
... also fixes tests/codegen/xtensa.d
... LDC_LLVM_VER >= 1900 instead of 1901
|
Done. Changelog entries added. |
|
Thanks mate; I'll merge manually after CI has run - we've run out of free credits for Cirrus CI for this month. |
There's https://github.blog/news-insights/product-news/arm64-on-github-actions-powering-faster-more-efficient-build-systems/#github-and-arm-a-new-class-of-image; maybe we will be able to use these (hopefully) next year. |
|
Yep that's exactly the announcement I'm waiting for; I assumed/hoped they'd open it to the public in this year still. |
This pull request adds LLVM 19.1.x support for LDC. It is based on previous work by @kinke and @thewilsonator in #4763 and #4735.
Some CI setup is required because it needs 19.1.3 binaries in the forked LLVM repository.