[llvm-dev] Forcing loop optimization

Sudakshina Dutta via llvm-dev llvm-dev at lists.llvm.org
Mon Jun 14 20:31:33 PDT 2021


Thanks a lot Mr. Johannes Doerfert.

On Mon, Jun 14, 2021 at 8:07 PM Johannes Doerfert <
johannesdoerfert at gmail.com> wrote:

> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210615/12fcd530/attachment.html>


More information about the llvm-dev mailing list