diff options
| author | Roman Gareev <gareevroman@gmail.com> | 2016-09-14 06:26:09 +0000 |
|---|---|---|
| committer | Roman Gareev <gareevroman@gmail.com> | 2016-09-14 06:26:09 +0000 |
| commit | b3224adfb61a78b95265fc47aff852d37a611797 (patch) | |
| tree | 7043682914e2b5a780ecf7100fda6d9d735e8783 /polly/lib/CodeGen/IRBuilder.cpp | |
| parent | 79e00930e2726fba6b4322a272590497031103fd (diff) | |
| download | bcm5719-llvm-b3224adfb61a78b95265fc47aff852d37a611797.tar.gz bcm5719-llvm-b3224adfb61a78b95265fc47aff852d37a611797.zip | |
Perform copying to created arrays according to the packing transformation
This is the fourth patch to apply the BLIS matmul optimization pattern on matmul
kernels (http://www.cs.utexas.edu/users/flame/pubs/TOMS-BLIS-Analytical.pdf).
BLIS implements gemm as three nested loops around a macro-kernel, plus two
packing routines. The macro-kernel is implemented in terms of two additional
loops around a micro-kernel. The micro-kernel is a loop around a rank-1
(i.e., outer product) update. In this change we perform copying to created
arrays, which is the last step to implement the packing transformation.
Reviewed-by: Tobias Grosser <tobias@grosser.es>
Differential Revision: https://reviews.llvm.org/D23260
llvm-svn: 281441
Diffstat (limited to 'polly/lib/CodeGen/IRBuilder.cpp')
| -rw-r--r-- | polly/lib/CodeGen/IRBuilder.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/polly/lib/CodeGen/IRBuilder.cpp b/polly/lib/CodeGen/IRBuilder.cpp index cedbe294291..92fce3579f6 100644 --- a/polly/lib/CodeGen/IRBuilder.cpp +++ b/polly/lib/CodeGen/IRBuilder.cpp @@ -61,7 +61,8 @@ void ScopAnnotator::buildAliasScopes(Scop &S) { SetVector<Value *> BasePtrs; for (ScopStmt &Stmt : S) for (MemoryAccess *MA : Stmt) - BasePtrs.insert(MA->getBaseAddr()); + if (!Stmt.isCopyStmt()) + BasePtrs.insert(MA->getBaseAddr()); std::string AliasScopeStr = "polly.alias.scope."; for (Value *BasePtr : BasePtrs) |

