Perform copying to created arrays according to the packing transformation
authorRoman Gareev <gareevroman@gmail.com>
Wed, 14 Sep 2016 06:26:09 +0000 (06:26 +0000)
committerRoman Gareev <gareevroman@gmail.com>
Wed, 14 Sep 2016 06:26:09 +0000 (06:26 +0000)
commitb3224adfb61a78b95265fc47aff852d37a611797
tree7043682914e2b5a780ecf7100fda6d9d735e8783
parent79e00930e2726fba6b4322a272590497031103fd
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
15 files changed:
polly/include/polly/CodeGen/IslExprBuilder.h
polly/include/polly/CodeGen/IslNodeBuilder.h
polly/include/polly/ScheduleOptimizer.h
polly/include/polly/ScopInfo.h
polly/lib/Analysis/DependenceInfo.cpp
polly/lib/Analysis/PolyhedralInfo.cpp
polly/lib/Analysis/ScopInfo.cpp
polly/lib/CodeGen/BlockGenerators.cpp
polly/lib/CodeGen/IRBuilder.cpp
polly/lib/CodeGen/IslAst.cpp
polly/lib/CodeGen/IslNodeBuilder.cpp
polly/lib/Exchange/JSONExporter.cpp
polly/lib/Transform/DeadCodeElimination.cpp
polly/lib/Transform/ScheduleOptimizer.cpp
polly/test/ScheduleOptimizer/mat_mul_pattern_data_layout.ll