[polly] r211957 - Allow multiple reductions per statement

Tobias Grosser tobias at grosser.es
Sun Jun 29 04:23:06 PDT 2014


On 27/06/2014 22:31, Johannes Doerfert wrote:
> Author: jdoerfert
> Date: Fri Jun 27 15:31:28 2014
> New Revision: 211957
>
> URL: http://llvm.org/viewvc/llvm-project?rev=211957&view=rev
> Log:
> Allow multiple reductions per statement
>
>    Iterate over all store memory accesses and check for valid binary reduction
>    candidate loads by following the operands of the stored value.  For each
>    candidate pair we check if they have the same base address and there are no
>    other accesses which may overlap with them. This ensures that no intermediate
>    value can escape into other memory locations or is overwritten at some point.
>
>    + 17 test cases for reduction detection and reduction dependency modeling

Hi Johannes,

I believe this change broke our LLVM nightly test runs:

http://lab.llvm.org:8011/builders/polly-perf-O3-polly/builds/885

The compilation of 'clamscan' fails.

Here the stack trace produced:

0   llvm::sys::PrintStackTrace(_IO_FILE*) + 34
1
2
3   polly::MemoryAccess::getAccessRelation() const + 0
4   polly::ScopStmt::checkForReductions() + 403
5   polly::ScopStmt::ScopStmt(polly::Scop&, polly::TempScop&, 
llvm::Region const&, llvm::BasicBlock&, 
llvm::SmallVectorImpl<llvm::Loop*>&, llvm::SmallVectorImpl<unsigned 
int>&) + 1159
6   polly::Scop::buildScop(polly::TempScop&, llvm::Region const&, 
llvm::SmallVectorImpl<llvm::Loop*>&, llvm::SmallVectorImpl<unsigned 
int>&, llvm::LoopInfo&) + 1297
7   polly::Scop::Scop(polly::TempScop&, llvm::LoopInfo&, 
llvm::ScalarEvolution&, isl_ctx*) + 441
8   polly::ScopInfo::runOnRegion(llvm::Region*, llvm::RGPassManager&) + 555
9   llvm::RGPassManager::runOnFunction(llvm::Function&) + 1287
10  llvm::FPPassManager::runOnFunction(llvm::Function&) + 655
11  llvm::legacy::FunctionPassManagerImpl::run(llvm::Function&) + 163
12  llvm::legacy::FunctionPassManager::run(llvm::Function&) + 105
13  clang::EmitBackendOutput(clang::DiagnosticsEngine&, 
clang::CodeGenOptions const&, clang::TargetOptions const&, 
clang::LangOptions const&, llvm::StringRef, llvm::Module*, 
clang::BackendAction, llvm::raw_ostream*) + 2957
14
15  clang::ParseAST(clang::Sema&, bool, bool) + 522
16  clang::CodeGenAction::ExecuteAction() + 78
17  clang::FrontendAction::Execute() + 150
18  clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 293
19  clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1532
20  cc1_main(char const**, char const**, char const*, void*) + 1176
21  main + 5340
22  __libc_start_main + 253

Cheers,
Tobias



More information about the llvm-commits mailing list