mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-14 12:46:00 +08:00
Add possibility to overwrite EIGEN_STRONG_INLINE.
This commit is contained in:
parent
9c9e90f6db
commit
6d6e5fcd43
@ -487,11 +487,13 @@
|
|||||||
// EIGEN_STRONG_INLINE is a stronger version of the inline, using __forceinline on MSVC,
|
// EIGEN_STRONG_INLINE is a stronger version of the inline, using __forceinline on MSVC,
|
||||||
// but it still doesn't use GCC's always_inline. This is useful in (common) situations where MSVC needs forceinline
|
// but it still doesn't use GCC's always_inline. This is useful in (common) situations where MSVC needs forceinline
|
||||||
// but GCC is still doing fine with just inline.
|
// but GCC is still doing fine with just inline.
|
||||||
|
#ifndef EIGEN_STRONG_INLINE
|
||||||
#if EIGEN_COMP_MSVC || EIGEN_COMP_ICC
|
#if EIGEN_COMP_MSVC || EIGEN_COMP_ICC
|
||||||
#define EIGEN_STRONG_INLINE __forceinline
|
#define EIGEN_STRONG_INLINE __forceinline
|
||||||
#else
|
#else
|
||||||
#define EIGEN_STRONG_INLINE inline
|
#define EIGEN_STRONG_INLINE inline
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
// EIGEN_ALWAYS_INLINE is the stronget, it has the effect of making the function inline and adding every possible
|
// EIGEN_ALWAYS_INLINE is the stronget, it has the effect of making the function inline and adding every possible
|
||||||
// attribute to maximize inlining. This should only be used when really necessary: in particular,
|
// attribute to maximize inlining. This should only be used when really necessary: in particular,
|
||||||
|
@ -120,6 +120,10 @@ run time. However, these assertions do cost time and can thus be turned off.
|
|||||||
- \b \c EIGEN_STACK_ALLOCATION_LIMIT - defines the maximum bytes for a buffer to be allocated on the stack. For internal
|
- \b \c EIGEN_STACK_ALLOCATION_LIMIT - defines the maximum bytes for a buffer to be allocated on the stack. For internal
|
||||||
temporary buffers, dynamic memory allocation is employed as a fall back. For fixed-size matrices or arrays, exceeding
|
temporary buffers, dynamic memory allocation is employed as a fall back. For fixed-size matrices or arrays, exceeding
|
||||||
this threshold raises a compile time assertion. Use 0 to set no limit. Default is 128 KB.
|
this threshold raises a compile time assertion. Use 0 to set no limit. Default is 128 KB.
|
||||||
|
- \b \c EIGEN_STRONG_INLINE - This macro is used to qualify critical functions and methods that we expect the compiler to inline.
|
||||||
|
By default it is defined to \c __forceinline for MSVC and ICC, and to \c inline for other compilers. A tipical usage is to
|
||||||
|
define it to \c inline for MSVC users wanting faster compilation times, at the risk of performance degradations in some rare
|
||||||
|
cases for which MSVC inliner fails to do a good job.
|
||||||
|
|
||||||
|
|
||||||
- \c EIGEN_DONT_ALIGN - Deprecated, it is a synonym for \c EIGEN_MAX_ALIGN_BYTES=0. It disables alignment completely. %Eigen will not try to align its objects and does not expect that any objects passed to it are aligned. This will turn off vectorization if \b EIGEN_UNALIGNED_VECTORIZE=1. Not defined by default.
|
- \c EIGEN_DONT_ALIGN - Deprecated, it is a synonym for \c EIGEN_MAX_ALIGN_BYTES=0. It disables alignment completely. %Eigen will not try to align its objects and does not expect that any objects passed to it are aligned. This will turn off vectorization if \b EIGEN_UNALIGNED_VECTORIZE=1. Not defined by default.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user