diff options
-rw-r--r-- | src/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/vlib/node.h | 2 | ||||
-rw-r--r-- | src/vnet/interface.h | 2 | ||||
-rw-r--r-- | src/vppinfra/cpu.h | 29 |
4 files changed, 14 insertions, 21 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index eb598784cb8..7dfd76a960d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -76,7 +76,7 @@ endif() # release list(APPEND BUILD_TYPES "release") string(CONCAT CMAKE_C_FLAGS_RELEASE - "-O2 " + "-O3 " "-fstack-protector " "-D_FORTIFY_SOURCE=2 " "-fno-common " diff --git a/src/vlib/node.h b/src/vlib/node.h index 7194ae8a818..fd792dc3fa6 100644 --- a/src/vlib/node.h +++ b/src/vlib/node.h @@ -216,7 +216,7 @@ static __clib_unused vlib_node_registration_t __clib_unused_##x r->next_registration = node.node_fn_registrations; \ node.node_fn_registrations = r; \ } \ - uword CLIB_CPU_OPTIMIZED CLIB_MARCH_SFX (node##_fn) + uword CLIB_MARCH_SFX (node##_fn) unformat_function_t unformat_vlib_node_variant; diff --git a/src/vnet/interface.h b/src/vnet/interface.h index 9d2f2a1c81d..70f51cd5837 100644 --- a/src/vnet/interface.h +++ b/src/vnet/interface.h @@ -330,7 +330,7 @@ static __clib_unused vnet_device_class_t __clib_unused_##x r->next_registration = devclass.tx_fn_registrations; \ devclass.tx_fn_registrations = r; \ } \ - uword CLIB_CPU_OPTIMIZED CLIB_MARCH_SFX (devclass##_tx_fn) + uword CLIB_MARCH_SFX (devclass##_tx_fn) /** * Link Type: A description of the protocol of packets on the link. diff --git a/src/vppinfra/cpu.h b/src/vppinfra/cpu.h index 8d2465ba4d6..40857fb245b 100644 --- a/src/vppinfra/cpu.h +++ b/src/vppinfra/cpu.h @@ -45,12 +45,6 @@ typedef enum CLIB_MARCH_TYPE_N_VARIANTS } clib_march_variant_type_t; -#if __GNUC__ > 4 && !__clang__ && CLIB_DEBUG == 0 -#define CLIB_CPU_OPTIMIZED __attribute__ ((optimize ("O3"))) -#else -#define CLIB_CPU_OPTIMIZED -#endif - #ifdef CLIB_MARCH_VARIANT #define __CLIB_MULTIARCH_FN(a,b) a##_##b #define _CLIB_MULTIARCH_FN(a,b) __CLIB_MULTIARCH_FN(a,b) @@ -403,19 +397,18 @@ CLIB_MARCH_SFX(fn ## _march_constructor) (void) \ } \ #ifndef CLIB_MARCH_VARIANT -#define CLIB_MARCH_FN(fn, rtype, _args...) \ - static rtype CLIB_CPU_OPTIMIZED CLIB_MARCH_SFX (fn ## _ma)(_args); \ - rtype (*fn ## _selected) (_args) = & CLIB_MARCH_SFX (fn ## _ma); \ - int fn ## _selected_priority = 0; \ - static inline rtype CLIB_CPU_OPTIMIZED \ - CLIB_MARCH_SFX (fn ## _ma)(_args) +#define CLIB_MARCH_FN(fn, rtype, _args...) \ + static rtype CLIB_MARCH_SFX (fn##_ma) (_args); \ + rtype (*fn##_selected) (_args) = &CLIB_MARCH_SFX (fn##_ma); \ + int fn##_selected_priority = 0; \ + static inline rtype CLIB_MARCH_SFX (fn##_ma) (_args) #else -#define CLIB_MARCH_FN(fn, rtype, _args...) \ - static rtype CLIB_CPU_OPTIMIZED CLIB_MARCH_SFX (fn ## _ma)(_args); \ - extern rtype (*fn ## _selected) (_args); \ - extern int fn ## _selected_priority; \ - CLIB_MARCH_FN_CONSTRUCTOR (fn) \ - static rtype CLIB_CPU_OPTIMIZED CLIB_MARCH_SFX (fn ## _ma)(_args) +#define CLIB_MARCH_FN(fn, rtype, _args...) \ + static rtype CLIB_MARCH_SFX (fn##_ma) (_args); \ + extern rtype (*fn##_selected) (_args); \ + extern int fn##_selected_priority; \ + CLIB_MARCH_FN_CONSTRUCTOR (fn) \ + static rtype CLIB_MARCH_SFX (fn##_ma) (_args) #endif #define CLIB_MARCH_FN_SELECT(fn) (* fn ## _selected) |