From 2b2c13e672bdbf812b8bb47f0575e534b3c9c8c6 Mon Sep 17 00:00:00 2001 From: Chenggang Zhao Date: Wed, 25 Aug 2021 00:41:35 +0000 Subject: [PATCH] [mlir][docs] A friendlier improvement for the Toy tutorial chapter 4. Add notes for discarding private-visible functions in the Toy tutorial chapter 4. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D108026 --- mlir/docs/Tutorials/Toy/Ch-4.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mlir/docs/Tutorials/Toy/Ch-4.md b/mlir/docs/Tutorials/Toy/Ch-4.md index 5eaa215..78cdfec 100644 --- a/mlir/docs/Tutorials/Toy/Ch-4.md +++ b/mlir/docs/Tutorials/Toy/Ch-4.md @@ -95,6 +95,22 @@ struct ToyInlinerInterface : public DialectInlinerInterface { }; ``` +Besides, the inliner will only discard private-visible unused function +definitions. We also have to set the visibility of functions (except the +main function) in the MLIR generator. + +```c++ +/// Emit a new function and add it to the MLIR module. +mlir::FuncOp mlirGen(FunctionAST &funcAST) { + ... + // If this function isn't main, then set the visibility to private. + if (funcAST.getProto()->getName() != "main") + function.setPrivate(); + + return function; +} +``` + We then register our dialect interface directly on the Toy dialect, similarly to how we did for operations. -- 2.7.4