Browse Source

Add clang compatiblity (#3071)

* Add clang compatiblity

Add ability to build NCNN lib on windows with clang GNU

* Restyled/pull 3071 (#16)

* [skip ci] Restyled by clang-format

* [skip ci] Restyled by astyle

* [skip ci] Restyled by clang-format

* [skip ci] Restyled by astyle

Co-authored-by: Restyled.io <commits@restyled.io>

Co-authored-by: Restyled.io <commits@restyled.io>
tags/20210720
Tijmen Verhulsdonck GitHub 4 years ago
parent
commit
a7f301a99d
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 6 additions and 6 deletions
  1. +1
    -1
      CMakeLists.txt
  2. +1
    -1
      cmake/ncnn_add_layer.cmake
  3. +3
    -3
      src/CMakeLists.txt
  4. +1
    -1
      src/layer/x86/convolution_3x3.h

+ 1
- 1
CMakeLists.txt View File

@@ -256,7 +256,7 @@ if(NCNN_VULKAN)
endif()
add_subdirectory(glslang)
if(NCNN_SHARED_LIB)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_SIMULATE_ID MATCHES "MSVC"))
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC"))
target_compile_options(glslang PRIVATE -fvisibility=hidden -fvisibility-inlines-hidden)
target_compile_options(OGLCompiler PRIVATE -fvisibility=hidden -fvisibility-inlines-hidden)
target_compile_options(OSDependent PRIVATE -fvisibility=hidden -fvisibility-inlines-hidden)


+ 1
- 1
cmake/ncnn_add_layer.cmake View File

@@ -150,7 +150,7 @@ macro(ncnn_add_layer class)
endif()

if(NCNN_RUNTIME_CPU AND NCNN_AVX2 AND NCNN_TARGET_ARCH STREQUAL "x86")
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_SIMULATE_ID MATCHES "MSVC"))
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_SIMULATE_ID MATCHES "MSVC" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC"))
ncnn_add_arch_opt_layer(${class} avx2 "/arch:AVX2 /DAVX2 /fp:strict")
else()
ncnn_add_arch_opt_layer(${class} avx2 "-mfma -mf16c -mavx2")


+ 3
- 3
src/CMakeLists.txt View File

@@ -278,7 +278,7 @@ if(WIN32)
target_compile_definitions(ncnn PUBLIC NOMINMAX)
endif()

if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_SIMULATE_ID MATCHES "MSVC"))
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_SIMULATE_ID MATCHES "MSVC" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC"))
target_compile_definitions(ncnn PRIVATE _SCL_SECURE_NO_WARNINGS _CRT_SECURE_NO_DEPRECATE)

if(CMAKE_BUILD_TYPE MATCHES "(Release|RELEASE|release)")
@@ -325,7 +325,7 @@ endif()

if(NCNN_TARGET_ARCH STREQUAL "x86")
if(NCNN_SSE2)
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_SIMULATE_ID MATCHES "MSVC"))
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_SIMULATE_ID MATCHES "MSVC" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC"))
target_compile_options(ncnn PRIVATE /arch:SSE2 /D__SSE2__)
else()
target_compile_options(ncnn PRIVATE -msse2 -msse)
@@ -336,7 +336,7 @@ if(NCNN_TARGET_ARCH STREQUAL "x86")
endif()

if(NOT NCNN_RUNTIME_CPU AND NCNN_AVX2)
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_SIMULATE_ID MATCHES "MSVC"))
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_SIMULATE_ID MATCHES "MSVC" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC"))
target_compile_options(ncnn PRIVATE /arch:AVX2)
else()
target_compile_options(ncnn PRIVATE -mfma -mf16c -mavx2)


+ 1
- 1
src/layer/x86/convolution_3x3.h View File

@@ -1079,7 +1079,7 @@ static void conv3x3s1_winograd43_sse(const Mat& bottom_blob, Mat& top_blob, cons
_w5 = _mm256_fmadd_ps(_d3, _5_n, _w5);
_w5 = _mm256_add_ps(_w5, _d5);
// transpose d to d_t
#if (defined _WIN32 && !(defined __MINGW32__))
#if (defined _WIN32 && !(defined __MINGW32__) && !__clang__)
{
_t0.m256_f32[0] = _w0.m256_f32[0];
_t1.m256_f32[0] = _w0.m256_f32[1];


Loading…
Cancel
Save