[LLVMdev] Non-deterministic behavior when using LoopInfo pass in LLVM
Eric Christopher
echristo at gmail.com
Mon Oct 28 17:51:59 PDT 2013
This should definitely not happen on the same bitcode using the same
binaries and compile flags. Please file a bug and attach the bitcode if you
can?
Thanks.
-eric
On Mon, Oct 28, 2013 at 5:42 PM, Raphael Ernani Rodrigues <
raphael at dcc.ufmg.br> wrote:
> Hello,
>
> I'm having a little problem with passes that use LoopInfo. Their
> statistics aren't the same when I execute the same pass multiple times in
> the same program.
>
> After some investigation, I've found out that LoopInfo is the root of the
> problem.
>
> I wrote a little pass that counts the loop headers (number of basic blocks
> for which LoopInfo.isLoopHeader(BB) is true). I've picked one of the
> programs in the LLVM test suite benchmarks and in three consecutive tests
> the number of loop headers was different.
>
> Does anybody know if this behavior is correct? If so, I would like to know
> the logic behind this pass.
>
> Thanks,
>
> Raphael Ernani
>
>
> P.S.: Here is the output (a similar variation occurs when I run my pass
> without -mem2reg, -instnamer, and -break-crit-edges):
>
> raphael at ubuntu:~/llvm-3.3/projects/test-suite/SingleSource/Benchmarks/Stanford/Output$
> opt -mem2reg -instnamer -break-crit-edges -load MyModule.so -my-counter
> -stats Oscar.linked.rbc -f >/dev/null
>
> ===-------------------------------------------------------------------------===
> ... Statistics Collected ...
>
> ===-------------------------------------------------------------------------===
>
> 12 NaturalLoopAnalysis - Number of Loop Headers
> 8 break-crit-edges - Number of blocks inserted
> 23 mem2reg - Number of PHI nodes inserted
> 38 mem2reg - Number of alloca's promoted
> 20 mem2reg - Number of alloca's promoted with a single store
>
> raphael at ubuntu:~/llvm-3.3/projects/test-suite/SingleSource/Benchmarks/Stanford/Output$
> opt -mem2reg -instnamer -break-crit-edges -load MyModule.so
> -my-counter -stats Oscar.linked.rbc -f >/dev/null
>
> ===-------------------------------------------------------------------------===
> ... Statistics Collected ...
>
> ===-------------------------------------------------------------------------===
>
> 13 NaturalLoopAnalysis - Number of Loop Headers
> 8 break-crit-edges - Number of blocks inserted
> 23 mem2reg - Number of PHI nodes inserted
> 38 mem2reg - Number of alloca's promoted
> 20 mem2reg - Number of alloca's promoted with a single store
>
> raphael at ubuntu:~/llvm-3.3/projects/test-suite/SingleSource/Benchmarks/Stanford/Output$
> opt -mem2reg -instnamer -break-crit-edges -load MyModule.so
> -my-counter -stats Oscar.linked.rbc -f >/dev/null
>
> ===-------------------------------------------------------------------------===
> ... Statistics Collected ...
>
> ===-------------------------------------------------------------------------===
>
> 11 NaturalLoopAnalysis - Number of Loop Headers
> 8 break-crit-edges - Number of blocks inserted
> 23 mem2reg - Number of PHI nodes inserted
> 38 mem2reg - Number of alloca's promoted
> 20 mem2reg - Number of alloca's promoted with a single store
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131028/489be52a/attachment.html>
More information about the llvm-dev
mailing list