[polly] r252301 - Fix reuse of non-dominating synthesized value in subregion exit

Michael Kruse via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 9 16:30:45 PST 2015


2015-11-09 8:00 GMT+01:00 Tobias Grosser <tobias at grosser.es>:
> On 11/09/2015 04:29 AM, Johannes Doerfert via llvm-commits wrote:
>>
>> On 11/09, Michael Kruse wrote:
>>>
>>> 2015-11-07 6:40 GMT+01:00 Johannes Doerfert
>>> <doerfert at cs.uni-saarland.de>:
>>>>
>>>>
>>>> This actually caused 24 more failures, see:
>>>>
>>>> http://lab.llvm.org:8011/builders/perf-x86_64-penryn-O3-polly-unprofitable/builds/557
>>>>
>>>> Before we were at 67, after at 91 and after r97986 we are now at 75,
>>>> see:
>>>>
>>>> http://lab.llvm.org:8011/builders/perf-x86_64-penryn-O3-polly-unprofitable/builds/569
>>>>
>>>> This brings me to several problems I would like to discuss:
>>>>    1) Our "fixes" are not checked to be beneficial for more then the
>>>> test
>>>>       case that was attached to the bug report (see above).
>>>
>>>
>>>
>>> I usually test my fixes on standard lnt (without
>>> -polly-process-unprofitable) before committing.
>>
>> I do the same thing, usually. However, as we are still debugging the
>> unprofitable bot we have to test it with unprofitable activated,
>> otherwise we will not be informed if we broke something there (which is
>> the only interesting information we will get from that bot).
>>
>> I found the problem described above by chance and searched for the
>> commit that increased the number of broken tests manually...
>>
>>>>    2) The number of people looking at the lnt run and extracting tests
>>>> is
>>>>       to little. Tobias complained in SJ about that, now it just
>>>>       shifted..
>>>
>>>
>>> I may need some help on how to use bugpoint effectively. My reduced
>>> cases are never as small as yours.
>>
>> -1) Configure polly such that it is linked in all tools.
>>   0) Apply Tobias bugpoint patch (I haven't but it works ok most of the
>>      times).
>
>
> Attached. It is not always needed, but sometimes helps to drastically remove
> unrelated control flow,
>
>>   1) Activate polly and unprofitable by default in your source. I have a
>>      separate commit to do that.
>>   2) Create a plain IR file from your input (e.g., remove the -O3 from the
>>      lnt run line and add -emit-llvm). Now your output file is a bitcode
>> file
>>      that we will simplify.
>
>
> Use:
>
> -mllvm -polly=false -S -emit-llvm  -disable-llvm-optzns -o out.ll
>
> Just dropping -O3 makes LLVM to also not emit type-based alias information,
> which is sometimes needed.

Thanks for the hints.

The attached patch fails:
/home/meinersbur/src/llvm/tools/bugpoint/CrashDebugger.cpp: In static
member function ‘static void
{anonymous}::ReduceControlFlow::removeUnreachableBlocks(llvm::Module*)’:
/home/meinersbur/src/llvm/tools/bugpoint/CrashDebugger.cpp:705:30:
error: cannot convert ‘llvm::Function::iterator {aka
llvm::ilist_iterator<llvm::BasicBlock>}’ to ‘llvm::Basi
cBlock*’ in initialization
    BasicBlock *BB = F.begin();
                             ^
/home/meinersbur/src/llvm/tools/bugpoint/CrashDebugger.cpp:716:29:
error: no matching function for call to
‘llvm::SmallPtrSet<llvm::BasicBlock*, 128u>::count(llvm::Function::i
terator&)’
      if (Reachable.count(BB))
                            ^

And with the suggested command line I get this warning:

clang-3.8: warning: argument unused during compilation: '-disable-llvm-optzns'


More information about the llvm-commits mailing list