From f931708171a61a6c1d9fd0b9e9ef4c9d22bcba6b Mon Sep 17 00:00:00 2001 From: Lucy Fox <lucyfox@google.com> Date: Thu, 14 Nov 2019 17:54:10 -0800 Subject: [PATCH] Expand on operation definition to clarify the difference between operation and op. PiperOrigin-RevId: 280555742 Change-Id: Ic4280c973c0d7415036798f2fa27ea8589562481 --- third_party/mlir/g3doc/Glossary.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/third_party/mlir/g3doc/Glossary.md b/third_party/mlir/g3doc/Glossary.md index a0752c31abc..542d3756ac7 100644 --- a/third_party/mlir/g3doc/Glossary.md +++ b/third_party/mlir/g3doc/Glossary.md @@ -120,6 +120,12 @@ An operation can have zero or more [regions](#region). Note that this creates a nested IR structure, as regions consist of blocks, which in turn, consist of a list of operations. +In MLIR, there are two main classes related to operations: `Operation` and `Op`. +Operation is the actual opaque instance of the operation, and represents the +general API into an operation instance. An `Op` is the base class of a derived +operation, like `ConstantOp`, and acts as smart pointer wrapper around a +`Operation*` + #### [Region](LangRef.md#regions) A [CFG](https://en.wikipedia.org/wiki/Control-flow_graph) of MLIR