[ScheduleOptimizer] Make matmul pattern detection work with delicm output
authorTobias Grosser <tobias@grosser.es>
Tue, 8 Aug 2017 06:15:15 +0000 (06:15 +0000)
committerTobias Grosser <tobias@grosser.es>
Tue, 8 Aug 2017 06:15:15 +0000 (06:15 +0000)
commit327e9ecb0d7ee4a9841c67c72f3f890bd65832ea
tree1f09543f66866f6b6cbf345e6c5363c3f5789f1f
parent03aa3aee114ff345c51527dd04602752958e71db
[ScheduleOptimizer] Make matmul pattern detection work with delicm output

In certain cases delicm might decide to not leave the original array write in
the loop body, but to remove it and instead leave a transformed phi node as
write access. This commit teached the matmul pattern detection to order the
memory accesses according to when the access actually happens and use this
information to detect the new pattern. This makes pattern based matmul
optimization work for 2mm and 3mm in polybench 4 after
polly-position=before-vectorizer has been enabled.

llvm-svn: 310338
polly/include/polly/Simplify.h
polly/lib/Transform/ScheduleOptimizer.cpp
polly/lib/Transform/Simplify.cpp
polly/test/ScheduleOptimizer/pattern-matching-based-opts-after-delicm.ll [new file with mode: 0644]