[llvm-dev] Forcing loop optimization
Johannes Doerfert via llvm-dev
llvm-dev at lists.llvm.org
Mon Jun 14 07:37:11 PDT 2021
Hi Sudakshina,
Add -sroa (or mem2reg) to your second command to simplify the IR in a
way loop unroll can deal with:
https://godbolt.org/z/refxnMcf3
I removed options that are not needed in the link above.
Hope this helps,
Johannes
On 6/14/21 8:23 AM, Sudakshina Dutta via llvm-dev wrote:
> Dear all,
>
> Good day to you. Is it possible to have forced application of loop
> unrolling or any other loop optimization ? I have tried applying loop
> unrolling on the following code. However, the optimization has not been
> applied by Clang.
>
> *Code (code.c)*
> int main()
> {
> int i1, i2, N;
> int In[50], A[50], D[50];
>
> N = 25;
> A[0] = In[0] + 5;
> #pragma clang loop unroll (enable)
> for(i1 = 1; i1 <= 25; i1++)
> {
> A[i1] = In[i1];
> D[i1] = A[i1];
> }
> return D[N];
> }
>
> *The applied commands*
>
> 1. clang -S -emit-llvm code.c -o code.ll -Xclang -disable-O0-optnon
> 2. opt -loop-unroll -S code.ll -o code-opt.ll -opt-bisect-limit=300
> -unroll-count=3 -print-after=loop-unroll
>
> Regards,
> Sudakshina
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
More information about the llvm-dev
mailing list