[llvm-dev] Auto-vectorization option
Sjoerd Meijer via llvm-dev
llvm-dev at lists.llvm.org
Fri May 14 01:08:11 PDT 2021
Hi,
Not sure what you mean by only getting binaries: "clang -S -emit-llvm" should produce a .ll and so will opt.
> clang -S -emit-llvm find_max.c -o find_max.ll
Since no optimisation level is specified, this will result in very unoptimised code, probably resulting in vectorisation not triggering. I usually do "clang -O3 -S -emit-llvm -mllvm -print-before-all", or something equivalent, and then grab the IR just before vectorisation.
> clang -O3 -c find_max.c -Rpass=vector -Rpass-analysis=vector
>From a very quick look, this will probably not show anything because of your example: the second loop has no effect and is optimised away, only the first remains which is fully unrolled. Returning "max" will probably help.
________________________________
From: llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of Sudakshina Dutta via llvm-dev <llvm-dev at lists.llvm.org>
Sent: 14 May 2021 04:16
To: LLVM Development List <llvm-dev at lists.llvm.org>
Subject: [llvm-dev] Auto-vectorization option
Dear all,
Greetings. I want to generate the intermediate code (.ll file) after having LLVM auto-vectorization transformation on the source C file. I have the following code (find_max.c) on which I want to apply auto-vectorization.
int main()
{
int i, n, max, arr[50];
for(i = 0; i < 35; i++)
{
printf("arr[%d] = ", i);
scanf("%d", &arr[i]);
}
max = arr[0];
for(i = 1; i < 35; i++)
{
if(arr[i] > max)
{
max = arr[i];
}
}
}
I have tried the following.
1. clang -S -emit-llvm find_max.c -o find_max.ll
2. opt -loop-vectorize -force-vector-width=8 find_max.ll -o find_max_opt.ll
and
1. clang -O3 -c find_max.c -Rpass=vector -Rpass-analysis=vector
2. clang -O3 -c find_max.c -Rpass=vector -Rpass-analysis=vector -o find_max.ll
All the above options generate binary files. I request you to please help.
Thanks and regards,
Sudakshina
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210514/5ceeebdb/attachment.html>
More information about the llvm-dev
mailing list