Comment by luiwammus
5 hours ago
Although I understand that upgrading LLVM version is a lot of work, it's a bit frustating that loop vectorization is still disabled.
5 hours ago
Although I understand that upgrading LLVM version is a lot of work, it's a bit frustating that loop vectorization is still disabled.
The fix could not be backported to LLVM 22 because it changed the LLVM library ABI. We also could not skip straight to LLVM 23 because that would make life harder for distro package maintainers.
Was loop vectorization by chance enabled in 0.15.2 and disabled since 0.16.0? One of my projects got 14% slower after upgrading to 0.16. I didn't dig in yet but I assumed the Io vtable was the cause (it does a lot of file io). But if the versions line up maybe it's actually loop vectorization.
Thanks for your work btw.
Yes, 0.16.0 and 0.17.0 are the only two releases that have loop vectorization disabled. (And it will be re-enabled in 0.18.0.)
I just noticed it today upgrading to 0.17.0 from 0.15.2, while doing bitwise operations a lot of large integers. I haven't looked at a debugger yet, but my guess is that would benefit a lot from loop vectorization.
You should not worry. They said they would make a short release cycle for updating to 23.