aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
diff options
context:
space:
mode:
authorRoman Gareev <gareevroman@gmail.com>2016-06-22 09:52:37 +0000
committerRoman Gareev <gareevroman@gmail.com>2016-06-22 09:52:37 +0000
commit42402c9e89e419468096d329872370e79adf6114 (patch)
tree839ece9659112ea63ae9ea66d4db76daaa7fe0b7 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp
parent50b80359c0cf3b175b7dbed8cf94b4dccdb349c6 (diff)
downloadllvm-42402c9e89e419468096d329872370e79adf6114.zip
llvm-42402c9e89e419468096d329872370e79adf6114.tar.gz
llvm-42402c9e89e419468096d329872370e79adf6114.tar.bz2
Apply all necessary tilings and unrollings to get a micro-kernel
This is the first 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 create the BLIS micro-kernel by applying a combination of tiling and unrolling. In subsequent changes we will add the extraction of the BLIS macro-kernel and implement the packing transformation. Contributed-by: Roman Gareev <gareevroman@gmail.com> Reviewed-by: Tobias Grosser <tobias@grosser.es> Differential Revision: http://reviews.llvm.org/D21140 llvm-svn: 273397
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions