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

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 9 23:29:49 PST 2015


On 11/10/2015 01:30 AM, Michael Kruse via llvm-commits wrote:
> 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))                        ^

The patch needed an update for the latest version of LLVM.

> And with the suggested command line I get this warning:
>
> clang-3.8: warning: argument unused during compilation: '-disable-llvm-optzns'

The command line I suggested was meant for a call to 'clang -cc1'. If 
you run the full clang driver, aka just 'clang -O3 -mllvm -polly 
file.c', then you need to add '-mllvm':

-mllvm -polly=false -S -emit-llvm -mllvm  -disable-llvm-optzns

Best,
Tobias

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Reduce-control-flow-edges-in-bugpoint.patch
Type: text/x-patch
Size: 9796 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151110/3644ea34/attachment.bin>


More information about the llvm-commits mailing list