mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-05-07 15:59:32 +03:00
update optimization on haswell
This commit is contained in:
parent
e446bc27e5
commit
2ed6e03d27
1 changed files with 16 additions and 9 deletions
|
@ -14,7 +14,7 @@ option(MI_TRACK_VALGRIND "Compile with Valgrind support (adds a small overhea
|
||||||
option(MI_TRACK_ASAN "Compile with address sanitizer support (adds a small overhead)" OFF)
|
option(MI_TRACK_ASAN "Compile with address sanitizer support (adds a small overhead)" OFF)
|
||||||
option(MI_TRACK_ETW "Compile with Windows event tracing (ETW) support (adds a small overhead)" OFF)
|
option(MI_TRACK_ETW "Compile with Windows event tracing (ETW) support (adds a small overhead)" OFF)
|
||||||
option(MI_USE_CXX "Use the C++ compiler to compile the library (instead of the C compiler)" OFF)
|
option(MI_USE_CXX "Use the C++ compiler to compile the library (instead of the C compiler)" OFF)
|
||||||
option(MI_OPT_ARCH "Only for optimized builds: turn on architecture specific optimizations (for arm64: '-march=armv8.1-a' (2016))" ON)
|
option(MI_OPT_ARCH "Only for optimized builds: turn on architecture specific optimizations (for x64: '-march=haswell;-mavx2' (2013), for arm64: '-march=armv8.1-a' (2016))" ON)
|
||||||
option(MI_SEE_ASM "Generate assembly files" OFF)
|
option(MI_SEE_ASM "Generate assembly files" OFF)
|
||||||
option(MI_OSX_INTERPOSE "Use interpose to override standard malloc on macOS" ON)
|
option(MI_OSX_INTERPOSE "Use interpose to override standard malloc on macOS" ON)
|
||||||
option(MI_OSX_ZONE "Use malloc zone to override standard malloc on macOS" ON)
|
option(MI_OSX_ZONE "Use malloc zone to override standard malloc on macOS" ON)
|
||||||
|
@ -388,21 +388,28 @@ if(CMAKE_C_COMPILER_ID MATCHES "AppleClang|Clang|GNU|Intel" AND NOT CMAKE_SYSTEM
|
||||||
list(APPEND mi_cflags -ftls-model=initial-exec)
|
list(APPEND mi_cflags -ftls-model=initial-exec)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_C_COMPILER_ID MATCHES "AppleClang|Clang|GNU|Intel")
|
||||||
if(MI_OVERRIDE)
|
if(MI_OVERRIDE)
|
||||||
list(APPEND mi_cflags -fno-builtin-malloc)
|
list(APPEND mi_cflags -fno-builtin-malloc)
|
||||||
endif()
|
endif()
|
||||||
if(MI_OPT_ARCH)
|
if(MI_OPT_ARCH)
|
||||||
if(MI_ARCH STREQUAL "arm64")
|
if(MI_ARCH STREQUAL "x64")
|
||||||
set(MI_ARCH_OPT_FLAGS "-march=armv8.1-a") # fast atomics, since ~ 2016
|
set(MI_OPT_ARCH_FLAGS "-march=haswell;-mavx2") # fast bit scan (since 2013)
|
||||||
|
elseif(MI_ARCH STREQUAL "arm64")
|
||||||
|
set(MI_OPT_ARCH_FLAGS "-march=armv8.1-a") # fast atomics (since 2016)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (MSVC AND MSVC_VERSION GREATER_EQUAL 1914)
|
if (MSVC AND MSVC_VERSION GREATER_EQUAL 1914) # vs2017+
|
||||||
list(APPEND mi_cflags /Zc:__cplusplus)
|
list(APPEND mi_cflags /Zc:__cplusplus)
|
||||||
if(MI_OPT_ARCH)
|
if(MI_OPT_ARCH)
|
||||||
if(MI_ARCH STREQUAL "arm64")
|
if(MI_ARCH STREQUAL "x64")
|
||||||
set(MI_OPT_ARCH_FLAGS "/arch:armv8.1") # fast atomics, since ~ 2016
|
set(MI_OPT_ARCH_FLAGS "/arch:AVX2") # fast bit scan (since 2013)
|
||||||
|
elseif(MI_ARCH STREQUAL "arm64")
|
||||||
|
set(MI_OPT_ARCH_FLAGS "/arch:armv8.1") # fast atomics (since 2016)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
@ -411,9 +418,9 @@ if(MINGW)
|
||||||
add_definitions(-D_WIN32_WINNT=0x600)
|
add_definitions(-D_WIN32_WINNT=0x600)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MI_ARCH_OPT_FLAGS)
|
if(MI_OPT_ARCH_FLAGS)
|
||||||
list(APPEND mi_cflags ${MI_ARCH_OPT_FLAGS})
|
list(APPEND mi_cflags ${MI_OPT_ARCH_FLAGS})
|
||||||
message(STATUS "Architecture specific optimization is enabled (with ${MI_ARCH_OPT_FLAGS}) (MI_OPT_ARCH=ON)")
|
message(STATUS "Architecture specific optimization is enabled (with ${MI_OPT_ARCH_FLAGS}) (MI_OPT_ARCH=ON)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# extra needed libraries
|
# extra needed libraries
|
||||||
|
|
Loading…
Add table
Reference in a new issue