summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2020-02-26 16:57:37 -0500
committerMarek Olšák <marek.olsak@amd.com>2020-02-27 22:53:12 -0500
commitd18d07c9d786d484a7fc05d17a17f58209f625f9 (patch)
tree064f4553b16bcadf737f7322263dcca11fecd270 /src
parent1a61a5b1d4693631a1b6fb7e83c877792dfbf33d (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.c22
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