[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
This commit is contained in:
Chenggang Zhao 2021-08-25 00:41:35 +00:00 committed by Mehdi Amini
parent ba8547775b
commit 2b2c13e672
1 changed files with 16 additions and 0 deletions

View File

@ -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.