From 8d2d6b1d05ec5ec91921551eb4dd62af9f974b14 Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Thu, 19 Feb 2015 19:06:04 +0000 Subject: [PATCH] [orcjit] Include CMake support for the fully_lazy example and fix the build Not sure if/how to make the CMake build use C++14 for the examples, so let's stick to C++11 for now. llvm-svn: 229888 --- llvm/examples/Kaleidoscope/Orc/CMakeLists.txt | 1 + llvm/examples/Kaleidoscope/Orc/fully_lazy/CMakeLists.txt | 3 ++- llvm/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp | 10 +++++----- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/llvm/examples/Kaleidoscope/Orc/CMakeLists.txt b/llvm/examples/Kaleidoscope/Orc/CMakeLists.txt index e4cf0c2..5aa0454 100644 --- a/llvm/examples/Kaleidoscope/Orc/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/Orc/CMakeLists.txt @@ -1,3 +1,4 @@ add_subdirectory(initial) add_subdirectory(lazy_codegen) add_subdirectory(lazy_irgen) +add_subdirectory(fully_lazy) diff --git a/llvm/examples/Kaleidoscope/Orc/fully_lazy/CMakeLists.txt b/llvm/examples/Kaleidoscope/Orc/fully_lazy/CMakeLists.txt index 4488681..abb0428 100644 --- a/llvm/examples/Kaleidoscope/Orc/fully_lazy/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/Orc/fully_lazy/CMakeLists.txt @@ -2,11 +2,12 @@ set(LLVM_LINK_COMPONENTS Core ExecutionEngine Object + OrcJIT RuntimeDyld Support native ) -add_kaleidoscope_chapter(Kaleidoscope-Orc-lazy_irgen +add_kaleidoscope_chapter(Kaleidoscope-Orc-fully_lazy toy.cpp ) diff --git a/llvm/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp b/llvm/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp index f29a6f5..b1aca78 100644 --- a/llvm/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp +++ b/llvm/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp @@ -1280,11 +1280,11 @@ private: // // The update action will update FunctionBodyPointer to point at the newly // compiled function. - CallbackInfo.setCompileAction( - [this, Fn = std::shared_ptr(std::move(FnAST))](){ - auto H = addModule(IRGen(Session, *Fn)); - return findSymbolIn(H, Fn->Proto->Name).getAddress(); - }); + std::shared_ptr Fn = std::move(FnAST); + CallbackInfo.setCompileAction([this, Fn]() { + auto H = addModule(IRGen(Session, *Fn)); + return findSymbolIn(H, Fn->Proto->Name).getAddress(); + }); CallbackInfo.setUpdateAction( CompileCallbacks.getLocalFPUpdater(H, Mangle(BodyPtrName))); -- 2.7.4