[llvm-dev] Bugpoint Redesign

Joshua Cranmer 🐧 via llvm-dev llvm-dev at lists.llvm.org
Sat Jun 8 13:59:29 PDT 2019

On 6/7/2019 5:19 PM, Diego Treviño via llvm-dev wrote:
> ### Narrow focus: test-case reduction
> The main focus will be a code reduction strategy to obtain much 
> smaller test cases that still have the same property as the original 
> one. This will be done via classic delta debugging and by adding some 
> IR-specific reductions (e.g. replacing globals, removing unused 
> instructions, etc), similar to what already exists, but with more 
> in-depth minimization.
> Granted, if the community differs on this proposal, the legacy code 
> could still be present in the tool, but with the caveat of still being 
> documented and designed towards delta reduction.

As Hal points out, there are really two dimensions of reduction you can 
do with bugpoint. One is delta debugging of passes, to figure out which 
pass is causing the problem, and another is regular delta debugging of 
the program itself. Supporting both use cases is important. My personal 
experience, however, has been to only use bugpoint for delta debugging 
of code, as I'm trying to work out what features of the input 
programming is causing the pass I'm working on to crash. I can't say 
what the relative balance of these two use cases are, and it may be that 
we can solve this by having two versions of bugpoint to solve the two 
different problems.

> ### Command-Line Options
> We are proposing to reduce the plethora of bugpoint’s options to just 
> two: an interesting-ness test and the arguments for said test, similar 
> to other delta reduction tools such as CReduce, Delta, and Lithium; 
> the tool should feel less cluttered, and there should also be no 
> uncertainty about how to operate it.

I am /strongly/ in favor of going to an interesting-ness test approach 
in lieu of the current "try and guess what kind of bug you're looking 
for" in the current approach. Writing correct test detection scripts is 
definitely a challenge, but you can usually crib from a preexisting script.

A second note is that we can provide much of the current "automatic" 
functionality in bugpoint via a set of useful test scripts, one for each 

Joshua Cranmer
Thunderbird and DXR developer
Source code archæologist

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190608/fefd0350/attachment.html>

More information about the llvm-dev mailing list