[llvm-dev] Forcing loop optimization
Sudakshina Dutta via llvm-dev
llvm-dev at lists.llvm.org
Tue Jun 15 03:36:54 PDT 2021
Dear Prof. Johannes Doerfert,
Sorry to disturb you again. The code LLVM IR that you have shared is not
only the result of applying x86-64 clang 12.0.0 applied with -emit-llvm
-Xclang -disable-O0-optnone options. You might have applied some other
options. The reason I am asking is that the LLVM IR code which is shared
has a header and footer which generally do not appear if a code is
subjected to godbolt explorer. If the LLVM IR code generated by applying
x86-64 clang 12.0.0 applied with -emit-llvm -Xclang -disable-O0-optnone
options is subjected to opt with -sroa -loop-unroll -unroll-count=3
options, some error is shown. I am very new to compiler explorer. I shall
be grateful if you kindly reply.
Thanks,
Sudakshina
On Tue, Jun 15, 2021 at 9:01 AM Sudakshina Dutta <sudakshina at iitgoa.ac.in>
wrote:
> 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/9701d89f/attachment.html>
More information about the llvm-dev
mailing list