Integrate llvm-project at e9c9ee9fe694067ee96643d05d6ac378349386bb (#8585)

* Integrate llvm-project at e9c9ee9fe694067ee96643d05d6ac378349386bb

* Reset third_party/llvm-project: e9c9ee9fe694067ee96643d05d6ac378349386bb (2022-03-15 21:51:12 +0000): [libc][NFC] Fix typos and reduntent code triggering compiler warinings.

* Move MHLO and TF to matching commits

TF: 05f17fca35623f4ab6d275ed95f0e1363c939f73
MHLO: 57288f12595a2ee0488806672a42da59b1e56e13
Piper CL: 435187843

* Fixes for bump LLVM @5e8700ce8bf58bdf0a59eef99c85185a74177555

* Remove uses of `verifier`.

* Fix verification methods after signature change of custom verify methods.

* Fixup fallout from bufferization changes

https://reviews.llvm.org/D121361
https://reviews.llvm.org/D121519

* Fix verifiers of Flow and VM ops.

* Fix lit test.

* Update iree-dialects in integrations.

Co-authored-by: Nicolas Vasilache <ntv@google.com>
Co-authored-by: Stella Laurenzo <stellaraccident@gmail.com>
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/PyDM/IR/PyDMOps.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/PyDM/IR/PyDMOps.cpp
index cbb07b8..2010688 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/PyDM/IR/PyDMOps.cpp
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/PyDM/IR/PyDMOps.cpp
@@ -29,8 +29,6 @@
 using PyCallOp = PYDM::CallOp;
 using PyFuncOp = PYDM::FuncOp;
 
-static LogicalResult verify(Operation *) { return success(); }
-
 //===----------------------------------------------------------------------===//
 // Utilities
 //===----------------------------------------------------------------------===//
@@ -439,9 +437,9 @@
 
 ::llvm::StringRef FunctionalIfOp::getDefaultDialect() { return "iree_pydm"; }
 
-static LogicalResult verify(FunctionalIfOp op) {
-  if (op.getNumResults() != 0 && op.elseRegion().empty())
-    return op.emitOpError("must have an else block if defining values");
+LogicalResult FunctionalIfOp::verify() {
+  if (getNumResults() != 0 && elseRegion().empty())
+    return emitOpError("must have an else block if defining values");
   return success();
 }
 
@@ -562,39 +560,34 @@
       p, *this, fnType.getInputs(), /*isVariadic=*/false, fnType.getResults());
 }
 
-static LogicalResult verify(PyFuncOp op) {
-  // TODO: Enforce invariants.
-  return success();
-}
-
 //===----------------------------------------------------------------------===//
 // MakeListOp
 //===----------------------------------------------------------------------===//
 
-static LogicalResult verify(MakeListOp op) {
-  auto listType = op.list().getType().cast<ListType>();
+LogicalResult MakeListOp::verify() {
+  auto listType = list().getType().cast<ListType>();
   switch (listType.getStorageClass()) {
     case CollectionStorageClass::Boxed:
-      for (auto element : op.elements()) {
+      for (auto element : elements()) {
         if (!element.getType().isa<ObjectType>()) {
-          return op.emitOpError() << "making a list with boxed storage class "
-                                     "must have object elements. Got: "
-                                  << element.getType();
+          return emitOpError() << "making a list with boxed storage class "
+                                  "must have object elements. Got: "
+                               << element.getType();
         }
       }
       break;
     case CollectionStorageClass::Unboxed:
-      for (auto element : op.elements()) {
+      for (auto element : elements()) {
         if (element.getType().isa<ObjectType>()) {
-          return op.emitOpError() << "making a list with unboxed storage class "
-                                     "must not have object elements. Got: "
-                                  << element.getType();
+          return emitOpError() << "making a list with unboxed storage class "
+                                  "must not have object elements. Got: "
+                               << element.getType();
         }
       }
       break;
     case CollectionStorageClass::Empty:
-      if (!op.elements().empty()) {
-        return op.emitOpError()
+      if (!elements().empty()) {
+        return emitOpError()
                << "making a list with empty storage class must have zero "
                   "elements";
       }