diff options
author | Marek Olšák <marek.olsak@amd.com> | 2020-02-26 16:57:37 -0500 |
---|---|---|
committer | Marek Olšák <marek.olsak@amd.com> | 2020-02-27 22:53:12 -0500 |
commit | d18d07c9d786d484a7fc05d17a17f58209f625f9 (patch) | |
tree | 064f4553b16bcadf737f7322263dcca11fecd270 /src | |
parent | 1a61a5b1d4693631a1b6fb7e83c877792dfbf33d (diff) |
nir: replace GCC unroll with an option that works on GCC < 8.0
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3970>
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/nir/nir_range_analysis.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/compiler/nir/nir_range_analysis.c b/src/compiler/nir/nir_range_analysis.c index fdce434054c..548123be4ce 100644 --- a/src/compiler/nir/nir_range_analysis.c +++ b/src/compiler/nir/nir_range_analysis.c @@ -220,17 +220,23 @@ analyze_constant(const struct nir_alu_instr *instr, unsigned src, #if defined(__clang__) -/* clang wants _Pragma("unroll X") */ -#define pragma_unroll_5 _Pragma("unroll 5") -#define pragma_unroll_7 _Pragma("unroll 7") + /* clang wants _Pragma("unroll X") */ + #define pragma_unroll_5 _Pragma("unroll 5") + #define pragma_unroll_7 _Pragma("unroll 7") /* gcc wants _Pragma("GCC unroll X") */ #elif defined(__GNUC__) -#define pragma_unroll_5 _Pragma("GCC unroll 5") -#define pragma_unroll_7 _Pragma("GCC unroll 7") + #if __GNUC__ >= 8 + #define pragma_unroll_5 _Pragma("GCC unroll 5") + #define pragma_unroll_7 _Pragma("GCC unroll 7") + #else + #pragma GCC optimize ("unroll-loops") + #define pragma_unroll_5 + #define pragma_unroll_7 + #endif #else -/* MSVC doesn't have C99's _Pragma() */ -#define pragma_unroll_5 -#define pragma_unroll_7 + /* MSVC doesn't have C99's _Pragma() */ + #define pragma_unroll_5 + #define pragma_unroll_7 #endif |