From 508dc3a95de50de4a4d07d0a72a18e40d55b0e2e Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Tue, 29 Aug 2023 06:05:26 +0800 Subject: Allow bitwise or expressions and numeric literals in spirv_asm blocks (#3157) * Add -spirv-core-grammar option to load alternate spirv defs Also embed a version to use by default * Use perfect hash for spv op lookup * Neaten perfect hash embedding * Refactor spirv grammar lookup in preperation for more kinds of lookups * Load spirv capability list from spec * Add all SPIR-V enums to lookup table * regenerate vs projects * appease msvc * Use string slices for spir-v core grammar lookups * wiggle * comment * Add OpInfo for spv ops * regenerate vs projects * Embed op names * Add min/max operand counts and enum categories to spirv info * neaten * Operand kinds for spirv ops * Store and embed all information relating to spirv enums and qualifiers * Use SPIR-V spec to position instructions in spirv_asm blocks * Neaten spir-v info embedding * Neaten perfect hash embedding * Add assignment syntax to spirv_asm snippets * Better errors for spirv_asm parser * Add warning for too many operands in spirv asm * squash warnings * neaten * test wiggle * Lookup enums for spirv * Put OpCapability and OpExtension in the correct place for spirv_asm blocks * Tests for OpCapability and OpExtension * ci wiggle * Add expected failure * Allow raising immediate values to constant ids where necessary in spirv_asm blocks * Allow bitwise or expressions and numeric literals in spirv_asm blocks * test numeric literals * Fix memory issues. * fix. --------- Co-authored-by: Yong He --- slang.sln | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'slang.sln') diff --git a/slang.sln b/slang.sln index 8f682f3d3..51d1691f1 100644 --- a/slang.sln +++ b/slang.sln @@ -25,6 +25,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slang-generate", "build\vis EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slang-lookup-generator", "build\visual-studio\slang-lookup-generator\slang-lookup-generator.vcxproj", "{3242BAA7-FC4C-4F76-83BC-E4403099DC1D}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slang-spirv-embed-generator", "build\visual-studio\slang-spirv-embed-generator\slang-spirv-embed-generator.vcxproj", "{8DA787CC-0E04-450F-8E29-88EAC5EBE9BB}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slangd", "build\visual-studio\slangd\slangd.vcxproj", "{B2D63B45-92B0-40F7-B242-CCA4DFD64341}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-process", "build\visual-studio\test-process\test-process.vcxproj", "{BE412850-4BB9-429A-877C-BFBC4B34186C}" @@ -68,6 +70,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generate-lookup-tables", "b {3242BAA7-FC4C-4F76-83BC-E4403099DC1D} = {3242BAA7-FC4C-4F76-83BC-E4403099DC1D} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generate-spirv-embed", "build\visual-studio\generate-spirv-embed\generate-spirv-embed.vcxproj", "{FB5DA174-E7EC-2A3E-900B-3F397C793BE4}" + ProjectSection(ProjectDependencies) = postProject + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB} = {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "run-generators", "build\visual-studio\run-generators\run-generators.vcxproj", "{E145B2B8-CD13-A6BE-B6A7-16E5A2148223}" ProjectSection(ProjectDependencies) = postProject {CA8A30D1-8FA9-4330-B7F7-84709246D8DC} = {CA8A30D1-8FA9-4330-B7F7-84709246D8DC} @@ -83,6 +90,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slang", "build\visual-studi ProjectSection(ProjectDependencies) = postProject {E145B2B8-CD13-A6BE-B6A7-16E5A2148223} = {E145B2B8-CD13-A6BE-B6A7-16E5A2148223} {5FFA0764-4BF4-30B6-3461-C7C620FA9622} = {5FFA0764-4BF4-30B6-3461-C7C620FA9622} + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4} = {FB5DA174-E7EC-2A3E-900B-3F397C793BE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slang-rt", "build\visual-studio\slang-rt\slang-rt.vcxproj", "{DFC79D72-91DE-434C-871B-B3943B488BEB}" @@ -205,6 +213,18 @@ Global {3242BAA7-FC4C-4F76-83BC-E4403099DC1D}.Release|Win32.Build.0 = Release|Win32 {3242BAA7-FC4C-4F76-83BC-E4403099DC1D}.Release|x64.ActiveCfg = Release|x64 {3242BAA7-FC4C-4F76-83BC-E4403099DC1D}.Release|x64.Build.0 = Release|x64 + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB}.Debug|aarch64.ActiveCfg = Debug aarch64|ARM64 + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB}.Debug|aarch64.Build.0 = Debug aarch64|ARM64 + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB}.Debug|Win32.ActiveCfg = Debug|Win32 + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB}.Debug|Win32.Build.0 = Debug|Win32 + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB}.Debug|x64.ActiveCfg = Debug|x64 + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB}.Debug|x64.Build.0 = Debug|x64 + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB}.Release|aarch64.ActiveCfg = Release aarch64|ARM64 + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB}.Release|aarch64.Build.0 = Release aarch64|ARM64 + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB}.Release|Win32.ActiveCfg = Release|Win32 + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB}.Release|Win32.Build.0 = Release|Win32 + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB}.Release|x64.ActiveCfg = Release|x64 + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB}.Release|x64.Build.0 = Release|x64 {B2D63B45-92B0-40F7-B242-CCA4DFD64341}.Debug|aarch64.ActiveCfg = Debug aarch64|ARM64 {B2D63B45-92B0-40F7-B242-CCA4DFD64341}.Debug|aarch64.Build.0 = Debug aarch64|ARM64 {B2D63B45-92B0-40F7-B242-CCA4DFD64341}.Debug|Win32.ActiveCfg = Debug|Win32 @@ -421,6 +441,18 @@ Global {5FFA0764-4BF4-30B6-3461-C7C620FA9622}.Release|Win32.Build.0 = Release|Win32 {5FFA0764-4BF4-30B6-3461-C7C620FA9622}.Release|x64.ActiveCfg = Release|x64 {5FFA0764-4BF4-30B6-3461-C7C620FA9622}.Release|x64.Build.0 = Release|x64 + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4}.Debug|aarch64.ActiveCfg = Debug aarch64|ARM64 + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4}.Debug|aarch64.Build.0 = Debug aarch64|ARM64 + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4}.Debug|Win32.ActiveCfg = Debug|Win32 + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4}.Debug|Win32.Build.0 = Debug|Win32 + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4}.Debug|x64.ActiveCfg = Debug|x64 + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4}.Debug|x64.Build.0 = Debug|x64 + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4}.Release|aarch64.ActiveCfg = Release aarch64|ARM64 + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4}.Release|aarch64.Build.0 = Release aarch64|ARM64 + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4}.Release|Win32.ActiveCfg = Release|Win32 + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4}.Release|Win32.Build.0 = Release|Win32 + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4}.Release|x64.ActiveCfg = Release|x64 + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4}.Release|x64.Build.0 = Release|x64 {E145B2B8-CD13-A6BE-B6A7-16E5A2148223}.Debug|aarch64.ActiveCfg = Debug aarch64|ARM64 {E145B2B8-CD13-A6BE-B6A7-16E5A2148223}.Debug|aarch64.Build.0 = Debug aarch64|ARM64 {E145B2B8-CD13-A6BE-B6A7-16E5A2148223}.Debug|Win32.ActiveCfg = Debug|Win32 @@ -554,6 +586,7 @@ Global {7F773DD9-EB8F-2403-B43C-B49C2014B99C} = {FD47AE19-69FD-260F-F2F1-20E65EA61D13} {66174227-8541-41FC-A6DF-4764FC66F78E} = {FD47AE19-69FD-260F-F2F1-20E65EA61D13} {3242BAA7-FC4C-4F76-83BC-E4403099DC1D} = {FD47AE19-69FD-260F-F2F1-20E65EA61D13} + {8DA787CC-0E04-450F-8E29-88EAC5EBE9BB} = {FD47AE19-69FD-260F-F2F1-20E65EA61D13} {B2D63B45-92B0-40F7-B242-CCA4DFD64341} = {FD47AE19-69FD-260F-F2F1-20E65EA61D13} {BE412850-4BB9-429A-877C-BFBC4B34186C} = {FD47AE19-69FD-260F-F2F1-20E65EA61D13} {23149706-C12F-4329-B6AA-8266407C32D3} = {FD47AE19-69FD-260F-F2F1-20E65EA61D13} @@ -570,6 +603,7 @@ Global {0FC5DE93-FBEA-A8FA-E430-2EC6D0F5CDC6} = {EB5FC2C6-D72D-B6CC-C0C1-26F3AC2E9231} {3BB99068-27C9-3C39-9082-A1577CB12BD2} = {EB5FC2C6-D72D-B6CC-C0C1-26F3AC2E9231} {5FFA0764-4BF4-30B6-3461-C7C620FA9622} = {F3AB4ED5-5F37-BC99-6848-3F8ED452189A} + {FB5DA174-E7EC-2A3E-900B-3F397C793BE4} = {F3AB4ED5-5F37-BC99-6848-3F8ED452189A} {E145B2B8-CD13-A6BE-B6A7-16E5A2148223} = {F3AB4ED5-5F37-BC99-6848-3F8ED452189A} {092DAB9F-1DA5-4538-ADD7-1A8D1DBFD519} = {57B5AA5E-C340-1823-CC51-9B17385C7423} {61F7EB00-7281-4BF3-9470-7C2EA92620C3} = {57B5AA5E-C340-1823-CC51-9B17385C7423} -- cgit v1.2.3