[llvm] [LoopInterchange] Enable it by default (PR #124911)
Sjoerd Meijer via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 16 09:50:56 PDT 2025
sjoerdmeijer wrote:
> Could you please provide updated compile-time and performance numbers? The implementation has changed a lot in the meantime.
Here are the new compile time numbers @nikic :
http://llvm-compile-time-tracker.com/compare.php?from=a8dacd40da0f48484bda05e066b5fa692bcddcc6&to=95270f01ac1f4f29deec6f5c29e4d7e74b4171e5&stat=instructions:u
It shows almost no increase in compile-times. The reason is that it doesn't trigger in CTMark. For the entire LLVM test-suite, it now only triggers 2 times:
test-suite/MultiSource/Applications/obsequi/tables.c:224:7: remark: Loop interchanged with enclosing loop. [-Rpass=loop-interchange]
test-suite/MultiSource/Applications/obsequi/tables.c:224:7: remark: Loop interchanged with enclosing loop. [-Rpass=loop-interchange]
So, one way to explain the numbers is that interchange is now really good in deciding that it is not going to do anything, which isn't a bad thing.
We knew it wasn't going to trigger as much as before, but we can start looking at lifting restrictions later when this is running for some time.
While collecting compile-time numbers, I noticed that there is a problem with this patch. I.e. the patch doesn't actually add the pass to the pipeline, so it is not running interchange. This is related to the `PTO.LoopInterchange` check which essentially is only true when `-floop-interchange` is enabled. I will fix and update this soon.
https://github.com/llvm/llvm-project/pull/124911
More information about the llvm-commits
mailing list