This is an archive of the discontinued LLVM Phabricator instance.

[zorg] Add AArch64 SVE vector-length-specific (VLS) bot
ClosedPublic

Authored by maxim-kuvyrkov on Jun 1 2021, 9:52 AM.

Details

Summary

At the moment the only SVE-enabled part is building/running testsuite,
and we'll enable 2-stage builds with SVE later.

Event Timeline

maxim-kuvyrkov created this revision.Jun 1 2021, 9:52 AM
maxim-kuvyrkov requested review of this revision.Jun 1 2021, 9:52 AM
Matt added a subscriber: Matt.Jun 1 2021, 10:02 AM

Add 2-stage bot as well. These are running as expected at
http://ex40-01.tcwglab.linaro.org:8013/#/workers .

rovka accepted this revision.Jun 9 2021, 5:35 AM
rovka added a subscriber: rovka.

Seems ok, I just have one minor nit.

buildbot/osuosl/master/config/builders.py
508

Do we need testStage1 if test=True?

This revision is now accepted and ready to land.Jun 9 2021, 5:35 AM
DavidSpickett added inline comments.
buildbot/osuosl/master/config/builders.py
513

Maybe a silly question, but why don't we also pass -mllvm -aarch64-sve-vector-bits-min=512 to this one?

Would it not make any difference?

zatrazz added a subscriber: zatrazz.Jun 9 2021, 5:47 AM
zatrazz added inline comments.
buildbot/osuosl/master/config/builders.py
511

Wouldn't -march=armv8-a+​sve be more generic or are we trying to mimic what users currenctly might use?

maxim-kuvyrkov marked 3 inline comments as done.Jun 9 2021, 5:58 AM
maxim-kuvyrkov added inline comments.
buildbot/osuosl/master/config/builders.py
508

Good catch, this is a left-over from me testing 2-stage bot.

511

Setting "-aarch64-sve-vector-bits-min=512" is implementation-specific to A64FX, and using -mcpu=a64fx makes it a bit more explicit.

513

This is a very good question.

Extra_cmake_args are passed to both system compiler (while building stage1 clang) and to stage1 compiler (while building stage2 clang). Current system compiler on Linaro bots is Clang 12, which crashes on several LLVM sources with "-mllvm -aarch64-sve-vector-bits-min=512".

Given that "-mllvm foo" options are not intended to normal users, it's better, imo, to just not torture system compiler with it needlessly.

Now, if Clang 12 crashes with "-mllvm -aarch64-sve-vector-bits-min=512" in extra_cmake_flags, how does below *-sve-vls-stage2 bot works? For that bot we have a workaround in our setup to filter out "-mllvm -aarch64-sve-vector-bits-min=512" options from the command line of the system compiler.

A better fix would be to enable separate stage1 and stage2 extra_cmake_flags. But, assuming that LLVM 13 will fix the SVE crashes, these per-stage flags will end up unused.

DavidSpickett added inline comments.Jun 9 2021, 6:22 AM
buildbot/osuosl/master/config/builders.py
513

Got it. That makes sense now.

This revision was automatically updated to reflect the committed changes.
maxim-kuvyrkov marked 3 inline comments as done.
Matt added inline comments.Jun 22 2021, 10:03 AM
buildbot/osuosl/master/config/builders.py
513

FWIW, LLVM has just gotten the new version of -msve-vector-bits=N (which also results in VLS codegen as an effect), https://reviews.llvm.org/D103702