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