From b34a0cb72b3d6e32cac77bf7aa18620703097eff Mon Sep 17 00:00:00 2001 From: dingguangya Date: Tue, 19 Sep 2023 11:08:34 +0800 Subject: [PATCH] [Sync] Sync patch from openeuler/pin-server --- 0028-Fix-BUILD-errors.patch | 37 ++++ ...nServer-Add-class-for-Server-Command.patch | 159 ++++++++++++++++++ pin-server.spec | 10 +- 3 files changed, 205 insertions(+), 1 deletion(-) create mode 100644 0028-Fix-BUILD-errors.patch create mode 100644 0029-PluginServer-Add-class-for-Server-Command.patch diff --git a/0028-Fix-BUILD-errors.patch b/0028-Fix-BUILD-errors.patch new file mode 100644 index 0000000..c7ed9fb --- /dev/null +++ b/0028-Fix-BUILD-errors.patch @@ -0,0 +1,37 @@ +From e7ae3a2b7852b4da6dccdd23f6caa20812a59660 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E9=83=91=E6=99=A8=E5=8D=89?= +Date: Thu, 7 Sep 2023 11:40:37 +0800 +Subject: [PATCH 1/2] Fix BUILD errors + +--- + CMakeLists.txt | 1 + + lib/PluginServer/PluginLog.cpp | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 233f345..569fabf 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -37,6 +37,7 @@ include(AddLLVM) + include(AddMLIR) + #include(HandleLLVMOptions) + ++include_directories(${GRPC_INCLUDE_DIR}) + include_directories(${LLVM_INCLUDE_DIRS}) + include_directories(${MLIR_INCLUDE_DIRS}) + include_directories(${PROJECT_SOURCE_DIR}/include) +diff --git a/lib/PluginServer/PluginLog.cpp b/lib/PluginServer/PluginLog.cpp +index 10b8bc8..c405da1 100644 +--- a/lib/PluginServer/PluginLog.cpp ++++ b/lib/PluginServer/PluginLog.cpp +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include "PluginServer/PluginLog.h" + + namespace PinLog { +-- +2.33.0 + diff --git a/0029-PluginServer-Add-class-for-Server-Command.patch b/0029-PluginServer-Add-class-for-Server-Command.patch new file mode 100644 index 0000000..31ca46d --- /dev/null +++ b/0029-PluginServer-Add-class-for-Server-Command.patch @@ -0,0 +1,159 @@ +From 9353b8793f8725568c04ba03adf8b7f84d0cd226 Mon Sep 17 00:00:00 2001 +From: Mingchuan Wu +Date: Sat, 2 Sep 2023 15:57:33 +0800 +Subject: [PATCH 2/2] [PluginServer] Add class for Server Command. + +--- + include/PluginAPI/BasicPluginOpsAPI.h | 1 + + include/PluginAPI/PluginServerAPI.h | 1 + + include/PluginServer/PluginOptBase.h | 2 +- + include/PluginServer/PluginServer.h | 44 +++++++++++++++++++++++++++ + lib/PluginAPI/PluginServerAPI.cpp | 5 +++ + lib/PluginServer/main.cpp | 5 +-- + 6 files changed, 55 insertions(+), 3 deletions(-) + +diff --git a/include/PluginAPI/BasicPluginOpsAPI.h b/include/PluginAPI/BasicPluginOpsAPI.h +index 065274d..b047175 100644 +--- a/include/PluginAPI/BasicPluginOpsAPI.h ++++ b/include/PluginAPI/BasicPluginOpsAPI.h +@@ -44,6 +44,7 @@ public: + virtual string GetIncludeFile() = 0; + virtual int GetDeclSourceLine(int64_t) = 0; + virtual int GetDeclSourceColumn(int64_t) = 0; ++ virtual void ShutdownCompile() = 0; + + // CGnodeOp + virtual vector GetAllCGnode() = 0; +diff --git a/include/PluginAPI/PluginServerAPI.h b/include/PluginAPI/PluginServerAPI.h +index 9cc8498..54e18a3 100644 +--- a/include/PluginAPI/PluginServerAPI.h ++++ b/include/PluginAPI/PluginServerAPI.h +@@ -124,6 +124,7 @@ public: + string GetIncludeFile() override; + int GetDeclSourceLine(int64_t) override; + int GetDeclSourceColumn(int64_t) override; ++ void ShutdownCompile() override; + private: + mlir::Block* BlockResult(const string& funName, const string& params); + vector BlocksResult(const string& funName, const string& params); +diff --git a/include/PluginServer/PluginOptBase.h b/include/PluginServer/PluginOptBase.h +index 474d072..926ab7a 100755 +--- a/include/PluginServer/PluginOptBase.h ++++ b/include/PluginServer/PluginOptBase.h +@@ -74,9 +74,9 @@ public: + } + + private: +- mlir::MLIRContext context; + InjectPoint inject; + uint64_t func; // 保存managerSetup fun参数指针 ++ mlir::MLIRContext context; + }; + } // namespace PluginOpt + #endif +diff --git a/include/PluginServer/PluginServer.h b/include/PluginServer/PluginServer.h +index 81f92e9..3b4b8e6 100644 +--- a/include/PluginServer/PluginServer.h ++++ b/include/PluginServer/PluginServer.h +@@ -98,8 +98,51 @@ private: + std::shared_ptr opt; + }; + ++class ServerCommand { ++public: ++ ServerCommand() = default; ++ ~ServerCommand() = default; ++ ServerCommand(const string& input, const string& dir, const string& common, ++ const string& extra, const string& output) { ++ this->input = input; ++ this->dir = dir; ++ this->common = common; ++ this->extra = extra; ++ this->output = output; ++ } ++ ++ void SetInput(const string& input) { this->input = input; } ++ void SetDir(const string& dir) { this->dir = dir; } ++ void SetCommon(const string& common) { this->common = common; } ++ void SetExtra(const string& extra) { this->extra = extra; } ++ void SetOutput(const string& output) { this->output = output; } ++ ++ string GetInput() { return this->input; } ++ string GetDir() { return this->dir; } ++ string GetCommon() { return this->common; } ++ string GetExtra() { return this->extra; } ++ string GetOutput() { return this->output; } ++private: ++ string input; ++ string dir; ++ string common; ++ string extra; ++ string output; ++}; ++ + class PluginServer { + public: ++ void SetServerCommand( ++ const string& input, const string& dir, const string& common, ++ const string& extra, const string& output) { ++ this->serverCMD.SetInput(input); ++ this->serverCMD.SetDir(dir); ++ this->serverCMD.SetCommon(common); ++ this->serverCMD.SetExtra(extra); ++ this->serverCMD.SetOutput(output); ++ } ++ ServerCommand GetServerCommand() { return this->serverCMD; } ++ + PluginServer(LogPriority priority, const string& port) + { + userFunState = STATE_WAIT_BEGIN; +@@ -276,6 +319,7 @@ public: + void RemoteCallClientWithAPI(const string& api, const string& params); + + private: ++ ServerCommand serverCMD; + /* 用户函数执行状态,client返回结果后为STATE_RETURN,开始执行下一个函数 */ + volatile UserFunStateEnum userFunState; + mlir::MLIRContext *context; +diff --git a/lib/PluginAPI/PluginServerAPI.cpp b/lib/PluginAPI/PluginServerAPI.cpp +index 09bd358..00a2a35 100644 +--- a/lib/PluginAPI/PluginServerAPI.cpp ++++ b/lib/PluginAPI/PluginServerAPI.cpp +@@ -472,6 +472,11 @@ llvm::SmallVector PluginServerAPI::GetFields(uint64_t + return PluginServer::GetInstance()->GetFieldsResult(funName, params); + } + ++void PluginServerAPI::ShutdownCompile() { ++ string funName = __func__; ++ PluginServer::GetInstance()->RemoteCallClientWithAPI(funName, ""); ++} ++ + void PluginServerAPI::SetDeclName(uint64_t newfieldId, uint64_t fieldId) + { + Json::Value root; +diff --git a/lib/PluginServer/main.cpp b/lib/PluginServer/main.cpp +index 333d55e..669d5e4 100644 +--- a/lib/PluginServer/main.cpp ++++ b/lib/PluginServer/main.cpp +@@ -24,7 +24,7 @@ using namespace PinServer; + + int main(int argc, char** argv) + { +- const int argcNum = 2; // 参数只有2个,argv[0]:port argv[1]:log级别 ++ const int argcNum = 7; + if (argc != argcNum) { + printf("param num:%d, should be:%d\n", argc, argcNum); + return -1; +@@ -32,6 +32,7 @@ int main(int argc, char** argv) + std::string port = argv[0]; + LogPriority priority = (LogPriority)atoi(argv[1]); + PluginServer server(priority, port); ++ server.SetServerCommand(argv[2], argv[3], argv[4], argv[5], argv[6]); + server.RunServer(); + return 0; +-} +\ No newline at end of file ++} +-- +2.33.0 + diff --git a/pin-server.spec b/pin-server.spec index b6b4be1..fa3c356 100644 --- a/pin-server.spec +++ b/pin-server.spec @@ -1,6 +1,6 @@ Name: pin-server Version: 0.4.0 -Release: 9 +Release: 10 Summary: Pin (Plug-IN framework) server provides plugin APIs for compiler optimization developers to develop optimization pass. License: Apache 2.0 URL: https://gitee.com/openeuler/pin-server @@ -37,6 +37,8 @@ Patch24: 0024-Pin-server-Fix-VectorType.patch Patch25: 0025-Pin-server-Fix-Pass-DoOptimize-method-and-struct-sel.patch Patch26: 0026-Pin-server-Fix-log-output-form.patch Patch27: 0027-Pin-server-Optimized-LocalVarSummeryPass.patch +Patch28: 0028-Fix-BUILD-errors.patch +Patch29: 0029-PluginServer-Add-class-for-Server-Command.patch %description Pin (Plug-IN framework) server provides plugin APIs for compiler optimization developers to develop optimization pass. @@ -119,6 +121,12 @@ find %{_libdir} -type f -name "libMLIRServerAPI.so" -exec strip "{}" ";" %config(noreplace) /etc/ld.so.conf.d/%{name}-%{_arch}.conf %changelog +* Tue Sep 19 2023 dingguangya - 0.4.0-10 +- Type:Update +- ID:NA +- SUG:NA +- DESC:Sync patch from openeuler/pin-server + * Sat Mar 25 2023 dingguangya - 0.4.0-9 - Type:Update - ID:NA