<div dir="ltr">Should we have a normal test case for this? (one that's run all the time, rather than only if you provide those switches manually?)</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 2, 2016 at 6:59 AM, Michael Kruse via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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: <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>
--- 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 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>
</blockquote></div><br></div>