[llvm-dev] Issues with using scalar evolution with newer versions of LLVM IR

hameeza ahmed via llvm-dev llvm-dev at lists.llvm.org
Wed Jan 16 21:22:58 PST 2019


Thank You

On Thu, Jan 17, 2019 at 12:21 AM Eli Friedman <efriedma at codeaurora.org>
wrote:

> Your use of "-O0" here is causing the problem.  In newer versions of
> clang, passing "-O0" to the compiler attaches the "optnone" attribute to
> each function, to avoid optimization during LTO.  You can use "-O2 -Xclang
> -disable-llvm-passes" to dump IR intended for optimization, but without
> running any optimization passes.
>
> -Eli
> On 1/15/2019 8:14 PM, hameeza ahmed via llvm-dev wrote:
>
> Thank You..
> I used following command to generate .bc or .ll
>
> /Documents/clang+llvm-4.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang -O0
> -emit-llvm -S -o vec4.ll vecsum.c
> /Documents/clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang -O0
> -emit-llvm -S -o vec7.ll vecsum.c
>
>
> On Wed, Jan 16, 2019 at 6:49 AM Sanjoy Das <sanjoy at playingwithpointers.com>
> wrote:
>
>> It is hard to tell what's going on from the information you have
>> provided.  How are you generating vec.bc?  This could either be a
>> regression in scalar evolution or a change in some optimization pass
>> that is resulting in a different vec.bc.
>>
>> -- Sanjoy
>>
>> On Tue, Jan 15, 2019 at 1:42 PM hameeza ahmed via llvm-dev
>> <llvm-dev at lists.llvm.org> wrote:
>> >
>> > Hello,
>> >
>> > I am trying to use scalar evolution pass using following command;
>> >
>> > opt -analyze -mem2reg -indvars -loop-simplify -scalar-evolution < vec.bc
>> > when vec.bc is generated using newer version of LLVM i.e LLVM 6 and 7 i
>> get following message in the end;
>> > Determining loop execution counts for: @main
>> > Loop %8: Unpredictable backedge-taken count.
>> > Loop %8: Unpredictable max backedge-taken count.
>> > Loop %8: Unpredictable predicated backedge-taken count.
>> > which means it is unable to compute iteration count.
>> >
>> > However, when .bc file is generated using LLVM 4.0 i am getting
>> following;
>> >
>> > Determining loop execution counts for: @main
>> > Loop %4: backedge-taken count is 512
>> > Loop %4: max backedge-taken count is 512
>> > Loop %4: Predicated backedge-taken count is 512
>> >  Predicates:
>> >
>> > Loop %4: Trip multiple is 513
>> >
>> > means correct computation of loop count...
>> > Why is that happening with newer version of LLVM?
>> >
>> > Please help.
>> > _______________________________________________
>> > LLVM Developers mailing list
>> > llvm-dev at lists.llvm.org
>> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>
> _______________________________________________
> LLVM Developers mailing listllvm-dev at lists.llvm.orghttp://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
> --
> Employee of Qualcomm Innovation Center, Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190117/429eb730/attachment.html>


More information about the llvm-dev mailing list