Lines 14-29
Link Here
|
14 |
// first thing Eigen does: stop the compiler from committing suicide |
14 |
// first thing Eigen does: stop the compiler from committing suicide |
15 |
#include "src/Core/util/DisableStupidWarnings.h" |
15 |
#include "src/Core/util/DisableStupidWarnings.h" |
16 |
|
16 |
|
17 |
// then include this file where all our macros are defined. It's really important to do it first because |
17 |
// then include this file where all our macros are defined. It's really important to do it first because |
18 |
// it's where we do all the alignment settings (platform detection and honoring the user's will if he |
18 |
// it's where we do all the alignment settings (platform detection and honoring the user's will if he |
19 |
// defined e.g. EIGEN_DONT_ALIGN) so it needs to be done before we do anything with vectorization. |
19 |
// defined e.g. EIGEN_DONT_ALIGN) so it needs to be done before we do anything with vectorization. |
20 |
#include "src/Core/util/Macros.h" |
20 |
#include "src/Core/util/Macros.h" |
21 |
|
21 |
|
|
|
22 |
// Disable the ipa-cp-clone optimization flag with MinGW 6.x or newer (enabled by default with -O3) |
23 |
// See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556 for details. |
24 |
#if defined(__MINGW32__) && EIGEN_GNUC_AT_LEAST(4,6) |
25 |
#pragma GCC optimize ("-fno-ipa-cp-clone") |
26 |
#endif |
27 |
|
22 |
#include <complex> |
28 |
#include <complex> |
23 |
|
29 |
|
24 |
// this include file manages BLAS and MKL related macros |
30 |
// this include file manages BLAS and MKL related macros |
25 |
// and inclusion of their respective header files |
31 |
// and inclusion of their respective header files |
26 |
#include "src/Core/util/MKL_support.h" |
32 |
#include "src/Core/util/MKL_support.h" |
27 |
|
33 |
|
28 |
// if alignment is disabled, then disable vectorization. Note: EIGEN_ALIGN is the proper check, it takes into |
34 |
// if alignment is disabled, then disable vectorization. Note: EIGEN_ALIGN is the proper check, it takes into |
29 |
// account both the user's will (EIGEN_DONT_ALIGN) and our own platform checks |
35 |
// account both the user's will (EIGEN_DONT_ALIGN) and our own platform checks |