[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