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

Michael Kruse via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 2 10:54:13 PST 2016


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?

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


More information about the llvm-commits mailing list