<div dir="ltr">For me the bugpoint arguments never seemed to quite work so I always use the custom compile script and since I always forget how to use bugpoint I wrote a script for reducing test cases. It usies either bugpoint or creduce depending on whether it is a frontend or backend crash (although sometimes using creduce on .ll files removes more stuff than bugpoint does).<div>If that sounds useful the script can be found here:  <<a href="https://github.com/CTSRD-CHERI/clang/blob/master/utils/creduce_crash_testcase.py">https://github.com/CTSRD-CHERI/clang/blob/master/utils/creduce_crash_testcase.py</a>>.<br><div><div>You can just point it at the test case and it will parse the RUN: line and try to reduce that. It works for run lines using llc,opt, or %clang/%clang_cc1 (and various CHERI specific lit substitutions). </div><div>However, it only works for crashes and infinite loops (default timeout is more than 20 seconds -> assume infinite loop). I've not yet added support for good tool / bad tool but it should be easy to add by just slightly changing the generated shell script that is used for reducing. If more people are interested in this I could add the feature, clean up the script and create a review.</div><div><br></div><div>Alex</div><div><br><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, 1 Aug 2018 at 02:19 Sean Silva via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Have you read <a href="http://blog.llvm.org/2015/11/reduce-your-testcases-with-bugpoint-and.html?m=1" target="_blank">http://blog.llvm.org/2015/11/reduce-your-testcases-with-bugpoint-and.html?m=1</a> ?<div dir="auto"><br></div><div dir="auto">That's how I always use bugpoint and have done things like this. I always seem to have to brush up my bash skills every time I use it.</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Jul 31, 2018, 1:47 PM David A. Greene via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ugh.  Scripts won't work either, at least not by default.  The problem<br>
is that I need non-default options for both the safe and unsafe<br>
compiler.<br>
<br>
I hacked in an -unsafe-path option to let me point to a script for the<br>
"bad" compiler.  We'll see if that works.  If it does, would it be a<br>
useful addition?<br>
<br>
                           -David<br>
<br>
Matthias Braun <<a href="mailto:mbraun@apple.com" rel="noreferrer" target="_blank">mbraun@apple.com</a>> writes:<br>
<br>
> This is what works for me, when I want to reduce an llc failure<br>
> triggering a failure with a "foo bar baz" in the assert message (the<br>
> grep for the error message avoids reducing to an unrelated failure):<br>
><br>
> $ cat run_llc.sh<br>
> #!/bin/sh<br>
> if ! $HOME/dev/llvm/build/bin/llc "$@" 2>&1 | grep "foo bar baz"; then<br>
> exit 0<br>
> else<br>
> exit $?<br>
> fi<br>
><br>
> $ PATH=$HOME/path/to/my/llvm/build/bin:$PATH bugpoint -compile-custom -<br>
> compile-command ./run_llc.sh test.ll<br>
><br>
> - Matthias<br>
><br>
>     On Jul 31, 2018, at 11:03 AM, Friedman, Eli via llvm-dev<br>
>     <<a href="mailto:llvm-dev@lists.llvm.org" rel="noreferrer" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
><br>
>     <br>
>     On 7/31/2018 10:10 AM, David Greene via llvm-dev wrote:<br>
>     <br>
>     I have a failing test and bugpoint would be the perfect tool to<br>
>         help<br>
>         narrow it down.<br>
>         <br>
>         llc is the failing tool. It fails with one set of options and<br>
>         passes<br>
>         with another. I was hoping to use bugpoint like this:<br>
>         <br>
>         bugpoint -safe-llc -run-llc <testcase> -tool-args <failing<br>
>         args> -safe-tool-args <passing args><br>
>         <br>
>         Unfortunately, this doesn't seem to be possible. According to<br>
>         the<br>
>         documentation both -tool-args and -safe-tool-args consume all<br>
>         remaining<br>
>         arguments so bugpoint would never see -safe-tool-args above.<br>
>         <br>
>         I tried it and indeed it looks like -safe-tool-args never<br>
>         makes it to<br>
>         llc.<br>
>         <br>
>         For now I can build another llc which makes <failing args><br>
>         default and<br>
>         then just use -safe-tool-args above but it's a bit painful.<br>
>         <br>
>         Has anyone tried to use bugpoint like this before? Any tips?<br>
><br>
>     I've occasionally used shell script wrappers when I couldn't get<br>
>     bugpoint command-line parsing to work the way I wanted it to.<br>
>     <br>
>     Looking at CommandLine.rst, PositionalEatsArgs is supposed to<br>
>     allow specifying something like the command you wrote, but I'm not<br>
>     sure it ever worked correctly; nothing other than bugpoint uses<br>
>     it, as far as I can tell.<br>
>     <br>
>     -Eli<br>
>     <br>
>     -- <br>
>     Employee of Qualcomm Innovation Center, Inc.<br>
>     Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,<br>
>     a Linux Foundation Collaborative Project<br>
>     <br>
>     _______________________________________________<br>
>     LLVM Developers mailing list<br>
>     <a href="mailto:llvm-dev@lists.llvm.org" rel="noreferrer" target="_blank">llvm-dev@lists.llvm.org</a><br>
>     <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" rel="noreferrer" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>