Perform replacement of access relations and creation of new arrays according to the...
authorRoman Gareev <gareevroman@gmail.com>
Mon, 15 Aug 2016 12:22:54 +0000 (12:22 +0000)
committerRoman Gareev <gareevroman@gmail.com>
Mon, 15 Aug 2016 12:22:54 +0000 (12:22 +0000)
commit1c892e91e389afc993d5ea0d869150bd2ef49a9c
treebaa4a6419deb97d2eabb000185c8f90dad3f61e4
parentc761675ef467f4b76728a1b2e726f0a558c00630
Perform replacement of access relations and creation of new arrays according to the packing transformation

This is the third 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 replacement of
the access relations and create empty arrays, which are steps to implement
the packing transformation. In subsequent changes we will implement copying
to created arrays.

Reviewed-by: Tobias Grosser <tobias@grosser.es>
Differential Revision: http://reviews.llvm.org/D22187

llvm-svn: 278666
polly/lib/Transform/ScheduleOptimizer.cpp
polly/test/Isl/CodeGen/MemAccess/mat_mul_pattern_data_layout.ll [new file with mode: 0644]