[llvm-dev] RFC: New support for triaging optimization-related failures in front ends

Tobias Grosser via llvm-dev llvm-dev at lists.llvm.org
Fri Mar 25 16:41:14 PDT 2016


On 03/26/2016 12:34 AM, Michael Gottesman via llvm-dev wrote:
>
>> On Mar 25, 2016, at 4:30 PM, Matthias Braun via llvm-dev
>> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>>
>> Andy,
>>
>> I'd love to see this feature. I wouldn't care too much wether the
>> interface is a single number or two numbers, but if possible print the
>> name of the function and the name of the pass that was just skipped so
>> the developers knows where to start looking.
>
> We do this in swift actually as well. We have a feature called
> -sil-print-pass-name. It causes the pass manager to print out the action
> the pass manager is performing and an identifier of the object it is
> performing the action to. When you get the final number, you can rerun
> with that option set and it will tell you the last pass invocation. It
> makes it /really/ easy.

May I point you to this patch review thread.

http://reviews.llvm.org/D12199

Zoran and others propose to add a framework to LLVm that builds up a 
decision tree that allows to enable/disable optimizations at various 
points in the compiler. This could be points in the pass manager, but
e.g. different features of optimization passes could be used as decision 
points as well. Clearly, the original intend was iterative compilation 
to get maximal performance, but it seems a similar model might be useful 
for bug-hunting as well.

Best,
Tobias


More information about the llvm-dev mailing list