From 7c3226ee64e1f850687700b714a227ca0db74117 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sun, 16 Jun 2024 11:21:42 -0400 Subject: [PATCH] xo-jit: refactoring -- var names in KaleidoscopeJit --- include/xo/jit/Jit.hpp | 5 -- include/xo/jit/KaleidoscopeJit.hpp | 89 ++++++++++++++++-------------- src/jit/Jit.cpp | 15 ----- 3 files changed, 48 insertions(+), 61 deletions(-) diff --git a/include/xo/jit/Jit.hpp b/include/xo/jit/Jit.hpp index 0cfb423d..879818c8 100644 --- a/include/xo/jit/Jit.hpp +++ b/include/xo/jit/Jit.hpp @@ -115,7 +115,6 @@ namespace xo { Jit( std::unique_ptr kal_jit #ifdef NOT_USING - std::unique_ptr es, llvm::orc::JITTargetMachineBuilder jtmb, llvm::DataLayout dl #endif @@ -133,10 +132,6 @@ namespace xo { std::unique_ptr kal_jit_; #ifdef NOT_USING - std::unique_ptr jit_es_; - llvm::DataLayout jit_data_layout_; - llvm::orc::MangleAndInterner jit_mangle_; - llvm::orc::RTDyldObjectLinkingLayer jit_object_layer_; llvm::orc::IRCompileLayer jit_compile_layer_; /** reference here. looks like storage owned by .jit_es **/ llvm::orc::JITDylib & jit_our_dynamic_lib_; diff --git a/include/xo/jit/KaleidoscopeJit.hpp b/include/xo/jit/KaleidoscopeJit.hpp index 89f1a724..5359bbb0 100644 --- a/include/xo/jit/KaleidoscopeJit.hpp +++ b/include/xo/jit/KaleidoscopeJit.hpp @@ -10,8 +10,7 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_EXECUTIONENGINE_ORC_KALEIDOSCOPEJIT_H -#define LLVM_EXECUTIONENGINE_ORC_KALEIDOSCOPEJIT_H +#pragma once #include "llvm/ADT/StringRef.h" #include "llvm/ExecutionEngine/JITSymbol.h" @@ -50,42 +49,47 @@ namespace xo { using SelfExecutorProcessControl = llvm::orc::SelfExecutorProcessControl; private: - /* execution session - represents a currenlty-running jit program */ - std::unique_ptr ES; + /** execution session - represents a currently-running jit program **/ + std::unique_ptr xsession_; - DataLayout DL; - MangleAndInterner Mangle; + /** (?) needed for name mangling (?) **/ + DataLayout data_layout_; + /** symbol mangling and unique-ifying */ + MangleAndInterner mangler_; - RTDyldObjectLinkingLayer ObjectLayer; - IRCompileLayer CompileLayer; + /** in-process linking layer + * (? specialized for jit in running process ?) + **/ + RTDyldObjectLinkingLayer object_layer_; + IRCompileLayer compile_layer_; JITDylib &MainJD; public: - KaleidoscopeJIT(std::unique_ptr ES, - JITTargetMachineBuilder JTMB, - DataLayout DL) - : ES(std::move(ES)), - DL(std::move(DL)), - Mangle(*this->ES, this->DL), - ObjectLayer(*this->ES, - []() { return std::make_unique(); }), - CompileLayer(*this->ES, ObjectLayer, - std::make_unique(std::move(JTMB))), - MainJD(this->ES->createBareJITDylib("
")) + KaleidoscopeJIT(std::unique_ptr xsession, + JITTargetMachineBuilder jtmb, + DataLayout data_layout_) + : xsession_{std::move(xsession)}, + data_layout_(std::move(data_layout_)), + mangler_(*this->xsession_, this->data_layout_), + object_layer_(*this->xsession_, + []() { return std::make_unique(); }), + compile_layer_(*this->xsession_, object_layer_, + std::make_unique(std::move(jtmb))), + MainJD(this->xsession_->createBareJITDylib("
")) { MainJD.addGenerator( cantFail(DynamicLibrarySearchGenerator::GetForCurrentProcess( - DL.getGlobalPrefix()))); - if (JTMB.getTargetTriple().isOSBinFormatCOFF()) { - ObjectLayer.setOverrideObjectFlagsWithResponsibilityFlags(true); - ObjectLayer.setAutoClaimResponsibilityForObjectSymbols(true); + data_layout_.getGlobalPrefix()))); + if (jtmb.getTargetTriple().isOSBinFormatCOFF()) { + object_layer_.setOverrideObjectFlagsWithResponsibilityFlags(true); + object_layer_.setAutoClaimResponsibilityForObjectSymbols(true); } } ~KaleidoscopeJIT() { - if (auto Err = ES->endSession()) - ES->reportError(std::move(Err)); + if (auto Err = this->xsession_->endSession()) + this->xsession_->reportError(std::move(Err)); } static llvm::Expected> Create() { @@ -93,40 +97,43 @@ namespace xo { if (!EPC) return EPC.takeError(); - auto ES = std::make_unique(std::move(*EPC)); + auto xsession = std::make_unique(std::move(*EPC)); - JITTargetMachineBuilder JTMB( - ES->getExecutorProcessControl().getTargetTriple()); + JITTargetMachineBuilder jtmb + (xsession->getExecutorProcessControl().getTargetTriple()); - auto DL = JTMB.getDefaultDataLayoutForTarget(); - if (!DL) - return DL.takeError(); + auto data_layout = jtmb.getDefaultDataLayoutForTarget(); + if (!data_layout) + return data_layout.takeError(); - return std::make_unique(std::move(ES), std::move(JTMB), - std::move(*DL)); + return std::make_unique(std::move(xsession), + std::move(jtmb), + std::move(*data_layout)); } - const DataLayout &getDataLayout() const { return DL; } + const DataLayout & getDataLayout() const { return data_layout_; } JITDylib &getMainJITDylib() { return MainJD; } - llvm::Error addModule(ThreadSafeModule TSM, ResourceTrackerSP RT = nullptr) { + llvm::Error + addModule(ThreadSafeModule ts_module, + ResourceTrackerSP RT = nullptr) { if (!RT) RT = MainJD.getDefaultResourceTracker(); - return CompileLayer.add(RT, std::move(TSM)); + + return compile_layer_.add(RT, std::move(ts_module)); } - llvm::Expected lookup(StringRef Name) { - return ES->lookup({&MainJD}, Mangle(Name.str())); + llvm::Expected lookup(StringRef name) { + return this->xsession_->lookup({&MainJD}, + this->mangler_(name.str())); } /* dump */ void dump_execution_session() { - ES->dump(llvm::errs()); + this->xsession_->dump(llvm::errs()); } }; } // end namespace jit } // end namespace xo - -#endif // LLVM_EXECUTIONENGINE_ORC_KALEIDOSCOPEJIT_H diff --git a/src/jit/Jit.cpp b/src/jit/Jit.cpp index 0accdd65..43cb7e2c 100644 --- a/src/jit/Jit.cpp +++ b/src/jit/Jit.cpp @@ -73,11 +73,6 @@ namespace xo { std::unique_ptr kal_jit = llvm_exit_on_err(KaleidoscopeJIT::Create()); return std::unique_ptr(new Jit(std::move(kal_jit) -#ifdef NOT_USING - std::move(es), - std::move(jtmb), - std::move(*dl) -#endif )); } /*make*/ @@ -93,18 +88,12 @@ namespace xo { Jit::Jit( std::unique_ptr kal_jit #ifdef NOT_USING - std::unique_ptr jit_es, llvm::orc::JITTargetMachineBuilder jtmb, llvm::DataLayout dl #endif ) : kal_jit_{std::move(kal_jit)} #ifdef NOT_USING - jit_es_(std::move(jit_es)), - jit_data_layout_(std::move(dl)), - jit_mangle_(*this->jit_es_, this->jit_data_layout_), - jit_object_layer_(*this->jit_es_, - []() { return std::make_unique(); }), jit_compile_layer_(*this->jit_es_, jit_object_layer_, std::make_unique(std::move(jtmb))), @@ -119,10 +108,6 @@ namespace xo { jit_our_dynamic_lib_.addGenerator (cantFail(llvm::orc::DynamicLibrarySearchGenerator::GetForCurrentProcess (jit_data_layout_.getGlobalPrefix()))); - - if(jtmb.getTargetTriple().isOSBinFormatCOFF()) { - jit_object_layer_.setOverrideObjectFlagsWithResponsibilityFlags(true); - jit_object_layer_.setAutoClaimResponsibilityForObjectSymbols(true); } #endif