diff --git a/mlir/lib/CAPI/ExecutionEngine/ExecutionEngine.cpp b/mlir/lib/CAPI/ExecutionEngine/ExecutionEngine.cpp index 2dbb993b1640f..6c97499b28fd9 100644 --- a/mlir/lib/CAPI/ExecutionEngine/ExecutionEngine.cpp +++ b/mlir/lib/CAPI/ExecutionEngine/ExecutionEngine.cpp @@ -38,12 +38,15 @@ mlirExecutionEngineCreate(MlirModule op, int optLevel, int numPaths, auto tmBuilderOrError = llvm::orc::JITTargetMachineBuilder::detectHost(); if (!tmBuilderOrError) { - llvm::errs() << "Failed to create a JITTargetMachineBuilder for the host\n"; + llvm::errs() << "Failed to create a JITTargetMachineBuilder for the host " + "because: \n"; + consumeError(tmBuilderOrError.takeError()); return MlirExecutionEngine{nullptr}; } auto tmOrError = tmBuilderOrError->createTargetMachine(); if (!tmOrError) { - llvm::errs() << "Failed to create a TargetMachine for the host\n"; + llvm::errs() << "Failed to create a TargetMachine for the host because: \n"; + consumeError(tmOrError.takeError()); return MlirExecutionEngine{nullptr}; } @@ -62,6 +65,7 @@ mlirExecutionEngineCreate(MlirModule op, int optLevel, int numPaths, jitOptions.enableObjectDump = enableObjectDump; auto jitOrError = ExecutionEngine::create(unwrap(op), jitOptions); if (!jitOrError) { + llvm::errs() << "Failed to create an ExecutionEngine because: \n"; consumeError(jitOrError.takeError()); return MlirExecutionEngine{nullptr}; } diff --git a/mlir/test/python/execution_engine.py b/mlir/test/python/execution_engine.py index 146e213a9229e..005813d1788f5 100644 --- a/mlir/test/python/execution_engine.py +++ b/mlir/test/python/execution_engine.py @@ -71,6 +71,7 @@ def testInvalidModule(): func.func @foo() { return } """ ) + # CHECK: error: cannot be converted to LLVM IR: missing `LLVMTranslationDialectInterface` registration for dialect for op: func.func # CHECK: Got RuntimeError: Failure while creating the ExecutionEngine. try: execution_engine = ExecutionEngine(module)