[polly] r183025 - Test that independent block pass does not transform induction variables

Star Tan tanmx_star at yeah.net
Mon Jun 10 07:08:37 PDT 2013


Hi Tobias,


According to your suggestion, I have fixed this problem by refusing scops, in which a loop header is part of the scop, but the entire loop is not. Please find the attached patch file and revise it.


Cheers,
Star Tan
>-------- Original Message --------
>Subject: Re: [polly] r183025 - Test that independent block pass does not 
>transform induction variables
>Date: Mon, 03 Jun 2013 01:08:42 -0700
>From: Tobias Grosser <tobias at grosser.es>
>To: Sebastian Pop <spop at codeaurora.org>
>CC: llvm-commits at cs.uiuc.edu, Tobias Grosser <grosser at fim.uni-passau.de>
>
>On 06/02/2013 06:54 AM, Sebastian Pop wrote:
>> Tobias Grosser wrote:
>>> Author: grosser
>>> Date: Fri May 31 12:44:38 2013
>>> New Revision: 183025
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=183025&view=rev
>>> Log:
>>> Test that independent block pass does not transform induction variables
>>>
>>> The original test case showed a problem with the independet blocks pass and
>>> we decided to XFAIL it for now. Unfortunately the failure is not detected if
>>> we build without asserts and the verification of the independent block pass
>>> is not run. This change tests now for the actual reason of the failure and
>>> should trigger even in a non asserts build. We did not yet solve the underlying
>>> bug, but this should at least make the test suite behavior consistent.
>>
>> When I first read the title, I thought you solved the problem by special casing
>> SCEV synthesizable IVs in independent block pass.
>
>No, unfortunately not.
>
>I believe special casing is not an option here. In fact, I believe there
>is no solution within the independent blocks pass. The failing test case
>shows that translating out of SSA is not possible. I attached another
>test case that illustrates that leaving the PHI node as it is is also
>not an option.
>
>I believe we rather should refuse to handle such situations for now. A
>check that seems to be save is to refuse to scops, in which a loop
>header is part of the scop, but the entire loop is not. This is probably
>something we already do implicatively for the non -polly-codegen-scev case.
>
>What do you think?
>
>Cheers,
>Tobias
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130610/8dd7e3d0/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ScopDetect-refuse-regions-that-contain-only-part-of-.patch
Type: application/octet-stream
Size: 4188 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130610/8dd7e3d0/attachment.obj>


More information about the llvm-commits mailing list