[llvm-dev] Issues with using scalar evolution with newer versions of LLVM IR
Eli Friedman via llvm-dev
llvm-dev at lists.llvm.org
Wed Jan 16 11:21:43 PST 2019
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
> <mailto: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 <mailto: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 <mailto:llvm-dev at lists.llvm.org>
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://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/20190116/490f53f7/attachment.html>
More information about the llvm-dev
mailing list