[Mesa-dev] [PATCH] nir: no-op C99 _Pragma() with MSVC

Brian Paul brianp at vmware.com
Sat Nov 23 17:38:49 UTC 2019


On 11/22/2019 09:16 PM, Ian Romanick wrote:
> On 11/22/19 6:49 PM, Brian Paul wrote:
>> This fixes a build failure on MSVC.
>>
>> BTW, it looks like clang supports _Pragma() but I don't know if it
>> understands the "gcc unroll N" directive.
> 
> It probably doesn't, but that should be okay.  This just exists to speed
> up the debug builds in the pre-merge CI.
> 
> Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
> 


BTW, With gcc 5.4.0, there's a lot of warnings about the pragma not 
being understood:

../src/compiler/nir/nir_range_analysis.c:268:0: warning: ignoring 
#pragma GCC unroll [-Wunknown-pragmas]
     ASSERT_TABLE_IS_COMMUTATIVE(union_table);
  ^
../src/compiler/nir/nir_range_analysis.c:268:0: warning: ignoring 
#pragma GCC unroll [-Wunknown-pragmas]
../src/compiler/nir/nir_range_analysis.c:269:0: warning: ignoring 
#pragma GCC unroll [-Wunknown-pragmas]

I'd have to dig to see what version of gcc added that to add more 
preprocessor tests to silence it.

-Brian


>> Signed-off-by: Brian Paul <brianp at vmware.com>
>> ---
>>   src/compiler/nir/nir_range_analysis.c | 7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/src/compiler/nir/nir_range_analysis.c b/src/compiler/nir/nir_range_analysis.c
>> index df5d4da..d38bcc0 100644
>> --- a/src/compiler/nir/nir_range_analysis.c
>> +++ b/src/compiler/nir/nir_range_analysis.c
>> @@ -218,6 +218,13 @@ analyze_constant(const struct nir_alu_instr *instr, unsigned src,
>>    */
>>   #define _______ unknown
>>   
>> +
>> +/* MSVC doesn't have C99's _Pragma() */
>> +#ifdef _MSC_VER
>> +#define _Pragma(x)
>> +#endif
>> +
>> +
>>   #ifndef NDEBUG
>>   #define ASSERT_TABLE_IS_COMMUTATIVE(t)                        \
>>      do {                                                       \
>>
> 



More information about the mesa-dev mailing list