From 062dcaaaa17664f4be6fb191d97f85c19eec8840 Mon Sep 17 00:00:00 2001 From: sunsuodong Date: Sun, 29 Aug 2021 17:13:22 +0800 Subject: [PATCH] vs build converter --- cmake/external_libs/glog.cmake | 17 +++++--- cmake/external_libs/opencv.cmake | 41 +++++++++++++++++-- cmake/external_libs/protobuf.cmake | 24 ++++++++--- cmake/package_lite.cmake | 11 ++--- include/api/types.h | 8 ---- .../ccsrc/backend/kernel_compiler/kernel.h | 4 ++ mindspore/core/CMakeLists.txt | 4 +- mindspore/core/abstract/abstract_function.h | 12 +++++- mindspore/core/base/float16.h | 6 ++- mindspore/core/gvar/CMakeLists.txt | 15 ++++--- mindspore/core/gvar/log_adapter_common.cc | 3 +- mindspore/core/ir/anf.cc | 2 +- mindspore/core/ir/anf.h | 6 ++- mindspore/core/ir/func_graph_cloner.cc | 3 +- mindspore/core/ir/primitive.h | 6 ++- mindspore/core/utils/any.cc | 2 + mindspore/core/utils/any.h | 4 ++ mindspore/core/utils/log_adapter.cc | 15 +++++++ mindspore/core/utils/misc.cc | 8 +++- mindspore/core/utils/misc.h | 1 - mindspore/core/utils/profile.cc | 8 ++++ mindspore/lite/include/lite_utils.h | 8 ---- mindspore/lite/micro/coder/CMakeLists.txt | 2 +- mindspore/lite/tools/common/storage.cc | 6 +++ .../converter/parser/onnx/onnx_model_parser.h | 1 - .../tools/converter/quantizer/quantize_util.h | 2 + .../tools/converter/registry/CMakeLists.txt | 1 + .../optimizer/common/pass_manager_extends.cc | 2 + .../optimizer/fisson/multi_conv_split_pass.h | 2 +- .../fusion/affine_activation_fusion.h | 2 +- .../tools/optimizer/fusion/affine_fusion.cc | 3 +- .../tools/optimizer/fusion/conv_conv_fusion.h | 1 + .../tools/optimizer/graph/add_tensor_array.h | 2 +- 33 files changed, 171 insertions(+), 61 deletions(-) diff --git a/cmake/external_libs/glog.cmake b/cmake/external_libs/glog.cmake index b2a54c23a4e..84e4ed0901c 100644 --- a/cmake/external_libs/glog.cmake +++ b/cmake/external_libs/glog.cmake @@ -1,7 +1,13 @@ if(BUILD_LITE) - set(glog_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2 ${SECURE_CXX_FLAGS} -Dgoogle=mindspore_private") - set(glog_CFLAGS "-D_FORTIFY_SOURCE=2 -O2 ${SECURE_C_FLAGS}") - set(glog_LDFLAGS "${SECURE_SHARED_LINKER_FLAGS}") + if(MSVC) + set(flatbuffers_CXXFLAGS "${CMAKE_CXX_FLAGS}") + set(flatbuffers_CFLAGS "${CMAKE_C_FLAGS}") + set(flatbuffers_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}") + else() + set(glog_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2 ${SECURE_CXX_FLAGS} -Dgoogle=mindspore_private") + set(glog_CFLAGS "-D_FORTIFY_SOURCE=2 -O2 ${SECURE_C_FLAGS}") + set(glog_LDFLAGS "${SECURE_SHARED_LINKER_FLAGS}") + endif() set(glog_patch "") set(glog_lib glog) else() @@ -23,9 +29,10 @@ else() set(MD5 "0daea8785e6df922d7887755c3d100d0") endif() -set(glog_option -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON -DWITH_GFLAGS=OFF) +set(glog_option -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON -DWITH_GFLAGS=OFF + -DCMAKE_BUILD_TYPE=Release) -if(WIN32) +if(WIN32 AND NOT MSVC) execute_process(COMMAND "${CMAKE_C_COMPILER}" -dumpmachine OUTPUT_VARIABLE i686_or_x86_64 ) diff --git a/cmake/external_libs/opencv.cmake b/cmake/external_libs/opencv.cmake index 2d2c8dcc466..e8d0ad45ec0 100644 --- a/cmake/external_libs/opencv.cmake +++ b/cmake/external_libs/opencv.cmake @@ -1,4 +1,8 @@ -if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") +if(MSVC) + set(opencv_CXXFLAGS "${CMAKE_CXX_FLAGS}") + set(opencv_CFLAGS "${CMAKE_C_FLAGS}") + set(opencv_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}") +elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(opencv_CXXFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") set(opencv_CFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") set(opencv_LDFLAGS "-Wl") @@ -41,7 +45,33 @@ else() endif() endif() -if(WIN32) +if(MSVC) + mindspore_add_pkg(opencv + VER 4.5.1 + LIBS opencv_core451.lib opencv_imgcodecs451.lib opencv_imgproc451.lib + LIB_PATH x64/vc15/lib + URL ${REQ_URL} + MD5 ${MD5} + CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DWITH_PROTOBUF=OFF -DWITH_WEBP=OFF -DWITH_IPP=OFF + -DWITH_ADE=OFF + -DBUILD_ZLIB=ON + -DBUILD_JPEG=ON + -DBUILD_PNG=ON + -DBUILD_OPENEXR=ON + -DBUILD_TESTS=OFF + -DBUILD_PERF_TESTS=OFF + -DBUILD_opencv_apps=OFF + -DCMAKE_SKIP_RPATH=TRUE + -DBUILD_opencv_python3=OFF + -DBUILD_opencv_videoio=OFF + -DWITH_FFMPEG=OFF + -DWITH_TIFF=ON + -DBUILD_TIFF=OFF + -DWITH_JASPER=OFF + -DBUILD_JASPER=OFF + -DTIFF_INCLUDE_DIR=${tiff_INC} + -DTIFF_LIBRARY=${tiff_LIB}) +elseif(WIN32) if("${BUILD_LITE}" STREQUAL "on" OR PYTHON_VERSION MATCHES "3.9") mindspore_add_pkg(opencv VER 4.5.1 @@ -149,7 +179,12 @@ else() endif() endif() -if(WIN32) +if(MSVC) + include_directories(${opencv_INC}) + add_library(mindspore::opencv_core ALIAS opencv::opencv_core451.lib) + add_library(mindspore::opencv_imgcodecs ALIAS opencv::opencv_imgcodecs451.lib) + add_library(mindspore::opencv_imgproc ALIAS opencv::opencv_imgproc451.lib) +elseif(WIN32) if("${BUILD_LITE}" STREQUAL "on" OR PYTHON_VERSION MATCHES "3.9") include_directories(${opencv_INC}) add_library(mindspore::opencv_core ALIAS opencv::libopencv_core451.dll.a) diff --git a/cmake/external_libs/protobuf.cmake b/cmake/external_libs/protobuf.cmake index 96fd400ef77..e733d8bd6f6 100644 --- a/cmake/external_libs/protobuf.cmake +++ b/cmake/external_libs/protobuf.cmake @@ -1,9 +1,18 @@ set(protobuf_USE_STATIC_LIBS ON) if(BUILD_LITE) - set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \ - -fPIC -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2") - if(ENABLE_ACL) - set(protobuf_CXXFLAGS "${protobuf_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") + if(MSVC) + set(protobuf_CXXFLAGS "${CMAKE_CXX_FLAGS}") + set(protobuf_CFLAGS "${CMAKE_C_FLAGS}") + set(protobuf_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}") + set(_ms_tmp_CMAKE_STATIC_LIBRARY_PREFIX ${CMAKE_STATIC_LIBRARY_PREFIX}) + set(CMAKE_STATIC_LIBRARY_PREFIX "lib") + else() + set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \ + -fPIC -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2") + if(ENABLE_ACL) + set(protobuf_CXXFLAGS "${protobuf_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") + endif() + set(protobuf_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") endif() else() if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") @@ -19,9 +28,9 @@ else() set(protobuf_CXXFLAGS "${protobuf_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") endif() endif() + set(protobuf_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") endif() -set(protobuf_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") set(_ms_tmp_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) set(CMAKE_CXX_FLAGS ${_ms_tmp_CMAKE_CXX_FLAGS}) string(REPLACE " -Wall" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") @@ -42,11 +51,14 @@ mindspore_add_pkg(protobuf URL ${REQ_URL} MD5 ${MD5} CMAKE_PATH cmake/ - CMAKE_OPTION -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF) + CMAKE_OPTION -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release) include_directories(${protobuf_INC}) add_library(mindspore::protobuf ALIAS protobuf::protobuf) set(CMAKE_CXX_FLAGS ${_ms_tmp_CMAKE_CXX_FLAGS}) +if(MSVC) + set(CMAKE_STATIC_LIBRARY_PREFIX, ${_ms_tmp_CMAKE_STATIC_LIBRARY_PREFIX}) +endif() function(common_protobuf_generate path c_var h_var) if(NOT ARGN) diff --git a/cmake/package_lite.cmake b/cmake/package_lite.cmake index e7d8ff976f9..29b049189ee 100644 --- a/cmake/package_lite.cmake +++ b/cmake/package_lite.cmake @@ -302,8 +302,8 @@ elseif(WIN32) file(GLOB LIB_LIST ${CXX_DIR}/libstdc++-6.dll ${CXX_DIR}/libwinpthread-1.dll ${CXX_DIR}/libssp-0.dll ${CXX_DIR}/libgcc_s_*-1.dll) if(MSLITE_ENABLE_CONVERTER) - install(TARGETS converter_lite RUNTIME DESTINATION ${CONVERTER_ROOT_DIR}/converter - COMPONENT ${RUNTIME_COMPONENT_NAME}) + install(FILES ${TOP_DIR}/build/mindspore/tools/converter/converter_lite.exe + DESTINATION ${CONVERTER_ROOT_DIR}/converter COMPONENT ${RUNTIME_COMPONENT_NAME}) install(DIRECTORY ${TOP_DIR}/mindspore/lite/include/ DESTINATION ${CONVERTER_ROOT_DIR}/include COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h" PATTERN "train*" EXCLUDE PATTERN "delegate.h" EXCLUDE PATTERN "lite_session.h" EXCLUDE) @@ -359,9 +359,10 @@ elseif(WIN32) ${opencv_LIBPATH}/../bin/libopencv_imgproc* ) install(FILES ${OPENCV_LIB_LIST} DESTINATION ${CONVERTER_ROOT_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME}) - - __install_micro_wrapper() - __install_micro_codegen() + if(NOT MSVC) + __install_micro_wrapper() + __install_micro_codegen() + endif() endif() if(MSLITE_ENABLE_TOOLS) if(MSVC) diff --git a/include/api/types.h b/include/api/types.h index 0690bfa8b6c..702d79d142c 100644 --- a/include/api/types.h +++ b/include/api/types.h @@ -27,16 +27,8 @@ #ifndef MS_API #ifdef _WIN32 -#ifdef _MSC_VER -#ifdef BUILDING_DLL #define MS_API __declspec(dllexport) #else -#define MS_API __declspec(dllimport) -#endif -#else -#define MS_API __declspec(dllexport) -#endif -#else #define MS_API __attribute__((visibility("default"))) #endif #endif diff --git a/mindspore/ccsrc/backend/kernel_compiler/kernel.h b/mindspore/ccsrc/backend/kernel_compiler/kernel.h index ec7acfc0178..8547b6d1ecb 100644 --- a/mindspore/ccsrc/backend/kernel_compiler/kernel.h +++ b/mindspore/ccsrc/backend/kernel_compiler/kernel.h @@ -27,6 +27,10 @@ #include "utils/log_adapter.h" #include "runtime/device/executor/dynamic_kernel.h" +#ifdef _MSC_VER +#undef OPAQUE +#endif + namespace mindspore { enum KernelType : int { UNKNOWN_KERNEL_TYPE = 0, diff --git a/mindspore/core/CMakeLists.txt b/mindspore/core/CMakeLists.txt index 9a5dd52fada..6ec5835c886 100644 --- a/mindspore/core/CMakeLists.txt +++ b/mindspore/core/CMakeLists.txt @@ -3,7 +3,7 @@ include_directories(${CMAKE_BINARY_DIR}) include_directories(${CMAKE_SOURCE_DIR}/mindspore/core) add_subdirectory(gvar) -if("${ENABLE_HIDDEN}" STREQUAL "OFF") +if("${ENABLE_HIDDEN}" STREQUAL "OFF" AND NOT MSVC) string(REPLACE " -Werror " " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") string(REPLACE " -fvisibility=hidden" " -fvisibility=default" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") endif() @@ -30,7 +30,7 @@ else() ms_protobuf_generate(PROTO_SRCS PROTO_HDRS ${PROTO_FILE}) endif() -if(CMAKE_SYSTEM_NAME MATCHES "Windows") +if(CMAKE_SYSTEM_NAME MATCHES "Windows" AND NOT MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes -DHAVE_SNPRINTF") add_compile_definitions(BUILDING_DLL) elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") diff --git a/mindspore/core/abstract/abstract_function.h b/mindspore/core/abstract/abstract_function.h index 1e6bce66b93..4427ab1cf9f 100644 --- a/mindspore/core/abstract/abstract_function.h +++ b/mindspore/core/abstract/abstract_function.h @@ -51,13 +51,21 @@ class MS_CORE_API AbstractFuncUnion : public AbstractFunction { std::string ToString() const override; - AbstractFunctionPtr GetUnique() override { MS_LOG(EXCEPTION) << "Cannot get unique from AbstractFuncUnion"; } + AbstractFunctionPtr GetUnique() override { + MS_LOG(EXCEPTION) << "Cannot get unique from AbstractFuncUnion"; + AbstractFunctionPtr result; + return result; + } bool IsSuperSet(const AbstractFunctionPtr &other); AbstractFunctionPtr Join(const AbstractFunctionPtr &other) final; void Visit(std::function) const final; bool operator==(const AbstractFunction &other) const override; std::size_t hash() const override; - AbstractFunctionPtr Copy() const override { MS_LOG(EXCEPTION) << "Cannot Copy from AbstractFuncUnion"; } + AbstractFunctionPtr Copy() const override { + MS_LOG(EXCEPTION) << "Cannot Copy from AbstractFuncUnion"; + AbstractFunctionPtr result; + return result; + } private: AbstractFuncAtomPtrList func_list_; diff --git a/mindspore/core/base/float16.h b/mindspore/core/base/float16.h index 9599948fdb6..d0ffb78a98f 100644 --- a/mindspore/core/base/float16.h +++ b/mindspore/core/base/float16.h @@ -108,7 +108,8 @@ class Float16 { constexpr unsigned int exponent_bits = 13; constexpr unsigned int sign_bit_shift = 16; // Exponent/mantissa bits. - Union32 f32{.u = (static_cast(f16.value_ & value_mask) << exponent_bits)}; + Union32 f32; + f32.u = (static_cast(f16.value_ & value_mask) << exponent_bits); // Just the exponent. unsigned int exp = (shifted_exp & f32.u); f32.u += exponent_adjust; @@ -137,7 +138,8 @@ class Float16 { constexpr unsigned int sign_mask = 0x80000000u; constexpr uint32_t rouding_bias_part1 = ((unsigned int)(15 - 127) << 23) + 0xfff; - Union32 f{.f = f32}; + Union32 f; + f.f = f32; unsigned int sign = f.u & sign_mask; f.u ^= sign; uint16_t result = 0; diff --git a/mindspore/core/gvar/CMakeLists.txt b/mindspore/core/gvar/CMakeLists.txt index a3709521efd..0f14e0078d3 100644 --- a/mindspore/core/gvar/CMakeLists.txt +++ b/mindspore/core/gvar/CMakeLists.txt @@ -1,12 +1,15 @@ file(GLOB_RECURSE MS_GVAR_SRC_LIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cc) set_property(SOURCE ${MS_GVAR_SRC_LIST} PROPERTY COMPILE_DEFINITIONS SUBMODULE_ID=mindspore::SubModuleId::SM_COMMON) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORTIFY_SOURCE=2 -O2") -if(CMAKE_SYSTEM_NAME MATCHES "Windows") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes -DHAVE_SNPRINTF") - add_compile_definitions(BUILDING_DLL) -elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wuser-defined-warnings -Winconsistent-missing-override") +if(NOT MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORTIFY_SOURCE=2 -O2") + + if(CMAKE_SYSTEM_NAME MATCHES "Windows") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes -DHAVE_SNPRINTF") + add_compile_definitions(BUILDING_DLL) + elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wuser-defined-warnings -Winconsistent-missing-override") + endif() endif() if(BUILD_LITE) diff --git a/mindspore/core/gvar/log_adapter_common.cc b/mindspore/core/gvar/log_adapter_common.cc index 3e55edef414..6ac348fcc21 100644 --- a/mindspore/core/gvar/log_adapter_common.cc +++ b/mindspore/core/gvar/log_adapter_common.cc @@ -13,8 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +#ifndef _MSC_VER #include +#endif #include #include "utils/log_adapter.h" diff --git a/mindspore/core/ir/anf.cc b/mindspore/core/ir/anf.cc index 6178d1be3df..c84c7c4b537 100644 --- a/mindspore/core/ir/anf.cc +++ b/mindspore/core/ir/anf.cc @@ -347,7 +347,7 @@ bool IsStateEquivalent(const AnfNodePtr &outer, const AnfNodePtr &inner) { outer_loads.merge(inner_loads); auto &monad = (*outer_loads.begin())->inputs().at(kMonadInput); return std::all_of(++outer_loads.begin(), outer_loads.end(), - [&monad](const CNodePtr &load) { return load->inputs().at(kMonadInput) == monad; }); + [&monad, kMonadInput](const CNodePtr &load) { return load->inputs().at(kMonadInput) == monad; }); } size_t NewSeenGeneration() { diff --git a/mindspore/core/ir/anf.h b/mindspore/core/ir/anf.h index 98345716516..1a669108ad5 100644 --- a/mindspore/core/ir/anf.h +++ b/mindspore/core/ir/anf.h @@ -452,7 +452,11 @@ class MS_CORE_API Value : public Base { MS_DECLARE_PARENT(Value, Base) TypePtr type() const { return type_; } - virtual abstract::AbstractBasePtr ToAbstract() { MS_LOG(EXCEPTION) << "ToAbstract error"; } + virtual abstract::AbstractBasePtr ToAbstract() { + MS_LOG(EXCEPTION) << "ToAbstract error"; + abstract::AbstractBasePtr result; + return result; + } virtual bool operator==(const Value &rhs) const = 0; virtual Value &operator=(const Value &other) { diff --git a/mindspore/core/ir/func_graph_cloner.cc b/mindspore/core/ir/func_graph_cloner.cc index 78a7d954e7b..e37d81503b8 100644 --- a/mindspore/core/ir/func_graph_cloner.cc +++ b/mindspore/core/ir/func_graph_cloner.cc @@ -47,7 +47,8 @@ Cloner::Cloner(const FuncGraphVector &func_graphs, bool clone_all_valuenodes, bo void Cloner::AddClone(const FuncGraphPtr &func_graph, const FuncGraphPtr &target_func_graph, const AnfNodePtrList ¶ms, CloneType type) { if (func_graph != nullptr) { - todo_.push_back({.origin = func_graph, .target = target_func_graph, .params = params}); + CloneInfo clone = {func_graph, target_func_graph, params}; + todo_.push_back(clone); type_ = type; } } diff --git a/mindspore/core/ir/primitive.h b/mindspore/core/ir/primitive.h index c1d47d20fac..66af817e2cd 100644 --- a/mindspore/core/ir/primitive.h +++ b/mindspore/core/ir/primitive.h @@ -112,7 +112,11 @@ class MS_CORE_API Primitive : public Named { void set_has_signature(bool has_signature) { has_signature_ = has_signature; } bool has_signature() const { return has_signature_; } bool is_base() const { return is_base_; } - virtual BaseRef RunHookFunction(const VectorRef &args) const { MS_LOG(EXCEPTION) << "call a empty function!"; } + virtual BaseRef RunHookFunction(const VectorRef &args) const { + MS_LOG(EXCEPTION) << "call a empty function!"; + BaseRef result; + return result; + } virtual void CopyHookFunction(const PrimitivePtr &primitive) { MS_LOG(EXCEPTION) << "call a empty function!"; } void set_const_prim(bool is_const_prim) { is_const_prim_ = is_const_prim; } bool is_const_prim() const { return is_const_prim_; } diff --git a/mindspore/core/utils/any.cc b/mindspore/core/utils/any.cc index 190ec84ebb5..0efea555119 100644 --- a/mindspore/core/utils/any.cc +++ b/mindspore/core/utils/any.cc @@ -15,7 +15,9 @@ */ #include "utils/any.h" +#ifndef _MSC_VER #include +#endif #include namespace mindspore { diff --git a/mindspore/core/utils/any.h b/mindspore/core/utils/any.h index 3e87884f0e3..bf3e4132283 100644 --- a/mindspore/core/utils/any.h +++ b/mindspore/core/utils/any.h @@ -142,7 +142,11 @@ class Any { } return buffer.str(); } +#ifdef _MSC_VER + void dump() const { std::cout << ToString() << std::endl; } +#else __attribute__((used)) void dump() const { std::cout << ToString() << std::endl; } +#endif private: struct Base; diff --git a/mindspore/core/utils/log_adapter.cc b/mindspore/core/utils/log_adapter.cc index a31501075c3..17646f7623c 100644 --- a/mindspore/core/utils/log_adapter.cc +++ b/mindspore/core/utils/log_adapter.cc @@ -16,8 +16,10 @@ #include "utils/log_adapter.h" +#ifndef _MSC_VER #include #include +#endif #include #include #include @@ -119,7 +121,12 @@ void LogWriter::OutputLog(const std::ostringstream &msg) const { #define google mindspore_private auto submodule_name = GetSubModuleName(submodule_); google::LogMessage("", 0, GetGlogLevel(log_level_)).stream() +#ifdef _MSC_VER + << "[" << GetLogLevel(log_level_) << "] " << submodule_name << "(" + << "," << std::hex +#else << "[" << GetLogLevel(log_level_) << "] " << submodule_name << "(" << getpid() << "," << std::hex +#endif << std::this_thread::get_id() << std::dec << "," << GetProcName() << "):" << GetTimeString() << " " << "[" << location_.file_ << ":" << location_.line_ << "] " << location_.func_ << "] " << msg.str() << std::endl; #undef google @@ -415,7 +422,11 @@ void InitSubModulesLogLevel() { extern "C" { #if defined(_WIN32) || defined(_WIN64) +#ifdef _MSC_VER +void common_log_init(void) { +#else __attribute__((constructor)) void common_log_init(void) { +#endif #else void common_log_init(void) { #endif @@ -472,7 +483,11 @@ void common_log_init(void) { // shared lib init hook #if defined(_WIN32) || defined(_WIN64) +#ifdef _MSC_VER +void mindspore_log_init(void) { +#else __attribute__((constructor)) void mindspore_log_init(void) { +#endif #else void mindspore_log_init(void) { #endif diff --git a/mindspore/core/utils/misc.cc b/mindspore/core/utils/misc.cc index ae93c750ee1..1f9a6c95464 100644 --- a/mindspore/core/utils/misc.cc +++ b/mindspore/core/utils/misc.cc @@ -15,7 +15,9 @@ */ #include "utils/misc.h" - +#ifndef _MSC_VER +#include +#endif namespace mindspore { const int RET_SUCCESS = 0; const int RET_FAILED = 1; @@ -23,8 +25,12 @@ const int RET_CONTINUE = 2; const int RET_BREAK = 3; std::string demangle(const char *name) { +#ifdef _MSC_VER + return name; +#else int status = -1; std::unique_ptr res{abi::__cxa_demangle(name, nullptr, nullptr, &status), std::free}; return (status == 0) ? res.get() : name; +#endif } } // namespace mindspore diff --git a/mindspore/core/utils/misc.h b/mindspore/core/utils/misc.h index 7c63fb299eb..28a64aba366 100644 --- a/mindspore/core/utils/misc.h +++ b/mindspore/core/utils/misc.h @@ -17,7 +17,6 @@ #ifndef MINDSPORE_CORE_UTILS_MISC_H_ #define MINDSPORE_CORE_UTILS_MISC_H_ -#include #include #include #include diff --git a/mindspore/core/utils/profile.cc b/mindspore/core/utils/profile.cc index ded04ed920b..0b75f343715 100644 --- a/mindspore/core/utils/profile.cc +++ b/mindspore/core/utils/profile.cc @@ -15,8 +15,12 @@ */ #include "utils/profile.h" +#ifdef _MSC_VER +#include +#else #include #include +#endif #include #include #include @@ -119,9 +123,13 @@ void PrintProfile(std::ostringstream &oss, const TimeInfo &time_info, int indent } // namespace double GetTime(void) { +#ifdef _MSC_VER + return time(NULL); +#else struct timeval tv = {0, 0}; (void)gettimeofday(&tv, nullptr); return tv.tv_sec + tv.tv_usec * 1.0e-6; +#endif } TimeInfo::~TimeInfo() { diff --git a/mindspore/lite/include/lite_utils.h b/mindspore/lite/include/lite_utils.h index 68499e79a98..673fa870c43 100644 --- a/mindspore/lite/include/lite_utils.h +++ b/mindspore/lite/include/lite_utils.h @@ -34,16 +34,8 @@ #ifndef MS_API #ifdef _WIN32 -#ifdef _MSC_VER -#ifdef BUILDING_DLL #define MS_API __declspec(dllexport) #else -#define MS_API __declspec(dllimport) -#endif -#else -#define MS_API __declspec(dllexport) -#endif -#else #define MS_API __attribute__((visibility("default"))) #endif #endif diff --git a/mindspore/lite/micro/coder/CMakeLists.txt b/mindspore/lite/micro/coder/CMakeLists.txt index fc79cee63b1..37a8448139a 100644 --- a/mindspore/lite/micro/coder/CMakeLists.txt +++ b/mindspore/lite/micro/coder/CMakeLists.txt @@ -26,12 +26,12 @@ include_directories(${MICRO_DIR}) #include coder if(NOT MSVC) include(${TOP_DIR}/cmake/external_libs/cmsis.cmake) - include(${MICRO_DIR}/cmake/file_list.cmake) include(${MICRO_DIR}/cmake/package_wrapper.cmake) add_subdirectory(wrapper) endif() if(MSLITE_ENABLE_CONVERTER) + include(${MICRO_DIR}/cmake/file_list.cmake) add_executable(codegen main.cc ${FILE_SET}) add_dependencies(codegen fbs_src) add_dependencies(codegen fbs_inner_src) diff --git a/mindspore/lite/tools/common/storage.cc b/mindspore/lite/tools/common/storage.cc index ed272deca31..89732208e14 100644 --- a/mindspore/lite/tools/common/storage.cc +++ b/mindspore/lite/tools/common/storage.cc @@ -16,7 +16,9 @@ #include "tools/common/storage.h" #include +#ifndef _MSC_VER #include +#endif #include "flatbuffers/flatbuffers.h" #include "src/common/log_adapter.h" #include "src/common/file_utils.h" @@ -38,9 +40,11 @@ int Storage::Save(const schema::MetaGraphT &graph, const std::string &outputPath if (filename.substr(filename.find_last_of(".") + 1) != "ms") { filename = filename + ".ms"; } +#ifndef _MSC_VER if (access(filename.c_str(), F_OK) == 0) { chmod(filename.c_str(), S_IWUSR); } +#endif std::ofstream output(filename, std::ofstream::binary); if (!output.is_open()) { MS_LOG(ERROR) << "Can not open output file: " << filename; @@ -49,7 +53,9 @@ int Storage::Save(const schema::MetaGraphT &graph, const std::string &outputPath output.write((const char *)content, size); output.close(); +#ifndef _MSC_VER chmod(filename.c_str(), S_IRUSR); +#endif return RET_OK; } diff --git a/mindspore/lite/tools/converter/parser/onnx/onnx_model_parser.h b/mindspore/lite/tools/converter/parser/onnx/onnx_model_parser.h index 0d355391c45..91f62a22a67 100644 --- a/mindspore/lite/tools/converter/parser/onnx/onnx_model_parser.h +++ b/mindspore/lite/tools/converter/parser/onnx/onnx_model_parser.h @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include diff --git a/mindspore/lite/tools/converter/quantizer/quantize_util.h b/mindspore/lite/tools/converter/quantizer/quantize_util.h index 622abc4a419..1020dd432b2 100644 --- a/mindspore/lite/tools/converter/quantizer/quantize_util.h +++ b/mindspore/lite/tools/converter/quantizer/quantize_util.h @@ -17,7 +17,9 @@ #ifndef MINDSPORE_LITE_TOOLS_CONVERTER_QUANTIZER_QUANTIZE_UTIL_H_ #define MINDSPORE_LITE_TOOLS_CONVERTER_QUANTIZER_QUANTIZE_UTIL_H_ +#ifndef _MSC_VER #include +#endif #include #include #include diff --git a/mindspore/lite/tools/converter/registry/CMakeLists.txt b/mindspore/lite/tools/converter/registry/CMakeLists.txt index 9601f8be8d7..1da9bc6852b 100644 --- a/mindspore/lite/tools/converter/registry/CMakeLists.txt +++ b/mindspore/lite/tools/converter/registry/CMakeLists.txt @@ -3,6 +3,7 @@ file(GLOB CONVERT_REG_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cc) file(GLOB KERNEL_REG_SRC ${KERNEL_REG_DIR}/*.cc) set(REG_SRC ${CONVERT_REG_SRC} ${KERNEL_REG_SRC} + ${KERNEL_REG_DIR}/../cxx_api/context.cc ${KERNEL_REG_DIR}/../cxx_api/types.cc ${KERNEL_REG_DIR}/../cxx_api/tensor/tensor_impl.cc ${KERNEL_REG_DIR}/../cxx_api/tensor_utils.cc diff --git a/mindspore/lite/tools/optimizer/common/pass_manager_extends.cc b/mindspore/lite/tools/optimizer/common/pass_manager_extends.cc index 134f7cb577e..dc19161561b 100644 --- a/mindspore/lite/tools/optimizer/common/pass_manager_extends.cc +++ b/mindspore/lite/tools/optimizer/common/pass_manager_extends.cc @@ -14,7 +14,9 @@ * limitations under the License. */ #include "backend/optimizer/common/pass_manager.h" +#ifndef _MSC_VER #include +#endif #include #include #include diff --git a/mindspore/lite/tools/optimizer/fisson/multi_conv_split_pass.h b/mindspore/lite/tools/optimizer/fisson/multi_conv_split_pass.h index 5c8fdcfe5d1..3e86d49db95 100644 --- a/mindspore/lite/tools/optimizer/fisson/multi_conv_split_pass.h +++ b/mindspore/lite/tools/optimizer/fisson/multi_conv_split_pass.h @@ -20,10 +20,10 @@ #include #include #include +#include "schema/model_generated.h" #include "backend/optimizer/common/optimizer.h" #include "tools/optimizer/fisson/fisson_util.h" #include "tools/optimizer/parallel/split_strategy.h" -#include "schema/model_generated.h" #include "tools/optimizer/parallel/multi_node_split.h" using mindspore::schema::PrimitiveType; diff --git a/mindspore/lite/tools/optimizer/fusion/affine_activation_fusion.h b/mindspore/lite/tools/optimizer/fusion/affine_activation_fusion.h index aaf2f647a40..144b8f5c628 100644 --- a/mindspore/lite/tools/optimizer/fusion/affine_activation_fusion.h +++ b/mindspore/lite/tools/optimizer/fusion/affine_activation_fusion.h @@ -18,8 +18,8 @@ #define MINDSPORE_LITE_SRC_PASS_FUSION_AFFINE_ACTIVATION_FUSION_H_ #include -#include "backend/optimizer/common/optimizer.h" #include "schema/inner/model_generated.h" +#include "backend/optimizer/common/optimizer.h" namespace mindspore { namespace opt { diff --git a/mindspore/lite/tools/optimizer/fusion/affine_fusion.cc b/mindspore/lite/tools/optimizer/fusion/affine_fusion.cc index 7cfee25b185..367f5dd0f70 100644 --- a/mindspore/lite/tools/optimizer/fusion/affine_fusion.cc +++ b/mindspore/lite/tools/optimizer/fusion/affine_fusion.cc @@ -13,13 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - #include "tools/optimizer/fusion/affine_fusion.h" #include #include +#include "schema/inner/model_generated.h" #include "ops/affine.h" #include "src/common/log_adapter.h" -#include "schema/inner/model_generated.h" #include "ops/splice.h" #include "ops/mat_mul.h" #include "tools/optimizer/common/gllo_utils.h" diff --git a/mindspore/lite/tools/optimizer/fusion/conv_conv_fusion.h b/mindspore/lite/tools/optimizer/fusion/conv_conv_fusion.h index e75353f09f5..980dfc7f4b8 100644 --- a/mindspore/lite/tools/optimizer/fusion/conv_conv_fusion.h +++ b/mindspore/lite/tools/optimizer/fusion/conv_conv_fusion.h @@ -18,6 +18,7 @@ #define MINDSPORE_LITE_SRC_PASS_FUSION_CONV_CONV_FUSION_H_ #include +#include "schema/inner/model_generated.h" #include "backend/optimizer/common/optimizer.h" namespace mindspore { diff --git a/mindspore/lite/tools/optimizer/graph/add_tensor_array.h b/mindspore/lite/tools/optimizer/graph/add_tensor_array.h index 2e1ef051668..d61ed0cb44f 100644 --- a/mindspore/lite/tools/optimizer/graph/add_tensor_array.h +++ b/mindspore/lite/tools/optimizer/graph/add_tensor_array.h @@ -18,8 +18,8 @@ #define MINDSPORE_LITE_SRC_PASS_GRAPH_ADD_TENSOR_ARRAY_H_ #include -#include "backend/optimizer/common/optimizer.h" #include "schema/inner/model_generated.h" +#include "backend/optimizer/common/optimizer.h" namespace mindspore { namespace opt {