summaryrefslogtreecommitdiffstats
path: root/polly/lib/CodeGen/IRBuilder.cpp
diff options
context:
space:
mode:
authorRoman Gareev <gareevroman@gmail.com>2016-09-14 06:26:09 +0000
committerRoman Gareev <gareevroman@gmail.com>2016-09-14 06:26:09 +0000
commitb3224adfb61a78b95265fc47aff852d37a611797 (patch)
tree7043682914e2b5a780ecf7100fda6d9d735e8783 /polly/lib/CodeGen/IRBuilder.cpp
parent79e00930e2726fba6b4322a272590497031103fd (diff)
downloadbcm5719-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.cpp3
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)
OpenPOWER on IntegriCloud