[polly] r262488 - Fix: Add pass manager barrier.

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 2 11:03:05 PST 2016


On Wed, Mar 2, 2016 at 10:54 AM, Michael Kruse <llvmdev at meinersbur.de>
wrote:

> Hi,
>
> this is only meant as a temporary workaround. Of course we want
> analysis preservation fixed. At the moment I know just one bug that
> needs to be fixed: llvm.org/PR6736. We'll gradually enable the
> verification switches manually such that we eventually can remove this
> workaround. We also plan to add the switches (-verify-scev
> -verify-loop-info -verify-region-info -verify-dom-tree) to the Polly
> correctness buildbots so I think no further action is necessary.
>
> Maybe I just misunderstood. What do you mean by "normal test case"?
> How can a single test case ensure all verification passes?
>

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).

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.

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.


>
> Michael
>
>
> 2016-03-02 18:29 GMT+01:00 David Blaikie <dblaikie at gmail.com>:
> > 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?)
> >
> > On Wed, Mar 2, 2016 at 6:59 AM, Michael Kruse via llvm-commits
> > <llvm-commits at lists.llvm.org> wrote:
> >>
> >> Author: meinersbur
> >> Date: Wed Mar  2 08:59:16 2016
> >> New Revision: 262488
> >>
> >> URL: http://llvm.org/viewvc/llvm-project?rev=262488&view=rev
> >> Log:
> >> Fix: Add pass manager barrier.
> >>
> >> The LNT test suite with -polly-process-unprofitable
> >> -polly-position=before-vectorizer currenty fails 59 tests. With this
> >> barrier added, only 16 keep failing. This is probably because Polly's
> >> code generation currently does not correctly preserve all analyses it
> >> promised to preserve. Temporarily add this barrier until further
> >> investigation.
> >>
> >> Modified:
> >>     polly/trunk/lib/Support/RegisterPasses.cpp
> >>
> >> Modified: polly/trunk/lib/Support/RegisterPasses.cpp
> >> URL:
> >>
> http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Support/RegisterPasses.cpp?rev=262488&r1=262487&r2=262488&view=diff
> >>
> >>
> ==============================================================================
> >> --- polly/trunk/lib/Support/RegisterPasses.cpp (original)
> >> +++ polly/trunk/lib/Support/RegisterPasses.cpp Wed Mar  2 08:59:16 2016
> >> @@ -30,6 +30,7 @@
> >>  #include "polly/ScopInfo.h"
> >>  #include "llvm/Analysis/CFGPrinter.h"
> >>  #include "llvm/IR/LegacyPassManager.h"
> >> +#include "llvm/Transforms/IPO.h"
> >>  #include "llvm/Transforms/IPO/PassManagerBuilder.h"
> >>  #include "llvm/Transforms/Scalar.h"
> >>  #include "llvm/Transforms/Vectorize.h"
> >> @@ -226,6 +227,11 @@ void registerPollyPasses(llvm::legacy::P
> >>      break;
> >>    }
> >>
> >> +  // FIXME: This dummy ModulePass keeps some programs from
> miscompiling,
> >> +  // probably some not correctly preserved analyses. It acts as a
> barrier
> >> to
> >> +  // force all analysis results to be recomputed.
> >> +  PM.add(createBarrierNoopPass());
> >> +
> >>    if (CFGPrinter)
> >>      PM.add(llvm::createCFGPrinterPass());
> >>  }
> >>
> >>
> >> _______________________________________________
> >> llvm-commits mailing list
> >> llvm-commits at lists.llvm.org
> >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160302/4fa4195e/attachment.html>


More information about the llvm-commits mailing list