[llvm-dev] bug report on mem2reg (original) (raw)

David Blaikie via llvm-dev llvm-dev at lists.llvm.org
Thu May 14 17:49:12 PDT 2020


This is still a rather long test case - I expect it should be able to be reduced further while still demonstrating the problem.

I also don't understand what the correct/incorrect behavior it is you're looking for - at least casually, the program prints the same result at -O0, which doesn't run mem2reg, and at -O3 which does run mem2reg.

On Thu, May 14, 2020 at 5:14 PM liubaosen at tsinghua.edu.cn < liubaosen at tsinghua.edu.cn> wrote:

Hi, David, and anyone regards, Thanks for discussing. I meant you can run the main.c with what I affixed in last mail. Anyway, I reprepared a complete while least pack of codes, which is affixed. I've tried it with following process,

clang colapse.c -o colapse ./colapse valgrind --tool=memcheck --leak-check=yes ./colapse clang colapse.c -emit-llvm -g -c -S -o colapse.ll -Xclang -disable-O0-optnone opt -mem2reg -da -analyze colapse.ll so, principly, it is for sure able to recur. There are totally 3 functions can cause collapses (maybe by a same reason), and all of them are contained in the file. Please help me debug it. Thanks again. ------------------------------ liubaosen at tsinghua.edu.cn

From: David Blaikie <dblaikie at gmail.com> Date: 2020-05-15 06:31 To: liubaosen at tsinghua.edu.cn; llvm-dev <llvm-dev at lists.llvm.org> Subject: Re: Re: [llvm-dev] bug report on mem2reg Sorry, I'm not sure I'll be able to help you - main.c uses other code (optsfind/check/etc) that I don't have/don't know what that code is, and even with it it's probably a bit big/complicated for me to debug/reduce/etc. If you can reconstruct the smallest complete (reducing the total lines of all source/header files needed to reproduce the problem) example that might be more practical to discuss here & see whether it's a mem2reg bug, etc. On Wed, May 13, 2020 at 6:52 PM liubaosen at tsinghua.edu.cn <_ _liubaosen at tsinghua.edu.cn> wrote: Hi, David and anyone relevent,

Thank you for replying, first. I tried it with valgrind, no error is reported, so I'm sure it's not our problem. The valgrind log is affixed and a mian.c which you may need to generate an executable is also affixed. Please do me a favor and investigate what causes the colapse. Your help will be greatly appreciated. Best regards ------------------------------ liubaosen at tsinghua.edu.cn

From: David Blaikie <dblaikie at gmail.com> Date: 2020-05-12 11:45 To: liubaosen at tsinghua.edu.cn CC: llvm-dev <llvm-dev at lists.llvm.org> Subject: Re: [llvm-dev] bug report on mem2reg Tried testing it with things like Undefined Behaivor Sanitizer (or other sanitizers - memory/address) or valgrind? Often "program works sometimes and doesn't work other times" is because the program has undefined behavior in it & the times its working are just luck. On Mon, May 11, 2020 at 8:41 PM liubaosen at tsinghua.edu.cn via llvm-dev <_ _llvm-dev at lists.llvm.org> wrote: Hi, all, I think I found a bug on mem2reg in a particular case. When I ran opt -mem2reg -basicaa -scalar-evolution -loops -da -analyze opts.ll, it collapsed. While without mem2reg option, it runs well. so I guess it has something to do with mem2reg. The relative files have been affixed, please check them for me. Thanks in advance. ------------------------------ liubaosen at tsinghua.edu.cn


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/20200514/cf6294f3/attachment.html>



More information about the llvm-dev mailing list