FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
compiler_intel.hpp
Go to the documentation of this file.
1// FEAT3: Finite Element Analysis Toolbox, Version 3
2// Copyright (C) 2010 by Stefan Turek & the FEAT group
3// FEAT3 is released under the GNU General Public License version 3,
4// see the file 'copyright.txt' in the top level directory for details.
5
6#pragma once
7
16#if !defined(FEAT_COMPILER) && defined(__INTEL_COMPILER)
17
18// define FEAT_COMPILER_INTEL macro
19// Note that __ICC is already linear sortable
20# define FEAT_COMPILER_INTEL __INTEL_COMPILER
21
22// map version to human-readable string
23# if(__INTEL_COMPILER >= 2000)
24# define FEAT_COMPILER "Intel C/C++ compiler 20.x (or newer)"
25# elif(__INTEL_COMPILER >= 1900)
26# define FEAT_COMPILER "Intel C/C++ compiler 19.x"
27# elif(__INTEL_COMPILER >= 1800)
28# define FEAT_COMPILER "Intel C/C++ compiler 18.x"
29# elif(__INTEL_COMPILER >= 1700)
30# define FEAT_COMPILER "Intel C/C++ compiler 17.x"
31# elif(__INTEL_COMPILER >= 1600)
32# define FEAT_COMPILER "Intel C/C++ compiler 16.x"
33# elif(__INTEL_COMPILER >= 1500)
34# define FEAT_COMPILER "Intel C/C++ compiler 15.x"
35# elif(__INTEL_COMPILER >= 1400)
36# define FEAT_COMPILER "Intel C/C++ compiler 14.0"
37# elif(__INTEL_COMPILER >= 1310)
38# define FEAT_COMPILER "Intel C/C++ compiler 13.1"
39# elif(__INTEL_COMPILER >= 1300)
40# define FEAT_COMPILER "Intel C/C++ compiler 13.0"
41# elif(__INTEL_COMPILER >= 1210)
42# define FEAT_COMPILER "Intel C/C++ compiler 12.1"
43# elif(__INTEL_COMPILER >= 1200)
44# define FEAT_COMPILER "Intel C/C++ compiler 12.0"
45# elif(__INTEL_COMPILER >= 1110)
46# define FEAT_COMPILER "Intel C/C++ compiler 11.1"
47# elif(__INTEL_COMPILER >= 1100)
48# define FEAT_COMPILER "Intel C/C++ compiler 11.0"
49# elif(__INTEL_COMPILER >= 1010)
50# define FEAT_COMPILER "Intel C/C++ compiler 10.1"
51# elif(__INTEL_COMPILER >= 1000)
52# define FEAT_COMPILER "Intel C/C++ compiler 10.0"
53# else
54// too old to have a chance to support FEAT anyway
55# define FEAT_COMPILER "Intel C/C++ compiler"
56# endif
57
58# define FEAT_DISABLE_WARNINGS _Pragma("warning(push,0)") \
59 _Pragma("warning(disable:177)") \
60 _Pragma("warning(disable:2259)") \
61 _Pragma("warning(disable:1478)") \
62 _Pragma("warning(disable:1599)") \
63 _Pragma("warning(disable:1944)") \
64 _Pragma("warning(disable:3280)") \
65 _Pragma("warning(disable:858)")
66
67# define FEAT_RESTORE_WARNINGS _Pragma("warning(pop)")
68
69# define FEAT_PRAGMA_IVDEP _Pragma("ivdep")
70
71
72// disable warning #2196 (routine is both "inline" and "noinline") unconditionally
74_Pragma("warning(disable:2196)")
75
76// define the noinline specifier
77#define NOINLINE __attribute__((noinline))
78
79#define FORCE_INLINE inline __forceinline
80
81#endif // !defined(FEAT_COMPILER) && defined(__INTEL_COMPILER)