MSL: Add more illegal identifiers.
Add most macros from the Metal standard library headers that aren't in the reserved namespace (i.e. those that don't start with `_`).
This commit is contained in:
parent
0d63e89404
commit
c4b08bd770
244
spirv_msl.cpp
244
spirv_msl.cpp
@ -4563,12 +4563,254 @@ void CompilerMSL::replace_illegal_names()
|
||||
// FIXME: MSL and GLSL are doing two different things here.
|
||||
// Agree on convention and remove this override.
|
||||
static const unordered_set<string> keywords = {
|
||||
"kernel", "vertex", "fragment", "compute", "bias",
|
||||
"kernel",
|
||||
"vertex",
|
||||
"fragment",
|
||||
"compute",
|
||||
"bias",
|
||||
"assert",
|
||||
"VARIABLE_TRACEPOINT",
|
||||
"STATIC_DATA_TRACEPOINT",
|
||||
"STATIC_DATA_TRACEPOINT_V",
|
||||
"METAL_ALIGN",
|
||||
"METAL_ASM",
|
||||
"METAL_CONST",
|
||||
"METAL_DEPRECATED",
|
||||
"METAL_ENABLE_IF",
|
||||
"METAL_FUNC",
|
||||
"METAL_INTERNAL",
|
||||
"METAL_NON_NULL_RETURN",
|
||||
"METAL_NORETURN",
|
||||
"METAL_NOTHROW",
|
||||
"METAL_PURE",
|
||||
"METAL_UNAVAILABLE",
|
||||
"METAL_IMPLICIT",
|
||||
"METAL_EXPLICIT",
|
||||
"METAL_CONST_ARG",
|
||||
"METAL_ARG_UNIFORM",
|
||||
"METAL_ZERO_ARG",
|
||||
"METAL_VALID_LOD_ARG",
|
||||
"METAL_VALID_LEVEL_ARG",
|
||||
"METAL_VALID_STORE_ORDER",
|
||||
"METAL_VALID_LOAD_ORDER",
|
||||
"METAL_VALID_COMPARE_EXCHANGE_FAILURE_ORDER",
|
||||
"METAL_COMPATIBLE_COMPARE_EXCHANGE_ORDERS",
|
||||
"METAL_VALID_RENDER_TARGET",
|
||||
"is_function_constant_defined",
|
||||
"CHAR_BIT",
|
||||
"SCHAR_MAX",
|
||||
"SCHAR_MIN",
|
||||
"UCHAR_MAX",
|
||||
"CHAR_MAX",
|
||||
"CHAR_MIN",
|
||||
"USHRT_MAX",
|
||||
"SHRT_MAX",
|
||||
"SHRT_MIN",
|
||||
"UINT_MAX",
|
||||
"INT_MAX",
|
||||
"INT_MIN",
|
||||
"FLT_DIG",
|
||||
"FLT_MANT_DIG",
|
||||
"FLT_MAX_10_EXP",
|
||||
"FLT_MAX_EXP",
|
||||
"FLT_MIN_10_EXP",
|
||||
"FLT_MIN_EXP",
|
||||
"FLT_RADIX",
|
||||
"FLT_MAX",
|
||||
"FLT_MIN",
|
||||
"FLT_EPSILON",
|
||||
"FP_ILOGB0",
|
||||
"FP_ILOGBNAN",
|
||||
"MAXFLOAT",
|
||||
"HUGE_VALF",
|
||||
"INFINITY",
|
||||
"NAN",
|
||||
"M_E_F",
|
||||
"M_LOG2E_F",
|
||||
"M_LOG10E_F",
|
||||
"M_LN2_F",
|
||||
"M_LN10_F",
|
||||
"M_PI_F",
|
||||
"M_PI_2_F",
|
||||
"M_PI_4_F",
|
||||
"M_1_PI_F",
|
||||
"M_2_PI_F",
|
||||
"M_2_SQRTPI_F",
|
||||
"M_SQRT2_F",
|
||||
"M_SQRT1_2_F",
|
||||
"HALF_DIG",
|
||||
"HALF_MANT_DIG",
|
||||
"HALF_MAX_10_EXP",
|
||||
"HALF_MAX_EXP",
|
||||
"HALF_MIN_10_EXP",
|
||||
"HALF_MIN_EXP",
|
||||
"HALF_RADIX",
|
||||
"HALF_MAX",
|
||||
"HALF_MIN",
|
||||
"HALF_EPSILON",
|
||||
"MAXHALF",
|
||||
"HUGE_VALH",
|
||||
"M_E_H",
|
||||
"M_LOG2E_H",
|
||||
"M_LOG10E_H",
|
||||
"M_LN2_H",
|
||||
"M_LN10_H",
|
||||
"M_PI_H",
|
||||
"M_PI_2_H",
|
||||
"M_PI_4_H",
|
||||
"M_1_PI_H",
|
||||
"M_2_PI_H",
|
||||
"M_2_SQRTPI_H",
|
||||
"M_SQRT2_H",
|
||||
"M_SQRT1_2_H",
|
||||
"DBL_DIG",
|
||||
"DBL_MANT_DIG",
|
||||
"DBL_MAX_10_EXP",
|
||||
"DBL_MAX_EXP",
|
||||
"DBL_MIN_10_EXP",
|
||||
"DBL_MIN_EXP",
|
||||
"DBL_RADIX",
|
||||
"DBL_MAX",
|
||||
"DBL_MIN",
|
||||
"DBL_EPSILON",
|
||||
"HUGE_VAL",
|
||||
"M_E",
|
||||
"M_LOG2E",
|
||||
"M_LOG10E",
|
||||
"M_LN2",
|
||||
"M_LN10",
|
||||
"M_PI",
|
||||
"M_PI_2",
|
||||
"M_PI_4",
|
||||
"M_1_PI",
|
||||
"M_2_PI",
|
||||
"M_2_SQRTPI",
|
||||
"M_SQRT2",
|
||||
"M_SQRT1_2",
|
||||
};
|
||||
|
||||
static const unordered_set<string> illegal_func_names = {
|
||||
"main",
|
||||
"saturate",
|
||||
"assert",
|
||||
"VARIABLE_TRACEPOINT",
|
||||
"STATIC_DATA_TRACEPOINT",
|
||||
"STATIC_DATA_TRACEPOINT_V",
|
||||
"METAL_ALIGN",
|
||||
"METAL_ASM",
|
||||
"METAL_CONST",
|
||||
"METAL_DEPRECATED",
|
||||
"METAL_ENABLE_IF",
|
||||
"METAL_FUNC",
|
||||
"METAL_INTERNAL",
|
||||
"METAL_NON_NULL_RETURN",
|
||||
"METAL_NORETURN",
|
||||
"METAL_NOTHROW",
|
||||
"METAL_PURE",
|
||||
"METAL_UNAVAILABLE",
|
||||
"METAL_IMPLICIT",
|
||||
"METAL_EXPLICIT",
|
||||
"METAL_CONST_ARG",
|
||||
"METAL_ARG_UNIFORM",
|
||||
"METAL_ZERO_ARG",
|
||||
"METAL_VALID_LOD_ARG",
|
||||
"METAL_VALID_LEVEL_ARG",
|
||||
"METAL_VALID_STORE_ORDER",
|
||||
"METAL_VALID_LOAD_ORDER",
|
||||
"METAL_VALID_COMPARE_EXCHANGE_FAILURE_ORDER",
|
||||
"METAL_COMPATIBLE_COMPARE_EXCHANGE_ORDERS",
|
||||
"METAL_VALID_RENDER_TARGET",
|
||||
"is_function_constant_defined",
|
||||
"CHAR_BIT",
|
||||
"SCHAR_MAX",
|
||||
"SCHAR_MIN",
|
||||
"UCHAR_MAX",
|
||||
"CHAR_MAX",
|
||||
"CHAR_MIN",
|
||||
"USHRT_MAX",
|
||||
"SHRT_MAX",
|
||||
"SHRT_MIN",
|
||||
"UINT_MAX",
|
||||
"INT_MAX",
|
||||
"INT_MIN",
|
||||
"FLT_DIG",
|
||||
"FLT_MANT_DIG",
|
||||
"FLT_MAX_10_EXP",
|
||||
"FLT_MAX_EXP",
|
||||
"FLT_MIN_10_EXP",
|
||||
"FLT_MIN_EXP",
|
||||
"FLT_RADIX",
|
||||
"FLT_MAX",
|
||||
"FLT_MIN",
|
||||
"FLT_EPSILON",
|
||||
"FP_ILOGB0",
|
||||
"FP_ILOGBNAN",
|
||||
"MAXFLOAT",
|
||||
"HUGE_VALF",
|
||||
"INFINITY",
|
||||
"NAN",
|
||||
"M_E_F",
|
||||
"M_LOG2E_F",
|
||||
"M_LOG10E_F",
|
||||
"M_LN2_F",
|
||||
"M_LN10_F",
|
||||
"M_PI_F",
|
||||
"M_PI_2_F",
|
||||
"M_PI_4_F",
|
||||
"M_1_PI_F",
|
||||
"M_2_PI_F",
|
||||
"M_2_SQRTPI_F",
|
||||
"M_SQRT2_F",
|
||||
"M_SQRT1_2_F",
|
||||
"HALF_DIG",
|
||||
"HALF_MANT_DIG",
|
||||
"HALF_MAX_10_EXP",
|
||||
"HALF_MAX_EXP",
|
||||
"HALF_MIN_10_EXP",
|
||||
"HALF_MIN_EXP",
|
||||
"HALF_RADIX",
|
||||
"HALF_MAX",
|
||||
"HALF_MIN",
|
||||
"HALF_EPSILON",
|
||||
"MAXHALF",
|
||||
"HUGE_VALH",
|
||||
"M_E_H",
|
||||
"M_LOG2E_H",
|
||||
"M_LOG10E_H",
|
||||
"M_LN2_H",
|
||||
"M_LN10_H",
|
||||
"M_PI_H",
|
||||
"M_PI_2_H",
|
||||
"M_PI_4_H",
|
||||
"M_1_PI_H",
|
||||
"M_2_PI_H",
|
||||
"M_2_SQRTPI_H",
|
||||
"M_SQRT2_H",
|
||||
"M_SQRT1_2_H",
|
||||
"DBL_DIG",
|
||||
"DBL_MANT_DIG",
|
||||
"DBL_MAX_10_EXP",
|
||||
"DBL_MAX_EXP",
|
||||
"DBL_MIN_10_EXP",
|
||||
"DBL_MIN_EXP",
|
||||
"DBL_RADIX",
|
||||
"DBL_MAX",
|
||||
"DBL_MIN",
|
||||
"DBL_EPSILON",
|
||||
"HUGE_VAL",
|
||||
"M_E",
|
||||
"M_LOG2E",
|
||||
"M_LOG10E",
|
||||
"M_LN2",
|
||||
"M_LN10",
|
||||
"M_PI",
|
||||
"M_PI_2",
|
||||
"M_PI_4",
|
||||
"M_1_PI",
|
||||
"M_2_PI",
|
||||
"M_2_SQRTPI",
|
||||
"M_SQRT2",
|
||||
"M_SQRT1_2",
|
||||
};
|
||||
|
||||
ir.for_each_typed_id<SPIRVariable>([&](uint32_t self, SPIRVariable &) {
|
||||
|
Loading…
Reference in New Issue
Block a user