The `noinline`, `alwaysinline`, and `optnone` function attributes are already being used in MLIR code for the LLVM inlining interface and in some SPIR-V lowering, despite residing in the passthrough dictionary, which is intended as exactly that -- a pass through MLIR -- and not to model any actual semantics being handled in MLIR itself. Promote the `noinline`, `alwaysinline`, and `optnone` attributes out of the passthrough dictionary on `llvm.func` into first class unit attributes, updating the import and export accordingly. Add a verifier to `llvm.func` that checks that these attributes are not set in an incompatible way according to the LLVM specification. Update the LLVM dialect inlining interface to use the first class attributes to check whether inlining is possible.
MLIR documentation ================== Please note mlir.llvm.org is where MLIR's rendered documentation is displayed. The viewing experience on GitHub or elsewhere may not match those of the website. For any changes please verify instead that they work on the main website first. See https://github.com/llvm/mlir-www for the website generation information.