<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 2, 2016 at 10:54 AM, Michael Kruse <span dir="ltr"><<a href="mailto:llvmdev@meinersbur.de" target="_blank">llvmdev@meinersbur.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
this is only meant as a temporary workaround. Of course we want<br>
analysis preservation fixed. At the moment I know just one bug that<br>
needs to be fixed: <a href="http://llvm.org/PR6736" rel="noreferrer" target="_blank">llvm.org/PR6736</a>. We'll gradually enable the<br>
verification switches manually such that we eventually can remove this<br>
workaround. We also plan to add the switches (-verify-scev<br>
-verify-loop-info -verify-region-info -verify-dom-tree) to the Polly<br>
correctness buildbots so I think no further action is necessary.<br>
<br>
Maybe I just misunderstood. What do you mean by "normal test case"?<br>
How can a single test case ensure all verification passes?<br></blockquote><div><br></div><div>I mean a lit test that's run for/by everyone, rather than "run the test suite in this custom way" (which is presumably where/how you found it).<br><br>Doesn't necessarily have to test all the possible things this fixes (but it could, I suppose - add an extra run line to every one of the tests that was failing, but that's probably silly). But at least one test case that demonstrates this line of code is necessary.<br><br>But that's also why I cc'd chandler - I'm not sure what the test strategy should look like for the pass manager transition. As things like this are fixed, how those fixes should be demonstrated/tracked, etc.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
Michael<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
2016-03-02 18:29 GMT+01:00 David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>>:<br>
> Should we have a normal test case for this? (one that's run all the time,<br>
> rather than only if you provide those switches manually?)<br>
><br>
> On Wed, Mar 2, 2016 at 6:59 AM, Michael Kruse via llvm-commits<br>
> <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br>
>><br>
>> Author: meinersbur<br>
>> Date: Wed Mar  2 08:59:16 2016<br>
>> New Revision: 262488<br>
>><br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=262488&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=262488&view=rev</a><br>
>> Log:<br>
>> Fix: Add pass manager barrier.<br>
>><br>
>> The LNT test suite with -polly-process-unprofitable<br>
>> -polly-position=before-vectorizer currenty fails 59 tests. With this<br>
>> barrier added, only 16 keep failing. This is probably because Polly's<br>
>> code generation currently does not correctly preserve all analyses it<br>
>> promised to preserve. Temporarily add this barrier until further<br>
>> investigation.<br>
>><br>
>> Modified:<br>
>>     polly/trunk/lib/Support/RegisterPasses.cpp<br>
>><br>
>> Modified: polly/trunk/lib/Support/RegisterPasses.cpp<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Support/RegisterPasses.cpp?rev=262488&r1=262487&r2=262488&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Support/RegisterPasses.cpp?rev=262488&r1=262487&r2=262488&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- polly/trunk/lib/Support/RegisterPasses.cpp (original)<br>
>> +++ polly/trunk/lib/Support/RegisterPasses.cpp Wed Mar  2 08:59:16 2016<br>
>> @@ -30,6 +30,7 @@<br>
>>  #include "polly/ScopInfo.h"<br>
>>  #include "llvm/Analysis/CFGPrinter.h"<br>
>>  #include "llvm/IR/LegacyPassManager.h"<br>
>> +#include "llvm/Transforms/IPO.h"<br>
>>  #include "llvm/Transforms/IPO/PassManagerBuilder.h"<br>
>>  #include "llvm/Transforms/Scalar.h"<br>
>>  #include "llvm/Transforms/Vectorize.h"<br>
>> @@ -226,6 +227,11 @@ void registerPollyPasses(llvm::legacy::P<br>
>>      break;<br>
>>    }<br>
>><br>
>> +  // FIXME: This dummy ModulePass keeps some programs from miscompiling,<br>
>> +  // probably some not correctly preserved analyses. It acts as a barrier<br>
>> to<br>
>> +  // force all analysis results to be recomputed.<br>
>> +  PM.add(createBarrierNoopPass());<br>
>> +<br>
>>    if (CFGPrinter)<br>
>>      PM.add(llvm::createCFGPrinterPass());<br>
>>  }<br>
>><br>
>><br>
>> _______________________________________________<br>
>> llvm-commits mailing list<br>
>> <a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
><br>
><br>
</div></div></blockquote></div><br></div></div>