[mlir][orc] unbreak MLIR ExecutionEngine after ORC changes
authorAlex Zinenko <zinenko@google.com>
Wed, 22 Jan 2020 09:12:04 +0000 (10:12 +0100)
committerAlex Zinenko <zinenko@google.com>
Wed, 22 Jan 2020 09:16:20 +0000 (10:16 +0100)
Changes to ORC in ce2207abaf9a925b35f15ef92aaff6b301ba6d22 changed the
APIs in IRCompileLayer, now requiring the custom compiler to be wrapped
in IRCompileLayer::IRCompiler. Even though MLIR relies on Orc
CompileUtils, the type is still visible in several places in the code.
Adapt those to the new API.

mlir/lib/ExecutionEngine/ExecutionEngine.cpp

index 651c90a..2cd3404 100644 (file)
@@ -256,14 +256,14 @@ Expected<std::unique_ptr<ExecutionEngine>> ExecutionEngine::create(
   // Callback to inspect the cache and recompile on demand. This follows Lang's
   // LLJITWithObjectCache example.
   auto compileFunctionCreator = [&](JITTargetMachineBuilder JTMB)
-      -> Expected<IRCompileLayer::CompileFunction> {
+      -> Expected<std::unique_ptr<IRCompileLayer::IRCompiler>> {
     if (jitCodeGenOptLevel)
       JTMB.setCodeGenOptLevel(jitCodeGenOptLevel.getValue());
     auto TM = JTMB.createTargetMachine();
     if (!TM)
       return TM.takeError();
-    return IRCompileLayer::CompileFunction(
-        TMOwningSimpleCompiler(std::move(*TM), engine->cache.get()));
+    return std::make_unique<TMOwningSimpleCompiler>(std::move(*TM),
+                                                    engine->cache.get());
   };
 
   // Create the LLJIT by calling the LLJITBuilder with 2 callbacks.