Bardia Mahjour via llvm-dev
2021-Apr-13 21:11 UTC
[llvm-dev] Should `llvm.loop.unroll.disable` disable interleaving?
Hi, Currently the `#pragma clang loop unroll(disable)` directive has no impact on loop vectorizer's decision to interleave or not. I think it would make sense to avoid interleaving when the user specifically asked for no unrolling. I'm just wondering what people think about having `#pragma clang loop unroll(disable)` or `#pragma clang loop unroll_count(1)` imply `#pragma clang loop interleave(disable)`?> cat tmp.cvoid foo(int n, int * A) { #pragma clang loop unroll(disable) for (int i = 0; i < n; i++) A[i] = i; }> clang -O3 tmp.c -S -emit-llvm -mllvm -debug-only=loop-vectorize 2>&1 |grep -i interleave LV: Interleave Count is 12 Bardia Mahjour Compiler Optimizations IBM Toronto Software Lab -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210413/e335f78d/attachment.html>
Sjoerd Meijer via llvm-dev
2021-Apr-14 13:31 UTC
[llvm-dev] Should `llvm.loop.unroll.disable` disable interleaving?
Sounds very reasonable to me. ________________________________ From: llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of Bardia Mahjour via llvm-dev <llvm-dev at lists.llvm.org> Sent: 13 April 2021 22:11 To: llvm-dev at lists.llvm.org <llvm-dev at lists.llvm.org> Subject: [llvm-dev] Should `llvm.loop.unroll.disable` disable interleaving? Hi, Currently the `#pragma clang loop unroll(disable)` directive has no impact on loop vectorizer's decision to interleave or not. I think it would make sense to avoid interleaving when the user specifically asked for no unrolling. I'm just wondering what people think about having `#pragma clang loop unroll(disable)` or `#pragma clang loop unroll_count(1)` imply `#pragma clang loop interleave(disable)`?> cat tmp.cvoid foo(int n, int * A) { #pragma clang loop unroll(disable) for (int i = 0; i < n; i++) A[i] = i; }> clang -O3 tmp.c -S -emit-llvm -mllvm -debug-only=loop-vectorize 2>&1 | grep -i interleaveLV: Interleave Count is 12 Bardia Mahjour Compiler Optimizations IBM Toronto Software Lab -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210414/8753aab8/attachment-0001.html>