Fix ExecutionEngine post-update in upstream LLVM
authorAlex Zinenko <zinenko@google.com>
Sun, 4 Aug 2019 14:47:36 +0000 (07:47 -0700)
committerA. Unique TensorFlower <gardener@tensorflow.org>
Sun, 4 Aug 2019 14:48:01 +0000 (07:48 -0700)
LLVM r367686 changed the locking scheme to avoid potential deadlocks and the
related llvm::orc::ThreadSafeModule APIs ExecutionEngine was relying upon,
breaking the MLIR build.  Update our use of ThreadSafeModule to unbreak the
build.

PiperOrigin-RevId: 261566571

mlir/lib/ExecutionEngine/ExecutionEngine.cpp

index 0317a92..b830c53 100644 (file)
@@ -183,7 +183,9 @@ private:
       (void)resp;
       if (!irTransformer)
         return std::move(module);
-      if (Error err = irTransformer(module.getModule()))
+      Error err = module.withModuleDo(
+          [this](llvm::Module &module) { return irTransformer(&module); });
+      if (err)
         return std::move(err);
       return std::move(module);
     };