[llvm-dev] Loop invariant code motion optimization does not happen for the input code

Craig Topper via llvm-dev llvm-dev at lists.llvm.org
Sun May 2 00:08:00 PDT 2021


Does your function in prog1.ll have the optnone attribute on it? If so try
adding "-Xclang -disable-O0-optnone" to your clang command line

~Craig


On Sat, May 1, 2021 at 11:35 PM Sudakshina Dutta via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Dear all,
>
> Greetings. I have been trying to have a loop invariant code motion on the
> LLVM IR (.ll) file which has been generated from the following .c file.
>
> int main()
> {
>     int a = 5, b = 20, c = 50, d = 1, x;
>     while(a < b)
>     {
>         x = d + 1;
>         x = d + 2;
>         c = c + 5;
>         a = a + 1;
>     }
> }
> Both the first two statements should qualify for loop invariant code
> motion. However, loop invariant code does not move out of the loop in the
> generated .ll file. Note that I have applied the following commands.
>
> clang -S -emit-llvm prog1.c  -o prog1.ll
> opt -licm -S prog1.ll -o prog1-opt3.ll -opt-bisect-limit=300
>
> Can you please help in this regard ?
>
> Thanks and 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/20210502/35d971bb/attachment.html>


More information about the llvm-dev mailing list