This is an archive of the discontinued LLVM Phabricator instance.

[mlir][Linalg] Further improve codegen strategy and add a linalg.matmul_i8_i8_i32
ClosedPublic

Authored by nicolasvasilache on Jan 28 2021, 1:41 AM.

Details

Summary

This revision adds a layer of SFINAE to the composable codegen strategy so it does
not have to require statically defined ops but instead can also be used with OpInterfaces, Operation* and an op name string.

A linalg.matmul_i8_i8_i32 is added to the .tc spec to demonstrate how all this works end to end.

Diff Detail

Event Timeline

nicolasvasilache requested review of this revision.Jan 28 2021, 1:41 AM
nicolasvasilache retitled this revision from BEGIN_PUBLIC Adapt to changes to LinalgTransformationFilter and CodegenStrategy. END_PUBLIC to [mlir][Linalg] Further improve codegen strategy and add a linalg.matmul_i8_i8_i32.Jan 28 2021, 1:51 AM
nicolasvasilache edited the summary of this revision. (Show Details)
pifon2a accepted this revision.Jan 28 2021, 3:02 AM
pifon2a added inline comments.
mlir/include/mlir/Dialect/Linalg/Transforms/CodegenStrategy.h
24

do you need this constructor?

66

I thought only 1 arg constructors are usually marked "explicit"

161

nit: use make_unique here and below :

transformationSequence.push_back(std::make_unique<Tile<LinalgOpType>>(options,f));
This revision is now accepted and ready to land.Jan 28 2021, 3:02 AM
nicolasvasilache marked 3 inline comments as done.

Address review.

Address review.

This revision was landed with ongoing or failed builds.Jan 28 2021, 5:06 AM
This revision was automatically updated to reflect the committed changes.