From d38cb86e9e9c7249d36027e7f850cb5e86f6afc5 Mon Sep 17 00:00:00 2001 From: Giovanni Bajo Date: Thu, 22 Sep 2022 14:58:25 +0200 Subject: [PATCH 01/72] Update SPIRV-Cross to latest version. MSL: Handle descriptor aliasing of raw buffer descriptors. MSL: Do not attempt to alias push constants. MSL: Report unsupported 64-bit atomics. MSL: Add more keywords to reserved set. --- ExternalRevisions/SPIRV-Cross_repo_revision | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision index 2e77e6f04..cc526767b 100644 --- a/ExternalRevisions/SPIRV-Cross_repo_revision +++ b/ExternalRevisions/SPIRV-Cross_repo_revision @@ -1 +1 @@ -f6ca6178251c3c886d99781c5437df919fc21734 +81ba8f78f6646e5635129bd738f25bb3f43bbdb9 From b0e433ad117490bef5ff28b133bfb1b4834a2567 Mon Sep 17 00:00:00 2001 From: Giovanni Bajo Date: Fri, 23 Sep 2022 11:30:22 +0200 Subject: [PATCH 02/72] Makefile: forward to xcode any variable declared on the command line Makefile currently special-case MVK_HIDE_VULKAN_SYMBOLS as the only variable that can be customised on the command line. There are many others that are useful though, such as MVK_LOG_*. This commit makes the Makefile more generic and allows to forward to xcode whatever variable was declared on the command line. --- Makefile | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/Makefile b/Makefile index 69f1214a2..c42affcf9 100644 --- a/Makefile +++ b/Makefile @@ -14,12 +14,11 @@ else OUTPUT_FMT_CMD = -quiet endif -# Use 'make MVK_HIDE_VULKAN_SYMBOLS=1' (or set it as env var) to hide Vulkan API symbols -# in the resulting MoltenVK library, to avoid library linking conflicts when bound to a -# Vulkan Loader that also exports identical symbols. -ifndef MVK_HIDE_VULKAN_SYMBOLS - MVK_HIDE_VULKAN_SYMBOLS=0 -endif +# Collect all variables defined on the command-line (eg: MVK_HIDE_VULKAN_SYMBOLS=1) +MAKEARGS := $(strip \ + $(foreach v,$(.VARIABLES),\ + $(if $(filter command\ line,$(origin $(v))),\ + $(v)=$(value $(v)) ,))) # Specify individually (not as dependencies) so the sub-targets don't run in parallel .PHONY: all @@ -42,51 +41,51 @@ all-debug: .PHONY: macos macos: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" $(MAKEARGS) $(OUTPUT_FMT_CMD) .PHONY: macos-debug macos-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" -configuration "Debug" MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" -configuration "Debug" $(MAKEARGS) $(OUTPUT_FMT_CMD) .PHONY: ios ios: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS" MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS" $(MAKEARGS) $(OUTPUT_FMT_CMD) .PHONY: ios-debug ios-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS" -configuration "Debug" MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS" -configuration "Debug" $(MAKEARGS) $(OUTPUT_FMT_CMD) .PHONY: iossim iossim: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS Simulator" MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS Simulator" $(MAKEARGS) $(OUTPUT_FMT_CMD) .PHONY: iossim-debug iossim-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS Simulator" -configuration "Debug" MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS Simulator" -configuration "Debug" $(MAKEARGS) $(OUTPUT_FMT_CMD) .PHONY: maccat maccat: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=macOS,variant=Mac Catalyst" MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=macOS,variant=Mac Catalyst" $(MAKEARGS) $(OUTPUT_FMT_CMD) .PHONY: maccat-debug maccat-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=macOS,variant=Mac Catalyst" -configuration "Debug" MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=macOS,variant=Mac Catalyst" -configuration "Debug" $(MAKEARGS) $(OUTPUT_FMT_CMD) .PHONY: tvos tvos: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS" MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS" $(MAKEARGS) $(OUTPUT_FMT_CMD) .PHONY: tvos-debug tvos-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS" -configuration "Debug" MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS" -configuration "Debug" $(MAKEARGS) $(OUTPUT_FMT_CMD) .PHONY: tvossim tvossim: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS Simulator" MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS Simulator" $(MAKEARGS) $(OUTPUT_FMT_CMD) .PHONY: tvossim-debug tvossim-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS Simulator" -configuration "Debug" MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS Simulator" -configuration "Debug" $(MAKEARGS) $(OUTPUT_FMT_CMD) .PHONY: clean clean: From 31a77834f1318107a35bd4db0c1f63a2b86ff071 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Fri, 23 Sep 2022 11:43:32 -0400 Subject: [PATCH 03/72] Advertise support for extension VK_KHR_spirv_1_4. - Advertise support for extension VK_KHR_spirv_1_4. - MoltenVKShaderConverter automatically map bindings when converting GLSL. - MoltenVKShaderConverter improvements to diagnostic logging. - Update Whats_New.md document. --- Docs/MoltenVK_Runtime_UserGuide.md | 1 + Docs/Whats_New.md | 3 +++ MoltenVK/MoltenVK/Layers/MVKExtensions.def | 1 + .../MoltenVKShaderConverter.xcscheme | 2 +- .../GLSLToSPIRVConverter.cpp | 1 + .../MoltenVKShaderConverter/SPIRVSupport.cpp | 22 ++++++++++++++----- 6 files changed, 23 insertions(+), 7 deletions(-) diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index 2dbb67dc4..bcc42c77e 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -292,6 +292,7 @@ In addition to core *Vulkan* functionality, **MoltenVK** also supports the foll - `VK_KHR_shader_float_controls` - `VK_KHR_shader_float16_int8` - `VK_KHR_shader_subgroup_extended_types` *(requires Metal 2.1 on Mac or Metal 2.2 and Apple family 4 on iOS)* +- `VK_KHR_spirv_1_4` - `VK_KHR_storage_buffer_storage_class` - `VK_KHR_surface` - `VK_KHR_swapchain` diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 1fca6740f..578c77559 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -20,6 +20,7 @@ Released TBD - Add support for extensions: - `VK_KHR_shader_float_controls` + - `VK_KHR_spirv_1_4` - Vulkan semaphore functional improvements: - Replace use of `MTLFence` with an option to limit to a single Vulkan queue and use Metal's implicit submisison order guarantees. - Support option to force use of `MTLEvents` for Vulkan semaphores on NVIDIA and Rosetta2. @@ -29,7 +30,9 @@ Released TBD is now an enum field. The use of Metal argument buffers is still disabled by default (`MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS_NEVER`). - Fix occassional crash from retention of `MVKSwapchain` for future drawable presentations. - Fix undefined reference to `vkGetBufferDeviceAddressEXT` when building with `MVK_HIDE_VULKAN_SYMBOLS=1`. +- Update `Makefile` to forward any build setting declared on the command line to Xcode. - Add `MVK_USE_CEREAL` build setting to avoid use of Cereal external library (for pipeline caching). +- `MoltenVKShaderConverter` tool automatically map bindings when converting _GLSL_. - Update `VK_MVK_MOLTENVK_SPEC_VERSION` to version `36`. diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.def b/MoltenVK/MoltenVK/Layers/MVKExtensions.def index 0e78c86c1..d31653f98 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.def +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.def @@ -81,6 +81,7 @@ MVK_EXTENSION(KHR_shader_draw_parameters, KHR_SHADER_DRAW_PARAMETERS, MVK_EXTENSION(KHR_shader_float_controls, KHR_SHADER_FLOAT_CONTROLS, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_shader_float16_int8, KHR_SHADER_FLOAT16_INT8, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_shader_subgroup_extended_types, KHR_SHADER_SUBGROUP_EXTENDED_TYPES, DEVICE, 10.14, 13.0) +MVK_EXTENSION(KHR_spirv_1_4, KHR_SPIRV_1_4, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_storage_buffer_storage_class, KHR_STORAGE_BUFFER_STORAGE_CLASS, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_surface, KHR_SURFACE, INSTANCE, 10.11, 8.0) MVK_EXTENSION(KHR_swapchain, KHR_SWAPCHAIN, DEVICE, 10.11, 8.0) diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/xcshareddata/xcschemes/MoltenVKShaderConverter.xcscheme b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/xcshareddata/xcschemes/MoltenVKShaderConverter.xcscheme index fb864b431..e8224a856 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/xcshareddata/xcschemes/MoltenVKShaderConverter.xcscheme +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/xcshareddata/xcschemes/MoltenVKShaderConverter.xcscheme @@ -97,7 +97,7 @@ isEnabled = "NO"> setStrings(glslStrings, 1); + glslShaders.back()->setAutoMapBindings(true); if (glslShaders.back()->parse(&glslCompilerResources, 100, false, messages)) { if (shouldLogGLSL) { logMsg(glslShaders.back()->getInfoLog()); diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.cpp b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.cpp index a421e2348..f5f177000 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.cpp +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.cpp @@ -20,6 +20,7 @@ #include "MVKStrings.h" #include #include +#include #import @@ -97,16 +98,25 @@ void mvk::logSPIRV(vector& spirv, string& spvLog) { uint32_t options = (SPV_BINARY_TO_TEXT_OPTION_INDENT); spv_text text; spv_diagnostic diagnostic = nullptr; - spv_context context = spvContextCreate(SPV_ENV_VULKAN_1_0); + spv_context context = spvContextCreate(SPV_ENV_VULKAN_1_2); spv_result_t error = spvBinaryToText(context, spirv.data(), spirv.size(), options, &text, &diagnostic); spvContextDestroy(context); - if (error) { - spvDiagnosticPrint(diagnostic); + if (diagnostic) { + // Cribbed from spvDiagnosticPrint() + stringstream diagMsgOut; + diagMsgOut << "\nSPIR-V error (" << error << ") at "; + if (diagnostic->isTextSource) { + diagMsgOut << "line: " << diagnostic->position.line + 1 << " col: " << diagnostic->position.column + 1 << ": "; + } else { + diagMsgOut << "index: " << diagnostic->position.index << ": "; + } + diagMsgOut << diagnostic->error << "\n"; + spvLog.append(diagMsgOut.str()); spvDiagnosticDestroy(diagnostic); - return; + } else { + spvLog.append(text->str, text->length); + spvTextDestroy(text); } - spvLog.append(text->str, text->length); - spvTextDestroy(text); } #endif From 293e005ac58ceaa37af2e58fd3973a16d606bdce Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Fri, 23 Sep 2022 13:22:53 -0400 Subject: [PATCH 04/72] GitHub CI use macos-11 to build using Xcode 11.7. GitHub CI has deprecated and removed support for the macos-10.15 runner image. --- .github/workflows/CI.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9ad882562..c67b01bb1 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -21,14 +21,14 @@ jobs: upload_artifacts: [ true ] # additional specific configurations include: - # "Legacy" Xcode 11.7 & 12.5.1 macOS builds - - xcode: "11.7" + # "Legacy" Xcode 12.5.1 & 11.7 macOS builds + - xcode: "12.5.1" platform: "macos" - os: "macos-10.15" + os: "macos-11" upload_artifacts: false - - xcode: "12.5.1" + - xcode: "11.7" platform: "macos" - os: "macos-11" + os: "macos-11" upload_artifacts: false fail-fast: false From 6eaa0351fafd238bc0bb023556e9bb3e1d859e83 Mon Sep 17 00:00:00 2001 From: sean Date: Thu, 22 Sep 2022 18:18:09 +0200 Subject: [PATCH 05/72] Add Vulkan 1.3 command stubs --- MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm | 49 ++++++++++++ MoltenVK/MoltenVK/Vulkan/vulkan.mm | 84 ++++++++++++++++----- 2 files changed, 116 insertions(+), 17 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm index 2f4c85ff9..ecb682564 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm @@ -403,8 +403,10 @@ #define ADD_DVC_ENTRY_POINT(func) ADD_ENTRY_POINT(func, VK_API_VERSION_1_0, nullptr, nullptr, true) #define ADD_INST_1_1_ENTRY_POINT(func) ADD_ENTRY_POINT(func, VK_API_VERSION_1_1, nullptr, nullptr, false) +#define ADD_INST_1_3_ENTRY_POINT(func) ADD_ENTRY_POINT(func, VK_API_VERSION_1_3, nullptr, nullptr, false) #define ADD_DVC_1_1_ENTRY_POINT(func) ADD_ENTRY_POINT(func, VK_API_VERSION_1_1, nullptr, nullptr, true) #define ADD_DVC_1_2_ENTRY_POINT(func) ADD_ENTRY_POINT(func, VK_API_VERSION_1_2, nullptr, nullptr, true) +#define ADD_DVC_1_3_ENTRY_POINT(func) ADD_ENTRY_POINT(func, VK_API_VERSION_1_3, nullptr, nullptr, true) // Adds both the 1.1 function and the promoted extension function. #define ADD_INST_1_1_PROMOTED_ENTRY_POINT(func, EXT) \ @@ -420,6 +422,14 @@ ADD_DVC_1_2_ENTRY_POINT(func); \ ADD_ENTRY_POINT_MAP(func##suffix, func, 0, VK_##EXT##_EXTENSION_NAME, nullptr, true) +#define ADD_INST_1_3_PROMOTED_ENTRY_POINT(func, EXT) \ + ADD_INST_1_3_ENTRY_POINT(func); \ + ADD_ENTRY_POINT_MAP(func##KHR, func, 0, VK_##EXT##_EXTENSION_NAME, nullptr, false) + +#define ADD_DVC_1_3_PROMOTED_ENTRY_POINT(func, suffix, EXT) \ + ADD_DVC_1_3_ENTRY_POINT(func); \ + ADD_ENTRY_POINT_MAP(func##suffix, func, 0, VK_##EXT##_EXTENSION_NAME, nullptr, true) + #define ADD_INST_EXT_ENTRY_POINT(func, EXT) ADD_ENTRY_POINT(func, 0, VK_##EXT##_EXTENSION_NAME, nullptr, false) #define ADD_DVC_EXT_ENTRY_POINT(func, EXT) ADD_ENTRY_POINT(func, 0, VK_##EXT##_EXTENSION_NAME, nullptr, true) @@ -456,6 +466,8 @@ ADD_INST_1_1_PROMOTED_ENTRY_POINT(vkGetPhysicalDeviceExternalBufferProperties, KHR_EXTERNAL_MEMORY_CAPABILITIES); ADD_INST_1_1_PROMOTED_ENTRY_POINT(vkGetPhysicalDeviceExternalSemaphoreProperties, KHR_EXTERNAL_SEMAPHORE_CAPABILITIES); + ADD_INST_1_3_PROMOTED_ENTRY_POINT(vkGetPhysicalDeviceToolProperties, EXT_TOOLING_INFO); + // Device functions: ADD_DVC_ENTRY_POINT(vkGetDeviceProcAddr); ADD_DVC_ENTRY_POINT(vkDestroyDevice); @@ -611,6 +623,43 @@ ADD_DVC_1_2_PROMOTED_ENTRY_POINT(vkSignalSemaphore, KHR, KHR_TIMELINE_SEMAPHORE); ADD_DVC_1_2_PROMOTED_ENTRY_POINT(vkWaitSemaphores, KHR, KHR_TIMELINE_SEMAPHORE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdBeginRendering, KHR, KHR_DYNAMIC_RENDERING); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdBindVertexBuffers2, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdBlitImage2, KHR, KHR_COPY_COMMANDS_2); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdCopyBuffer2, KHR, KHR_COPY_COMMANDS_2); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdCopyBufferToImage2, KHR, KHR_COPY_COMMANDS_2); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdCopyImage2, KHR, KHR_COPY_COMMANDS_2); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdCopyImageToBuffer2, KHR, KHR_COPY_COMMANDS_2); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdEndRendering, KHR, KHR_DYNAMIC_RENDERING); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdPipelineBarrier2, KHR, KHR_SYNCHRONIZATION_2); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdResetEvent2, KHR, KHR_SYNCHRONIZATION_2); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdResolveImage2, KHR, KHR_COPY_COMMANDS_2); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetCullMode, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetDepthBiasEnable, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetDepthBoundsTestEnable, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetDepthCompareOp, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetDepthTestEnable, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetDepthWriteEnable, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetEvent2, KHR, KHR_SYNCHRONIZATION_2); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetFrontFace, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetPrimitiveRestartEnable, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetPrimitiveTopology, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetRasterizerDiscardEnable, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetScissorWithCount, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetStencilOp, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetStencilTestEnable, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdSetViewportWithCount, EXT, EXT_EXTENDED_DYNAMIC_STATE); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdWaitEvents2, KHR, KHR_SYNCHRONIZATION_2); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCmdWriteTimestamp2, KHR, KHR_SYNCHRONIZATION_2); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkCreatePrivateDataSlot, EXT, EXT_PRIVATE_DATA); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkDestroyPrivateDataSlot, EXT, EXT_PRIVATE_DATA); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkGetDeviceBufferMemoryRequirements, KHR, KHR_MAINTENANCE_4); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkGetDeviceImageMemoryRequirements, KHR, KHR_MAINTENANCE_4); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkGetDeviceImageSparseMemoryRequirements, KHR, KHR_MAINTENANCE_4); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkGetPrivateData, EXT, EXT_PRIVATE_DATA); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkQueueSubmit2, KHR, KHR_SYNCHRONIZATION_2); + ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkSetPrivateData, EXT, EXT_PRIVATE_DATA); + // Instance extension functions: ADD_INST_EXT_ENTRY_POINT(vkDestroySurfaceKHR, KHR_SURFACE); ADD_INST_EXT_ENTRY_POINT(vkGetPhysicalDeviceSurfaceSupportKHR, KHR_SURFACE); diff --git a/MoltenVK/MoltenVK/Vulkan/vulkan.mm b/MoltenVK/MoltenVK/Vulkan/vulkan.mm index b17e030ce..127bc81a4 100644 --- a/MoltenVK/MoltenVK/Vulkan/vulkan.mm +++ b/MoltenVK/MoltenVK/Vulkan/vulkan.mm @@ -164,6 +164,15 @@ static inline void MVKTraceVulkanCallEndImpl(const char* funcName, uint64_t star // Define an extension call as an alias of a core call #define MVK_PUBLIC_VULKAN_CORE_ALIAS(vkf, ext) MVK_PUBLIC_VULKAN_ALIAS(vkf##ext, vkf) +#define MVK_PUBLIC_VULKAN_STUB(name, ret, ...) MVK_PUBLIC_VULKAN_SYMBOL ret name(__VA_ARGS__) { \ + assert(false); \ + return (ret)0; \ +} + +#define MVK_PUBLIC_VULKAN_STUB_VKRESULT(name, ...) MVK_PUBLIC_VULKAN_SYMBOL VkResult name(__VA_ARGS__) { \ + assert(false); \ + return VK_ERROR_FEATURE_NOT_PRESENT; \ +} #pragma mark - #pragma mark Vulkan 1.0 calls @@ -2466,6 +2475,62 @@ MVK_PUBLIC_VULKAN_SYMBOL VkResult vkWaitSemaphores( return rslt; } +#pragma mark - +#pragma mark Vulkan 1.3 calls + +MVK_PUBLIC_VULKAN_SYMBOL void vkCmdBeginRendering( + VkCommandBuffer commandBuffer, + const VkRenderingInfo* pRenderingInfo) { + + MVKTraceVulkanCallStart(); + MVKAddCmdFrom3Thresholds(BeginRendering, pRenderingInfo->colorAttachmentCount, + 1, 2, 4, commandBuffer, pRenderingInfo); + MVKTraceVulkanCallEnd(); +} + +MVK_PUBLIC_VULKAN_SYMBOL void vkCmdEndRendering( + VkCommandBuffer commandBuffer) { + + MVKTraceVulkanCallStart(); + MVKAddCmd(EndRendering, commandBuffer); + MVKTraceVulkanCallEnd(); +} + +MVK_PUBLIC_VULKAN_STUB(vkCmdBindVertexBuffers2, void, VkCommandBuffer, uint32_t, uint32_t, const VkBuffer*, const VkDeviceSize*, const VkDeviceSize*, const VkDeviceSize*) +MVK_PUBLIC_VULKAN_STUB(vkCmdBlitImage2, void, VkCommandBuffer, const VkBlitImageInfo2*) +MVK_PUBLIC_VULKAN_STUB(vkCmdCopyBuffer2, void, VkCommandBuffer, const VkCopyBufferInfo2*) +MVK_PUBLIC_VULKAN_STUB(vkCmdCopyBufferToImage2, void, VkCommandBuffer, const VkCopyBufferToImageInfo2*) +MVK_PUBLIC_VULKAN_STUB(vkCmdCopyImage2, void, VkCommandBuffer, const VkCopyImageInfo2*) +MVK_PUBLIC_VULKAN_STUB(vkCmdCopyImageToBuffer2, void, VkCommandBuffer, const VkCopyImageToBufferInfo2*) +MVK_PUBLIC_VULKAN_STUB(vkCmdPipelineBarrier2, void, VkCommandBuffer, const VkDependencyInfo*) +MVK_PUBLIC_VULKAN_STUB(vkCmdResetEvent2, void, VkCommandBuffer, VkEvent, VkPipelineStageFlags2 stageMask) +MVK_PUBLIC_VULKAN_STUB(vkCmdResolveImage2, void, VkCommandBuffer, const VkResolveImageInfo2*) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetCullMode, void, VkCommandBuffer, VkCullModeFlags) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetDepthBiasEnable, void, VkCommandBuffer, VkBool32) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetDepthBoundsTestEnable, void, VkCommandBuffer, VkBool32) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetDepthCompareOp, void, VkCommandBuffer, VkCompareOp) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetDepthTestEnable, void, VkCommandBuffer, VkBool32) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetDepthWriteEnable, void, VkCommandBuffer, VkBool32) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetEvent2, void, VkCommandBuffer, VkEvent, const VkDependencyInfo*) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetFrontFace, void, VkCommandBuffer, VkFrontFace) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetPrimitiveRestartEnable, void, VkCommandBuffer, VkBool32) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetPrimitiveTopology, void, VkCommandBuffer, VkPrimitiveTopology) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetRasterizerDiscardEnable, void, VkCommandBuffer, VkBool32) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetScissorWithCount, void, VkCommandBuffer, uint32_t, const VkRect2D*) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetStencilOp, void, VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetStencilTestEnable, void, VkCommandBuffer, VkBool32) +MVK_PUBLIC_VULKAN_STUB(vkCmdSetViewportWithCount, void, VkCommandBuffer, uint32_t, const VkViewport*) +MVK_PUBLIC_VULKAN_STUB(vkCmdWaitEvents2, void, VkCommandBuffer, uint32_t, const VkEvent*, const VkDependencyInfo*) +MVK_PUBLIC_VULKAN_STUB(vkCmdWriteTimestamp2, void, VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, uint32_t) +MVK_PUBLIC_VULKAN_STUB_VKRESULT(vkCreatePrivateDataSlot, VkDevice, const VkPrivateDataSlotCreateInfo*, const VkAllocationCallbacks*, VkPrivateDataSlot*) +MVK_PUBLIC_VULKAN_STUB(vkDestroyPrivateDataSlot, void, VkDevice, VkPrivateDataSlot, const VkAllocationCallbacks*) +MVK_PUBLIC_VULKAN_STUB(vkGetDeviceBufferMemoryRequirements, void, VkDevice, const VkDeviceBufferMemoryRequirements*, VkMemoryRequirements2*) +MVK_PUBLIC_VULKAN_STUB(vkGetDeviceImageMemoryRequirements, void, VkDevice, const VkDeviceImageMemoryRequirements*, VkMemoryRequirements2*) +MVK_PUBLIC_VULKAN_STUB(vkGetDeviceImageSparseMemoryRequirements, void, VkDevice, const VkDeviceImageMemoryRequirements*, uint32_t*, VkSparseImageMemoryRequirements2*) +MVK_PUBLIC_VULKAN_STUB_VKRESULT(vkGetPhysicalDeviceToolProperties, VkPhysicalDevice, uint32_t*, VkPhysicalDeviceToolProperties*) +MVK_PUBLIC_VULKAN_STUB(vkGetPrivateData, void, VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t*) +MVK_PUBLIC_VULKAN_STUB_VKRESULT(vkQueueSubmit2, VkQueue, uint32_t, const VkSubmitInfo2*, VkFence) +MVK_PUBLIC_VULKAN_STUB_VKRESULT(vkSetPrivateData, VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t) #pragma mark - #pragma mark VK_KHR_bind_memory2 extension @@ -2494,23 +2559,8 @@ MVK_PUBLIC_VULKAN_SYMBOL VkResult vkWaitSemaphores( #pragma mark - #pragma mark VK_KHR_dynamic_rendering extension -void vkCmdBeginRenderingKHR( - VkCommandBuffer commandBuffer, - const VkRenderingInfo* pRenderingInfo) { - - MVKTraceVulkanCallStart(); - MVKAddCmdFrom3Thresholds(BeginRendering, pRenderingInfo->colorAttachmentCount, - 1, 2, 4, commandBuffer, pRenderingInfo); - MVKTraceVulkanCallEnd(); -} - -void vkCmdEndRenderingKHR( - VkCommandBuffer commandBuffer) { - - MVKTraceVulkanCallStart(); - MVKAddCmd(EndRendering, commandBuffer); - MVKTraceVulkanCallEnd(); -} +MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdBeginRendering, KHR); +MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdEndRendering, KHR); #pragma mark - From ac39eb24e18820208e9b5e9c01039ec98188c365 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 26 Sep 2022 11:25:49 -0400 Subject: [PATCH 06/72] Add support for Vulkan 1.2. - Set MVK_VULKAN_API_VERSION from VK_API_VERSION_1_2. - Update MoltenVK version to 1.2.0. - Remove several previously overlooked extension suffixes in use of promoted Vulkan struct and enum values. - Update documentation. --- Docs/MoltenVK_Runtime_UserGuide.md | 2 +- Docs/Whats_New.md | 7 +++++-- MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 5 +++-- MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm | 8 ++++---- MoltenVK/MoltenVK/GPUObjects/MVKDevice.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 10 +++++----- MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm | 5 +++-- MoltenVK/MoltenVK/Utility/MVKEnvironment.h | 4 ++-- README.md | 10 +++++----- 9 files changed, 29 insertions(+), 24 deletions(-) diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index bcc42c77e..6582dbcff 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -53,7 +53,7 @@ distribution package, see the main [`README.md`](../README.md) document in the ` About **MoltenVK** ------------------ -**MoltenVK** is a layered implementation of [*Vulkan 1.1*](https://www.khronos.org/vulkan) +**MoltenVK** is a layered implementation of [*Vulkan 1.2*](https://www.khronos.org/vulkan) graphics and compute functionality, that is built on Apple's [*Metal*](https://developer.apple.com/metal) graphics and compute framework on *macOS*, *iOS*, and *tvOS*. **MoltenVK** allows you to use *Vulkan* graphics and compute functionality to develop modern, cross-platform, high-performance graphical games diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 578c77559..98106d967 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -13,11 +13,12 @@ Copyright (c) 2015-2022 [The Brenwill Workshop Ltd.](http://www.brenwill.com) -MoltenVK 1.1.12 +MoltenVK 1.2.0 -------------- Released TBD +- Add support for _Vulkan 1.2_. - Add support for extensions: - `VK_KHR_shader_float_controls` - `VK_KHR_spirv_1_4` @@ -31,8 +32,10 @@ Released TBD - Fix occassional crash from retention of `MVKSwapchain` for future drawable presentations. - Fix undefined reference to `vkGetBufferDeviceAddressEXT` when building with `MVK_HIDE_VULKAN_SYMBOLS=1`. - Update `Makefile` to forward any build setting declared on the command line to Xcode. +- Add _**non-functional** Vulkan 1.3_ core function **_stubs_**, to avoid link errors with some external + libraries that assume _Vulkan 1.3_ linkages from the standard _Vulkan_ header files included with **MoltenVK**. - Add `MVK_USE_CEREAL` build setting to avoid use of Cereal external library (for pipeline caching). -- `MoltenVKShaderConverter` tool automatically map bindings when converting _GLSL_. +- `MoltenVKShaderConverter` tool automatically maps bindings when converting _GLSL_. - Update `VK_MVK_MOLTENVK_SPEC_VERSION` to version `36`. diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index 683a43563..fb3eb2f89 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -50,8 +50,8 @@ typedef unsigned long MTLArgumentBuffersTier; * - 401215 (version 4.12.15) */ #define MVK_VERSION_MAJOR 1 -#define MVK_VERSION_MINOR 1 -#define MVK_VERSION_PATCH 12 +#define MVK_VERSION_MINOR 2 +#define MVK_VERSION_PATCH 0 #define MVK_MAKE_VERSION(major, minor, patch) (((major) * 10000) + ((minor) * 100) + (patch)) #define MVK_VERSION MVK_MAKE_VERSION(MVK_VERSION_MAJOR, MVK_VERSION_MINOR, MVK_VERSION_PATCH) @@ -747,6 +747,7 @@ typedef struct { * When reading this value, it will be one of the VK_API_VERSION_1_* values, including the latest * VK_HEADER_VERSION component. When setting this value, it should be set to one of: * + * VK_API_VERSION_1_2 (equivalent decimal number 4202496) * VK_API_VERSION_1_1 (equivalent decimal number 4198400) * VK_API_VERSION_1_0 (equivalent decimal number 4194304) * diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm index 156572be8..4d22d556c 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm @@ -249,8 +249,8 @@ const VkDescriptorBindingFlags* MVKDescriptorSetLayout::getBindingFlags(const VkDescriptorSetLayoutCreateInfo* pCreateInfo) { for (const auto* next = (VkBaseInStructure*)pCreateInfo->pNext; next; next = next->pNext) { switch (next->sType) { - case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT: { - auto* pDescSetLayoutBindingFlags = (VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*)next; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: { + auto* pDescSetLayoutBindingFlags = (VkDescriptorSetLayoutBindingFlagsCreateInfo*)next; return pDescSetLayoutBindingFlags->bindingCount ? pDescSetLayoutBindingFlags->pBindingFlags : nullptr; } default: @@ -468,8 +468,8 @@ const uint32_t* MVKDescriptorPool::getVariableDecriptorCounts(const VkDescriptorSetAllocateInfo* pAllocateInfo) { for (const auto* next = (VkBaseInStructure*)pAllocateInfo->pNext; next; next = next->pNext) { switch (next->sType) { - case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT: { - auto* pVarDescSetVarCounts = (VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*)next; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: { + auto* pVarDescSetVarCounts = (VkDescriptorSetVariableDescriptorCountAllocateInfo*)next; return pVarDescSetVarCounts->descriptorSetCount ? pVarDescSetVarCounts->pDescriptorCounts : nullptr; } default: diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h index d378fd997..54ca3a6e8 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h @@ -869,7 +869,7 @@ class MVKDevice : public MVKDispatchableVulkanAPIObject { void updateActivityPerformance(MVKPerformanceTracker& activity, uint64_t startTime, uint64_t endTime); void getDescriptorVariableDescriptorCountLayoutSupport(const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport, - VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* pVarDescSetCountSupport); + VkDescriptorSetVariableDescriptorCountLayoutSupport* pVarDescSetCountSupport); MVKPhysicalDevice* _physicalDevice = nullptr; MVKCommandResourceFactory* _commandResourceFactory = nullptr; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index f43f9426e..f67ac5c8d 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -3364,8 +3364,8 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope // Check whether the layout has a variable-count descriptor, and if so, whether we can support it. for (auto* next = (VkBaseOutStructure*)pSupport->pNext; next; next = next->pNext) { switch (next->sType) { - case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT: { - auto* pVarDescSetCountSupport = (VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*)next; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: { + auto* pVarDescSetCountSupport = (VkDescriptorSetVariableDescriptorCountLayoutSupport*)next; getDescriptorVariableDescriptorCountLayoutSupport(pCreateInfo, pSupport, pVarDescSetCountSupport); break; } @@ -3378,7 +3378,7 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope // Check whether the layout has a variable-count descriptor, and if so, whether we can support it. void MVKDevice::getDescriptorVariableDescriptorCountLayoutSupport(const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport, - VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* pVarDescSetCountSupport) { + VkDescriptorSetVariableDescriptorCountLayoutSupport* pVarDescSetCountSupport) { // Assume we don't need this, then set appropriately if we do. pVarDescSetCountSupport->maxVariableDescriptorCount = 0; @@ -3386,8 +3386,8 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope int32_t varBindingIdx = -1; for (const auto* next = (VkBaseInStructure*)pCreateInfo->pNext; next; next = next->pNext) { switch (next->sType) { - case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT: { - auto* pDescSetLayoutBindingFlags = (VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*)next; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: { + auto* pDescSetLayoutBindingFlags = (VkDescriptorSetLayoutBindingFlagsCreateInfo*)next; for (uint32_t bindIdx = 0; bindIdx < pDescSetLayoutBindingFlags->bindingCount; bindIdx++) { if (mvkIsAnyFlagEnabled(pDescSetLayoutBindingFlags->pBindingFlags[bindIdx], VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT)) { varBindingIdx = bindIdx; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm index ecb682564..1fb78e62a 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm @@ -402,18 +402,18 @@ #define ADD_INST_ENTRY_POINT(func) ADD_ENTRY_POINT(func, VK_API_VERSION_1_0, nullptr, nullptr, false) #define ADD_DVC_ENTRY_POINT(func) ADD_ENTRY_POINT(func, VK_API_VERSION_1_0, nullptr, nullptr, true) +// Add a core function. #define ADD_INST_1_1_ENTRY_POINT(func) ADD_ENTRY_POINT(func, VK_API_VERSION_1_1, nullptr, nullptr, false) #define ADD_INST_1_3_ENTRY_POINT(func) ADD_ENTRY_POINT(func, VK_API_VERSION_1_3, nullptr, nullptr, false) #define ADD_DVC_1_1_ENTRY_POINT(func) ADD_ENTRY_POINT(func, VK_API_VERSION_1_1, nullptr, nullptr, true) #define ADD_DVC_1_2_ENTRY_POINT(func) ADD_ENTRY_POINT(func, VK_API_VERSION_1_2, nullptr, nullptr, true) #define ADD_DVC_1_3_ENTRY_POINT(func) ADD_ENTRY_POINT(func, VK_API_VERSION_1_3, nullptr, nullptr, true) -// Adds both the 1.1 function and the promoted extension function. +// Add both the promoted core function and the extension function. #define ADD_INST_1_1_PROMOTED_ENTRY_POINT(func, EXT) \ ADD_INST_1_1_ENTRY_POINT(func); \ ADD_ENTRY_POINT_MAP(func##KHR, func, 0, VK_##EXT##_EXTENSION_NAME, nullptr, false) -// Adds both the 1.1 function and the promoted extension function. #define ADD_DVC_1_1_PROMOTED_ENTRY_POINT(func, EXT) \ ADD_DVC_1_1_ENTRY_POINT(func); \ ADD_ENTRY_POINT_MAP(func##KHR, func, 0, VK_##EXT##_EXTENSION_NAME, nullptr, true) @@ -430,6 +430,7 @@ ADD_DVC_1_3_ENTRY_POINT(func); \ ADD_ENTRY_POINT_MAP(func##suffix, func, 0, VK_##EXT##_EXTENSION_NAME, nullptr, true) +// Add an extension function. #define ADD_INST_EXT_ENTRY_POINT(func, EXT) ADD_ENTRY_POINT(func, 0, VK_##EXT##_EXTENSION_NAME, nullptr, false) #define ADD_DVC_EXT_ENTRY_POINT(func, EXT) ADD_ENTRY_POINT(func, 0, VK_##EXT##_EXTENSION_NAME, nullptr, true) diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h index 307038d7d..dc9e4558e 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h @@ -36,8 +36,8 @@ #endif /** Macro to determine the Vulkan version supported by MoltenVK. */ -#define MVK_VULKAN_API_VERSION VK_MAKE_VERSION(VK_VERSION_MAJOR(VK_API_VERSION_1_1), \ - VK_VERSION_MINOR(VK_API_VERSION_1_1), \ +#define MVK_VULKAN_API_VERSION VK_MAKE_VERSION(VK_VERSION_MAJOR(VK_API_VERSION_1_2), \ + VK_VERSION_MINOR(VK_API_VERSION_1_2), \ VK_HEADER_VERSION) /** diff --git a/README.md b/README.md index 49f74682d..14c9ab5ad 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ document in the `Docs` directory. Introduction to MoltenVK ------------------------ -**MoltenVK** is a layered implementation of [*Vulkan 1.1*](https://www.khronos.org/vulkan) +**MoltenVK** is a layered implementation of [*Vulkan 1.2*](https://www.khronos.org/vulkan) graphics and compute functionality, that is built on Apple's [*Metal*](https://developer.apple.com/metal) graphics and compute framework on *macOS*, *iOS*, and *tvOS*. **MoltenVK** allows you to use *Vulkan* graphics and compute functionality to develop modern, cross-platform, high-performance graphical @@ -88,7 +88,7 @@ channels, including *Apple's App Store*. The **MoltenVK** runtime package contains two products: - **MoltenVK** is a implementation of an almost-complete subset of the - [*Vulkan 1.1*](https://www.khronos.org/vulkan) graphics and compute API. + [*Vulkan 1.2*](https://www.khronos.org/vulkan) graphics and compute API. - **MoltenVKShaderConverter** converts *SPIR-V* shader code to *Metal Shading Language (MSL)* shader code, and converts *GLSL* shader source code to *SPIR-V* shader code and/or @@ -305,11 +305,11 @@ the contents of that directory out of this **MoltenVK** repository into your own **MoltenVK** and *Vulkan* Compliance ------------------------------------ -**MoltenVK** is designed to be an implementation of a *Vulkan 1.1* subset that runs on *macOS*, *iOS*, +**MoltenVK** is designed to be an implementation of a *Vulkan 1.2* subset that runs on *macOS*, *iOS*, and *tvOS* platforms by mapping *Vulkan* capability to native *Metal* capability. The fundamental design and development goal of **MoltenVK** is to provide this capability in a way that -is both maximally compliant with the *Vulkan 1.1* specification, and maximally performant. +is both maximally compliant with the *Vulkan 1.2* specification, and maximally performant. Such compliance and performance is inherently affected by the capability available through *Metal*, as the native graphics driver on *macOS*, *iOS*, and *tvOS* platforms. *Vulkan* compliance may fall into one of @@ -389,7 +389,7 @@ Property claims. ### *Vulkan* Validation Despite running on top of *Metal*, **MoltenVK** operates as a *Vulkan* core layer. As such, as per the -error handling guidelines of the [*Vulkan* specification](https://www.khronos.org/registry/vulkan/specs/1.1/html/vkspec.html#fundamentals-errors), **MoltenVK** should not perform *Vulkan* validation. When adding functionality +error handling guidelines of the [*Vulkan* specification](https://www.khronos.org/registry/vulkan/specs/1.2/html/vkspec.html#fundamentals-errors), **MoltenVK** should not perform *Vulkan* validation. When adding functionality to **MoltenVK**, avoid adding unnecessary validation code. Validation and error generation **_is_** appropriate within **MoltenVK** in cases where **MoltenVK** deviates From e8b32dec920914ff0476f497e4c8601b039e969e Mon Sep 17 00:00:00 2001 From: sean Date: Mon, 26 Sep 2022 18:11:33 +0200 Subject: [PATCH 07/72] Final 1.2 fixes --- MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm | 2 +- MoltenVK/MoltenVK/Vulkan/vulkan.mm | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.h b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.h index 28d93296b..449be0369 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.h @@ -94,7 +94,7 @@ class MVKDescriptorSetLayoutBinding : public MVKBaseDeviceObject { /** Returns whether this binding has a variable descriptor count. */ inline bool hasVariableDescriptorCount() const { - return mvkIsAnyFlagEnabled(_flags, VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT); + return mvkIsAnyFlagEnabled(_flags, VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT); } /** diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm index 4d22d556c..77ae6ff73 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm @@ -809,7 +809,7 @@ if (metalArgBuffSize) { NSUInteger maxMTLBuffSize = _device->_pMetalFeatures->maxMTLBufferSize; if (metalArgBuffSize > maxMTLBuffSize) { - setConfigurationResult(reportError(VK_ERROR_FRAGMENTATION_EXT, "vkCreateDescriptorPool(): The requested descriptor storage of %d MB is larger than the maximum descriptor storage of %d MB per VkDescriptorPool.", (uint32_t)(metalArgBuffSize / MEBI), (uint32_t)(maxMTLBuffSize / MEBI))); + setConfigurationResult(reportError(VK_ERROR_FRAGMENTATION, "vkCreateDescriptorPool(): The requested descriptor storage of %d MB is larger than the maximum descriptor storage of %d MB per VkDescriptorPool.", (uint32_t)(metalArgBuffSize / MEBI), (uint32_t)(maxMTLBuffSize / MEBI))); metalArgBuffSize = maxMTLBuffSize; } _metalArgumentBuffer = [getMTLDevice() newBufferWithLength: metalArgBuffSize options: MTLResourceStorageModeShared]; // retained diff --git a/MoltenVK/MoltenVK/Vulkan/vulkan.mm b/MoltenVK/MoltenVK/Vulkan/vulkan.mm index 127bc81a4..736f73609 100644 --- a/MoltenVK/MoltenVK/Vulkan/vulkan.mm +++ b/MoltenVK/MoltenVK/Vulkan/vulkan.mm @@ -2454,7 +2454,7 @@ MVK_PUBLIC_VULKAN_SYMBOL void vkResetQueryPool( MVK_PUBLIC_VULKAN_SYMBOL VkResult vkSignalSemaphore( VkDevice device, - const VkSemaphoreSignalInfoKHR* pSignalInfo) { + const VkSemaphoreSignalInfo* pSignalInfo) { MVKTraceVulkanCallStart(); auto* mvkSem4 = (MVKTimelineSemaphore*)pSignalInfo->semaphore; @@ -2465,7 +2465,7 @@ MVK_PUBLIC_VULKAN_SYMBOL VkResult vkSignalSemaphore( MVK_PUBLIC_VULKAN_SYMBOL VkResult vkWaitSemaphores( VkDevice device, - const VkSemaphoreWaitInfoKHR* pWaitInfo, + const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) { MVKTraceVulkanCallStart(); From d32c60a90192e9f25f5228af024f34246e514e98 Mon Sep 17 00:00:00 2001 From: Giovanni Bajo Date: Fri, 30 Sep 2022 00:17:27 +0200 Subject: [PATCH 08/72] Makefile: fix environment variable definitions --- Makefile | 24 ++++++++++----------- MoltenVK/MoltenVK.xcodeproj/project.pbxproj | 4 ---- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index c42affcf9..62e1ab5f8 100644 --- a/Makefile +++ b/Makefile @@ -41,51 +41,51 @@ all-debug: .PHONY: macos macos: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" $(MAKEARGS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD) .PHONY: macos-debug macos-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" -configuration "Debug" $(MAKEARGS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD) .PHONY: ios ios: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS" $(MAKEARGS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD) .PHONY: ios-debug ios-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS" -configuration "Debug" $(MAKEARGS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD) .PHONY: iossim iossim: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS Simulator" $(MAKEARGS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS Simulator" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD) .PHONY: iossim-debug iossim-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS Simulator" -configuration "Debug" $(MAKEARGS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS Simulator" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD) .PHONY: maccat maccat: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=macOS,variant=Mac Catalyst" $(MAKEARGS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=macOS,variant=Mac Catalyst" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD) .PHONY: maccat-debug maccat-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=macOS,variant=Mac Catalyst" -configuration "Debug" $(MAKEARGS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=macOS,variant=Mac Catalyst" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD) .PHONY: tvos tvos: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS" $(MAKEARGS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD) .PHONY: tvos-debug tvos-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS" -configuration "Debug" $(MAKEARGS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD) .PHONY: tvossim tvossim: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS Simulator" $(MAKEARGS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS Simulator" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD) .PHONY: tvossim-debug tvossim-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS Simulator" -configuration "Debug" $(MAKEARGS) $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS Simulator" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD) .PHONY: clean clean: diff --git a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj index cda78562b..782a307f5 100644 --- a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj +++ b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj @@ -1595,7 +1595,6 @@ GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross", - "MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS)", ); GCC_SYMBOLS_PRIVATE_EXTERN = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -1621,7 +1620,6 @@ MACH_O_TYPE = staticlib; MACOSX_DEPLOYMENT_TARGET = 10.13; MTL_ENABLE_DEBUG_INFO = YES; - MVK_HIDE_VULKAN_SYMBOLS = 0; MVK_SKIP_DYLIB = ""; "MVK_SKIP_DYLIB[sdk=appletvsimulator*]" = YES; "MVK_SKIP_DYLIB[sdk=iphonesimulator*]" = YES; @@ -1668,7 +1666,6 @@ GCC_PREPROCESSOR_DEFINITIONS = ( "NDEBUG=1", "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross", - "MVK_HIDE_VULKAN_SYMBOLS=$(MVK_HIDE_VULKAN_SYMBOLS)", ); GCC_SYMBOLS_PRIVATE_EXTERN = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -1694,7 +1691,6 @@ MACH_O_TYPE = staticlib; MACOSX_DEPLOYMENT_TARGET = 10.13; MTL_ENABLE_DEBUG_INFO = NO; - MVK_HIDE_VULKAN_SYMBOLS = 0; MVK_SKIP_DYLIB = ""; "MVK_SKIP_DYLIB[sdk=appletvsimulator*]" = YES; "MVK_SKIP_DYLIB[sdk=iphonesimulator*]" = YES; From 0cc6e1d3a47cde8b8d8cd96c65d9d4dc10015c7f Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Sun, 9 Oct 2022 16:32:26 -0400 Subject: [PATCH 09/72] Fix support for MVK_HIDE_VULKAN_SYMBOLS build setting. - Remove separate extension entry points for 1.3 promoted vkCmdBeginRenderingKHR() and vkCmdEndRenderingKHR() functions, which caused build breaks when MVK_HIDE_VULKAN_SYMBOLS=1. - For consistency, hide vkGetMoltenVKConfigurationMVK(), vkSetMoltenVKConfigurationMVK(), and vkGetVersionStringsMVK() when MVK_HIDE_VULKAN_SYMBOLS=1, which was an oversight in original implementation of hiding Vulkan functions. - Update build `README.md` for generic command line build settings and MVK_HIDE_VULKAN_SYMBOLS in particular. --- MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm | 2 -- MoltenVK/MoltenVK/Vulkan/vk_mvk_moltenvk.mm | 6 ++--- README.md | 25 ++++++++++++++++----- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm index 1fb78e62a..2bb5e4078 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm @@ -706,8 +706,6 @@ ADD_INST_EXT_ENTRY_POINT(vkGetMTLCommandQueueMVK, MVK_MOLTENVK); // Device extension functions: - ADD_DVC_EXT_ENTRY_POINT(vkCmdBeginRenderingKHR, KHR_DYNAMIC_RENDERING); - ADD_DVC_EXT_ENTRY_POINT(vkCmdEndRenderingKHR, KHR_DYNAMIC_RENDERING); ADD_DVC_EXT_ENTRY_POINT(vkCmdPushDescriptorSetKHR, KHR_PUSH_DESCRIPTOR); ADD_DVC_EXT2_ENTRY_POINT(vkCmdPushDescriptorSetWithTemplateKHR, KHR_PUSH_DESCRIPTOR, KHR_DESCRIPTOR_UPDATE_TEMPLATE); ADD_DVC_EXT_ENTRY_POINT(vkCreateSwapchainKHR, KHR_SWAPCHAIN); diff --git a/MoltenVK/MoltenVK/Vulkan/vk_mvk_moltenvk.mm b/MoltenVK/MoltenVK/Vulkan/vk_mvk_moltenvk.mm index 72a8ac639..50d751734 100644 --- a/MoltenVK/MoltenVK/Vulkan/vk_mvk_moltenvk.mm +++ b/MoltenVK/MoltenVK/Vulkan/vk_mvk_moltenvk.mm @@ -49,7 +49,7 @@ VkResult mvkCopy(S* pDst, const S* pSrc, size_t* pCopySize) { } } -MVK_PUBLIC_SYMBOL VkResult vkGetMoltenVKConfigurationMVK( +MVK_PUBLIC_VULKAN_SYMBOL VkResult vkGetMoltenVKConfigurationMVK( VkInstance ignored, MVKConfiguration* pConfiguration, size_t* pConfigurationSize) { @@ -57,7 +57,7 @@ MVK_PUBLIC_SYMBOL VkResult vkGetMoltenVKConfigurationMVK( return mvkCopy(pConfiguration, &mvkConfig(), pConfigurationSize); } -MVK_PUBLIC_SYMBOL VkResult vkSetMoltenVKConfigurationMVK( +MVK_PUBLIC_VULKAN_SYMBOL VkResult vkSetMoltenVKConfigurationMVK( VkInstance ignored, const MVKConfiguration* pConfiguration, size_t* pConfigurationSize) { @@ -88,7 +88,7 @@ MVK_PUBLIC_VULKAN_SYMBOL VkResult vkGetPerformanceStatisticsMVK( return mvkCopy(pPerf, &mvkPerf, pPerfSize); } -MVK_PUBLIC_SYMBOL void vkGetVersionStringsMVK( +MVK_PUBLIC_VULKAN_SYMBOL void vkGetVersionStringsMVK( char* pMoltenVersionStringBuffer, uint32_t moltenVersionStringBufferLength, char* pVulkanVersionStringBuffer, diff --git a/README.md b/README.md index 14c9ab5ad..46cc9d4ff 100644 --- a/README.md +++ b/README.md @@ -254,20 +254,33 @@ The `make` targets all require that *Xcode* is installed on your system. Building from the command line creates the same `Package` folder structure described above when building from within *Xcode*. +When building from the command line, you can set any of the build settings documented in +the `vk_mvk_moltenvk.h` file for `MVKConfiguration`, by passing them in the command line, +as in the following examples: + + make MVK_CONFIG_LOG_LEVEL=0 +or + + make macos MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS=1 + +...etc. + ### Hiding Vulkan API Symbols You can optionally build MoltenVK with the Vulkan API static call symbols (`vk*`) hidden, to avoid library linking conflicts when bound to a Vulkan Loader that also exports identical symbols. -To do so, when building MoltenVK, set the build setting or environment varible `MVK_HIDE_VULKAN_SYMBOLS=1`. -This build setting can be changed in the `MoltenVK.xcodeproj` *Xcode* project, or it can be included in -any of the `make` build commands. For example: +To do so, when building MoltenVK, set the build setting `MVK_HIDE_VULKAN_SYMBOLS=1`. +This build setting can be set in the `MoltenVK.xcodeproj` *Xcode* project, +or it can be included in any of the `make` build commands. For example: make MVK_HIDE_VULKAN_SYMBOLS=1 - ... - make macos-debug MVK_HIDE_VULKAN_SYMBOLS=1 - ...etc. +or + + make macos MVK_HIDE_VULKAN_SYMBOLS=1 + +...etc. From ceb298965e44ff54dc4555702a93d80f00f082b6 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Sun, 9 Oct 2022 21:17:18 -0400 Subject: [PATCH 10/72] Vulkan semaphore fallback to using single queue if MTLEvents unusable. - If MTLEvents are unusable, fallback to single queue. - Adjust values of MVKVkSemaphoreSupportStyle enumeration. - For legacy compatibility, if legacy semaphoreUseMTLEvent and semaphoreUseMTLFence are both disabled, use CPU callback emulation. - Update and expand related documentation in vk_mvk_moltenvk.h. --- MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 26 +++++++++++--------- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 15 +++++------ MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp | 17 +++++++------ MoltenVK/MoltenVK/Utility/MVKEnvironment.h | 2 +- 4 files changed, 32 insertions(+), 28 deletions(-) diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index fb3eb2f89..c97b41c26 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -106,10 +106,10 @@ typedef enum MVKUseMetalArgumentBuffers { /** Identifies the Metal functionality used to support Vulkan semaphore functionality (VkSemaphore). */ typedef enum MVKVkSemaphoreSupportStyle { - MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_CALLBACK = 0, /**< Use CPU callbacks upon GPU submission completion. This is the slowest technique. */ - MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS_WHERE_SAFE = 1, /**< Use Metal events (MTLEvent) when available on the platform, and where safe. This will revert to same as MVK_CONFIG_VK_SEMAPHORE_USE_SINGLE_QUEUE on some NVIDIA GPUs and Rosetta2, due to potential challenges with MTLEvents on those platforms. */ - MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS = 2, /**< Always use Metal events (MTLEvent) when available on the platform. */ - MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE = 3, /**< Limit Vulkan to a single queue, with no explicit semaphore synchronization, and use Metal's implicit guarantees that all operations submitted to a queue will give the same result as if they had been run in submission order. */ + MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE = 0, /**< Limit Vulkan to a single queue, with no explicit semaphore synchronization, and use Metal's implicit guarantees that all operations submitted to a queue will give the same result as if they had been run in submission order. */ + MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS_WHERE_SAFE = 1, /**< Use Metal events (MTLEvent) when available on the platform, and where safe. This will revert to same as MVK_CONFIG_VK_SEMAPHORE_USE_SINGLE_QUEUE on some NVIDIA GPUs and Rosetta2, due to potential challenges with MTLEvents on those platforms, or in older environments where MTLEvents are not supported. */ + MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS = 2, /**< Always use Metal events (MTLEvent) when available on the platform. This will revert to same as MVK_CONFIG_VK_SEMAPHORE_USE_SINGLE_QUEUE in older environments where MTLEvents are not supported. */ + MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_CALLBACK = 3, /**< Use CPU callbacks upon GPU submission completion. This is the slowest technique, but allows multiple queues, compared to MVK_CONFIG_VK_SEMAPHORE_USE_SINGLE_QUEUE. */ MVK_CONFIG_VK_SEMAPHORE_MAX_ENUM = 0x7FFFFFFF } MVKVkSemaphoreSupportStyle; @@ -574,7 +574,7 @@ typedef struct { */ VkBool32 forceLowPowerGPU; - /** Deprecated. Use semaphoreSupportStyle instead. */ + /** Deprecated. Vulkan sempphores using MTLFence are no longer supported. Use semaphoreSupportStyle instead. */ VkBool32 semaphoreUseMTLFence; /** @@ -592,15 +592,17 @@ typedef struct { * runtime environment variable or MoltenVK compile-time build setting. * If neither is set, this setting is set to * MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS_WHERE_SAFE by default, - * and MoltenVK will use MTLEvent, except on NVIDIA GPU, and Rosetta2 environments, - * where it will use a single queue with implicit synchronization - * (as if this parameter was set to MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE). + * and MoltenVK will use MTLEvent, except on NVIDIA GPU and Rosetta2 environments, + * or where MTLEvents are not supported, where it will use a single queue with + * implicit synchronization (as if this parameter was set to + * MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE). * * This parameter interacts with the deprecated legacy parameters semaphoreUseMTLEvent - * and semaphoreUseMTLFence. If semaphoreUseMTLEvent is enabled, this parameter - * will be set to MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS_WHERE_SAFE. - * If semaphoreUseMTLEvent is disabled, and semaphoreUseMTLFence is enabled, - * this parameter will be set to MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE. + * and semaphoreUseMTLFence. If semaphoreUseMTLEvent is enabled, this parameter will be + * set to MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS_WHERE_SAFE. + * If semaphoreUseMTLEvent is disabled, this parameter will be set to + * MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE if semaphoreUseMTLFence is enabled, + * or MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_CALLBACK if semaphoreUseMTLFence is disabled. * Structurally, this parameter replaces, and is aliased by, semaphoreUseMTLEvent. */ MVKVkSemaphoreSupportStyle semaphoreSupportStyle; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index f67ac5c8d..32319529b 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -3118,12 +3118,13 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope // Determine whether Vulkan semaphores should use a MTLEvent, CPU callbacks, or should limit // Vulkan to a single queue and use Metal's implicit guarantees that all operations submitted // to a queue will give the same result as if they had been run in submission order. -// MTLEvents for semaphores can sometimes prove troublesome on some platforms, -// and so may optionally be disabled on those platforms. +// MTLEvents for semaphores are preferred, but can sometimes prove troublesome on some platforms, +// and so may be disabled on those platforms, unless explicitly requested. If MTLEvents are +// unusable, void MVKPhysicalDevice::initVkSemaphoreStyle() { - // Default to CPU callback if other options unavailable. - _vkSemaphoreStyle = MVKSemaphoreStyleUseEmulation; + // Default to single queue if other options unavailable. + _vkSemaphoreStyle = MVKSemaphoreStyleSingleQueue; switch (mvkConfig().semaphoreSupportStyle) { case MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS_WHERE_SAFE: { @@ -3135,10 +3136,10 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope case MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS: if (_metalFeatures.events) { _vkSemaphoreStyle = MVKSemaphoreStyleUseMTLEvent; } break; - case MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE: - _vkSemaphoreStyle = MVKSemaphoreStyleSingleQueue; - break; case MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_CALLBACK: + _vkSemaphoreStyle = MVKSemaphoreStyleUseEmulation; + break; + case MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE: default: break; } diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp b/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp index f28af0939..c3a8805cc 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp @@ -66,12 +66,12 @@ static void mvkInitConfigFromEnvVars() { // Legacy MVK_ALLOW_METAL_EVENTS is covered by MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE, // but for backwards compatibility, if legacy MVK_ALLOW_METAL_EVENTS is explicitly // disabled, disable semaphoreUseMTLEvent (aliased as semaphoreSupportStyle value - // MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_CALLBACK), and let mvkSetConfig() further - // process legacy behavior based on the value of legacy semaphoreUseMTLFence). + // MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE), and let mvkSetConfig() + // further process legacy behavior of MVK_ALLOW_METAL_FENCES. bool sem4UseMTLEvent; MVK_SET_FROM_ENV_OR_BUILD_BOOL(sem4UseMTLEvent, MVK_ALLOW_METAL_EVENTS); if ( !sem4UseMTLEvent ) { - evCfg.semaphoreUseMTLEvent = (MVKVkSemaphoreSupportStyle)false; // Disabled. Also semaphoreSupportStyle MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_CALLBACK. + evCfg.semaphoreUseMTLEvent = (MVKVkSemaphoreSupportStyle)false; // Disabled. Also semaphoreSupportStyle MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE. } mvkSetConfig(evCfg); @@ -102,11 +102,12 @@ void mvkSetConfig(const MVKConfiguration& mvkConfig) { VK_VERSION_MINOR(_mvkConfig.apiVersionToAdvertise), VK_HEADER_VERSION); - // Deprecated legacy support for specific case where semaphoreUseMTLFence is enabled and legacy - // semaphoreUseMTLEvent (now aliased to semaphoreSupportStyle) is disabled. In this case the user - // had been using the legacy MTLFence, so use MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE now. - if (_mvkConfig.semaphoreUseMTLFence && !_mvkConfig.semaphoreUseMTLEvent) { - _mvkConfig.semaphoreSupportStyle = MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE; + // Deprecated legacy support for specific case where both legacy semaphoreUseMTLEvent + // (now aliased to semaphoreSupportStyle) and legacy semaphoreUseMTLFence are explicitly + // disabled by the app. In this case the app had been using CPU emulation, so use + // MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_CALLBACK. + if ( !_mvkConfig.semaphoreUseMTLEvent && !_mvkConfig.semaphoreUseMTLFence ) { + _mvkConfig.semaphoreSupportStyle = MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_CALLBACK; } // Set capture file path string diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h index dc9e4558e..06abb1702 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h @@ -241,7 +241,7 @@ void mvkSetConfig(const MVKConfiguration& mvkConfig); # define MVK_ALLOW_METAL_EVENTS 1 #endif #ifndef MVK_ALLOW_METAL_FENCES // Deprecated -# define MVK_ALLOW_METAL_FENCES 0 +# define MVK_ALLOW_METAL_FENCES 1 #endif /** Substitute Metal 2D textures for Vulkan 1D images. Enabled by default. */ From b751c07eb393a54f84c7b7e76401efff6461b43d Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Sun, 16 Oct 2022 17:03:55 -0400 Subject: [PATCH 11/72] Fix memory leaks when configured for prefilling Metal command buffers. - Add MVKPrefillMetalCommandBuffersStyle enumeration to enable prefilling, and configure memory recovery options. - Redefine MVKConfiguration::prefillMetalCommandBuffers as a value from MVKPrefillMetalCommandBuffersStyle instead of a simple boolean. Set the values of MVKPrefillMetalCommandBuffersStyle and the default value of MVKConfiguration::prefillMetalCommandBuffers to be compatible with legacy use of this setting as a simple enable/disable boolean value. - MVKCommandEncoder track prefill style, and support option to maintain a Metal autorelease pool that is created on vkBeginCommandBuffer() and drained on vkEndCommandBuffer(), when prefiling a command buffer from a single thread, and an option to wrap each command addition in a separate @autoreleasepool{} scope to create and drain an autorelease pool at every command addition to the Vulkan command buffer, when prefilling a single command buffer from multiple threads. - MVKCommandEncoder retain Metal encoders when prefilling, because prefilling may span multiple autorelease pools. - MVKCommandEncoder clean up memory leak of MTLBlitPassDescriptor during prefilling. - MVKCommandEncoder rearrange declarations of MVKCommandUse member variables to tighten up class memory use (unrelated). - MVKCommandBuffer remove unnecessary inline declarations (unrelated). - Change MoltenVK logging to use stdout instead of stderr (unrelated). --- Docs/Whats_New.md | 2 + MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 40 ++++++--- MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h | 28 ++++--- .../MoltenVK/Commands/MVKCommandBuffer.mm | 82 ++++++++++++------- MoltenVK/MoltenVK/Utility/MVKBaseObject.mm | 2 +- MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp | 2 +- MoltenVK/MoltenVK/Utility/MVKEnvironment.h | 4 +- 7 files changed, 105 insertions(+), 55 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 98106d967..38fffccbf 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -29,6 +29,8 @@ Released TBD - Support config option to automatically use Metal argument buffers when `VK_EXT_descriptor_indexing` extension is enabled. `MVKConfiguration::useMetalArgumentBuffers` (`MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS`) is now an enum field. The use of Metal argument buffers is still disabled by default (`MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS_NEVER`). +- Fix memory leaks when configured for prefilling Metal command buffers. +- `MVKConfiguration` replace boolean `prefillMetalCommandBuffers` with enumeration. - Fix occassional crash from retention of `MVKSwapchain` for future drawable presentations. - Fix undefined reference to `vkGetBufferDeviceAddressEXT` when building with `MVK_HIDE_VULKAN_SYMBOLS=1`. - Update `Makefile` to forward any build setting declared on the command line to Xcode. diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index c97b41c26..0bc2ed46a 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -110,9 +110,18 @@ typedef enum MVKVkSemaphoreSupportStyle { MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS_WHERE_SAFE = 1, /**< Use Metal events (MTLEvent) when available on the platform, and where safe. This will revert to same as MVK_CONFIG_VK_SEMAPHORE_USE_SINGLE_QUEUE on some NVIDIA GPUs and Rosetta2, due to potential challenges with MTLEvents on those platforms, or in older environments where MTLEvents are not supported. */ MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS = 2, /**< Always use Metal events (MTLEvent) when available on the platform. This will revert to same as MVK_CONFIG_VK_SEMAPHORE_USE_SINGLE_QUEUE in older environments where MTLEvents are not supported. */ MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_CALLBACK = 3, /**< Use CPU callbacks upon GPU submission completion. This is the slowest technique, but allows multiple queues, compared to MVK_CONFIG_VK_SEMAPHORE_USE_SINGLE_QUEUE. */ - MVK_CONFIG_VK_SEMAPHORE_MAX_ENUM = 0x7FFFFFFF + MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_MAX_ENUM = 0x7FFFFFFF } MVKVkSemaphoreSupportStyle; +/** Identifies the style of Metal command buffer pre-filling to be used. */ +typedef enum MVKPrefillMetalCommandBuffersStyle { + MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_PREFILL = 0, /**< Do not prefill a Metal command buffer during Vulkan command buffer filling. */ + MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_SINGLE_THREAD_AUTORELEASE = 1, /**< Fill a Metal command buffer during Vulkan command buffer filling, and even though multiple threads can be used to fill multiple Vulkan command buffers, assume for any particular Vulkan command buffer that vkBeginCommandBuffer(), vkEndCommandBuffer() and all commands will be filled from a single thread. MoltenVK creates a Metal object autorelease pool on vkBeginCommandBuffer() and drains it on vkEndCommandBuffer(). This is the typical prefilling scenarios. */ + MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_MULTI_THREAD_AUTORELEASE = 2, /**< Fill a Metal command buffer during Vulkan command buffer filling, and assume for any particular Vulkan command buffer that commands will be filled from multiple threads. MoltenVK automatically creates and drains a Metal object autorelease pool for each and every command added to the Vulkan command buffer. This the most general, but slowest, option. */ + MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_AUTORELEASE = 3, /**< Fill a Metal command buffer during Vulkan command buffer filling, and assume the app will ensure that each thread that fills commands into a Vulkan command buffer has a Metal autorelease pool. MoltenVK will not create and drain any autorelease pools during prefilling. This is the fastest prefilling option. */ + MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_MAX_ENUM = 0x7FFFFFFF +} MVKPrefillMetalCommandBuffersStyle; + /** * MoltenVK configuration settings. * @@ -206,16 +215,26 @@ typedef struct { VkBool32 synchronousQueueSubmits; /** - * If enabled, where possible, a Metal command buffer will be created and filled when each - * Vulkan command buffer is filled. For applications that parallelize the filling of Vulkan + * If set to MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_PREFILL, a single Metal + * command buffer will be created and filled when the Vulkan command buffers are submitted + * to the Vulkan queue. This allows a single Metal command buffer to be used for all of the + * Vulkan command buffers in a queue submission. The Metal command buffer is filled on the + * thread that processes the command queue submission. + * + * If set to any value other than MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_PREFILL, + * where possible, a Metal command buffer will be created and filled when each Vulkan + * command buffer is filled. For applications that parallelize the filling of Vulkan * commmand buffers across multiple threads, this allows the Metal command buffers to also * be filled on the same parallel thread. Because each command buffer is filled separately, * this requires that each Vulkan command buffer requires a dedicated Metal command buffer. * - * If disabled, a single Metal command buffer will be created and filled when the Vulkan - * command buffers are submitted to the Vulkan queue. This allows a single Metal command - * buffer to be used for all of the Vulkan command buffers in a queue submission. The - * Metal command buffer is filled on the thread that processes the command queue submission. + * See the definition of the MVKPrefillMetalCommandBuffersStyle enumeration above for + * descriptions of the various values that can be used for this setting. The differences + * are primarily distinguished by how memory recovery is handled for autoreleased Metal + * objects that are created under the covers as the commands added to the Vulkan command + * buffer are encoded into the corresponding Metal command buffer. You can decide whether + * your app will recover all autoreleased Metal objects, or how agressively MoltenVK should + * recover autoreleased Metal objects, based on your multi-threaded command buffer filling policy. * * Depending on the nature of your application, you may find performance is improved by filling * the Metal command buffers on parallel threads, or you may find that performance is improved by @@ -243,14 +262,15 @@ typedef struct { * The value of this parameter may be changed at any time during application runtime, * and the changed value will immediately effect subsequent MoltenVK behaviour. * Specifically, this parameter can be enabled when filling some command buffers, - * and disabled when filling others. + * and disabled when later filling others. * * The initial value or this parameter is set by the * MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS * runtime environment variable or MoltenVK compile-time build setting. - * If neither is set, the value of this parameter defaults to false. + * If neither is set, the value of this parameter defaults to + * MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_PREFILL. */ - VkBool32 prefillMetalCommandBuffers; + MVKPrefillMetalCommandBuffersStyle prefillMetalCommandBuffers; /** * The maximum number of Metal command buffers that can be concurrently active per Vulkan queue. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h index c5fb69143..ae296ee4a 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h +++ b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h @@ -96,16 +96,16 @@ class MVKCommandBuffer : public MVKDispatchableVulkanAPIObject, void addCommand(MVKCommand* command); /** Returns the number of commands currently in this command buffer. */ - inline uint32_t getCommandCount() { return _commandCount; } + uint32_t getCommandCount() { return _commandCount; } /** Returns the command pool backing this command buffer. */ - inline MVKCommandPool* getCommandPool() { return _commandPool; } + MVKCommandPool* getCommandPool() { return _commandPool; } /** Submit the commands in this buffer as part of the queue submission. */ void submit(MVKQueueCommandBufferSubmission* cmdBuffSubmit, MVKCommandEncodingContext* pEncodingContext); /** Returns whether this command buffer can be submitted to a queue more than once. */ - inline bool getIsReusable() { return _isReusable; } + bool getIsReusable() { return _isReusable; } /** * Metal requires that a visibility buffer is established when a render pass is created, @@ -159,13 +159,13 @@ class MVKCommandBuffer : public MVKDispatchableVulkanAPIObject, * Returns a reference to this object suitable for use as a Vulkan API handle. * This is the compliment of the getMVKCommandBuffer() method. */ - inline VkCommandBuffer getVkCommandBuffer() { return (VkCommandBuffer)getVkHandle(); } + VkCommandBuffer getVkCommandBuffer() { return (VkCommandBuffer)getVkHandle(); } /** * Retrieves the MVKCommandBuffer instance referenced by the VkCommandBuffer handle. * This is the compliment of the getVkCommandBuffer() method. */ - static inline MVKCommandBuffer* getMVKCommandBuffer(VkCommandBuffer vkCommandBuffer) { + static MVKCommandBuffer* getMVKCommandBuffer(VkCommandBuffer vkCommandBuffer) { return (MVKCommandBuffer*)getDispatchableObject(vkCommandBuffer); } @@ -177,8 +177,6 @@ class MVKCommandBuffer : public MVKDispatchableVulkanAPIObject, void propagateDebugName() override {} void init(const VkCommandBufferAllocateInfo* pAllocateInfo); bool canExecute(); - bool canPrefill(); - void prefill(); void clearPrefilledMTLCommandBuffer(); void releaseCommands(MVKCommand* command); void releaseRecordedCommands(); @@ -471,18 +469,22 @@ class MVKCommandEncoder : public MVKBaseDeviceObject { #pragma mark Construction - MVKCommandEncoder(MVKCommandBuffer* cmdBuffer); + MVKCommandEncoder(MVKCommandBuffer* cmdBuffer, + MVKPrefillMetalCommandBuffersStyle prefillStyle = MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_PREFILL); + + ~MVKCommandEncoder() override; protected: void addActivatedQueries(MVKQueryPool* pQueryPool, uint32_t query, uint32_t queryCount); void finishQueries(); void setSubpass(MVKCommand* passCmd, VkSubpassContents subpassContents, uint32_t subpassIndex); void clearRenderArea(); - NSString* getMTLRenderCommandEncoderName(MVKCommandUse cmdUse); + void encodeCommandsImpl(MVKCommand* command); void encodeGPUCounterSample(MVKGPUCounterQueryPool* mvkQryPool, uint32_t sampleIndex, MVKCounterSamplingFlags samplingPoints); void encodeTimestampStageCounterSamples(); id getStageCountersMTLFence(); MVKArrayRef getCustomSamplePositions(); + NSString* getMTLRenderCommandEncoderName(MVKCommandUse cmdUse); typedef struct GPUCounterQuery { MVKGPUCounterQueryPool* queryPool = nullptr; @@ -506,12 +508,14 @@ class MVKCommandEncoder : public MVKBaseDeviceObject { MVKPushConstantsCommandEncoderState _fragmentPushConstants; MVKPushConstantsCommandEncoderState _computePushConstants; MVKOcclusionQueryCommandEncoderState _occlusionQueryState; + NSAutoreleasePool* _prefillAutoreleasePool; + MVKPrefillMetalCommandBuffersStyle _prefillStyle; VkSubpassContents _subpassContents; - MVKCommandUse _mtlComputeEncoderUse; - MVKCommandUse _mtlBlitEncoderUse; uint32_t _renderSubpassIndex; uint32_t _multiviewPassIndex; - uint32_t _flushCount = 0; + uint32_t _flushCount; + MVKCommandUse _mtlComputeEncoderUse; + MVKCommandUse _mtlBlitEncoderUse; bool _isRenderingEntireAttachment; }; diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm index 0f4c5f530..714bb5ceb 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm @@ -95,18 +95,13 @@ } } - if(canPrefill()) { - @autoreleasepool { - uint32_t qIdx = 0; - _prefilledMTLCmdBuffer = _commandPool->newMTLCommandBuffer(qIdx); // retain - - _immediateCmdEncodingContext = new MVKCommandEncodingContext; - - _immediateCmdEncoder = new MVKCommandEncoder(this); - _immediateCmdEncoder->beginEncoding(_prefilledMTLCmdBuffer, _immediateCmdEncodingContext); - } + if(_device->shouldPrefillMTLCommandBuffers() && !(_isSecondary || _supportsConcurrentExecution)) { + _prefilledMTLCmdBuffer = _commandPool->newMTLCommandBuffer(0); // retain + _immediateCmdEncodingContext = new MVKCommandEncodingContext; + _immediateCmdEncoder = new MVKCommandEncoder(this, mvkConfig().prefillMetalCommandBuffers); + _immediateCmdEncoder->beginEncoding(_prefilledMTLCmdBuffer, _immediateCmdEncodingContext); } - + return getConfigurationResult(); } @@ -177,7 +172,6 @@ if(_immediateCmdEncoder) { _immediateCmdEncoder->encodeCommands(command); - if( !_isReusable ) { releaseCommands(command); return; @@ -225,11 +219,6 @@ return true; } -bool MVKCommandBuffer::canPrefill() { - bool wantPrefill = _device->shouldPrefillMTLCommandBuffers(); - return wantPrefill && !(_isSecondary || _supportsConcurrentExecution); -} - void MVKCommandBuffer::clearPrefilledMTLCommandBuffer() { // Metal command buffers do not return to their pool on release, nor do they support the @@ -333,7 +322,18 @@ setLabelIfNotNil(_mtlCmdBuffer, _cmdBuffer->_debugName); } +// Multithread autorelease prefill style uses a dedicated autorelease pool when encoding each command. void MVKCommandEncoder::encodeCommands(MVKCommand* command) { + if (_prefillStyle == MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_MULTI_THREAD_AUTORELEASE) { + @autoreleasepool { + encodeCommandsImpl(command); + } + } else { + encodeCommandsImpl(command); + } +} + +void MVKCommandEncoder::encodeCommandsImpl(MVKCommand* command) { while(command) { uint32_t prevMVPassIdx = _multiviewPassIndex; command->encode(this); @@ -466,6 +466,16 @@ _dynamicSamplePositions.assign(dynamicSamplePositions.begin(), dynamicSamplePositions.end()); } +// Retain encoders when prefilling, because prefilling may span multiple autorelease pools. +#define retainIfPrefilling(mtlEncIVar) \ + if (_prefillStyle) { [mtlEncIVar retain]; } + +#define endMetalEncoding(mtlEncIVar) \ + [mtlEncIVar endEncoding]; \ + if (_prefillStyle) { [mtlEncIVar release]; } \ + mtlEncIVar = nil + + // Creates _mtlRenderEncoder and marks cached render state as dirty so it will be set into the _mtlRenderEncoder. void MVKCommandEncoder::beginMetalRenderPass(MVKCommandUse cmdUse) { @@ -525,7 +535,8 @@ [mtlRPDesc setSamplePositions: cstmSampPosns.data count: cstmSampPosns.size]; } - _mtlRenderEncoder = [_mtlCmdBuffer renderCommandEncoderWithDescriptor: mtlRPDesc]; // not retained + _mtlRenderEncoder = [_mtlCmdBuffer renderCommandEncoderWithDescriptor: mtlRPDesc]; + retainIfPrefilling(_mtlRenderEncoder); setLabelIfNotNil(_mtlRenderEncoder, getMTLRenderCommandEncoderName(cmdUse)); // We shouldn't clear the render area if we are restarting the Metal renderpass @@ -748,8 +759,7 @@ if (_mtlRenderEncoder == nil) { return; } if (_cmdBuffer->_hasStageCounterTimestampCommand) { [_mtlRenderEncoder updateFence: getStageCountersMTLFence() afterStages: MTLRenderStageFragment]; } - [_mtlRenderEncoder endEncoding]; - _mtlRenderEncoder = nil; // not retained + endMetalEncoding(_mtlRenderEncoder); getSubpass()->resolveUnresolvableAttachments(this, _attachments.contents()); @@ -776,13 +786,11 @@ _computePushConstants.markDirty(); if (_mtlComputeEncoder && _cmdBuffer->_hasStageCounterTimestampCommand) { [_mtlComputeEncoder updateFence: getStageCountersMTLFence()]; } - [_mtlComputeEncoder endEncoding]; - _mtlComputeEncoder = nil; // not retained + endMetalEncoding(_mtlComputeEncoder); _mtlComputeEncoderUse = kMVKCommandUseNone; if (_mtlBlitEncoder && _cmdBuffer->_hasStageCounterTimestampCommand) { [_mtlBlitEncoder updateFence: getStageCountersMTLFence()]; } - [_mtlBlitEncoder endEncoding]; - _mtlBlitEncoder = nil; // not retained + endMetalEncoding(_mtlBlitEncoder); _mtlBlitEncoderUse = kMVKCommandUseNone; encodeTimestampStageCounterSamples(); @@ -791,7 +799,8 @@ id MVKCommandEncoder::getMTLComputeEncoder(MVKCommandUse cmdUse) { if ( !_mtlComputeEncoder ) { endCurrentMetalEncoding(); - _mtlComputeEncoder = [_mtlCmdBuffer computeCommandEncoder]; // not retained + _mtlComputeEncoder = [_mtlCmdBuffer computeCommandEncoder]; + retainIfPrefilling(_mtlComputeEncoder); beginMetalComputeEncoding(cmdUse); } if (_mtlComputeEncoderUse != cmdUse) { @@ -804,7 +813,8 @@ id MVKCommandEncoder::getMTLBlitEncoder(MVKCommandUse cmdUse) { if ( !_mtlBlitEncoder ) { endCurrentMetalEncoding(); - _mtlBlitEncoder = [_mtlCmdBuffer blitCommandEncoder]; // not retained + _mtlBlitEncoder = [_mtlCmdBuffer blitCommandEncoder]; + retainIfPrefilling(_mtlBlitEncoder); } if (_mtlBlitEncoderUse != cmdUse) { _mtlBlitEncoderUse = cmdUse; @@ -978,7 +988,7 @@ // in Xcode 13 as inaccurate for all platforms. Leave this value at 1 until we can figure out how to // accurately determine the length of sampleBufferAttachments on each platform. uint32_t maxMTLBlitPassSampleBuffers = 1; // Was MTLMaxBlitPassSampleBuffers API definition - auto* bpDesc = [[[MTLBlitPassDescriptor alloc] init] autorelease]; + auto* bpDesc = [MTLBlitPassDescriptor new]; // temp retained for (uint32_t attIdx = 0; attIdx < maxMTLBlitPassSampleBuffers && qIdx < qCnt; attIdx++, qIdx++) { auto* sbAttDesc = bpDesc.sampleBufferAttachments[attIdx]; auto& tsQry = _timestampStageCounterQueries[qIdx]; @@ -993,6 +1003,7 @@ auto* mtlEnc = [_mtlCmdBuffer blitCommandEncoderWithDescriptor: bpDesc]; setLabelIfNotNil(mtlEnc, mvkMTLBlitCommandEncoderLabel(kMVKCommandUseRecordGPUCounterSample)); + [bpDesc release]; // Release temp object [mtlEnc waitForFence: getStageCountersMTLFence()]; [mtlEnc fillBuffer: _device->getDummyBlitMTLBuffer() range: NSMakeRange(0, 1) value: 0]; [mtlEnc endEncoding]; @@ -1046,7 +1057,8 @@ #pragma mark Construction -MVKCommandEncoder::MVKCommandEncoder(MVKCommandBuffer* cmdBuffer) : MVKBaseDeviceObject(cmdBuffer->getDevice()), +MVKCommandEncoder::MVKCommandEncoder(MVKCommandBuffer* cmdBuffer, + MVKPrefillMetalCommandBuffersStyle prefillStyle) : MVKBaseDeviceObject(cmdBuffer->getDevice()), _cmdBuffer(cmdBuffer), _graphicsPipelineState(this), _computePipelineState(this), @@ -1063,8 +1075,11 @@ _tessEvalPushConstants(this, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT), _fragmentPushConstants(this, VK_SHADER_STAGE_FRAGMENT_BIT), _computePushConstants(this, VK_SHADER_STAGE_COMPUTE_BIT), - _occlusionQueryState(this) { + _occlusionQueryState(this), + _prefillStyle(prefillStyle){ + _prefillAutoreleasePool = (_prefillStyle == MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_SINGLE_THREAD_AUTORELEASE + ? [NSAutoreleasePool new] : nil); // retained _pDeviceFeatures = &_device->_enabledFeatures; _pDeviceMetalFeatures = _device->_pMetalFeatures; _pDeviceProperties = _device->_pProperties; @@ -1078,6 +1093,15 @@ _mtlBlitEncoderUse = kMVKCommandUseNone; _pEncodingContext = nullptr; _stageCountersMTLFence = nil; + _flushCount = 0; +} + +MVKCommandEncoder::~MVKCommandEncoder() { + [_prefillAutoreleasePool release]; + [_mtlRenderEncoder release]; + [_mtlComputeEncoder release]; + [_mtlBlitEncoder release]; + // _stageCountersMTLFence is released after Metal command buffer completion } diff --git a/MoltenVK/MoltenVK/Utility/MVKBaseObject.mm b/MoltenVK/MoltenVK/Utility/MVKBaseObject.mm index 7d6806750..2df4ab203 100644 --- a/MoltenVK/MoltenVK/Utility/MVKBaseObject.mm +++ b/MoltenVK/MoltenVK/Utility/MVKBaseObject.mm @@ -100,7 +100,7 @@ va_end(origArgs); // Log the message to the standard error stream - if (shouldLog) { fprintf(stderr, "[%s] %s\n", getReportingLevelString(logLevel), pMessage); } + if (shouldLog) { fprintf(stdout, "[%s] %s\n", getReportingLevelString(logLevel), pMessage); } // Broadcast the message to any Vulkan debug report callbacks if (hasDebugCallbacks) { mvkInst->debugReportMessage(mvkAPIObj, logLevel, pMessage); } diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp b/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp index c3a8805cc..255fb0543 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp @@ -30,7 +30,7 @@ static void mvkInitConfigFromEnvVars() { MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.debugMode, MVK_DEBUG); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.shaderConversionFlipVertexY, MVK_CONFIG_SHADER_CONVERSION_FLIP_VERTEX_Y); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.synchronousQueueSubmits, MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS); - MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.prefillMetalCommandBuffers, MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS); + MVK_SET_FROM_ENV_OR_BUILD_INT32 (evCfg.prefillMetalCommandBuffers, MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS); MVK_SET_FROM_ENV_OR_BUILD_INT32 (evCfg.maxActiveMetalCommandBuffersPerQueue, MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.supportLargeQueryPools, MVK_CONFIG_SUPPORT_LARGE_QUERY_POOLS); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.presentWithCommandBuffer, MVK_CONFIG_PRESENT_WITH_COMMAND_BUFFER); diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h index 06abb1702..f7b36ff5f 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h @@ -105,9 +105,9 @@ void mvkSetConfig(const MVKConfiguration& mvkConfig); # define MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS mvkOSVersionIsAtLeast(MVK_CONFIG_MTLEVENT_MIN_OS) #endif -/** Fill a Metal command buffers when each Vulkan command buffer is filled. */ +/** Fill a Metal command buffer when each Vulkan command buffer is filled. */ #ifndef MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS -# define MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS 0 +# define MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_PREFILL #endif /** From e061e5ebf8d4d55d3be15a6a078b1a1ccbf036a0 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 17 Oct 2022 16:05:43 -0400 Subject: [PATCH 12/72] Update dependency libraries to match Vulkan SDK 1.3.231. --- Docs/Whats_New.md | 14 +- .../project.pbxproj | 6780 +++++++++-------- ExternalRevisions/SPIRV-Cross_repo_revision | 2 +- .../Vulkan-Headers_repo_revision | 2 +- ExternalRevisions/Vulkan-Tools_repo_revision | 2 +- ExternalRevisions/glslang_repo_revision | 2 +- Templates/spirv-tools/build.zip | Bin 50510 -> 51272 bytes 7 files changed, 3475 insertions(+), 3327 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 98106d967..1801aaa6d 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -16,7 +16,7 @@ Copyright (c) 2015-2022 [The Brenwill Workshop Ltd.](http://www.brenwill.com) MoltenVK 1.2.0 -------------- -Released TBD +Released 2022/10/17 - Add support for _Vulkan 1.2_. - Add support for extensions: @@ -29,7 +29,9 @@ Released TBD - Support config option to automatically use Metal argument buffers when `VK_EXT_descriptor_indexing` extension is enabled. `MVKConfiguration::useMetalArgumentBuffers` (`MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS`) is now an enum field. The use of Metal argument buffers is still disabled by default (`MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS_NEVER`). +- `MVKPipeline`: Add builtins that are read but not written to tessellation pipelines. - Fix occassional crash from retention of `MVKSwapchain` for future drawable presentations. +- Fix crash in `vkCreateSwapchainKHR()` on macOS 10.14 and earlier - Fix undefined reference to `vkGetBufferDeviceAddressEXT` when building with `MVK_HIDE_VULKAN_SYMBOLS=1`. - Update `Makefile` to forward any build setting declared on the command line to Xcode. - Add _**non-functional** Vulkan 1.3_ core function **_stubs_**, to avoid link errors with some external @@ -37,6 +39,16 @@ Released TBD - Add `MVK_USE_CEREAL` build setting to avoid use of Cereal external library (for pipeline caching). - `MoltenVKShaderConverter` tool automatically maps bindings when converting _GLSL_. - Update `VK_MVK_MOLTENVK_SPEC_VERSION` to version `36`. +- Update to latest SPIRV-Cross: + - MSL: Support `OpPtrEqual`, `OpPtrNotEqual`, and `OpPtrDiff`. + - MSL: Emit correct address space when casting during `OpStore`. + - MSL: Add a mechanism to fix up shader outputs. + - MSL: Handle descriptor aliasing of raw buffer descriptors. + - MSL: Do not attempt to alias push constants. + - MSL: only fix up `gl_FragCoord` if really necessary. + - MSL: Expose way to query if a buffer needs array length. + - MSL: Report unsupported 64-bit atomics. + - Don't rename remapped variables like `gl_LastFragDepthARM` diff --git a/ExternalDependencies.xcodeproj/project.pbxproj b/ExternalDependencies.xcodeproj/project.pbxproj index 4b29b10e6..20d088366 100644 --- a/ExternalDependencies.xcodeproj/project.pbxproj +++ b/ExternalDependencies.xcodeproj/project.pbxproj @@ -85,1227 +85,6 @@ 450A4F66221C5A95007203D7 /* spirv_reflect.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 450A4F63221C5A95007203D7 /* spirv_reflect.hpp */; }; 450A4F67221C5A95007203D7 /* spirv_reflect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 450A4F64221C5A95007203D7 /* spirv_reflect.cpp */; }; 450A4F68221C5A95007203D7 /* spirv_reflect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 450A4F64221C5A95007203D7 /* spirv_reflect.cpp */; }; - A926B7B327AC718900144157 /* spirv_target_env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B47F27AC718800144157 /* spirv_target_env.cpp */; }; - A926B7B427AC718900144157 /* spirv_target_env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B47F27AC718800144157 /* spirv_target_env.cpp */; }; - A926B7B527AC718900144157 /* spirv_target_env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B47F27AC718800144157 /* spirv_target_env.cpp */; }; - A926B7B627AC718900144157 /* spirv_fuzzer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48027AC718800144157 /* spirv_fuzzer_options.h */; }; - A926B7B727AC718900144157 /* spirv_fuzzer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48027AC718800144157 /* spirv_fuzzer_options.h */; }; - A926B7B827AC718900144157 /* spirv_fuzzer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48027AC718800144157 /* spirv_fuzzer_options.h */; }; - A926B7B927AC718900144157 /* assembly_grammar.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48127AC718800144157 /* assembly_grammar.h */; }; - A926B7BA27AC718900144157 /* assembly_grammar.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48127AC718800144157 /* assembly_grammar.h */; }; - A926B7BB27AC718900144157 /* assembly_grammar.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48127AC718800144157 /* assembly_grammar.h */; }; - A926B7BC27AC718900144157 /* lint_divergent_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48427AC718800144157 /* lint_divergent_derivatives.cpp */; }; - A926B7BD27AC718900144157 /* lint_divergent_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48427AC718800144157 /* lint_divergent_derivatives.cpp */; }; - A926B7BE27AC718900144157 /* lint_divergent_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48427AC718800144157 /* lint_divergent_derivatives.cpp */; }; - A926B7BF27AC718900144157 /* linter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48527AC718800144157 /* linter.cpp */; }; - A926B7C027AC718900144157 /* linter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48527AC718800144157 /* linter.cpp */; }; - A926B7C127AC718900144157 /* linter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48527AC718800144157 /* linter.cpp */; }; - A926B7C227AC718900144157 /* divergence_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48627AC718800144157 /* divergence_analysis.cpp */; }; - A926B7C327AC718900144157 /* divergence_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48627AC718800144157 /* divergence_analysis.cpp */; }; - A926B7C427AC718900144157 /* divergence_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48627AC718800144157 /* divergence_analysis.cpp */; }; - A926B7C527AC718900144157 /* lints.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48727AC718800144157 /* lints.h */; }; - A926B7C627AC718900144157 /* lints.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48727AC718800144157 /* lints.h */; }; - A926B7C727AC718900144157 /* lints.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48727AC718800144157 /* lints.h */; }; - A926B7C827AC718900144157 /* divergence_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48827AC718800144157 /* divergence_analysis.h */; }; - A926B7C927AC718900144157 /* divergence_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48827AC718800144157 /* divergence_analysis.h */; }; - A926B7CA27AC718900144157 /* divergence_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48827AC718800144157 /* divergence_analysis.h */; }; - A926B7CB27AC718900144157 /* enum_set.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48927AC718800144157 /* enum_set.h */; }; - A926B7CC27AC718900144157 /* enum_set.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48927AC718800144157 /* enum_set.h */; }; - A926B7CD27AC718900144157 /* enum_set.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48927AC718800144157 /* enum_set.h */; }; - A926B7CE27AC718900144157 /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48B27AC718800144157 /* text.cpp */; }; - A926B7CF27AC718900144157 /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48B27AC718800144157 /* text.cpp */; }; - A926B7D027AC718900144157 /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48B27AC718800144157 /* text.cpp */; }; - A926B7D127AC718900144157 /* assembly_grammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48C27AC718800144157 /* assembly_grammar.cpp */; }; - A926B7D227AC718900144157 /* assembly_grammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48C27AC718800144157 /* assembly_grammar.cpp */; }; - A926B7D327AC718900144157 /* assembly_grammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48C27AC718800144157 /* assembly_grammar.cpp */; }; - A926B7D427AC718900144157 /* text.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48D27AC718800144157 /* text.h */; }; - A926B7D527AC718900144157 /* text.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48D27AC718800144157 /* text.h */; }; - A926B7D627AC718900144157 /* text.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B48D27AC718800144157 /* text.h */; }; - A926B7D727AC718900144157 /* extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48E27AC718800144157 /* extensions.cpp */; }; - A926B7D827AC718900144157 /* extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48E27AC718800144157 /* extensions.cpp */; }; - A926B7D927AC718900144157 /* extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48E27AC718800144157 /* extensions.cpp */; }; - A926B7DA27AC718900144157 /* pch_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48F27AC718800144157 /* pch_source.cpp */; }; - A926B7DB27AC718900144157 /* pch_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48F27AC718800144157 /* pch_source.cpp */; }; - A926B7DC27AC718900144157 /* pch_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B48F27AC718800144157 /* pch_source.cpp */; }; - A926B7DD27AC718900144157 /* parse_number.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49127AC718800144157 /* parse_number.h */; }; - A926B7DE27AC718900144157 /* parse_number.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49127AC718800144157 /* parse_number.h */; }; - A926B7DF27AC718900144157 /* parse_number.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49127AC718800144157 /* parse_number.h */; }; - A926B7E027AC718900144157 /* ilist_node.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49227AC718800144157 /* ilist_node.h */; }; - A926B7E127AC718900144157 /* ilist_node.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49227AC718800144157 /* ilist_node.h */; }; - A926B7E227AC718900144157 /* ilist_node.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49227AC718800144157 /* ilist_node.h */; }; - A926B7E327AC718900144157 /* make_unique.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49327AC718800144157 /* make_unique.h */; }; - A926B7E427AC718900144157 /* make_unique.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49327AC718800144157 /* make_unique.h */; }; - A926B7E527AC718900144157 /* make_unique.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49327AC718800144157 /* make_unique.h */; }; - A926B7E627AC718900144157 /* string_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49427AC718800144157 /* string_utils.h */; }; - A926B7E727AC718900144157 /* string_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49427AC718800144157 /* string_utils.h */; }; - A926B7E827AC718900144157 /* string_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49427AC718800144157 /* string_utils.h */; }; - A926B7E927AC718900144157 /* small_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49527AC718800144157 /* small_vector.h */; }; - A926B7EA27AC718900144157 /* small_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49527AC718800144157 /* small_vector.h */; }; - A926B7EB27AC718900144157 /* small_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49527AC718800144157 /* small_vector.h */; }; - A926B7EC27AC718900144157 /* timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B49627AC718800144157 /* timer.cpp */; }; - A926B7ED27AC718900144157 /* timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B49627AC718800144157 /* timer.cpp */; }; - A926B7EE27AC718900144157 /* timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B49627AC718800144157 /* timer.cpp */; }; - A926B7EF27AC718900144157 /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49727AC718800144157 /* timer.h */; }; - A926B7F027AC718900144157 /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49727AC718800144157 /* timer.h */; }; - A926B7F127AC718900144157 /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49727AC718800144157 /* timer.h */; }; - A926B7F227AC718900144157 /* string_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B49827AC718800144157 /* string_utils.cpp */; }; - A926B7F327AC718900144157 /* string_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B49827AC718800144157 /* string_utils.cpp */; }; - A926B7F427AC718900144157 /* string_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B49827AC718800144157 /* string_utils.cpp */; }; - A926B7F527AC718900144157 /* bit_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49927AC718800144157 /* bit_vector.h */; }; - A926B7F627AC718900144157 /* bit_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49927AC718800144157 /* bit_vector.h */; }; - A926B7F727AC718900144157 /* bit_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49927AC718800144157 /* bit_vector.h */; }; - A926B7F827AC718900144157 /* bitutils.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49A27AC718800144157 /* bitutils.h */; }; - A926B7F927AC718900144157 /* bitutils.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49A27AC718800144157 /* bitutils.h */; }; - A926B7FA27AC718900144157 /* bitutils.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49A27AC718800144157 /* bitutils.h */; }; - A926B7FB27AC718900144157 /* hex_float.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49B27AC718800144157 /* hex_float.h */; }; - A926B7FC27AC718900144157 /* hex_float.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49B27AC718800144157 /* hex_float.h */; }; - A926B7FD27AC718900144157 /* hex_float.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49B27AC718800144157 /* hex_float.h */; }; - A926B7FE27AC718900144157 /* parse_number.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B49C27AC718800144157 /* parse_number.cpp */; }; - A926B7FF27AC718900144157 /* parse_number.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B49C27AC718800144157 /* parse_number.cpp */; }; - A926B80027AC718900144157 /* parse_number.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B49C27AC718800144157 /* parse_number.cpp */; }; - A926B80127AC718900144157 /* bit_vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B49D27AC718800144157 /* bit_vector.cpp */; }; - A926B80227AC718900144157 /* bit_vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B49D27AC718800144157 /* bit_vector.cpp */; }; - A926B80327AC718900144157 /* bit_vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B49D27AC718800144157 /* bit_vector.cpp */; }; - A926B80427AC718900144157 /* ilist.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49E27AC718800144157 /* ilist.h */; }; - A926B80527AC718900144157 /* ilist.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49E27AC718800144157 /* ilist.h */; }; - A926B80627AC718900144157 /* ilist.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49E27AC718800144157 /* ilist.h */; }; - A926B80727AC718900144157 /* spirv_target_env.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49F27AC718800144157 /* spirv_target_env.h */; }; - A926B80827AC718900144157 /* spirv_target_env.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49F27AC718800144157 /* spirv_target_env.h */; }; - A926B80927AC718900144157 /* spirv_target_env.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B49F27AC718800144157 /* spirv_target_env.h */; }; - A926B80A27AC718900144157 /* table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4A027AC718800144157 /* table.cpp */; }; - A926B80B27AC718900144157 /* table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4A027AC718800144157 /* table.cpp */; }; - A926B80C27AC718900144157 /* table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4A027AC718800144157 /* table.cpp */; }; - A926B80D27AC718900144157 /* operand_to_undef_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A227AC718800144157 /* operand_to_undef_reduction_opportunity_finder.h */; }; - A926B80E27AC718900144157 /* operand_to_undef_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A227AC718800144157 /* operand_to_undef_reduction_opportunity_finder.h */; }; - A926B80F27AC718900144157 /* operand_to_undef_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A227AC718800144157 /* operand_to_undef_reduction_opportunity_finder.h */; }; - A926B81027AC718900144157 /* remove_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4A327AC718800144157 /* remove_selection_reduction_opportunity.cpp */; }; - A926B81127AC718900144157 /* remove_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4A327AC718800144157 /* remove_selection_reduction_opportunity.cpp */; }; - A926B81227AC718900144157 /* remove_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4A327AC718800144157 /* remove_selection_reduction_opportunity.cpp */; }; - A926B81327AC718900144157 /* remove_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A427AC718800144157 /* remove_block_reduction_opportunity.h */; }; - A926B81427AC718900144157 /* remove_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A427AC718800144157 /* remove_block_reduction_opportunity.h */; }; - A926B81527AC718900144157 /* remove_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A427AC718800144157 /* remove_block_reduction_opportunity.h */; }; - A926B81627AC718900144157 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A527AC718800144157 /* operand_to_dominating_id_reduction_opportunity_finder.h */; }; - A926B81727AC718900144157 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A527AC718800144157 /* operand_to_dominating_id_reduction_opportunity_finder.h */; }; - A926B81827AC718900144157 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A527AC718800144157 /* operand_to_dominating_id_reduction_opportunity_finder.h */; }; - A926B81927AC718900144157 /* reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4A627AC718800144157 /* reduction_pass.cpp */; }; - A926B81A27AC718900144157 /* reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4A627AC718800144157 /* reduction_pass.cpp */; }; - A926B81B27AC718900144157 /* reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4A627AC718800144157 /* reduction_pass.cpp */; }; - A926B81C27AC718900144157 /* structured_construct_to_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A727AC718800144157 /* structured_construct_to_block_reduction_opportunity.h */; }; - A926B81D27AC718900144157 /* structured_construct_to_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A727AC718800144157 /* structured_construct_to_block_reduction_opportunity.h */; }; - A926B81E27AC718900144157 /* structured_construct_to_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A727AC718800144157 /* structured_construct_to_block_reduction_opportunity.h */; }; - A926B81F27AC718900144157 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4A827AC718800144157 /* operand_to_const_reduction_opportunity_finder.cpp */; }; - A926B82027AC718900144157 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4A827AC718800144157 /* operand_to_const_reduction_opportunity_finder.cpp */; }; - A926B82127AC718900144157 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4A827AC718800144157 /* operand_to_const_reduction_opportunity_finder.cpp */; }; - A926B82227AC718900144157 /* operand_to_const_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A927AC718800144157 /* operand_to_const_reduction_opportunity_finder.h */; }; - A926B82327AC718900144157 /* operand_to_const_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A927AC718800144157 /* operand_to_const_reduction_opportunity_finder.h */; }; - A926B82427AC718900144157 /* operand_to_const_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4A927AC718800144157 /* operand_to_const_reduction_opportunity_finder.h */; }; - A926B82527AC718900144157 /* reduction_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4AB27AC718800144157 /* reduction_util.cpp */; }; - A926B82627AC718900144157 /* reduction_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4AB27AC718800144157 /* reduction_util.cpp */; }; - A926B82727AC718900144157 /* reduction_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4AB27AC718800144157 /* reduction_util.cpp */; }; - A926B82827AC718900144157 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4AC27AC718800144157 /* structured_construct_to_block_reduction_opportunity_finder.h */; }; - A926B82927AC718900144157 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4AC27AC718800144157 /* structured_construct_to_block_reduction_opportunity_finder.h */; }; - A926B82A27AC718900144157 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4AC27AC718800144157 /* structured_construct_to_block_reduction_opportunity_finder.h */; }; - A926B82B27AC718900144157 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4AD27AC718800144157 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */; }; - A926B82C27AC718900144157 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4AD27AC718800144157 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */; }; - A926B82D27AC718900144157 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4AD27AC718800144157 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */; }; - A926B82E27AC718900144157 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4AE27AC718800144157 /* simple_conditional_branch_to_branch_reduction_opportunity.h */; }; - A926B82F27AC718900144157 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4AE27AC718800144157 /* simple_conditional_branch_to_branch_reduction_opportunity.h */; }; - A926B83027AC718900144157 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4AE27AC718800144157 /* simple_conditional_branch_to_branch_reduction_opportunity.h */; }; - A926B83127AC718900144157 /* remove_function_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4AF27AC718800144157 /* remove_function_reduction_opportunity_finder.cpp */; }; - A926B83227AC718900144157 /* remove_function_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4AF27AC718800144157 /* remove_function_reduction_opportunity_finder.cpp */; }; - A926B83327AC718900144157 /* remove_function_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4AF27AC718800144157 /* remove_function_reduction_opportunity_finder.cpp */; }; - A926B83427AC718900144157 /* remove_instruction_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4B027AC718800144157 /* remove_instruction_reduction_opportunity.h */; }; - A926B83527AC718900144157 /* remove_instruction_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4B027AC718800144157 /* remove_instruction_reduction_opportunity.h */; }; - A926B83627AC718900144157 /* remove_instruction_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4B027AC718800144157 /* remove_instruction_reduction_opportunity.h */; }; - A926B83727AC718900144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4B127AC718800144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */; }; - A926B83827AC718900144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4B127AC718800144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */; }; - A926B83927AC718900144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4B127AC718800144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */; }; - A926B83A27AC718900144157 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B227AC718800144157 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */; }; - A926B83B27AC718900144157 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B227AC718800144157 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */; }; - A926B83C27AC718900144157 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B227AC718800144157 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */; }; - A926B83D27AC718900144157 /* remove_function_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B327AC718800144157 /* remove_function_reduction_opportunity.cpp */; }; - A926B83E27AC718900144157 /* remove_function_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B327AC718800144157 /* remove_function_reduction_opportunity.cpp */; }; - A926B83F27AC718900144157 /* remove_function_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B327AC718800144157 /* remove_function_reduction_opportunity.cpp */; }; - A926B84027AC718900144157 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B427AC718800144157 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */; }; - A926B84127AC718900144157 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B427AC718800144157 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */; }; - A926B84227AC718900144157 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B427AC718800144157 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */; }; - A926B84327AC718900144157 /* remove_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B527AC718800144157 /* remove_selection_reduction_opportunity_finder.cpp */; }; - A926B84427AC718900144157 /* remove_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B527AC718800144157 /* remove_selection_reduction_opportunity_finder.cpp */; }; - A926B84527AC718900144157 /* remove_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B527AC718800144157 /* remove_selection_reduction_opportunity_finder.cpp */; }; - A926B84627AC718900144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B627AC718800144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */; }; - A926B84727AC718900144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B627AC718800144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */; }; - A926B84827AC718900144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B627AC718800144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */; }; - A926B84927AC718900144157 /* remove_struct_member_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4B727AC718800144157 /* remove_struct_member_reduction_opportunity.h */; }; - A926B84A27AC718900144157 /* remove_struct_member_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4B727AC718800144157 /* remove_struct_member_reduction_opportunity.h */; }; - A926B84B27AC718900144157 /* remove_struct_member_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4B727AC718800144157 /* remove_struct_member_reduction_opportunity.h */; }; - A926B84C27AC718900144157 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4B827AC718800144157 /* simple_conditional_branch_to_branch_opportunity_finder.h */; }; - A926B84D27AC718900144157 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4B827AC718800144157 /* simple_conditional_branch_to_branch_opportunity_finder.h */; }; - A926B84E27AC718900144157 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4B827AC718800144157 /* simple_conditional_branch_to_branch_opportunity_finder.h */; }; - A926B84F27AC718900144157 /* merge_blocks_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B927AC718800144157 /* merge_blocks_reduction_opportunity.cpp */; }; - A926B85027AC718900144157 /* merge_blocks_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B927AC718800144157 /* merge_blocks_reduction_opportunity.cpp */; }; - A926B85127AC718900144157 /* merge_blocks_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4B927AC718800144157 /* merge_blocks_reduction_opportunity.cpp */; }; - A926B85227AC718900144157 /* change_operand_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4BA27AC718800144157 /* change_operand_reduction_opportunity.cpp */; }; - A926B85327AC718900144157 /* change_operand_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4BA27AC718800144157 /* change_operand_reduction_opportunity.cpp */; }; - A926B85427AC718900144157 /* change_operand_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4BA27AC718800144157 /* change_operand_reduction_opportunity.cpp */; }; - A926B85527AC718900144157 /* structured_loop_to_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BB27AC718800144157 /* structured_loop_to_selection_reduction_opportunity.h */; }; - A926B85627AC718900144157 /* structured_loop_to_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BB27AC718800144157 /* structured_loop_to_selection_reduction_opportunity.h */; }; - A926B85727AC718900144157 /* structured_loop_to_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BB27AC718800144157 /* structured_loop_to_selection_reduction_opportunity.h */; }; - A926B85827AC718900144157 /* remove_function_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BC27AC718800144157 /* remove_function_reduction_opportunity.h */; }; - A926B85927AC718900144157 /* remove_function_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BC27AC718800144157 /* remove_function_reduction_opportunity.h */; }; - A926B85A27AC718900144157 /* remove_function_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BC27AC718800144157 /* remove_function_reduction_opportunity.h */; }; - A926B85B27AC718900144157 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BD27AC718800144157 /* remove_unused_instruction_reduction_opportunity_finder.h */; }; - A926B85C27AC718900144157 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BD27AC718800144157 /* remove_unused_instruction_reduction_opportunity_finder.h */; }; - A926B85D27AC718900144157 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BD27AC718800144157 /* remove_unused_instruction_reduction_opportunity_finder.h */; }; - A926B85E27AC718900144157 /* change_operand_to_undef_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BE27AC718800144157 /* change_operand_to_undef_reduction_opportunity.h */; }; - A926B85F27AC718900144157 /* change_operand_to_undef_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BE27AC718800144157 /* change_operand_to_undef_reduction_opportunity.h */; }; - A926B86027AC718900144157 /* change_operand_to_undef_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BE27AC718800144157 /* change_operand_to_undef_reduction_opportunity.h */; }; - A926B86127AC718900144157 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BF27AC718800144157 /* structured_loop_to_selection_reduction_opportunity_finder.h */; }; - A926B86227AC718900144157 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BF27AC718800144157 /* structured_loop_to_selection_reduction_opportunity_finder.h */; }; - A926B86327AC718900144157 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4BF27AC718800144157 /* structured_loop_to_selection_reduction_opportunity_finder.h */; }; - A926B86427AC718900144157 /* remove_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4C027AC718800144157 /* remove_selection_reduction_opportunity.h */; }; - A926B86527AC718900144157 /* remove_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4C027AC718800144157 /* remove_selection_reduction_opportunity.h */; }; - A926B86627AC718900144157 /* remove_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4C027AC718800144157 /* remove_selection_reduction_opportunity.h */; }; - A926B86727AC718900144157 /* remove_instruction_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C127AC718800144157 /* remove_instruction_reduction_opportunity.cpp */; }; - A926B86827AC718900144157 /* remove_instruction_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C127AC718800144157 /* remove_instruction_reduction_opportunity.cpp */; }; - A926B86927AC718900144157 /* remove_instruction_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C127AC718800144157 /* remove_instruction_reduction_opportunity.cpp */; }; - A926B86A27AC718900144157 /* remove_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4C227AC718800144157 /* remove_selection_reduction_opportunity_finder.h */; }; - A926B86B27AC718900144157 /* remove_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4C227AC718800144157 /* remove_selection_reduction_opportunity_finder.h */; }; - A926B86C27AC718900144157 /* remove_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4C227AC718800144157 /* remove_selection_reduction_opportunity_finder.h */; }; - A926B86D27AC718900144157 /* merge_blocks_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4C327AC718800144157 /* merge_blocks_reduction_opportunity_finder.h */; }; - A926B86E27AC718900144157 /* merge_blocks_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4C327AC718800144157 /* merge_blocks_reduction_opportunity_finder.h */; }; - A926B86F27AC718900144157 /* merge_blocks_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4C327AC718800144157 /* merge_blocks_reduction_opportunity_finder.h */; }; - A926B87027AC718900144157 /* pch_source_reduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C427AC718800144157 /* pch_source_reduce.cpp */; }; - A926B87127AC718900144157 /* pch_source_reduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C427AC718800144157 /* pch_source_reduce.cpp */; }; - A926B87227AC718900144157 /* pch_source_reduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C427AC718800144157 /* pch_source_reduce.cpp */; }; - A926B87327AC718900144157 /* remove_struct_member_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C527AC718800144157 /* remove_struct_member_reduction_opportunity.cpp */; }; - A926B87427AC718900144157 /* remove_struct_member_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C527AC718800144157 /* remove_struct_member_reduction_opportunity.cpp */; }; - A926B87527AC718900144157 /* remove_struct_member_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C527AC718800144157 /* remove_struct_member_reduction_opportunity.cpp */; }; - A926B87627AC718900144157 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4C627AC718800144157 /* remove_unused_struct_member_reduction_opportunity_finder.h */; }; - A926B87727AC718900144157 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4C627AC718800144157 /* remove_unused_struct_member_reduction_opportunity_finder.h */; }; - A926B87827AC718900144157 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4C627AC718800144157 /* remove_unused_struct_member_reduction_opportunity_finder.h */; }; - A926B87927AC718900144157 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C727AC718800144157 /* remove_unused_instruction_reduction_opportunity_finder.cpp */; }; - A926B87A27AC718900144157 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C727AC718800144157 /* remove_unused_instruction_reduction_opportunity_finder.cpp */; }; - A926B87B27AC718900144157 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C727AC718800144157 /* remove_unused_instruction_reduction_opportunity_finder.cpp */; }; - A926B87C27AC718900144157 /* reducer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C827AC718800144157 /* reducer.cpp */; }; - A926B87D27AC718900144157 /* reducer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C827AC718800144157 /* reducer.cpp */; }; - A926B87E27AC718900144157 /* reducer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C827AC718800144157 /* reducer.cpp */; }; - A926B87F27AC718900144157 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C927AC718800144157 /* operand_to_undef_reduction_opportunity_finder.cpp */; }; - A926B88027AC718900144157 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C927AC718800144157 /* operand_to_undef_reduction_opportunity_finder.cpp */; }; - A926B88127AC718900144157 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4C927AC718800144157 /* operand_to_undef_reduction_opportunity_finder.cpp */; }; - A926B88227AC718900144157 /* remove_function_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4CA27AC718800144157 /* remove_function_reduction_opportunity_finder.h */; }; - A926B88327AC718900144157 /* remove_function_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4CA27AC718800144157 /* remove_function_reduction_opportunity_finder.h */; }; - A926B88427AC718900144157 /* remove_function_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4CA27AC718800144157 /* remove_function_reduction_opportunity_finder.h */; }; - A926B88527AC718900144157 /* pch_source_reduce.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4CB27AC718800144157 /* pch_source_reduce.h */; }; - A926B88627AC718900144157 /* pch_source_reduce.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4CB27AC718800144157 /* pch_source_reduce.h */; }; - A926B88727AC718900144157 /* pch_source_reduce.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4CB27AC718800144157 /* pch_source_reduce.h */; }; - A926B88827AC718900144157 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4CC27AC718800144157 /* merge_blocks_reduction_opportunity_finder.cpp */; }; - A926B88927AC718900144157 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4CC27AC718800144157 /* merge_blocks_reduction_opportunity_finder.cpp */; }; - A926B88A27AC718900144157 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4CC27AC718800144157 /* merge_blocks_reduction_opportunity_finder.cpp */; }; - A926B88B27AC718900144157 /* reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4CD27AC718800144157 /* reduction_opportunity.cpp */; }; - A926B88C27AC718900144157 /* reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4CD27AC718800144157 /* reduction_opportunity.cpp */; }; - A926B88D27AC718900144157 /* reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4CD27AC718800144157 /* reduction_opportunity.cpp */; }; - A926B88E27AC718900144157 /* reducer.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4CE27AC718800144157 /* reducer.h */; }; - A926B88F27AC718900144157 /* reducer.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4CE27AC718800144157 /* reducer.h */; }; - A926B89027AC718900144157 /* reducer.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4CE27AC718800144157 /* reducer.h */; }; - A926B89127AC718900144157 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4CF27AC718800144157 /* change_operand_to_undef_reduction_opportunity.cpp */; }; - A926B89227AC718900144157 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4CF27AC718800144157 /* change_operand_to_undef_reduction_opportunity.cpp */; }; - A926B89327AC718900144157 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4CF27AC718800144157 /* change_operand_to_undef_reduction_opportunity.cpp */; }; - A926B89427AC718900144157 /* reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D027AC718800144157 /* reduction_opportunity.h */; }; - A926B89527AC718900144157 /* reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D027AC718800144157 /* reduction_opportunity.h */; }; - A926B89627AC718900144157 /* reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D027AC718800144157 /* reduction_opportunity.h */; }; - A926B89727AC718900144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D127AC718800144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */; }; - A926B89827AC718900144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D127AC718800144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */; }; - A926B89927AC718900144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D127AC718800144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */; }; - A926B89A27AC718900144157 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4D227AC718800144157 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */; }; - A926B89B27AC718900144157 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4D227AC718800144157 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */; }; - A926B89C27AC718900144157 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4D227AC718800144157 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */; }; - A926B89D27AC718900144157 /* reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D327AC718800144157 /* reduction_opportunity_finder.h */; }; - A926B89E27AC718900144157 /* reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D327AC718800144157 /* reduction_opportunity_finder.h */; }; - A926B89F27AC718900144157 /* reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D327AC718800144157 /* reduction_opportunity_finder.h */; }; - A926B8A027AC718900144157 /* change_operand_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D427AC718800144157 /* change_operand_reduction_opportunity.h */; }; - A926B8A127AC718900144157 /* change_operand_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D427AC718800144157 /* change_operand_reduction_opportunity.h */; }; - A926B8A227AC718900144157 /* change_operand_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D427AC718800144157 /* change_operand_reduction_opportunity.h */; }; - A926B8A327AC718900144157 /* remove_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D527AC718800144157 /* remove_block_reduction_opportunity_finder.h */; }; - A926B8A427AC718900144157 /* remove_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D527AC718800144157 /* remove_block_reduction_opportunity_finder.h */; }; - A926B8A527AC718900144157 /* remove_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D527AC718800144157 /* remove_block_reduction_opportunity_finder.h */; }; - A926B8A627AC718900144157 /* remove_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4D627AC718800144157 /* remove_block_reduction_opportunity_finder.cpp */; }; - A926B8A727AC718900144157 /* remove_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4D627AC718800144157 /* remove_block_reduction_opportunity_finder.cpp */; }; - A926B8A827AC718900144157 /* remove_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4D627AC718800144157 /* remove_block_reduction_opportunity_finder.cpp */; }; - A926B8A927AC718900144157 /* reduction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D727AC718800144157 /* reduction_util.h */; }; - A926B8AA27AC718900144157 /* reduction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D727AC718800144157 /* reduction_util.h */; }; - A926B8AB27AC718900144157 /* reduction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D727AC718800144157 /* reduction_util.h */; }; - A926B8AC27AC718900144157 /* merge_blocks_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D827AC718800144157 /* merge_blocks_reduction_opportunity.h */; }; - A926B8AD27AC718900144157 /* merge_blocks_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D827AC718800144157 /* merge_blocks_reduction_opportunity.h */; }; - A926B8AE27AC718900144157 /* merge_blocks_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4D827AC718800144157 /* merge_blocks_reduction_opportunity.h */; }; - A926B8AF27AC718900144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4D927AC718800144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */; }; - A926B8B027AC718900144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4D927AC718800144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */; }; - A926B8B127AC718900144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4D927AC718800144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */; }; - A926B8B227AC718900144157 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DA27AC718800144157 /* structured_loop_to_selection_reduction_opportunity.cpp */; }; - A926B8B327AC718900144157 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DA27AC718800144157 /* structured_loop_to_selection_reduction_opportunity.cpp */; }; - A926B8B427AC718900144157 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DA27AC718800144157 /* structured_loop_to_selection_reduction_opportunity.cpp */; }; - A926B8B527AC718900144157 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DB27AC718800144157 /* structured_construct_to_block_reduction_opportunity.cpp */; }; - A926B8B627AC718900144157 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DB27AC718800144157 /* structured_construct_to_block_reduction_opportunity.cpp */; }; - A926B8B727AC718900144157 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DB27AC718800144157 /* structured_construct_to_block_reduction_opportunity.cpp */; }; - A926B8B827AC718900144157 /* remove_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DC27AC718800144157 /* remove_block_reduction_opportunity.cpp */; }; - A926B8B927AC718900144157 /* remove_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DC27AC718800144157 /* remove_block_reduction_opportunity.cpp */; }; - A926B8BA27AC718900144157 /* remove_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DC27AC718800144157 /* remove_block_reduction_opportunity.cpp */; }; - A926B8BB27AC718900144157 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DD27AC718800144157 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */; }; - A926B8BC27AC718900144157 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DD27AC718800144157 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */; }; - A926B8BD27AC718900144157 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DD27AC718800144157 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */; }; - A926B8BE27AC718900144157 /* reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DE27AC718800144157 /* reduction_opportunity_finder.cpp */; }; - A926B8BF27AC718900144157 /* reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DE27AC718800144157 /* reduction_opportunity_finder.cpp */; }; - A926B8C027AC718900144157 /* reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DE27AC718800144157 /* reduction_opportunity_finder.cpp */; }; - A926B8C127AC718900144157 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DF27AC718800144157 /* structured_construct_to_block_reduction_opportunity_finder.cpp */; }; - A926B8C227AC718900144157 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DF27AC718800144157 /* structured_construct_to_block_reduction_opportunity_finder.cpp */; }; - A926B8C327AC718900144157 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4DF27AC718800144157 /* structured_construct_to_block_reduction_opportunity_finder.cpp */; }; - A926B8C427AC718900144157 /* reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E027AC718800144157 /* reduction_pass.h */; }; - A926B8C527AC718900144157 /* reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E027AC718800144157 /* reduction_pass.h */; }; - A926B8C627AC718900144157 /* reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E027AC718800144157 /* reduction_pass.h */; }; - A926B8C727AC718900144157 /* latest_version_opencl_std_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E127AC718800144157 /* latest_version_opencl_std_header.h */; }; - A926B8C827AC718900144157 /* latest_version_opencl_std_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E127AC718800144157 /* latest_version_opencl_std_header.h */; }; - A926B8C927AC718900144157 /* latest_version_opencl_std_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E127AC718800144157 /* latest_version_opencl_std_header.h */; }; - A926B8CA27AC718900144157 /* spirv_optimizer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4E227AC718800144157 /* spirv_optimizer_options.cpp */; }; - A926B8CB27AC718900144157 /* spirv_optimizer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4E227AC718800144157 /* spirv_optimizer_options.cpp */; }; - A926B8CC27AC718900144157 /* spirv_optimizer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4E227AC718800144157 /* spirv_optimizer_options.cpp */; }; - A926B8CD27AC718900144157 /* cfa.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E327AC718800144157 /* cfa.h */; }; - A926B8CE27AC718900144157 /* cfa.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E327AC718800144157 /* cfa.h */; }; - A926B8CF27AC718900144157 /* cfa.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E327AC718800144157 /* cfa.h */; }; - A926B8D027AC718900144157 /* pch_source.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E427AC718800144157 /* pch_source.h */; }; - A926B8D127AC718900144157 /* pch_source.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E427AC718800144157 /* pch_source.h */; }; - A926B8D227AC718900144157 /* pch_source.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E427AC718800144157 /* pch_source.h */; }; - A926B8D327AC718900144157 /* enum_string_mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E527AC718800144157 /* enum_string_mapping.h */; }; - A926B8D427AC718900144157 /* enum_string_mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E527AC718800144157 /* enum_string_mapping.h */; }; - A926B8D527AC718900144157 /* enum_string_mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E527AC718800144157 /* enum_string_mapping.h */; }; - A926B8D627AC718900144157 /* spirv_fuzzer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4E627AC718800144157 /* spirv_fuzzer_options.cpp */; }; - A926B8D727AC718900144157 /* spirv_fuzzer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4E627AC718800144157 /* spirv_fuzzer_options.cpp */; }; - A926B8D827AC718900144157 /* spirv_fuzzer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4E627AC718800144157 /* spirv_fuzzer_options.cpp */; }; - A926B8D927AC718900144157 /* spirv_reducer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E727AC718800144157 /* spirv_reducer_options.h */; }; - A926B8DA27AC718900144157 /* spirv_reducer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E727AC718800144157 /* spirv_reducer_options.h */; }; - A926B8DB27AC718900144157 /* spirv_reducer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4E727AC718800144157 /* spirv_reducer_options.h */; }; - A926B8DC27AC718900144157 /* spirv_validator_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4E827AC718800144157 /* spirv_validator_options.cpp */; }; - A926B8DD27AC718900144157 /* spirv_validator_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4E827AC718800144157 /* spirv_validator_options.cpp */; }; - A926B8DE27AC718900144157 /* spirv_validator_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4E827AC718800144157 /* spirv_validator_options.cpp */; }; - A926B8E227AC718900144157 /* print.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4EF27AC718800144157 /* print.cpp */; }; - A926B8E327AC718900144157 /* print.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4EF27AC718800144157 /* print.cpp */; }; - A926B8E427AC718900144157 /* print.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4EF27AC718800144157 /* print.cpp */; }; - A926B8E527AC718900144157 /* spirv_definition.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F027AC718800144157 /* spirv_definition.h */; }; - A926B8E627AC718900144157 /* spirv_definition.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F027AC718800144157 /* spirv_definition.h */; }; - A926B8E727AC718900144157 /* spirv_definition.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F027AC718800144157 /* spirv_definition.h */; }; - A926B8E827AC718900144157 /* operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F127AC718800144157 /* operand.h */; }; - A926B8E927AC718900144157 /* operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F127AC718800144157 /* operand.h */; }; - A926B8EA27AC718900144157 /* operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F127AC718800144157 /* operand.h */; }; - A926B8EB27AC718900144157 /* spirv_endian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4F227AC718800144157 /* spirv_endian.cpp */; }; - A926B8EC27AC718900144157 /* spirv_endian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4F227AC718800144157 /* spirv_endian.cpp */; }; - A926B8ED27AC718900144157 /* spirv_endian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4F227AC718800144157 /* spirv_endian.cpp */; }; - A926B8EE27AC718900144157 /* macro.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F327AC718800144157 /* macro.h */; }; - A926B8EF27AC718900144157 /* macro.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F327AC718800144157 /* macro.h */; }; - A926B8F027AC718900144157 /* macro.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F327AC718800144157 /* macro.h */; }; - A926B8F127AC718900144157 /* spirv_constant.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F427AC718800144157 /* spirv_constant.h */; }; - A926B8F227AC718900144157 /* spirv_constant.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F427AC718800144157 /* spirv_constant.h */; }; - A926B8F327AC718900144157 /* spirv_constant.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F427AC718800144157 /* spirv_constant.h */; }; - A926B8F427AC718900144157 /* binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4F527AC718800144157 /* binary.cpp */; }; - A926B8F527AC718900144157 /* binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4F527AC718800144157 /* binary.cpp */; }; - A926B8F627AC718900144157 /* binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4F527AC718800144157 /* binary.cpp */; }; - A926B8F727AC718900144157 /* spirv_validator_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F627AC718800144157 /* spirv_validator_options.h */; }; - A926B8F827AC718900144157 /* spirv_validator_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F627AC718800144157 /* spirv_validator_options.h */; }; - A926B8F927AC718900144157 /* spirv_validator_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F627AC718800144157 /* spirv_validator_options.h */; }; - A926B8FA27AC718900144157 /* enum_string_mapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4F727AC718800144157 /* enum_string_mapping.cpp */; }; - A926B8FB27AC718900144157 /* enum_string_mapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4F727AC718800144157 /* enum_string_mapping.cpp */; }; - A926B8FC27AC718900144157 /* enum_string_mapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4F727AC718800144157 /* enum_string_mapping.cpp */; }; - A926B8FD27AC718900144157 /* text_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F827AC718800144157 /* text_handler.h */; }; - A926B8FE27AC718900144157 /* text_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F827AC718800144157 /* text_handler.h */; }; - A926B8FF27AC718900144157 /* text_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F827AC718800144157 /* text_handler.h */; }; - A926B90027AC718900144157 /* parsed_operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F927AC718800144157 /* parsed_operand.h */; }; - A926B90127AC718900144157 /* parsed_operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F927AC718800144157 /* parsed_operand.h */; }; - A926B90227AC718900144157 /* parsed_operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4F927AC718800144157 /* parsed_operand.h */; }; - A926B90327AC718900144157 /* name_mapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4FA27AC718800144157 /* name_mapper.h */; }; - A926B90427AC718900144157 /* name_mapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4FA27AC718800144157 /* name_mapper.h */; }; - A926B90527AC718900144157 /* name_mapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4FA27AC718800144157 /* name_mapper.h */; }; - A926B90627AC718900144157 /* spirv_reducer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4FB27AC718800144157 /* spirv_reducer_options.cpp */; }; - A926B90727AC718900144157 /* spirv_reducer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4FB27AC718800144157 /* spirv_reducer_options.cpp */; }; - A926B90827AC718900144157 /* spirv_reducer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4FB27AC718800144157 /* spirv_reducer_options.cpp */; }; - A926B90927AC718900144157 /* parsed_operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4FC27AC718800144157 /* parsed_operand.cpp */; }; - A926B90A27AC718900144157 /* parsed_operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4FC27AC718800144157 /* parsed_operand.cpp */; }; - A926B90B27AC718900144157 /* parsed_operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4FC27AC718800144157 /* parsed_operand.cpp */; }; - A926B90C27AC718900144157 /* diagnostic.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4FD27AC718800144157 /* diagnostic.h */; }; - A926B90D27AC718900144157 /* diagnostic.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4FD27AC718800144157 /* diagnostic.h */; }; - A926B90E27AC718900144157 /* diagnostic.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4FD27AC718800144157 /* diagnostic.h */; }; - A926B90F27AC718900144157 /* spirv_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4FE27AC718800144157 /* spirv_endian.h */; }; - A926B91027AC718900144157 /* spirv_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4FE27AC718800144157 /* spirv_endian.h */; }; - A926B91127AC718900144157 /* spirv_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B4FE27AC718800144157 /* spirv_endian.h */; }; - A926B91227AC718900144157 /* name_mapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4FF27AC718800144157 /* name_mapper.cpp */; }; - A926B91327AC718900144157 /* name_mapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4FF27AC718800144157 /* name_mapper.cpp */; }; - A926B91427AC718900144157 /* name_mapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B4FF27AC718800144157 /* name_mapper.cpp */; }; - A926B91527AC718900144157 /* linker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50227AC718800144157 /* linker.cpp */; }; - A926B91627AC718900144157 /* linker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50227AC718800144157 /* linker.cpp */; }; - A926B91727AC718900144157 /* linker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50227AC718800144157 /* linker.cpp */; }; - A926B91827AC718900144157 /* common_debug_info.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50327AC718800144157 /* common_debug_info.h */; }; - A926B91927AC718900144157 /* common_debug_info.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50327AC718800144157 /* common_debug_info.h */; }; - A926B91A27AC718900144157 /* common_debug_info.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50327AC718800144157 /* common_debug_info.h */; }; - A926B91B27AC718900144157 /* software_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50427AC718800144157 /* software_version.cpp */; }; - A926B91C27AC718900144157 /* software_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50427AC718800144157 /* software_version.cpp */; }; - A926B91D27AC718900144157 /* software_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50427AC718800144157 /* software_version.cpp */; }; - A926B91E27AC718900144157 /* opcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50527AC718800144157 /* opcode.cpp */; }; - A926B91F27AC718900144157 /* opcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50527AC718800144157 /* opcode.cpp */; }; - A926B92027AC718900144157 /* opcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50527AC718800144157 /* opcode.cpp */; }; - A926B92127AC718900144157 /* print.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50627AC718800144157 /* print.h */; }; - A926B92227AC718900144157 /* print.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50627AC718800144157 /* print.h */; }; - A926B92327AC718900144157 /* print.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50627AC718800144157 /* print.h */; }; - A926B92427AC718900144157 /* ext_inst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50727AC718800144157 /* ext_inst.cpp */; }; - A926B92527AC718900144157 /* ext_inst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50727AC718800144157 /* ext_inst.cpp */; }; - A926B92627AC718900144157 /* ext_inst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50727AC718800144157 /* ext_inst.cpp */; }; - A926B92727AC718900144157 /* disassemble.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50827AC718800144157 /* disassemble.h */; }; - A926B92827AC718900144157 /* disassemble.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50827AC718800144157 /* disassemble.h */; }; - A926B92927AC718900144157 /* disassemble.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50827AC718800144157 /* disassemble.h */; }; - A926B92A27AC718900144157 /* optimizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50A27AC718800144157 /* optimizer.cpp */; }; - A926B92B27AC718900144157 /* optimizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50A27AC718800144157 /* optimizer.cpp */; }; - A926B92C27AC718900144157 /* optimizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50A27AC718800144157 /* optimizer.cpp */; }; - A926B92D27AC718900144157 /* if_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50B27AC718800144157 /* if_conversion.h */; }; - A926B92E27AC718900144157 /* if_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50B27AC718800144157 /* if_conversion.h */; }; - A926B92F27AC718900144157 /* if_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50B27AC718800144157 /* if_conversion.h */; }; - A926B93027AC718900144157 /* register_pressure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50C27AC718800144157 /* register_pressure.cpp */; }; - A926B93127AC718900144157 /* register_pressure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50C27AC718800144157 /* register_pressure.cpp */; }; - A926B93227AC718900144157 /* register_pressure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50C27AC718800144157 /* register_pressure.cpp */; }; - A926B93327AC718900144157 /* loop_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50D27AC718800144157 /* loop_utils.cpp */; }; - A926B93427AC718900144157 /* loop_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50D27AC718800144157 /* loop_utils.cpp */; }; - A926B93527AC718900144157 /* loop_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50D27AC718800144157 /* loop_utils.cpp */; }; - A926B93627AC718900144157 /* strip_nonsemantic_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50E27AC718800144157 /* strip_nonsemantic_info_pass.h */; }; - A926B93727AC718900144157 /* strip_nonsemantic_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50E27AC718800144157 /* strip_nonsemantic_info_pass.h */; }; - A926B93827AC718900144157 /* strip_nonsemantic_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B50E27AC718800144157 /* strip_nonsemantic_info_pass.h */; }; - A926B93927AC718900144157 /* spread_volatile_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50F27AC718800144157 /* spread_volatile_semantics.cpp */; }; - A926B93A27AC718900144157 /* spread_volatile_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50F27AC718800144157 /* spread_volatile_semantics.cpp */; }; - A926B93B27AC718900144157 /* spread_volatile_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B50F27AC718800144157 /* spread_volatile_semantics.cpp */; }; - A926B93C27AC718900144157 /* merge_return_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51027AC718800144157 /* merge_return_pass.h */; }; - A926B93D27AC718900144157 /* merge_return_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51027AC718800144157 /* merge_return_pass.h */; }; - A926B93E27AC718900144157 /* merge_return_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51027AC718800144157 /* merge_return_pass.h */; }; - A926B93F27AC718900144157 /* inline_opaque_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51127AC718800144157 /* inline_opaque_pass.h */; }; - A926B94027AC718900144157 /* inline_opaque_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51127AC718800144157 /* inline_opaque_pass.h */; }; - A926B94127AC718900144157 /* inline_opaque_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51127AC718800144157 /* inline_opaque_pass.h */; }; - A926B94227AC718900144157 /* loop_fusion.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51227AC718800144157 /* loop_fusion.h */; }; - A926B94327AC718900144157 /* loop_fusion.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51227AC718800144157 /* loop_fusion.h */; }; - A926B94427AC718900144157 /* loop_fusion.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51227AC718800144157 /* loop_fusion.h */; }; - A926B94527AC718900144157 /* combine_access_chains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B51327AC718800144157 /* combine_access_chains.cpp */; }; - A926B94627AC718900144157 /* combine_access_chains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B51327AC718800144157 /* combine_access_chains.cpp */; }; - A926B94727AC718900144157 /* combine_access_chains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B51327AC718800144157 /* combine_access_chains.cpp */; }; - A926B94827AC718900144157 /* build_module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B51427AC718800144157 /* build_module.cpp */; }; - A926B94927AC718900144157 /* build_module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B51427AC718800144157 /* build_module.cpp */; }; - A926B94A27AC718900144157 /* build_module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B51427AC718800144157 /* build_module.cpp */; }; - A926B94B27AC718900144157 /* composite.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51527AC718800144157 /* composite.h */; }; - A926B94C27AC718900144157 /* composite.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51527AC718800144157 /* composite.h */; }; - A926B94D27AC718900144157 /* composite.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51527AC718800144157 /* composite.h */; }; - A926B94E27AC718900144157 /* compact_ids_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51627AC718800144157 /* compact_ids_pass.h */; }; - A926B94F27AC718900144157 /* compact_ids_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51627AC718800144157 /* compact_ids_pass.h */; }; - A926B95027AC718900144157 /* compact_ids_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51627AC718800144157 /* compact_ids_pass.h */; }; - A926B95127AC718900144157 /* register_pressure.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51727AC718800144157 /* register_pressure.h */; }; - A926B95227AC718900144157 /* register_pressure.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51727AC718800144157 /* register_pressure.h */; }; - A926B95327AC718900144157 /* register_pressure.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51727AC718800144157 /* register_pressure.h */; }; - A926B95427AC718900144157 /* tree_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51827AC718800144157 /* tree_iterator.h */; }; - A926B95527AC718900144157 /* tree_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51827AC718800144157 /* tree_iterator.h */; }; - A926B95627AC718900144157 /* tree_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51827AC718800144157 /* tree_iterator.h */; }; - A926B95727AC718900144157 /* graphics_robust_access_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51927AC718800144157 /* graphics_robust_access_pass.h */; }; - A926B95827AC718900144157 /* graphics_robust_access_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51927AC718800144157 /* graphics_robust_access_pass.h */; }; - A926B95927AC718900144157 /* graphics_robust_access_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51927AC718800144157 /* graphics_robust_access_pass.h */; }; - A926B95A27AC718900144157 /* local_single_store_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51A27AC718800144157 /* local_single_store_elim_pass.h */; }; - A926B95B27AC718900144157 /* local_single_store_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51A27AC718800144157 /* local_single_store_elim_pass.h */; }; - A926B95C27AC718900144157 /* local_single_store_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51A27AC718800144157 /* local_single_store_elim_pass.h */; }; - A926B95D27AC718900144157 /* reduce_load_size.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51B27AC718800144157 /* reduce_load_size.h */; }; - A926B95E27AC718900144157 /* reduce_load_size.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51B27AC718800144157 /* reduce_load_size.h */; }; - A926B95F27AC718900144157 /* reduce_load_size.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51B27AC718800144157 /* reduce_load_size.h */; }; - A926B96027AC718900144157 /* code_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B51C27AC718800144157 /* code_sink.cpp */; }; - A926B96127AC718900144157 /* code_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B51C27AC718800144157 /* code_sink.cpp */; }; - A926B96227AC718900144157 /* code_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B51C27AC718800144157 /* code_sink.cpp */; }; - A926B96327AC718900144157 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B51D27AC718800144157 /* types.cpp */; }; - A926B96427AC718900144157 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B51D27AC718800144157 /* types.cpp */; }; - A926B96527AC718900144157 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B51D27AC718800144157 /* types.cpp */; }; - A926B96627AC718900144157 /* scalar_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51E27AC718800144157 /* scalar_analysis.h */; }; - A926B96727AC718900144157 /* scalar_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51E27AC718800144157 /* scalar_analysis.h */; }; - A926B96827AC718900144157 /* scalar_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51E27AC718800144157 /* scalar_analysis.h */; }; - A926B96927AC718900144157 /* strip_debug_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51F27AC718800144157 /* strip_debug_info_pass.h */; }; - A926B96A27AC718900144157 /* strip_debug_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51F27AC718800144157 /* strip_debug_info_pass.h */; }; - A926B96B27AC718900144157 /* strip_debug_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B51F27AC718800144157 /* strip_debug_info_pass.h */; }; - A926B96C27AC718900144157 /* replace_desc_array_access_using_var_index.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52027AC718800144157 /* replace_desc_array_access_using_var_index.h */; }; - A926B96D27AC718900144157 /* replace_desc_array_access_using_var_index.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52027AC718800144157 /* replace_desc_array_access_using_var_index.h */; }; - A926B96E27AC718900144157 /* replace_desc_array_access_using_var_index.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52027AC718800144157 /* replace_desc_array_access_using_var_index.h */; }; - A926B96F27AC718900144157 /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52127AC718800144157 /* cfg.cpp */; }; - A926B97027AC718900144157 /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52127AC718800144157 /* cfg.cpp */; }; - A926B97127AC718900144157 /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52127AC718800144157 /* cfg.cpp */; }; - A926B97227AC718900144157 /* decoration_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52227AC718800144157 /* decoration_manager.cpp */; }; - A926B97327AC718900144157 /* decoration_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52227AC718800144157 /* decoration_manager.cpp */; }; - A926B97427AC718900144157 /* decoration_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52227AC718800144157 /* decoration_manager.cpp */; }; - A926B97527AC718900144157 /* local_single_block_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52327AC718800144157 /* local_single_block_elim_pass.cpp */; }; - A926B97627AC718900144157 /* local_single_block_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52327AC718800144157 /* local_single_block_elim_pass.cpp */; }; - A926B97727AC718900144157 /* local_single_block_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52327AC718800144157 /* local_single_block_elim_pass.cpp */; }; - A926B97827AC718900144157 /* freeze_spec_constant_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52427AC718800144157 /* freeze_spec_constant_value_pass.cpp */; }; - A926B97927AC718900144157 /* freeze_spec_constant_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52427AC718800144157 /* freeze_spec_constant_value_pass.cpp */; }; - A926B97A27AC718900144157 /* freeze_spec_constant_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52427AC718800144157 /* freeze_spec_constant_value_pass.cpp */; }; - A926B97B27AC718900144157 /* replace_invalid_opc.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52527AC718800144157 /* replace_invalid_opc.h */; }; - A926B97C27AC718900144157 /* replace_invalid_opc.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52527AC718800144157 /* replace_invalid_opc.h */; }; - A926B97D27AC718900144157 /* replace_invalid_opc.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52527AC718800144157 /* replace_invalid_opc.h */; }; - A926B97E27AC718900144157 /* local_access_chain_convert_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52627AC718800144157 /* local_access_chain_convert_pass.h */; }; - A926B97F27AC718900144157 /* local_access_chain_convert_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52627AC718800144157 /* local_access_chain_convert_pass.h */; }; - A926B98027AC718900144157 /* local_access_chain_convert_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52627AC718800144157 /* local_access_chain_convert_pass.h */; }; - A926B98127AC718900144157 /* inst_bindless_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52727AC718800144157 /* inst_bindless_check_pass.cpp */; }; - A926B98227AC718900144157 /* inst_bindless_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52727AC718800144157 /* inst_bindless_check_pass.cpp */; }; - A926B98327AC718900144157 /* inst_bindless_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52727AC718800144157 /* inst_bindless_check_pass.cpp */; }; - A926B98427AC718900144157 /* local_redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52827AC718800144157 /* local_redundancy_elimination.cpp */; }; - A926B98527AC718900144157 /* local_redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52827AC718800144157 /* local_redundancy_elimination.cpp */; }; - A926B98627AC718900144157 /* local_redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52827AC718800144157 /* local_redundancy_elimination.cpp */; }; - A926B98727AC718900144157 /* instrument_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52A27AC718800144157 /* instrument_pass.cpp */; }; - A926B98827AC718900144157 /* instrument_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52A27AC718800144157 /* instrument_pass.cpp */; }; - A926B98927AC718900144157 /* instrument_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52A27AC718800144157 /* instrument_pass.cpp */; }; - A926B98A27AC718900144157 /* propagator.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52B27AC718800144157 /* propagator.h */; }; - A926B98B27AC718900144157 /* propagator.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52B27AC718800144157 /* propagator.h */; }; - A926B98C27AC718900144157 /* propagator.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52B27AC718800144157 /* propagator.h */; }; - A926B98D27AC718900144157 /* instruction_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52C27AC718800144157 /* instruction_list.h */; }; - A926B98E27AC718900144157 /* instruction_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52C27AC718800144157 /* instruction_list.h */; }; - A926B98F27AC718900144157 /* instruction_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B52C27AC718800144157 /* instruction_list.h */; }; - A926B99027AC718900144157 /* feature_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52D27AC718800144157 /* feature_manager.cpp */; }; - A926B99127AC718900144157 /* feature_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52D27AC718800144157 /* feature_manager.cpp */; }; - A926B99227AC718900144157 /* feature_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52D27AC718800144157 /* feature_manager.cpp */; }; - A926B99327AC718900144157 /* pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52E27AC718800144157 /* pass.cpp */; }; - A926B99427AC718900144157 /* pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52E27AC718800144157 /* pass.cpp */; }; - A926B99527AC718900144157 /* pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52E27AC718800144157 /* pass.cpp */; }; - A926B99627AC718900144157 /* loop_fission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52F27AC718800144157 /* loop_fission.cpp */; }; - A926B99727AC718900144157 /* loop_fission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52F27AC718800144157 /* loop_fission.cpp */; }; - A926B99827AC718900144157 /* loop_fission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B52F27AC718800144157 /* loop_fission.cpp */; }; - A926B99927AC718900144157 /* dominator_tree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53027AC718800144157 /* dominator_tree.cpp */; }; - A926B99A27AC718900144157 /* dominator_tree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53027AC718800144157 /* dominator_tree.cpp */; }; - A926B99B27AC718900144157 /* dominator_tree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53027AC718800144157 /* dominator_tree.cpp */; }; - A926B99C27AC718900144157 /* amd_ext_to_khr.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53127AC718800144157 /* amd_ext_to_khr.h */; }; - A926B99D27AC718900144157 /* amd_ext_to_khr.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53127AC718800144157 /* amd_ext_to_khr.h */; }; - A926B99E27AC718900144157 /* amd_ext_to_khr.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53127AC718800144157 /* amd_ext_to_khr.h */; }; - A926B99F27AC718900144157 /* merge_return_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53227AC718800144157 /* merge_return_pass.cpp */; }; - A926B9A027AC718900144157 /* merge_return_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53227AC718800144157 /* merge_return_pass.cpp */; }; - A926B9A127AC718900144157 /* merge_return_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53227AC718800144157 /* merge_return_pass.cpp */; }; - A926B9A227AC718900144157 /* ir_context.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53327AC718800144157 /* ir_context.h */; }; - A926B9A327AC718900144157 /* ir_context.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53327AC718800144157 /* ir_context.h */; }; - A926B9A427AC718900144157 /* ir_context.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53327AC718800144157 /* ir_context.h */; }; - A926B9A527AC718900144157 /* eliminate_dead_constant_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53427AC718800144157 /* eliminate_dead_constant_pass.cpp */; }; - A926B9A627AC718900144157 /* eliminate_dead_constant_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53427AC718800144157 /* eliminate_dead_constant_pass.cpp */; }; - A926B9A727AC718900144157 /* eliminate_dead_constant_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53427AC718800144157 /* eliminate_dead_constant_pass.cpp */; }; - A926B9A827AC718900144157 /* control_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53527AC718800144157 /* control_dependence.h */; }; - A926B9A927AC718900144157 /* control_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53527AC718800144157 /* control_dependence.h */; }; - A926B9AA27AC718900144157 /* control_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53527AC718800144157 /* control_dependence.h */; }; - A926B9AB27AC718900144157 /* cfg_cleanup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53627AC718800144157 /* cfg_cleanup_pass.cpp */; }; - A926B9AC27AC718900144157 /* cfg_cleanup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53627AC718800144157 /* cfg_cleanup_pass.cpp */; }; - A926B9AD27AC718900144157 /* cfg_cleanup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53627AC718800144157 /* cfg_cleanup_pass.cpp */; }; - A926B9AE27AC718900144157 /* wrap_opkill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53727AC718800144157 /* wrap_opkill.cpp */; }; - A926B9AF27AC718900144157 /* wrap_opkill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53727AC718800144157 /* wrap_opkill.cpp */; }; - A926B9B027AC718900144157 /* wrap_opkill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53727AC718800144157 /* wrap_opkill.cpp */; }; - A926B9B127AC718900144157 /* const_folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53827AC718800144157 /* const_folding_rules.cpp */; }; - A926B9B227AC718900144157 /* const_folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53827AC718800144157 /* const_folding_rules.cpp */; }; - A926B9B327AC718900144157 /* const_folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53827AC718800144157 /* const_folding_rules.cpp */; }; - A926B9B427AC718900144157 /* loop_unroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53927AC718800144157 /* loop_unroller.h */; }; - A926B9B527AC718900144157 /* loop_unroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53927AC718800144157 /* loop_unroller.h */; }; - A926B9B627AC718900144157 /* loop_unroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53927AC718800144157 /* loop_unroller.h */; }; - A926B9B727AC718900144157 /* strip_debug_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53A27AC718800144157 /* strip_debug_info_pass.cpp */; }; - A926B9B827AC718900144157 /* strip_debug_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53A27AC718800144157 /* strip_debug_info_pass.cpp */; }; - A926B9B927AC718900144157 /* strip_debug_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53A27AC718800144157 /* strip_debug_info_pass.cpp */; }; - A926B9BA27AC718900144157 /* ssa_rewrite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53B27AC718800144157 /* ssa_rewrite_pass.cpp */; }; - A926B9BB27AC718900144157 /* ssa_rewrite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53B27AC718800144157 /* ssa_rewrite_pass.cpp */; }; - A926B9BC27AC718900144157 /* ssa_rewrite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53B27AC718800144157 /* ssa_rewrite_pass.cpp */; }; - A926B9BD27AC718900144157 /* loop_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53C27AC718800144157 /* loop_dependence.cpp */; }; - A926B9BE27AC718900144157 /* loop_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53C27AC718800144157 /* loop_dependence.cpp */; }; - A926B9BF27AC718900144157 /* loop_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53C27AC718800144157 /* loop_dependence.cpp */; }; - A926B9C027AC718900144157 /* unify_const_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53D27AC718800144157 /* unify_const_pass.h */; }; - A926B9C127AC718900144157 /* unify_const_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53D27AC718800144157 /* unify_const_pass.h */; }; - A926B9C227AC718900144157 /* unify_const_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53D27AC718800144157 /* unify_const_pass.h */; }; - A926B9C327AC718900144157 /* ir_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53E27AC718800144157 /* ir_loader.h */; }; - A926B9C427AC718900144157 /* ir_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53E27AC718800144157 /* ir_loader.h */; }; - A926B9C527AC718900144157 /* ir_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B53E27AC718800144157 /* ir_loader.h */; }; - A926B9C627AC718900144157 /* inst_debug_printf_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53F27AC718800144157 /* inst_debug_printf_pass.cpp */; }; - A926B9C727AC718900144157 /* inst_debug_printf_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53F27AC718800144157 /* inst_debug_printf_pass.cpp */; }; - A926B9C827AC718900144157 /* inst_debug_printf_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B53F27AC718800144157 /* inst_debug_printf_pass.cpp */; }; - A926B9C927AC718900144157 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54027AC718800144157 /* types.h */; }; - A926B9CA27AC718900144157 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54027AC718800144157 /* types.h */; }; - A926B9CB27AC718900144157 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54027AC718800144157 /* types.h */; }; - A926B9CC27AC718A00144157 /* fold_spec_constant_op_and_composite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54127AC718800144157 /* fold_spec_constant_op_and_composite_pass.h */; }; - A926B9CD27AC718A00144157 /* fold_spec_constant_op_and_composite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54127AC718800144157 /* fold_spec_constant_op_and_composite_pass.h */; }; - A926B9CE27AC718A00144157 /* fold_spec_constant_op_and_composite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54127AC718800144157 /* fold_spec_constant_op_and_composite_pass.h */; }; - A926B9CF27AC718A00144157 /* mem_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54227AC718800144157 /* mem_pass.cpp */; }; - A926B9D027AC718A00144157 /* mem_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54227AC718800144157 /* mem_pass.cpp */; }; - A926B9D127AC718A00144157 /* mem_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54227AC718800144157 /* mem_pass.cpp */; }; - A926B9D227AC718A00144157 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54327AC718800144157 /* basic_block.h */; }; - A926B9D327AC718A00144157 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54327AC718800144157 /* basic_block.h */; }; - A926B9D427AC718A00144157 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54327AC718800144157 /* basic_block.h */; }; - A926B9D527AC718A00144157 /* remove_duplicates_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54427AC718800144157 /* remove_duplicates_pass.cpp */; }; - A926B9D627AC718A00144157 /* remove_duplicates_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54427AC718800144157 /* remove_duplicates_pass.cpp */; }; - A926B9D727AC718A00144157 /* remove_duplicates_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54427AC718800144157 /* remove_duplicates_pass.cpp */; }; - A926B9D827AC718A00144157 /* dead_variable_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54527AC718800144157 /* dead_variable_elimination.cpp */; }; - A926B9D927AC718A00144157 /* dead_variable_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54527AC718800144157 /* dead_variable_elimination.cpp */; }; - A926B9DA27AC718A00144157 /* dead_variable_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54527AC718800144157 /* dead_variable_elimination.cpp */; }; - A926B9DB27AC718A00144157 /* block_merge_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54627AC718800144157 /* block_merge_pass.h */; }; - A926B9DC27AC718A00144157 /* block_merge_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54627AC718800144157 /* block_merge_pass.h */; }; - A926B9DD27AC718A00144157 /* block_merge_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54627AC718800144157 /* block_merge_pass.h */; }; - A926B9DE27AC718A00144157 /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54727AC718800144157 /* module.cpp */; }; - A926B9DF27AC718A00144157 /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54727AC718800144157 /* module.cpp */; }; - A926B9E027AC718A00144157 /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54727AC718800144157 /* module.cpp */; }; - A926B9E127AC718A00144157 /* debug_info_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54827AC718800144157 /* debug_info_manager.h */; }; - A926B9E227AC718A00144157 /* debug_info_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54827AC718800144157 /* debug_info_manager.h */; }; - A926B9E327AC718A00144157 /* debug_info_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54827AC718800144157 /* debug_info_manager.h */; }; - A926B9E427AC718A00144157 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54927AC718800144157 /* fold_spec_constant_op_and_composite_pass.cpp */; }; - A926B9E527AC718A00144157 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54927AC718800144157 /* fold_spec_constant_op_and_composite_pass.cpp */; }; - A926B9E627AC718A00144157 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54927AC718800144157 /* fold_spec_constant_op_and_composite_pass.cpp */; }; - A926B9E727AC718A00144157 /* loop_unswitch_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54A27AC718800144157 /* loop_unswitch_pass.cpp */; }; - A926B9E827AC718A00144157 /* loop_unswitch_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54A27AC718800144157 /* loop_unswitch_pass.cpp */; }; - A926B9E927AC718A00144157 /* loop_unswitch_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54A27AC718800144157 /* loop_unswitch_pass.cpp */; }; - A926B9EA27AC718A00144157 /* unify_const_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54B27AC718800144157 /* unify_const_pass.cpp */; }; - A926B9EB27AC718A00144157 /* unify_const_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54B27AC718800144157 /* unify_const_pass.cpp */; }; - A926B9EC27AC718A00144157 /* unify_const_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54B27AC718800144157 /* unify_const_pass.cpp */; }; - A926B9ED27AC718A00144157 /* type_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54C27AC718800144157 /* type_manager.cpp */; }; - A926B9EE27AC718A00144157 /* type_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54C27AC718800144157 /* type_manager.cpp */; }; - A926B9EF27AC718A00144157 /* type_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B54C27AC718800144157 /* type_manager.cpp */; }; - A926B9F027AC718A00144157 /* private_to_local_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54D27AC718800144157 /* private_to_local_pass.h */; }; - A926B9F127AC718A00144157 /* private_to_local_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54D27AC718800144157 /* private_to_local_pass.h */; }; - A926B9F227AC718A00144157 /* private_to_local_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54D27AC718800144157 /* private_to_local_pass.h */; }; - A926B9F327AC718A00144157 /* convert_to_half_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54E27AC718800144157 /* convert_to_half_pass.h */; }; - A926B9F427AC718A00144157 /* convert_to_half_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54E27AC718800144157 /* convert_to_half_pass.h */; }; - A926B9F527AC718A00144157 /* convert_to_half_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54E27AC718800144157 /* convert_to_half_pass.h */; }; - A926B9F627AC718A00144157 /* relax_float_ops_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54F27AC718800144157 /* relax_float_ops_pass.h */; }; - A926B9F727AC718A00144157 /* relax_float_ops_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54F27AC718800144157 /* relax_float_ops_pass.h */; }; - A926B9F827AC718A00144157 /* relax_float_ops_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B54F27AC718800144157 /* relax_float_ops_pass.h */; }; - A926B9F927AC718A00144157 /* inline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55027AC718800144157 /* inline_pass.cpp */; }; - A926B9FA27AC718A00144157 /* inline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55027AC718800144157 /* inline_pass.cpp */; }; - A926B9FB27AC718A00144157 /* inline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55027AC718800144157 /* inline_pass.cpp */; }; - A926B9FC27AC718A00144157 /* def_use_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55127AC718800144157 /* def_use_manager.h */; }; - A926B9FD27AC718A00144157 /* def_use_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55127AC718800144157 /* def_use_manager.h */; }; - A926B9FE27AC718A00144157 /* def_use_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55127AC718800144157 /* def_use_manager.h */; }; - A926B9FF27AC718A00144157 /* ir_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55227AC718800144157 /* ir_loader.cpp */; }; - A926BA0027AC718A00144157 /* ir_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55227AC718800144157 /* ir_loader.cpp */; }; - A926BA0127AC718A00144157 /* ir_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55227AC718800144157 /* ir_loader.cpp */; }; - A926BA0227AC718A00144157 /* convert_to_sampled_image_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55327AC718800144157 /* convert_to_sampled_image_pass.h */; }; - A926BA0327AC718A00144157 /* convert_to_sampled_image_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55327AC718800144157 /* convert_to_sampled_image_pass.h */; }; - A926BA0427AC718A00144157 /* convert_to_sampled_image_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55327AC718800144157 /* convert_to_sampled_image_pass.h */; }; - A926BA0527AC718A00144157 /* cfg_cleanup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55427AC718800144157 /* cfg_cleanup_pass.h */; }; - A926BA0627AC718A00144157 /* cfg_cleanup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55427AC718800144157 /* cfg_cleanup_pass.h */; }; - A926BA0727AC718A00144157 /* cfg_cleanup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55427AC718800144157 /* cfg_cleanup_pass.h */; }; - A926BA0827AC718A00144157 /* licm_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55527AC718800144157 /* licm_pass.cpp */; }; - A926BA0927AC718A00144157 /* licm_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55527AC718800144157 /* licm_pass.cpp */; }; - A926BA0A27AC718A00144157 /* licm_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55527AC718800144157 /* licm_pass.cpp */; }; - A926BA0B27AC718A00144157 /* eliminate_dead_functions_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55627AC718800144157 /* eliminate_dead_functions_pass.cpp */; }; - A926BA0C27AC718A00144157 /* eliminate_dead_functions_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55627AC718800144157 /* eliminate_dead_functions_pass.cpp */; }; - A926BA0D27AC718A00144157 /* eliminate_dead_functions_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55627AC718800144157 /* eliminate_dead_functions_pass.cpp */; }; - A926BA0E27AC718A00144157 /* local_redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55727AC718800144157 /* local_redundancy_elimination.h */; }; - A926BA0F27AC718A00144157 /* local_redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55727AC718800144157 /* local_redundancy_elimination.h */; }; - A926BA1027AC718A00144157 /* local_redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55727AC718800144157 /* local_redundancy_elimination.h */; }; - A926BA1127AC718A00144157 /* loop_peeling.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55827AC718800144157 /* loop_peeling.h */; }; - A926BA1227AC718A00144157 /* loop_peeling.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55827AC718800144157 /* loop_peeling.h */; }; - A926BA1327AC718A00144157 /* loop_peeling.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55827AC718800144157 /* loop_peeling.h */; }; - A926BA1427AC718A00144157 /* vector_dce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55927AC718800144157 /* vector_dce.cpp */; }; - A926BA1527AC718A00144157 /* vector_dce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55927AC718800144157 /* vector_dce.cpp */; }; - A926BA1627AC718A00144157 /* vector_dce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55927AC718800144157 /* vector_dce.cpp */; }; - A926BA1727AC718A00144157 /* block_merge_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55A27AC718800144157 /* block_merge_util.h */; }; - A926BA1827AC718A00144157 /* block_merge_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55A27AC718800144157 /* block_merge_util.h */; }; - A926BA1927AC718A00144157 /* block_merge_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55A27AC718800144157 /* block_merge_util.h */; }; - A926BA1A27AC718A00144157 /* loop_unroller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55B27AC718800144157 /* loop_unroller.cpp */; }; - A926BA1B27AC718A00144157 /* loop_unroller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55B27AC718800144157 /* loop_unroller.cpp */; }; - A926BA1C27AC718A00144157 /* loop_unroller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55B27AC718800144157 /* loop_unroller.cpp */; }; - A926BA1D27AC718A00144157 /* desc_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55C27AC718800144157 /* desc_sroa.h */; }; - A926BA1E27AC718A00144157 /* desc_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55C27AC718800144157 /* desc_sroa.h */; }; - A926BA1F27AC718A00144157 /* desc_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55C27AC718800144157 /* desc_sroa.h */; }; - A926BA2027AC718A00144157 /* constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55D27AC718800144157 /* constants.cpp */; }; - A926BA2127AC718A00144157 /* constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55D27AC718800144157 /* constants.cpp */; }; - A926BA2227AC718A00144157 /* constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B55D27AC718800144157 /* constants.cpp */; }; - A926BA2327AC718A00144157 /* loop_fusion_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55E27AC718800144157 /* loop_fusion_pass.h */; }; - A926BA2427AC718A00144157 /* loop_fusion_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55E27AC718800144157 /* loop_fusion_pass.h */; }; - A926BA2527AC718A00144157 /* loop_fusion_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55E27AC718800144157 /* loop_fusion_pass.h */; }; - A926BA2627AC718A00144157 /* struct_cfg_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55F27AC718800144157 /* struct_cfg_analysis.h */; }; - A926BA2727AC718A00144157 /* struct_cfg_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55F27AC718800144157 /* struct_cfg_analysis.h */; }; - A926BA2827AC718A00144157 /* struct_cfg_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B55F27AC718800144157 /* struct_cfg_analysis.h */; }; - A926BA2927AC718A00144157 /* desc_sroa_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56027AC718800144157 /* desc_sroa_util.cpp */; }; - A926BA2A27AC718A00144157 /* desc_sroa_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56027AC718800144157 /* desc_sroa_util.cpp */; }; - A926BA2B27AC718A00144157 /* desc_sroa_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56027AC718800144157 /* desc_sroa_util.cpp */; }; - A926BA2C27AC718A00144157 /* inst_buff_addr_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56127AC718800144157 /* inst_buff_addr_check_pass.cpp */; }; - A926BA2D27AC718A00144157 /* inst_buff_addr_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56127AC718800144157 /* inst_buff_addr_check_pass.cpp */; }; - A926BA2E27AC718A00144157 /* inst_buff_addr_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56127AC718800144157 /* inst_buff_addr_check_pass.cpp */; }; - A926BA2F27AC718A00144157 /* def_use_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56227AC718800144157 /* def_use_manager.cpp */; }; - A926BA3027AC718A00144157 /* def_use_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56227AC718800144157 /* def_use_manager.cpp */; }; - A926BA3127AC718A00144157 /* def_use_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56227AC718800144157 /* def_use_manager.cpp */; }; - A926BA3227AC718A00144157 /* wrap_opkill.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56327AC718800144157 /* wrap_opkill.h */; }; - A926BA3327AC718A00144157 /* wrap_opkill.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56327AC718800144157 /* wrap_opkill.h */; }; - A926BA3427AC718A00144157 /* wrap_opkill.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56327AC718800144157 /* wrap_opkill.h */; }; - A926BA3527AC718A00144157 /* empty_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56427AC718800144157 /* empty_pass.h */; }; - A926BA3627AC718A00144157 /* empty_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56427AC718800144157 /* empty_pass.h */; }; - A926BA3727AC718A00144157 /* empty_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56427AC718800144157 /* empty_pass.h */; }; - A926BA3827AC718A00144157 /* decoration_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56527AC718800144157 /* decoration_manager.h */; }; - A926BA3927AC718A00144157 /* decoration_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56527AC718800144157 /* decoration_manager.h */; }; - A926BA3A27AC718A00144157 /* decoration_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56527AC718800144157 /* decoration_manager.h */; }; - A926BA3B27AC718A00144157 /* ccp_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56627AC718800144157 /* ccp_pass.cpp */; }; - A926BA3C27AC718A00144157 /* ccp_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56627AC718800144157 /* ccp_pass.cpp */; }; - A926BA3D27AC718A00144157 /* ccp_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56627AC718800144157 /* ccp_pass.cpp */; }; - A926BA3E27AC718A00144157 /* local_single_block_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56727AC718800144157 /* local_single_block_elim_pass.h */; }; - A926BA3F27AC718A00144157 /* local_single_block_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56727AC718800144157 /* local_single_block_elim_pass.h */; }; - A926BA4027AC718A00144157 /* local_single_block_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56727AC718800144157 /* local_single_block_elim_pass.h */; }; - A926BA4127AC718A00144157 /* interp_fixup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56827AC718800144157 /* interp_fixup_pass.h */; }; - A926BA4227AC718A00144157 /* interp_fixup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56827AC718800144157 /* interp_fixup_pass.h */; }; - A926BA4327AC718A00144157 /* interp_fixup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56827AC718800144157 /* interp_fixup_pass.h */; }; - A926BA4427AC718A00144157 /* pch_source_opt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56927AC718800144157 /* pch_source_opt.cpp */; }; - A926BA4527AC718A00144157 /* pch_source_opt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56927AC718800144157 /* pch_source_opt.cpp */; }; - A926BA4627AC718A00144157 /* pch_source_opt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56927AC718800144157 /* pch_source_opt.cpp */; }; - A926BA4727AC718A00144157 /* inst_buff_addr_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56A27AC718800144157 /* inst_buff_addr_check_pass.h */; }; - A926BA4827AC718A00144157 /* inst_buff_addr_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56A27AC718800144157 /* inst_buff_addr_check_pass.h */; }; - A926BA4927AC718A00144157 /* inst_buff_addr_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56A27AC718800144157 /* inst_buff_addr_check_pass.h */; }; - A926BA4A27AC718A00144157 /* strength_reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56B27AC718800144157 /* strength_reduction_pass.h */; }; - A926BA4B27AC718A00144157 /* strength_reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56B27AC718800144157 /* strength_reduction_pass.h */; }; - A926BA4C27AC718A00144157 /* strength_reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56B27AC718800144157 /* strength_reduction_pass.h */; }; - A926BA4D27AC718A00144157 /* aggressive_dead_code_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56C27AC718800144157 /* aggressive_dead_code_elim_pass.cpp */; }; - A926BA4E27AC718A00144157 /* aggressive_dead_code_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56C27AC718800144157 /* aggressive_dead_code_elim_pass.cpp */; }; - A926BA4F27AC718A00144157 /* aggressive_dead_code_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56C27AC718800144157 /* aggressive_dead_code_elim_pass.cpp */; }; - A926BA5027AC718A00144157 /* eliminate_dead_functions_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56D27AC718800144157 /* eliminate_dead_functions_util.cpp */; }; - A926BA5127AC718A00144157 /* eliminate_dead_functions_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56D27AC718800144157 /* eliminate_dead_functions_util.cpp */; }; - A926BA5227AC718A00144157 /* eliminate_dead_functions_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56D27AC718800144157 /* eliminate_dead_functions_util.cpp */; }; - A926BA5327AC718A00144157 /* inst_debug_printf_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56E27AC718800144157 /* inst_debug_printf_pass.h */; }; - A926BA5427AC718A00144157 /* inst_debug_printf_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56E27AC718800144157 /* inst_debug_printf_pass.h */; }; - A926BA5527AC718A00144157 /* inst_debug_printf_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B56E27AC718800144157 /* inst_debug_printf_pass.h */; }; - A926BA5627AC718A00144157 /* simplification_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56F27AC718800144157 /* simplification_pass.cpp */; }; - A926BA5727AC718A00144157 /* simplification_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56F27AC718800144157 /* simplification_pass.cpp */; }; - A926BA5827AC718A00144157 /* simplification_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B56F27AC718800144157 /* simplification_pass.cpp */; }; - A926BA5927AC718A00144157 /* dead_branch_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57027AC718800144157 /* dead_branch_elim_pass.cpp */; }; - A926BA5A27AC718A00144157 /* dead_branch_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57027AC718800144157 /* dead_branch_elim_pass.cpp */; }; - A926BA5B27AC718A00144157 /* dead_branch_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57027AC718800144157 /* dead_branch_elim_pass.cpp */; }; - A926BA5C27AC718A00144157 /* flatten_decoration_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57127AC718800144157 /* flatten_decoration_pass.cpp */; }; - A926BA5D27AC718A00144157 /* flatten_decoration_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57127AC718800144157 /* flatten_decoration_pass.cpp */; }; - A926BA5E27AC718A00144157 /* flatten_decoration_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57127AC718800144157 /* flatten_decoration_pass.cpp */; }; - A926BA5F27AC718A00144157 /* dead_insert_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57227AC718800144157 /* dead_insert_elim_pass.h */; }; - A926BA6027AC718A00144157 /* dead_insert_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57227AC718800144157 /* dead_insert_elim_pass.h */; }; - A926BA6127AC718A00144157 /* dead_insert_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57227AC718800144157 /* dead_insert_elim_pass.h */; }; - A926BA6227AC718A00144157 /* folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57327AC718800144157 /* folding_rules.cpp */; }; - A926BA6327AC718A00144157 /* folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57327AC718800144157 /* folding_rules.cpp */; }; - A926BA6427AC718A00144157 /* folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57327AC718800144157 /* folding_rules.cpp */; }; - A926BA6527AC718A00144157 /* freeze_spec_constant_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57427AC718800144157 /* freeze_spec_constant_value_pass.h */; }; - A926BA6627AC718A00144157 /* freeze_spec_constant_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57427AC718800144157 /* freeze_spec_constant_value_pass.h */; }; - A926BA6727AC718A00144157 /* freeze_spec_constant_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57427AC718800144157 /* freeze_spec_constant_value_pass.h */; }; - A926BA6827AC718A00144157 /* ir_context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57527AC718800144157 /* ir_context.cpp */; }; - A926BA6927AC718A00144157 /* ir_context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57527AC718800144157 /* ir_context.cpp */; }; - A926BA6A27AC718A00144157 /* ir_context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57527AC718800144157 /* ir_context.cpp */; }; - A926BA6B27AC718A00144157 /* instrument_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57627AC718800144157 /* instrument_pass.h */; }; - A926BA6C27AC718A00144157 /* instrument_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57627AC718800144157 /* instrument_pass.h */; }; - A926BA6D27AC718A00144157 /* instrument_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57627AC718800144157 /* instrument_pass.h */; }; - A926BA6E27AC718A00144157 /* mem_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57727AC718800144157 /* mem_pass.h */; }; - A926BA6F27AC718A00144157 /* mem_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57727AC718800144157 /* mem_pass.h */; }; - A926BA7027AC718A00144157 /* mem_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57727AC718800144157 /* mem_pass.h */; }; - A926BA7127AC718A00144157 /* loop_descriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57827AC718800144157 /* loop_descriptor.cpp */; }; - A926BA7227AC718A00144157 /* loop_descriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57827AC718800144157 /* loop_descriptor.cpp */; }; - A926BA7327AC718A00144157 /* loop_descriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57827AC718800144157 /* loop_descriptor.cpp */; }; - A926BA7427AC718A00144157 /* eliminate_dead_members_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57927AC718800144157 /* eliminate_dead_members_pass.h */; }; - A926BA7527AC718A00144157 /* eliminate_dead_members_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57927AC718800144157 /* eliminate_dead_members_pass.h */; }; - A926BA7627AC718A00144157 /* eliminate_dead_members_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57927AC718800144157 /* eliminate_dead_members_pass.h */; }; - A926BA7727AC718A00144157 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57A27AC718800144157 /* function.cpp */; }; - A926BA7827AC718A00144157 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57A27AC718800144157 /* function.cpp */; }; - A926BA7927AC718A00144157 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57A27AC718800144157 /* function.cpp */; }; - A926BA7A27AC718A00144157 /* instruction_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57B27AC718800144157 /* instruction_list.cpp */; }; - A926BA7B27AC718A00144157 /* instruction_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57B27AC718800144157 /* instruction_list.cpp */; }; - A926BA7C27AC718A00144157 /* instruction_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57B27AC718800144157 /* instruction_list.cpp */; }; - A926BA7D27AC718A00144157 /* control_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57C27AC718800144157 /* control_dependence.cpp */; }; - A926BA7E27AC718A00144157 /* control_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57C27AC718800144157 /* control_dependence.cpp */; }; - A926BA7F27AC718A00144157 /* control_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57C27AC718800144157 /* control_dependence.cpp */; }; - A926BA8027AC718A00144157 /* composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57D27AC718800144157 /* composite.cpp */; }; - A926BA8127AC718A00144157 /* composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57D27AC718800144157 /* composite.cpp */; }; - A926BA8227AC718A00144157 /* composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57D27AC718800144157 /* composite.cpp */; }; - A926BA8327AC718A00144157 /* convert_to_half_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57E27AC718800144157 /* convert_to_half_pass.cpp */; }; - A926BA8427AC718A00144157 /* convert_to_half_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57E27AC718800144157 /* convert_to_half_pass.cpp */; }; - A926BA8527AC718A00144157 /* convert_to_half_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B57E27AC718800144157 /* convert_to_half_pass.cpp */; }; - A926BA8627AC718A00144157 /* inline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57F27AC718800144157 /* inline_pass.h */; }; - A926BA8727AC718A00144157 /* inline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57F27AC718800144157 /* inline_pass.h */; }; - A926BA8827AC718A00144157 /* inline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B57F27AC718800144157 /* inline_pass.h */; }; - A926BA8927AC718A00144157 /* loop_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58027AC718800144157 /* loop_dependence.h */; }; - A926BA8A27AC718A00144157 /* loop_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58027AC718800144157 /* loop_dependence.h */; }; - A926BA8B27AC718A00144157 /* loop_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58027AC718800144157 /* loop_dependence.h */; }; - A926BA8C27AC718A00144157 /* value_number_table.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58127AC718800144157 /* value_number_table.h */; }; - A926BA8D27AC718A00144157 /* value_number_table.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58127AC718800144157 /* value_number_table.h */; }; - A926BA8E27AC718A00144157 /* value_number_table.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58127AC718800144157 /* value_number_table.h */; }; - A926BA8F27AC718A00144157 /* strip_nonsemantic_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58227AC718800144157 /* strip_nonsemantic_info_pass.cpp */; }; - A926BA9027AC718A00144157 /* strip_nonsemantic_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58227AC718800144157 /* strip_nonsemantic_info_pass.cpp */; }; - A926BA9127AC718A00144157 /* strip_nonsemantic_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58227AC718800144157 /* strip_nonsemantic_info_pass.cpp */; }; - A926BA9227AC718A00144157 /* flatten_decoration_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58327AC718800144157 /* flatten_decoration_pass.h */; }; - A926BA9327AC718A00144157 /* flatten_decoration_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58327AC718800144157 /* flatten_decoration_pass.h */; }; - A926BA9427AC718A00144157 /* flatten_decoration_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58327AC718800144157 /* flatten_decoration_pass.h */; }; - A926BA9527AC718A00144157 /* if_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58427AC718800144157 /* if_conversion.cpp */; }; - A926BA9627AC718A00144157 /* if_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58427AC718800144157 /* if_conversion.cpp */; }; - A926BA9727AC718A00144157 /* if_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58427AC718800144157 /* if_conversion.cpp */; }; - A926BA9827AC718A00144157 /* debug_info_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58527AC718800144157 /* debug_info_manager.cpp */; }; - A926BA9927AC718A00144157 /* debug_info_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58527AC718800144157 /* debug_info_manager.cpp */; }; - A926BA9A27AC718A00144157 /* debug_info_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58527AC718800144157 /* debug_info_manager.cpp */; }; - A926BA9B27AC718A00144157 /* inline_exhaustive_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58627AC718800144157 /* inline_exhaustive_pass.h */; }; - A926BA9C27AC718A00144157 /* inline_exhaustive_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58627AC718800144157 /* inline_exhaustive_pass.h */; }; - A926BA9D27AC718A00144157 /* inline_exhaustive_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58627AC718800144157 /* inline_exhaustive_pass.h */; }; - A926BA9E27AC718A00144157 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58727AC718800144157 /* constants.h */; }; - A926BA9F27AC718A00144157 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58727AC718800144157 /* constants.h */; }; - A926BAA027AC718A00144157 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58727AC718800144157 /* constants.h */; }; - A926BAA127AC718A00144157 /* eliminate_dead_members_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58827AC718800144157 /* eliminate_dead_members_pass.cpp */; }; - A926BAA227AC718A00144157 /* eliminate_dead_members_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58827AC718800144157 /* eliminate_dead_members_pass.cpp */; }; - A926BAA327AC718A00144157 /* eliminate_dead_members_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58827AC718800144157 /* eliminate_dead_members_pass.cpp */; }; - A926BAA427AC718A00144157 /* strength_reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58927AC718800144157 /* strength_reduction_pass.cpp */; }; - A926BAA527AC718A00144157 /* strength_reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58927AC718800144157 /* strength_reduction_pass.cpp */; }; - A926BAA627AC718A00144157 /* strength_reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58927AC718800144157 /* strength_reduction_pass.cpp */; }; - A926BAA727AC718A00144157 /* desc_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58A27AC718800144157 /* desc_sroa.cpp */; }; - A926BAA827AC718A00144157 /* desc_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58A27AC718800144157 /* desc_sroa.cpp */; }; - A926BAA927AC718A00144157 /* desc_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58A27AC718800144157 /* desc_sroa.cpp */; }; - A926BAAA27AC718A00144157 /* block_merge_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58B27AC718800144157 /* block_merge_util.cpp */; }; - A926BAAB27AC718A00144157 /* block_merge_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58B27AC718800144157 /* block_merge_util.cpp */; }; - A926BAAC27AC718A00144157 /* block_merge_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58B27AC718800144157 /* block_merge_util.cpp */; }; - A926BAAD27AC718A00144157 /* upgrade_memory_model.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58C27AC718800144157 /* upgrade_memory_model.h */; }; - A926BAAE27AC718A00144157 /* upgrade_memory_model.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58C27AC718800144157 /* upgrade_memory_model.h */; }; - A926BAAF27AC718A00144157 /* upgrade_memory_model.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B58C27AC718800144157 /* upgrade_memory_model.h */; }; - A926BAB027AC718A00144157 /* copy_prop_arrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58D27AC718800144157 /* copy_prop_arrays.cpp */; }; - A926BAB127AC718A00144157 /* copy_prop_arrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58D27AC718800144157 /* copy_prop_arrays.cpp */; }; - A926BAB227AC718A00144157 /* copy_prop_arrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58D27AC718800144157 /* copy_prop_arrays.cpp */; }; - A926BAB327AC718A00144157 /* pass_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58E27AC718800144157 /* pass_manager.cpp */; }; - A926BAB427AC718A00144157 /* pass_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58E27AC718800144157 /* pass_manager.cpp */; }; - A926BAB527AC718A00144157 /* pass_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58E27AC718800144157 /* pass_manager.cpp */; }; - A926BAB627AC718A00144157 /* inline_exhaustive_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58F27AC718800144157 /* inline_exhaustive_pass.cpp */; }; - A926BAB727AC718A00144157 /* inline_exhaustive_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58F27AC718800144157 /* inline_exhaustive_pass.cpp */; }; - A926BAB827AC718A00144157 /* inline_exhaustive_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B58F27AC718800144157 /* inline_exhaustive_pass.cpp */; }; - A926BAB927AC718A00144157 /* loop_fission.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59027AC718800144157 /* loop_fission.h */; }; - A926BABA27AC718A00144157 /* loop_fission.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59027AC718800144157 /* loop_fission.h */; }; - A926BABB27AC718A00144157 /* loop_fission.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59027AC718800144157 /* loop_fission.h */; }; - A926BABC27AC718A00144157 /* workaround1209.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59127AC718800144157 /* workaround1209.h */; }; - A926BABD27AC718A00144157 /* workaround1209.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59127AC718800144157 /* workaround1209.h */; }; - A926BABE27AC718A00144157 /* workaround1209.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59127AC718800144157 /* workaround1209.h */; }; - A926BABF27AC718A00144157 /* loop_fusion_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59227AC718800144157 /* loop_fusion_pass.cpp */; }; - A926BAC027AC718A00144157 /* loop_fusion_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59227AC718800144157 /* loop_fusion_pass.cpp */; }; - A926BAC127AC718A00144157 /* loop_fusion_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59227AC718800144157 /* loop_fusion_pass.cpp */; }; - A926BAC227AC718A00144157 /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59327AC718800144157 /* log.h */; }; - A926BAC327AC718A00144157 /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59327AC718800144157 /* log.h */; }; - A926BAC427AC718A00144157 /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59327AC718800144157 /* log.h */; }; - A926BAC527AC718A00144157 /* copy_prop_arrays.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59427AC718800144157 /* copy_prop_arrays.h */; }; - A926BAC627AC718A00144157 /* copy_prop_arrays.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59427AC718800144157 /* copy_prop_arrays.h */; }; - A926BAC727AC718A00144157 /* copy_prop_arrays.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59427AC718800144157 /* copy_prop_arrays.h */; }; - A926BAC827AC718A00144157 /* eliminate_dead_constant_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59527AC718800144157 /* eliminate_dead_constant_pass.h */; }; - A926BAC927AC718A00144157 /* eliminate_dead_constant_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59527AC718800144157 /* eliminate_dead_constant_pass.h */; }; - A926BACA27AC718A00144157 /* eliminate_dead_constant_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59527AC718800144157 /* eliminate_dead_constant_pass.h */; }; - A926BACB27AC718A00144157 /* dead_insert_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59627AC718800144157 /* dead_insert_elim_pass.cpp */; }; - A926BACC27AC718A00144157 /* dead_insert_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59627AC718800144157 /* dead_insert_elim_pass.cpp */; }; - A926BACD27AC718A00144157 /* dead_insert_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59627AC718800144157 /* dead_insert_elim_pass.cpp */; }; - A926BACE27AC718A00144157 /* ssa_rewrite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59727AC718800144157 /* ssa_rewrite_pass.h */; }; - A926BACF27AC718A00144157 /* ssa_rewrite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59727AC718800144157 /* ssa_rewrite_pass.h */; }; - A926BAD027AC718A00144157 /* ssa_rewrite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59727AC718800144157 /* ssa_rewrite_pass.h */; }; - A926BAD127AC718A00144157 /* scalar_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59827AC718800144157 /* scalar_analysis.cpp */; }; - A926BAD227AC718A00144157 /* scalar_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59827AC718800144157 /* scalar_analysis.cpp */; }; - A926BAD327AC718A00144157 /* scalar_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59827AC718800144157 /* scalar_analysis.cpp */; }; - A926BAD427AC718A00144157 /* dead_variable_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59927AC718800144157 /* dead_variable_elimination.h */; }; - A926BAD527AC718A00144157 /* dead_variable_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59927AC718800144157 /* dead_variable_elimination.h */; }; - A926BAD627AC718A00144157 /* dead_variable_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59927AC718800144157 /* dead_variable_elimination.h */; }; - A926BAD727AC718A00144157 /* block_merge_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59A27AC718800144157 /* block_merge_pass.cpp */; }; - A926BAD827AC718A00144157 /* block_merge_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59A27AC718800144157 /* block_merge_pass.cpp */; }; - A926BAD927AC718A00144157 /* block_merge_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59A27AC718800144157 /* block_merge_pass.cpp */; }; - A926BADA27AC718A00144157 /* dominator_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59B27AC718800144157 /* dominator_analysis.h */; }; - A926BADB27AC718A00144157 /* dominator_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59B27AC718800144157 /* dominator_analysis.h */; }; - A926BADC27AC718A00144157 /* dominator_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59B27AC718800144157 /* dominator_analysis.h */; }; - A926BADD27AC718A00144157 /* convert_to_sampled_image_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59C27AC718800144157 /* convert_to_sampled_image_pass.cpp */; }; - A926BADE27AC718A00144157 /* convert_to_sampled_image_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59C27AC718800144157 /* convert_to_sampled_image_pass.cpp */; }; - A926BADF27AC718A00144157 /* convert_to_sampled_image_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B59C27AC718800144157 /* convert_to_sampled_image_pass.cpp */; }; - A926BAE027AC718A00144157 /* pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59D27AC718800144157 /* pass.h */; }; - A926BAE127AC718A00144157 /* pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59D27AC718800144157 /* pass.h */; }; - A926BAE227AC718A00144157 /* pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59D27AC718800144157 /* pass.h */; }; - A926BAE327AC718A00144157 /* folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59E27AC718800144157 /* folding_rules.h */; }; - A926BAE427AC718A00144157 /* folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59E27AC718800144157 /* folding_rules.h */; }; - A926BAE527AC718A00144157 /* folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59E27AC718800144157 /* folding_rules.h */; }; - A926BAE627AC718A00144157 /* eliminate_dead_functions_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59F27AC718800144157 /* eliminate_dead_functions_pass.h */; }; - A926BAE727AC718A00144157 /* eliminate_dead_functions_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59F27AC718800144157 /* eliminate_dead_functions_pass.h */; }; - A926BAE827AC718A00144157 /* eliminate_dead_functions_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B59F27AC718800144157 /* eliminate_dead_functions_pass.h */; }; - A926BAE927AC718A00144157 /* eliminate_dead_functions_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A027AC718800144157 /* eliminate_dead_functions_util.h */; }; - A926BAEA27AC718A00144157 /* eliminate_dead_functions_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A027AC718800144157 /* eliminate_dead_functions_util.h */; }; - A926BAEB27AC718A00144157 /* eliminate_dead_functions_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A027AC718800144157 /* eliminate_dead_functions_util.h */; }; - A926BAEC27AC718A00144157 /* fold.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A127AC718800144157 /* fold.h */; }; - A926BAED27AC718A00144157 /* fold.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A127AC718800144157 /* fold.h */; }; - A926BAEE27AC718A00144157 /* fold.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A127AC718800144157 /* fold.h */; }; - A926BAEF27AC718A00144157 /* local_single_store_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A227AC718800144157 /* local_single_store_elim_pass.cpp */; }; - A926BAF027AC718A00144157 /* local_single_store_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A227AC718800144157 /* local_single_store_elim_pass.cpp */; }; - A926BAF127AC718A00144157 /* local_single_store_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A227AC718800144157 /* local_single_store_elim_pass.cpp */; }; - A926BAF227AC718A00144157 /* dead_branch_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A327AC718800144157 /* dead_branch_elim_pass.h */; }; - A926BAF327AC718A00144157 /* dead_branch_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A327AC718800144157 /* dead_branch_elim_pass.h */; }; - A926BAF427AC718A00144157 /* dead_branch_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A327AC718800144157 /* dead_branch_elim_pass.h */; }; - A926BAF527AC718A00144157 /* private_to_local_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A427AC718800144157 /* private_to_local_pass.cpp */; }; - A926BAF627AC718A00144157 /* private_to_local_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A427AC718800144157 /* private_to_local_pass.cpp */; }; - A926BAF727AC718A00144157 /* private_to_local_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A427AC718800144157 /* private_to_local_pass.cpp */; }; - A926BAF827AC718A00144157 /* scalar_analysis_nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A527AC718800144157 /* scalar_analysis_nodes.h */; }; - A926BAF927AC718A00144157 /* scalar_analysis_nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A527AC718800144157 /* scalar_analysis_nodes.h */; }; - A926BAFA27AC718A00144157 /* scalar_analysis_nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A527AC718800144157 /* scalar_analysis_nodes.h */; }; - A926BAFB27AC718A00144157 /* propagator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A627AC718800144157 /* propagator.cpp */; }; - A926BAFC27AC718A00144157 /* propagator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A627AC718800144157 /* propagator.cpp */; }; - A926BAFD27AC718A00144157 /* propagator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A627AC718800144157 /* propagator.cpp */; }; - A926BAFE27AC718A00144157 /* fix_storage_class.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A727AC718800144157 /* fix_storage_class.h */; }; - A926BAFF27AC718A00144157 /* fix_storage_class.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A727AC718800144157 /* fix_storage_class.h */; }; - A926BB0027AC718A00144157 /* fix_storage_class.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5A727AC718800144157 /* fix_storage_class.h */; }; - A926BB0127AC718A00144157 /* loop_dependence_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A827AC718800144157 /* loop_dependence_helpers.cpp */; }; - A926BB0227AC718A00144157 /* loop_dependence_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A827AC718800144157 /* loop_dependence_helpers.cpp */; }; - A926BB0327AC718A00144157 /* loop_dependence_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A827AC718800144157 /* loop_dependence_helpers.cpp */; }; - A926BB0427AC718A00144157 /* set_spec_constant_default_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A927AC718800144157 /* set_spec_constant_default_value_pass.cpp */; }; - A926BB0527AC718A00144157 /* set_spec_constant_default_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A927AC718800144157 /* set_spec_constant_default_value_pass.cpp */; }; - A926BB0627AC718A00144157 /* set_spec_constant_default_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5A927AC718800144157 /* set_spec_constant_default_value_pass.cpp */; }; - A926BB0727AC718A00144157 /* passes.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5AA27AC718800144157 /* passes.h */; }; - A926BB0827AC718A00144157 /* passes.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5AA27AC718800144157 /* passes.h */; }; - A926BB0927AC718A00144157 /* passes.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5AA27AC718800144157 /* passes.h */; }; - A926BB0A27AC718A00144157 /* fold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5AB27AC718800144157 /* fold.cpp */; }; - A926BB0B27AC718A00144157 /* fold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5AB27AC718800144157 /* fold.cpp */; }; - A926BB0C27AC718A00144157 /* fold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5AB27AC718800144157 /* fold.cpp */; }; - A926BB0D27AC718A00144157 /* amd_ext_to_khr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5AC27AC718800144157 /* amd_ext_to_khr.cpp */; }; - A926BB0E27AC718A00144157 /* amd_ext_to_khr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5AC27AC718800144157 /* amd_ext_to_khr.cpp */; }; - A926BB0F27AC718A00144157 /* amd_ext_to_khr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5AC27AC718800144157 /* amd_ext_to_khr.cpp */; }; - A926BB1027AC718A00144157 /* scalar_replacement_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5AD27AC718800144157 /* scalar_replacement_pass.cpp */; }; - A926BB1127AC718A00144157 /* scalar_replacement_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5AD27AC718800144157 /* scalar_replacement_pass.cpp */; }; - A926BB1227AC718A00144157 /* scalar_replacement_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5AD27AC718800144157 /* scalar_replacement_pass.cpp */; }; - A926BB1327AC718A00144157 /* simplification_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5AE27AC718800144157 /* simplification_pass.h */; }; - A926BB1427AC718A00144157 /* simplification_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5AE27AC718800144157 /* simplification_pass.h */; }; - A926BB1527AC718A00144157 /* simplification_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5AE27AC718800144157 /* simplification_pass.h */; }; - A926BB1627AC718A00144157 /* remove_duplicates_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5AF27AC718800144157 /* remove_duplicates_pass.h */; }; - A926BB1727AC718A00144157 /* remove_duplicates_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5AF27AC718800144157 /* remove_duplicates_pass.h */; }; - A926BB1827AC718A00144157 /* remove_duplicates_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5AF27AC718800144157 /* remove_duplicates_pass.h */; }; - A926BB1927AC718A00144157 /* desc_sroa_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B027AC718800144157 /* desc_sroa_util.h */; }; - A926BB1A27AC718A00144157 /* desc_sroa_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B027AC718800144157 /* desc_sroa_util.h */; }; - A926BB1B27AC718A00144157 /* desc_sroa_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B027AC718800144157 /* desc_sroa_util.h */; }; - A926BB1C27AC718A00144157 /* redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5B127AC718800144157 /* redundancy_elimination.cpp */; }; - A926BB1D27AC718A00144157 /* redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5B127AC718800144157 /* redundancy_elimination.cpp */; }; - A926BB1E27AC718A00144157 /* redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5B127AC718800144157 /* redundancy_elimination.cpp */; }; - A926BB1F27AC718A00144157 /* reflect.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B227AC718800144157 /* reflect.h */; }; - A926BB2027AC718A00144157 /* reflect.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B227AC718800144157 /* reflect.h */; }; - A926BB2127AC718A00144157 /* reflect.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B227AC718800144157 /* reflect.h */; }; - A926BB2227AC718A00144157 /* workaround1209.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5B327AC718800144157 /* workaround1209.cpp */; }; - A926BB2327AC718A00144157 /* workaround1209.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5B327AC718800144157 /* workaround1209.cpp */; }; - A926BB2427AC718A00144157 /* workaround1209.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5B327AC718800144157 /* workaround1209.cpp */; }; - A926BB2527AC718A00144157 /* null_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B427AC718800144157 /* null_pass.h */; }; - A926BB2627AC718A00144157 /* null_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B427AC718800144157 /* null_pass.h */; }; - A926BB2727AC718A00144157 /* null_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B427AC718800144157 /* null_pass.h */; }; - A926BB2827AC718A00144157 /* relax_float_ops_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5B527AC718800144157 /* relax_float_ops_pass.cpp */; }; - A926BB2927AC718A00144157 /* relax_float_ops_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5B527AC718800144157 /* relax_float_ops_pass.cpp */; }; - A926BB2A27AC718A00144157 /* relax_float_ops_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5B527AC718800144157 /* relax_float_ops_pass.cpp */; }; - A926BB2B27AC718A00144157 /* const_folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B627AC718800144157 /* const_folding_rules.h */; }; - A926BB2C27AC718A00144157 /* const_folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B627AC718800144157 /* const_folding_rules.h */; }; - A926BB2D27AC718A00144157 /* const_folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B627AC718800144157 /* const_folding_rules.h */; }; - A926BB2E27AC718A00144157 /* scalar_replacement_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B727AC718800144157 /* scalar_replacement_pass.h */; }; - A926BB2F27AC718A00144157 /* scalar_replacement_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B727AC718800144157 /* scalar_replacement_pass.h */; }; - A926BB3027AC718A00144157 /* scalar_replacement_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B727AC718800144157 /* scalar_replacement_pass.h */; }; - A926BB3127AC718A00144157 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5B827AC718800144157 /* instruction.cpp */; }; - A926BB3227AC718A00144157 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5B827AC718800144157 /* instruction.cpp */; }; - A926BB3327AC718A00144157 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5B827AC718800144157 /* instruction.cpp */; }; - A926BB3427AC718A00144157 /* pch_source_opt.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B927AC718800144157 /* pch_source_opt.h */; }; - A926BB3527AC718A00144157 /* pch_source_opt.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B927AC718800144157 /* pch_source_opt.h */; }; - A926BB3627AC718A00144157 /* pch_source_opt.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5B927AC718800144157 /* pch_source_opt.h */; }; - A926BB3727AC718A00144157 /* reduce_load_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BA27AC718800144157 /* reduce_load_size.cpp */; }; - A926BB3827AC718A00144157 /* reduce_load_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BA27AC718800144157 /* reduce_load_size.cpp */; }; - A926BB3927AC718A00144157 /* reduce_load_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BA27AC718800144157 /* reduce_load_size.cpp */; }; - A926BB3A27AC718A00144157 /* redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5BB27AC718800144157 /* redundancy_elimination.h */; }; - A926BB3B27AC718A00144157 /* redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5BB27AC718800144157 /* redundancy_elimination.h */; }; - A926BB3C27AC718A00144157 /* redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5BB27AC718800144157 /* redundancy_elimination.h */; }; - A926BB3D27AC718A00144157 /* fix_storage_class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BC27AC718800144157 /* fix_storage_class.cpp */; }; - A926BB3E27AC718A00144157 /* fix_storage_class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BC27AC718800144157 /* fix_storage_class.cpp */; }; - A926BB3F27AC718A00144157 /* fix_storage_class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BC27AC718800144157 /* fix_storage_class.cpp */; }; - A926BB4027AC718A00144157 /* value_number_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BD27AC718800144157 /* value_number_table.cpp */; }; - A926BB4127AC718A00144157 /* value_number_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BD27AC718800144157 /* value_number_table.cpp */; }; - A926BB4227AC718A00144157 /* value_number_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BD27AC718800144157 /* value_number_table.cpp */; }; - A926BB4327AC718A00144157 /* remove_unused_interface_variables_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BE27AC718800144157 /* remove_unused_interface_variables_pass.cpp */; }; - A926BB4427AC718A00144157 /* remove_unused_interface_variables_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BE27AC718800144157 /* remove_unused_interface_variables_pass.cpp */; }; - A926BB4527AC718A00144157 /* remove_unused_interface_variables_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BE27AC718800144157 /* remove_unused_interface_variables_pass.cpp */; }; - A926BB4627AC718A00144157 /* inline_opaque_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BF27AC718800144157 /* inline_opaque_pass.cpp */; }; - A926BB4727AC718A00144157 /* inline_opaque_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BF27AC718800144157 /* inline_opaque_pass.cpp */; }; - A926BB4827AC718A00144157 /* inline_opaque_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5BF27AC718800144157 /* inline_opaque_pass.cpp */; }; - A926BB4927AC718A00144157 /* replace_invalid_opc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5C027AC718800144157 /* replace_invalid_opc.cpp */; }; - A926BB4A27AC718A00144157 /* replace_invalid_opc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5C027AC718800144157 /* replace_invalid_opc.cpp */; }; - A926BB4B27AC718A00144157 /* replace_invalid_opc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5C027AC718800144157 /* replace_invalid_opc.cpp */; }; - A926BB4C27AC718A00144157 /* loop_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C127AC718800144157 /* loop_utils.h */; }; - A926BB4D27AC718A00144157 /* loop_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C127AC718800144157 /* loop_utils.h */; }; - A926BB4E27AC718A00144157 /* loop_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C127AC718800144157 /* loop_utils.h */; }; - A926BB4F27AC718A00144157 /* module.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C227AC718800144157 /* module.h */; }; - A926BB5027AC718A00144157 /* module.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C227AC718800144157 /* module.h */; }; - A926BB5127AC718A00144157 /* module.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C227AC718800144157 /* module.h */; }; - A926BB5227AC718A00144157 /* dominator_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5C327AC718800144157 /* dominator_analysis.cpp */; }; - A926BB5327AC718A00144157 /* dominator_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5C327AC718800144157 /* dominator_analysis.cpp */; }; - A926BB5427AC718A00144157 /* dominator_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5C327AC718800144157 /* dominator_analysis.cpp */; }; - A926BB5527AC718A00144157 /* ir_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C427AC718800144157 /* ir_builder.h */; }; - A926BB5627AC718A00144157 /* ir_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C427AC718800144157 /* ir_builder.h */; }; - A926BB5727AC718A00144157 /* ir_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C427AC718800144157 /* ir_builder.h */; }; - A926BB5827AC718A00144157 /* replace_desc_array_access_using_var_index.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5C527AC718800144157 /* replace_desc_array_access_using_var_index.cpp */; }; - A926BB5927AC718A00144157 /* replace_desc_array_access_using_var_index.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5C527AC718800144157 /* replace_desc_array_access_using_var_index.cpp */; }; - A926BB5A27AC718A00144157 /* replace_desc_array_access_using_var_index.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5C527AC718800144157 /* replace_desc_array_access_using_var_index.cpp */; }; - A926BB5B27AC718A00144157 /* loop_unswitch_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C627AC718800144157 /* loop_unswitch_pass.h */; }; - A926BB5C27AC718A00144157 /* loop_unswitch_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C627AC718800144157 /* loop_unswitch_pass.h */; }; - A926BB5D27AC718A00144157 /* loop_unswitch_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C627AC718800144157 /* loop_unswitch_pass.h */; }; - A926BB5E27AC718A00144157 /* cfg.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C727AC718800144157 /* cfg.h */; }; - A926BB5F27AC718A00144157 /* cfg.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C727AC718800144157 /* cfg.h */; }; - A926BB6027AC718A00144157 /* cfg.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C727AC718800144157 /* cfg.h */; }; - A926BB6127AC718A00144157 /* code_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C827AC718800144157 /* code_sink.h */; }; - A926BB6227AC718A00144157 /* code_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C827AC718800144157 /* code_sink.h */; }; - A926BB6327AC718A00144157 /* code_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5C827AC718800144157 /* code_sink.h */; }; - A926BB6427AC718A00144157 /* dataflow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5C927AC718800144157 /* dataflow.cpp */; }; - A926BB6527AC718A00144157 /* dataflow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5C927AC718800144157 /* dataflow.cpp */; }; - A926BB6627AC718A00144157 /* dataflow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5C927AC718800144157 /* dataflow.cpp */; }; - A926BB6727AC718A00144157 /* loop_descriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CA27AC718800144157 /* loop_descriptor.h */; }; - A926BB6827AC718A00144157 /* loop_descriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CA27AC718800144157 /* loop_descriptor.h */; }; - A926BB6927AC718A00144157 /* loop_descriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CA27AC718800144157 /* loop_descriptor.h */; }; - A926BB6A27AC718A00144157 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CB27AC718800144157 /* instruction.h */; }; - A926BB6B27AC718A00144157 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CB27AC718800144157 /* instruction.h */; }; - A926BB6C27AC718A00144157 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CB27AC718800144157 /* instruction.h */; }; - A926BB6D27AC718A00144157 /* aggressive_dead_code_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CC27AC718800144157 /* aggressive_dead_code_elim_pass.h */; }; - A926BB6E27AC718A00144157 /* aggressive_dead_code_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CC27AC718800144157 /* aggressive_dead_code_elim_pass.h */; }; - A926BB6F27AC718A00144157 /* aggressive_dead_code_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CC27AC718800144157 /* aggressive_dead_code_elim_pass.h */; }; - A926BB7027AC718A00144157 /* struct_cfg_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5CD27AC718800144157 /* struct_cfg_analysis.cpp */; }; - A926BB7127AC718A00144157 /* struct_cfg_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5CD27AC718800144157 /* struct_cfg_analysis.cpp */; }; - A926BB7227AC718A00144157 /* struct_cfg_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5CD27AC718800144157 /* struct_cfg_analysis.cpp */; }; - A926BB7327AC718A00144157 /* vector_dce.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CE27AC718800144157 /* vector_dce.h */; }; - A926BB7427AC718A00144157 /* vector_dce.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CE27AC718800144157 /* vector_dce.h */; }; - A926BB7527AC718A00144157 /* vector_dce.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CE27AC718800144157 /* vector_dce.h */; }; - A926BB7627AC718A00144157 /* combine_access_chains.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CF27AC718800144157 /* combine_access_chains.h */; }; - A926BB7727AC718A00144157 /* combine_access_chains.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CF27AC718800144157 /* combine_access_chains.h */; }; - A926BB7827AC718A00144157 /* combine_access_chains.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5CF27AC718800144157 /* combine_access_chains.h */; }; - A926BB7927AC718A00144157 /* pass_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D027AC718800144157 /* pass_manager.h */; }; - A926BB7A27AC718A00144157 /* pass_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D027AC718800144157 /* pass_manager.h */; }; - A926BB7B27AC718A00144157 /* pass_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D027AC718800144157 /* pass_manager.h */; }; - A926BB7C27AC718A00144157 /* spread_volatile_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D127AC718800144157 /* spread_volatile_semantics.h */; }; - A926BB7D27AC718A00144157 /* spread_volatile_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D127AC718800144157 /* spread_volatile_semantics.h */; }; - A926BB7E27AC718A00144157 /* spread_volatile_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D127AC718800144157 /* spread_volatile_semantics.h */; }; - A926BB7F27AC718A00144157 /* local_access_chain_convert_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5D227AC718800144157 /* local_access_chain_convert_pass.cpp */; }; - A926BB8027AC718A00144157 /* local_access_chain_convert_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5D227AC718800144157 /* local_access_chain_convert_pass.cpp */; }; - A926BB8127AC718A00144157 /* local_access_chain_convert_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5D227AC718800144157 /* local_access_chain_convert_pass.cpp */; }; - A926BB8227AC718A00144157 /* interp_fixup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5D327AC718800144157 /* interp_fixup_pass.cpp */; }; - A926BB8327AC718A00144157 /* interp_fixup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5D327AC718800144157 /* interp_fixup_pass.cpp */; }; - A926BB8427AC718A00144157 /* interp_fixup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5D327AC718800144157 /* interp_fixup_pass.cpp */; }; - A926BB8527AC718A00144157 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5D427AC718800144157 /* basic_block.cpp */; }; - A926BB8627AC718A00144157 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5D427AC718800144157 /* basic_block.cpp */; }; - A926BB8727AC718A00144157 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5D427AC718800144157 /* basic_block.cpp */; }; - A926BB8827AC718A00144157 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D527AC718800144157 /* iterator.h */; }; - A926BB8927AC718A00144157 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D527AC718800144157 /* iterator.h */; }; - A926BB8A27AC718A00144157 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D527AC718800144157 /* iterator.h */; }; - A926BB8B27AC718A00144157 /* licm_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D627AC718800144157 /* licm_pass.h */; }; - A926BB8C27AC718A00144157 /* licm_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D627AC718800144157 /* licm_pass.h */; }; - A926BB8D27AC718A00144157 /* licm_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D627AC718800144157 /* licm_pass.h */; }; - A926BB8E27AC718A00144157 /* build_module.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D727AC718800144157 /* build_module.h */; }; - A926BB8F27AC718A00144157 /* build_module.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D727AC718800144157 /* build_module.h */; }; - A926BB9027AC718A00144157 /* build_module.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D727AC718800144157 /* build_module.h */; }; - A926BB9127AC718A00144157 /* ccp_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D827AC718800144157 /* ccp_pass.h */; }; - A926BB9227AC718A00144157 /* ccp_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D827AC718800144157 /* ccp_pass.h */; }; - A926BB9327AC718A00144157 /* ccp_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5D827AC718800144157 /* ccp_pass.h */; }; - A926BB9427AC718A00144157 /* graphics_robust_access_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5D927AC718800144157 /* graphics_robust_access_pass.cpp */; }; - A926BB9527AC718A00144157 /* graphics_robust_access_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5D927AC718800144157 /* graphics_robust_access_pass.cpp */; }; - A926BB9627AC718A00144157 /* graphics_robust_access_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5D927AC718800144157 /* graphics_robust_access_pass.cpp */; }; - A926BB9727AC718A00144157 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5DA27AC718800144157 /* function.h */; }; - A926BB9827AC718A00144157 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5DA27AC718800144157 /* function.h */; }; - A926BB9927AC718A00144157 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5DA27AC718800144157 /* function.h */; }; - A926BB9A27AC718A00144157 /* loop_fusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5DB27AC718800144157 /* loop_fusion.cpp */; }; - A926BB9B27AC718A00144157 /* loop_fusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5DB27AC718800144157 /* loop_fusion.cpp */; }; - A926BB9C27AC718A00144157 /* loop_fusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5DB27AC718800144157 /* loop_fusion.cpp */; }; - A926BB9D27AC718A00144157 /* upgrade_memory_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5DC27AC718800144157 /* upgrade_memory_model.cpp */; }; - A926BB9E27AC718A00144157 /* upgrade_memory_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5DC27AC718800144157 /* upgrade_memory_model.cpp */; }; - A926BB9F27AC718A00144157 /* upgrade_memory_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5DC27AC718800144157 /* upgrade_memory_model.cpp */; }; - A926BBA027AC718A00144157 /* feature_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5DD27AC718800144157 /* feature_manager.h */; }; - A926BBA127AC718A00144157 /* feature_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5DD27AC718800144157 /* feature_manager.h */; }; - A926BBA227AC718A00144157 /* feature_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5DD27AC718800144157 /* feature_manager.h */; }; - A926BBA327AC718A00144157 /* dataflow.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5DE27AC718800144157 /* dataflow.h */; }; - A926BBA427AC718A00144157 /* dataflow.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5DE27AC718800144157 /* dataflow.h */; }; - A926BBA527AC718A00144157 /* dataflow.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5DE27AC718800144157 /* dataflow.h */; }; - A926BBA627AC718A00144157 /* inst_bindless_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5DF27AC718800144157 /* inst_bindless_check_pass.h */; }; - A926BBA727AC718A00144157 /* inst_bindless_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5DF27AC718800144157 /* inst_bindless_check_pass.h */; }; - A926BBA827AC718A00144157 /* inst_bindless_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5DF27AC718800144157 /* inst_bindless_check_pass.h */; }; - A926BBA927AC718A00144157 /* scalar_analysis_simplification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5E027AC718800144157 /* scalar_analysis_simplification.cpp */; }; - A926BBAA27AC718A00144157 /* scalar_analysis_simplification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5E027AC718800144157 /* scalar_analysis_simplification.cpp */; }; - A926BBAB27AC718A00144157 /* scalar_analysis_simplification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5E027AC718800144157 /* scalar_analysis_simplification.cpp */; }; - A926BBAC27AC718A00144157 /* set_spec_constant_default_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E127AC718800144157 /* set_spec_constant_default_value_pass.h */; }; - A926BBAD27AC718A00144157 /* set_spec_constant_default_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E127AC718800144157 /* set_spec_constant_default_value_pass.h */; }; - A926BBAE27AC718A00144157 /* set_spec_constant_default_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E127AC718800144157 /* set_spec_constant_default_value_pass.h */; }; - A926BBAF27AC718A00144157 /* dominator_tree.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E227AC718800144157 /* dominator_tree.h */; }; - A926BBB027AC718A00144157 /* dominator_tree.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E227AC718800144157 /* dominator_tree.h */; }; - A926BBB127AC718A00144157 /* dominator_tree.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E227AC718800144157 /* dominator_tree.h */; }; - A926BBB227AC718A00144157 /* remove_unused_interface_variables_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E327AC718800144157 /* remove_unused_interface_variables_pass.h */; }; - A926BBB327AC718A00144157 /* remove_unused_interface_variables_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E327AC718800144157 /* remove_unused_interface_variables_pass.h */; }; - A926BBB427AC718A00144157 /* remove_unused_interface_variables_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E327AC718800144157 /* remove_unused_interface_variables_pass.h */; }; - A926BBB527AC718A00144157 /* type_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E427AC718800144157 /* type_manager.h */; }; - A926BBB627AC718A00144157 /* type_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E427AC718800144157 /* type_manager.h */; }; - A926BBB727AC718A00144157 /* type_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E427AC718800144157 /* type_manager.h */; }; - A926BBB827AC718A00144157 /* compact_ids_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5E527AC718800144157 /* compact_ids_pass.cpp */; }; - A926BBB927AC718A00144157 /* compact_ids_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5E527AC718800144157 /* compact_ids_pass.cpp */; }; - A926BBBA27AC718A00144157 /* compact_ids_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5E527AC718800144157 /* compact_ids_pass.cpp */; }; - A926BBBB27AC718A00144157 /* loop_peeling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5E627AC718800144157 /* loop_peeling.cpp */; }; - A926BBBC27AC718A00144157 /* loop_peeling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5E627AC718800144157 /* loop_peeling.cpp */; }; - A926BBBD27AC718A00144157 /* loop_peeling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B5E627AC718800144157 /* loop_peeling.cpp */; }; - A926BBBE27AC718A00144157 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E727AC718800144157 /* table.h */; }; - A926BBBF27AC718A00144157 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E727AC718800144157 /* table.h */; }; - A926BBC027AC718A00144157 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B5E727AC718800144157 /* table.h */; }; - A926C05627AC718C00144157 /* ext_inst.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77427AC718900144157 /* ext_inst.h */; }; - A926C05727AC718C00144157 /* ext_inst.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77427AC718900144157 /* ext_inst.h */; }; - A926C05827AC718C00144157 /* ext_inst.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77427AC718900144157 /* ext_inst.h */; }; - A926C05927AC718C00144157 /* diagnostic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B77527AC718900144157 /* diagnostic.cpp */; }; - A926C05A27AC718C00144157 /* diagnostic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B77527AC718900144157 /* diagnostic.cpp */; }; - A926C05B27AC718C00144157 /* diagnostic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B77527AC718900144157 /* diagnostic.cpp */; }; - A926C05C27AC718C00144157 /* latest_version_spirv_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77627AC718900144157 /* latest_version_spirv_header.h */; }; - A926C05D27AC718C00144157 /* latest_version_spirv_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77627AC718900144157 /* latest_version_spirv_header.h */; }; - A926C05E27AC718C00144157 /* latest_version_spirv_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77627AC718900144157 /* latest_version_spirv_header.h */; }; - A926C05F27AC718C00144157 /* libspirv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B77727AC718900144157 /* libspirv.cpp */; }; - A926C06027AC718C00144157 /* libspirv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B77727AC718900144157 /* libspirv.cpp */; }; - A926C06127AC718C00144157 /* libspirv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B77727AC718900144157 /* libspirv.cpp */; }; - A926C06227AC718C00144157 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77827AC718900144157 /* instruction.h */; }; - A926C06327AC718C00144157 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77827AC718900144157 /* instruction.h */; }; - A926C06427AC718C00144157 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77827AC718900144157 /* instruction.h */; }; - A926C06527AC718C00144157 /* spirv_optimizer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77927AC718900144157 /* spirv_optimizer_options.h */; }; - A926C06627AC718C00144157 /* spirv_optimizer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77927AC718900144157 /* spirv_optimizer_options.h */; }; - A926C06727AC718C00144157 /* spirv_optimizer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77927AC718900144157 /* spirv_optimizer_options.h */; }; - A926C06827AC718C00144157 /* opcode.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77A27AC718900144157 /* opcode.h */; }; - A926C06927AC718C00144157 /* opcode.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77A27AC718900144157 /* opcode.h */; }; - A926C06A27AC718C00144157 /* opcode.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77A27AC718900144157 /* opcode.h */; }; - A926C06B27AC718C00144157 /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B77B27AC718900144157 /* operand.cpp */; }; - A926C06C27AC718C00144157 /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B77B27AC718900144157 /* operand.cpp */; }; - A926C06D27AC718C00144157 /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B77B27AC718900144157 /* operand.cpp */; }; - A926C06E27AC718C00144157 /* latest_version_glsl_std_450_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77C27AC718900144157 /* latest_version_glsl_std_450_header.h */; }; - A926C06F27AC718C00144157 /* latest_version_glsl_std_450_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77C27AC718900144157 /* latest_version_glsl_std_450_header.h */; }; - A926C07027AC718C00144157 /* latest_version_glsl_std_450_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77C27AC718900144157 /* latest_version_glsl_std_450_header.h */; }; - A926C07127AC718C00144157 /* extensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77D27AC718900144157 /* extensions.h */; }; - A926C07227AC718C00144157 /* extensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77D27AC718900144157 /* extensions.h */; }; - A926C07327AC718C00144157 /* extensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77D27AC718900144157 /* extensions.h */; }; - A926C07427AC718C00144157 /* disassemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B77E27AC718900144157 /* disassemble.cpp */; }; - A926C07527AC718C00144157 /* disassemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B77E27AC718900144157 /* disassemble.cpp */; }; - A926C07627AC718C00144157 /* disassemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B77E27AC718900144157 /* disassemble.cpp */; }; - A926C07727AC718C00144157 /* binary.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77F27AC718900144157 /* binary.h */; }; - A926C07827AC718C00144157 /* binary.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77F27AC718900144157 /* binary.h */; }; - A926C07927AC718C00144157 /* binary.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B77F27AC718900144157 /* binary.h */; }; - A926C07A27AC718C00144157 /* text_handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78027AC718900144157 /* text_handler.cpp */; }; - A926C07B27AC718C00144157 /* text_handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78027AC718900144157 /* text_handler.cpp */; }; - A926C07C27AC718C00144157 /* text_handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78027AC718900144157 /* text_handler.cpp */; }; - A926C07D27AC718C00144157 /* validate_annotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78227AC718900144157 /* validate_annotation.cpp */; }; - A926C07E27AC718C00144157 /* validate_annotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78227AC718900144157 /* validate_annotation.cpp */; }; - A926C07F27AC718C00144157 /* validate_annotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78227AC718900144157 /* validate_annotation.cpp */; }; - A926C08027AC718C00144157 /* validate_misc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78327AC718900144157 /* validate_misc.cpp */; }; - A926C08127AC718C00144157 /* validate_misc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78327AC718900144157 /* validate_misc.cpp */; }; - A926C08227AC718C00144157 /* validate_misc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78327AC718900144157 /* validate_misc.cpp */; }; - A926C08327AC718C00144157 /* validate_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78427AC718900144157 /* validate_cfg.cpp */; }; - A926C08427AC718C00144157 /* validate_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78427AC718900144157 /* validate_cfg.cpp */; }; - A926C08527AC718C00144157 /* validate_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78427AC718900144157 /* validate_cfg.cpp */; }; - A926C08627AC718C00144157 /* validate_capability.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78527AC718900144157 /* validate_capability.cpp */; }; - A926C08727AC718C00144157 /* validate_capability.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78527AC718900144157 /* validate_capability.cpp */; }; - A926C08827AC718C00144157 /* validate_capability.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78527AC718900144157 /* validate_capability.cpp */; }; - A926C08927AC718C00144157 /* construct.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B78627AC718900144157 /* construct.h */; }; - A926C08A27AC718C00144157 /* construct.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B78627AC718900144157 /* construct.h */; }; - A926C08B27AC718C00144157 /* construct.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B78627AC718900144157 /* construct.h */; }; - A926C08C27AC718C00144157 /* validate_barriers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78727AC718900144157 /* validate_barriers.cpp */; }; - A926C08D27AC718C00144157 /* validate_barriers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78727AC718900144157 /* validate_barriers.cpp */; }; - A926C08E27AC718C00144157 /* validate_barriers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78727AC718900144157 /* validate_barriers.cpp */; }; - A926C08F27AC718C00144157 /* validate_non_uniform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78827AC718900144157 /* validate_non_uniform.cpp */; }; - A926C09027AC718C00144157 /* validate_non_uniform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78827AC718900144157 /* validate_non_uniform.cpp */; }; - A926C09127AC718C00144157 /* validate_non_uniform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78827AC718900144157 /* validate_non_uniform.cpp */; }; - A926C09227AC718C00144157 /* validate_scopes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78927AC718900144157 /* validate_scopes.cpp */; }; - A926C09327AC718C00144157 /* validate_scopes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78927AC718900144157 /* validate_scopes.cpp */; }; - A926C09427AC718C00144157 /* validate_scopes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78927AC718900144157 /* validate_scopes.cpp */; }; - A926C09527AC718C00144157 /* validate_atomics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78A27AC718900144157 /* validate_atomics.cpp */; }; - A926C09627AC718C00144157 /* validate_atomics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78A27AC718900144157 /* validate_atomics.cpp */; }; - A926C09727AC718C00144157 /* validate_atomics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78A27AC718900144157 /* validate_atomics.cpp */; }; - A926C09827AC718C00144157 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B78B27AC718900144157 /* basic_block.h */; }; - A926C09927AC718C00144157 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B78B27AC718900144157 /* basic_block.h */; }; - A926C09A27AC718C00144157 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B78B27AC718900144157 /* basic_block.h */; }; - A926C09B27AC718C00144157 /* validate_instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78C27AC718900144157 /* validate_instruction.cpp */; }; - A926C09C27AC718C00144157 /* validate_instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78C27AC718900144157 /* validate_instruction.cpp */; }; - A926C09D27AC718C00144157 /* validate_instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78C27AC718900144157 /* validate_instruction.cpp */; }; - A926C09E27AC718C00144157 /* validate_decorations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78D27AC718900144157 /* validate_decorations.cpp */; }; - A926C09F27AC718C00144157 /* validate_decorations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78D27AC718900144157 /* validate_decorations.cpp */; }; - A926C0A027AC718C00144157 /* validate_decorations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78D27AC718900144157 /* validate_decorations.cpp */; }; - A926C0A127AC718C00144157 /* validate_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78E27AC718900144157 /* validate_debug.cpp */; }; - A926C0A227AC718C00144157 /* validate_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78E27AC718900144157 /* validate_debug.cpp */; }; - A926C0A327AC718C00144157 /* validate_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78E27AC718900144157 /* validate_debug.cpp */; }; - A926C0A427AC718C00144157 /* validate_builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78F27AC718900144157 /* validate_builtins.cpp */; }; - A926C0A527AC718C00144157 /* validate_builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78F27AC718900144157 /* validate_builtins.cpp */; }; - A926C0A627AC718C00144157 /* validate_builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B78F27AC718900144157 /* validate_builtins.cpp */; }; - A926C0A727AC718C00144157 /* validate_interfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79027AC718900144157 /* validate_interfaces.cpp */; }; - A926C0A827AC718C00144157 /* validate_interfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79027AC718900144157 /* validate_interfaces.cpp */; }; - A926C0A927AC718C00144157 /* validate_interfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79027AC718900144157 /* validate_interfaces.cpp */; }; - A926C0AA27AC718C00144157 /* validate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79127AC718900144157 /* validate.cpp */; }; - A926C0AB27AC718C00144157 /* validate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79127AC718900144157 /* validate.cpp */; }; - A926C0AC27AC718C00144157 /* validate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79127AC718900144157 /* validate.cpp */; }; - A926C0AD27AC718C00144157 /* validation_state.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B79227AC718900144157 /* validation_state.h */; }; - A926C0AE27AC718C00144157 /* validation_state.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B79227AC718900144157 /* validation_state.h */; }; - A926C0AF27AC718C00144157 /* validation_state.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B79227AC718900144157 /* validation_state.h */; }; - A926C0B027AC718C00144157 /* validate_constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79327AC718900144157 /* validate_constants.cpp */; }; - A926C0B127AC718C00144157 /* validate_constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79327AC718900144157 /* validate_constants.cpp */; }; - A926C0B227AC718C00144157 /* validate_constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79327AC718900144157 /* validate_constants.cpp */; }; - A926C0B327AC718C00144157 /* validate_bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79427AC718900144157 /* validate_bitwise.cpp */; }; - A926C0B427AC718C00144157 /* validate_bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79427AC718900144157 /* validate_bitwise.cpp */; }; - A926C0B527AC718C00144157 /* validate_bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79427AC718900144157 /* validate_bitwise.cpp */; }; - A926C0B627AC718C00144157 /* validate_extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79527AC718900144157 /* validate_extensions.cpp */; }; - A926C0B727AC718C00144157 /* validate_extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79527AC718900144157 /* validate_extensions.cpp */; }; - A926C0B827AC718C00144157 /* validate_extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79527AC718900144157 /* validate_extensions.cpp */; }; - A926C0B927AC718C00144157 /* construct.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79627AC718900144157 /* construct.cpp */; }; - A926C0BA27AC718C00144157 /* construct.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79627AC718900144157 /* construct.cpp */; }; - A926C0BB27AC718C00144157 /* construct.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79627AC718900144157 /* construct.cpp */; }; - A926C0BC27AC718C00144157 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79727AC718900144157 /* function.cpp */; }; - A926C0BD27AC718C00144157 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79727AC718900144157 /* function.cpp */; }; - A926C0BE27AC718C00144157 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79727AC718900144157 /* function.cpp */; }; - A926C0BF27AC718C00144157 /* validate.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B79827AC718900144157 /* validate.h */; }; - A926C0C027AC718C00144157 /* validate.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B79827AC718900144157 /* validate.h */; }; - A926C0C127AC718C00144157 /* validate.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B79827AC718900144157 /* validate.h */; }; - A926C0C227AC718C00144157 /* validate_adjacency.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79927AC718900144157 /* validate_adjacency.cpp */; }; - A926C0C327AC718C00144157 /* validate_adjacency.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79927AC718900144157 /* validate_adjacency.cpp */; }; - A926C0C427AC718C00144157 /* validate_adjacency.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79927AC718900144157 /* validate_adjacency.cpp */; }; - A926C0C527AC718C00144157 /* validate_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79A27AC718900144157 /* validate_conversion.cpp */; }; - A926C0C627AC718C00144157 /* validate_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79A27AC718900144157 /* validate_conversion.cpp */; }; - A926C0C727AC718C00144157 /* validate_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79A27AC718900144157 /* validate_conversion.cpp */; }; - A926C0C827AC718C00144157 /* validate_small_type_uses.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79B27AC718900144157 /* validate_small_type_uses.cpp */; }; - A926C0C927AC718C00144157 /* validate_small_type_uses.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79B27AC718900144157 /* validate_small_type_uses.cpp */; }; - A926C0CA27AC718C00144157 /* validate_small_type_uses.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79B27AC718900144157 /* validate_small_type_uses.cpp */; }; - A926C0CB27AC718C00144157 /* validate_scopes.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B79C27AC718900144157 /* validate_scopes.h */; }; - A926C0CC27AC718C00144157 /* validate_scopes.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B79C27AC718900144157 /* validate_scopes.h */; }; - A926C0CD27AC718C00144157 /* validate_scopes.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B79C27AC718900144157 /* validate_scopes.h */; }; - A926C0CE27AC718C00144157 /* validate_id.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79D27AC718900144157 /* validate_id.cpp */; }; - A926C0CF27AC718C00144157 /* validate_id.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79D27AC718900144157 /* validate_id.cpp */; }; - A926C0D027AC718C00144157 /* validate_id.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79D27AC718900144157 /* validate_id.cpp */; }; - A926C0D127AC718C00144157 /* validate_memory_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B79E27AC718900144157 /* validate_memory_semantics.h */; }; - A926C0D227AC718C00144157 /* validate_memory_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B79E27AC718900144157 /* validate_memory_semantics.h */; }; - A926C0D327AC718C00144157 /* validate_memory_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B79E27AC718900144157 /* validate_memory_semantics.h */; }; - A926C0D427AC718C00144157 /* validate_arithmetics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79F27AC718900144157 /* validate_arithmetics.cpp */; }; - A926C0D527AC718C00144157 /* validate_arithmetics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79F27AC718900144157 /* validate_arithmetics.cpp */; }; - A926C0D627AC718C00144157 /* validate_arithmetics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B79F27AC718900144157 /* validate_arithmetics.cpp */; }; - A926C0D727AC718C00144157 /* validate_mode_setting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A027AC718900144157 /* validate_mode_setting.cpp */; }; - A926C0D827AC718C00144157 /* validate_mode_setting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A027AC718900144157 /* validate_mode_setting.cpp */; }; - A926C0D927AC718C00144157 /* validate_mode_setting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A027AC718900144157 /* validate_mode_setting.cpp */; }; - A926C0DA27AC718C00144157 /* validate_memory_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A127AC718900144157 /* validate_memory_semantics.cpp */; }; - A926C0DB27AC718C00144157 /* validate_memory_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A127AC718900144157 /* validate_memory_semantics.cpp */; }; - A926C0DC27AC718C00144157 /* validate_memory_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A127AC718900144157 /* validate_memory_semantics.cpp */; }; - A926C0DD27AC718C00144157 /* validate_logicals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A227AC718900144157 /* validate_logicals.cpp */; }; - A926C0DE27AC718C00144157 /* validate_logicals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A227AC718900144157 /* validate_logicals.cpp */; }; - A926C0DF27AC718C00144157 /* validate_logicals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A227AC718900144157 /* validate_logicals.cpp */; }; - A926C0E027AC718C00144157 /* validate_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A327AC718900144157 /* validate_derivatives.cpp */; }; - A926C0E127AC718C00144157 /* validate_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A327AC718900144157 /* validate_derivatives.cpp */; }; - A926C0E227AC718C00144157 /* validate_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A327AC718900144157 /* validate_derivatives.cpp */; }; - A926C0E327AC718C00144157 /* validate_memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A427AC718900144157 /* validate_memory.cpp */; }; - A926C0E427AC718C00144157 /* validate_memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A427AC718900144157 /* validate_memory.cpp */; }; - A926C0E527AC718C00144157 /* validate_memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A427AC718900144157 /* validate_memory.cpp */; }; - A926C0E627AC718C00144157 /* validate_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A527AC718900144157 /* validate_image.cpp */; }; - A926C0E727AC718C00144157 /* validate_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A527AC718900144157 /* validate_image.cpp */; }; - A926C0E827AC718C00144157 /* validate_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A527AC718900144157 /* validate_image.cpp */; }; - A926C0E927AC718C00144157 /* validate_literals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A627AC718900144157 /* validate_literals.cpp */; }; - A926C0EA27AC718C00144157 /* validate_literals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A627AC718900144157 /* validate_literals.cpp */; }; - A926C0EB27AC718C00144157 /* validate_literals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A627AC718900144157 /* validate_literals.cpp */; }; - A926C0EC27AC718C00144157 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A727AC718900144157 /* instruction.cpp */; }; - A926C0ED27AC718C00144157 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A727AC718900144157 /* instruction.cpp */; }; - A926C0EE27AC718C00144157 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A727AC718900144157 /* instruction.cpp */; }; - A926C0EF27AC718C00144157 /* validate_type.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A827AC718900144157 /* validate_type.cpp */; }; - A926C0F027AC718C00144157 /* validate_type.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A827AC718900144157 /* validate_type.cpp */; }; - A926C0F127AC718C00144157 /* validate_type.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7A827AC718900144157 /* validate_type.cpp */; }; - A926C0F227AC718C00144157 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B7A927AC718900144157 /* instruction.h */; }; - A926C0F327AC718C00144157 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B7A927AC718900144157 /* instruction.h */; }; - A926C0F427AC718C00144157 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B7A927AC718900144157 /* instruction.h */; }; - A926C0F527AC718C00144157 /* validate_execution_limitations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AA27AC718900144157 /* validate_execution_limitations.cpp */; }; - A926C0F627AC718C00144157 /* validate_execution_limitations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AA27AC718900144157 /* validate_execution_limitations.cpp */; }; - A926C0F727AC718C00144157 /* validate_execution_limitations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AA27AC718900144157 /* validate_execution_limitations.cpp */; }; - A926C0F827AC718C00144157 /* validate_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AB27AC718900144157 /* validate_layout.cpp */; }; - A926C0F927AC718C00144157 /* validate_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AB27AC718900144157 /* validate_layout.cpp */; }; - A926C0FA27AC718C00144157 /* validate_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AB27AC718900144157 /* validate_layout.cpp */; }; - A926C0FB27AC718C00144157 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AC27AC718900144157 /* basic_block.cpp */; }; - A926C0FC27AC718C00144157 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AC27AC718900144157 /* basic_block.cpp */; }; - A926C0FD27AC718C00144157 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AC27AC718900144157 /* basic_block.cpp */; }; - A926C0FE27AC718C00144157 /* validate_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AD27AC718900144157 /* validate_function.cpp */; }; - A926C0FF27AC718C00144157 /* validate_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AD27AC718900144157 /* validate_function.cpp */; }; - A926C10027AC718C00144157 /* validate_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AD27AC718900144157 /* validate_function.cpp */; }; - A926C10127AC718C00144157 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B7AE27AC718900144157 /* function.h */; }; - A926C10227AC718C00144157 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B7AE27AC718900144157 /* function.h */; }; - A926C10327AC718C00144157 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B7AE27AC718900144157 /* function.h */; }; - A926C10427AC718C00144157 /* validate_composites.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AF27AC718900144157 /* validate_composites.cpp */; }; - A926C10527AC718C00144157 /* validate_composites.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AF27AC718900144157 /* validate_composites.cpp */; }; - A926C10627AC718C00144157 /* validate_composites.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7AF27AC718900144157 /* validate_composites.cpp */; }; - A926C10727AC718C00144157 /* validation_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7B027AC718900144157 /* validation_state.cpp */; }; - A926C10827AC718C00144157 /* validation_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7B027AC718900144157 /* validation_state.cpp */; }; - A926C10927AC718C00144157 /* validation_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7B027AC718900144157 /* validation_state.cpp */; }; - A926C10A27AC718C00144157 /* validate_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7B127AC718900144157 /* validate_primitives.cpp */; }; - A926C10B27AC718C00144157 /* validate_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7B127AC718900144157 /* validate_primitives.cpp */; }; - A926C10C27AC718C00144157 /* validate_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A926B7B127AC718900144157 /* validate_primitives.cpp */; }; - A926C10D27AC718C00144157 /* decoration.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B7B227AC718900144157 /* decoration.h */; }; - A926C10E27AC718C00144157 /* decoration.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B7B227AC718900144157 /* decoration.h */; }; - A926C10F27AC718C00144157 /* decoration.h in Headers */ = {isa = PBXBuildFile; fileRef = A926B7B227AC718900144157 /* decoration.h */; }; A9717C0526EE8C570041AE82 /* spirv_cross_containers.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A9717C0326EE8C570041AE82 /* spirv_cross_containers.hpp */; }; A9717C0626EE8C570041AE82 /* spirv_cross_containers.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A9717C0326EE8C570041AE82 /* spirv_cross_containers.hpp */; }; A9717C0726EE8C570041AE82 /* spirv_cross_containers.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A9717C0326EE8C570041AE82 /* spirv_cross_containers.hpp */; }; @@ -1632,6 +411,1272 @@ A997FB2726865A560006F71B /* Link.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A997F9CD26865A550006F71B /* Link.cpp */; }; A997FB2826865A560006F71B /* Link.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A997F9CD26865A550006F71B /* Link.cpp */; }; A997FB2926865A560006F71B /* Link.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A997F9CD26865A550006F71B /* Link.cpp */; }; + A9EE0BF728FDD2560013FF99 /* spirv_target_env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B228FDD2550013FF99 /* spirv_target_env.cpp */; }; + A9EE0BF828FDD2560013FF99 /* spirv_target_env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B228FDD2550013FF99 /* spirv_target_env.cpp */; }; + A9EE0BF928FDD2560013FF99 /* spirv_target_env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B228FDD2550013FF99 /* spirv_target_env.cpp */; }; + A9EE0BFA28FDD2560013FF99 /* spirv_fuzzer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08B328FDD2550013FF99 /* spirv_fuzzer_options.h */; }; + A9EE0BFB28FDD2560013FF99 /* spirv_fuzzer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08B328FDD2550013FF99 /* spirv_fuzzer_options.h */; }; + A9EE0BFC28FDD2560013FF99 /* spirv_fuzzer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08B328FDD2550013FF99 /* spirv_fuzzer_options.h */; }; + A9EE0BFD28FDD2560013FF99 /* assembly_grammar.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08B428FDD2550013FF99 /* assembly_grammar.h */; }; + A9EE0BFE28FDD2560013FF99 /* assembly_grammar.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08B428FDD2550013FF99 /* assembly_grammar.h */; }; + A9EE0BFF28FDD2560013FF99 /* assembly_grammar.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08B428FDD2550013FF99 /* assembly_grammar.h */; }; + A9EE0C0028FDD2560013FF99 /* lint_divergent_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B728FDD2550013FF99 /* lint_divergent_derivatives.cpp */; }; + A9EE0C0128FDD2560013FF99 /* lint_divergent_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B728FDD2550013FF99 /* lint_divergent_derivatives.cpp */; }; + A9EE0C0228FDD2560013FF99 /* lint_divergent_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B728FDD2550013FF99 /* lint_divergent_derivatives.cpp */; }; + A9EE0C0328FDD2560013FF99 /* linter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B828FDD2550013FF99 /* linter.cpp */; }; + A9EE0C0428FDD2560013FF99 /* linter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B828FDD2550013FF99 /* linter.cpp */; }; + A9EE0C0528FDD2560013FF99 /* linter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B828FDD2550013FF99 /* linter.cpp */; }; + A9EE0C0628FDD2560013FF99 /* divergence_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B928FDD2550013FF99 /* divergence_analysis.cpp */; }; + A9EE0C0728FDD2560013FF99 /* divergence_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B928FDD2550013FF99 /* divergence_analysis.cpp */; }; + A9EE0C0828FDD2560013FF99 /* divergence_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B928FDD2550013FF99 /* divergence_analysis.cpp */; }; + A9EE0C0928FDD2560013FF99 /* lints.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BA28FDD2550013FF99 /* lints.h */; }; + A9EE0C0A28FDD2560013FF99 /* lints.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BA28FDD2550013FF99 /* lints.h */; }; + A9EE0C0B28FDD2560013FF99 /* lints.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BA28FDD2550013FF99 /* lints.h */; }; + A9EE0C0C28FDD2560013FF99 /* divergence_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BB28FDD2550013FF99 /* divergence_analysis.h */; }; + A9EE0C0D28FDD2560013FF99 /* divergence_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BB28FDD2550013FF99 /* divergence_analysis.h */; }; + A9EE0C0E28FDD2560013FF99 /* divergence_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BB28FDD2550013FF99 /* divergence_analysis.h */; }; + A9EE0C0F28FDD2560013FF99 /* enum_set.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BC28FDD2550013FF99 /* enum_set.h */; }; + A9EE0C1028FDD2560013FF99 /* enum_set.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BC28FDD2550013FF99 /* enum_set.h */; }; + A9EE0C1128FDD2560013FF99 /* enum_set.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BC28FDD2550013FF99 /* enum_set.h */; }; + A9EE0C1228FDD2560013FF99 /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08BE28FDD2550013FF99 /* text.cpp */; }; + A9EE0C1328FDD2560013FF99 /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08BE28FDD2550013FF99 /* text.cpp */; }; + A9EE0C1428FDD2560013FF99 /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08BE28FDD2550013FF99 /* text.cpp */; }; + A9EE0C1528FDD2560013FF99 /* assembly_grammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08BF28FDD2550013FF99 /* assembly_grammar.cpp */; }; + A9EE0C1628FDD2560013FF99 /* assembly_grammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08BF28FDD2550013FF99 /* assembly_grammar.cpp */; }; + A9EE0C1728FDD2560013FF99 /* assembly_grammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08BF28FDD2550013FF99 /* assembly_grammar.cpp */; }; + A9EE0C1828FDD2560013FF99 /* text.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C028FDD2550013FF99 /* text.h */; }; + A9EE0C1928FDD2560013FF99 /* text.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C028FDD2550013FF99 /* text.h */; }; + A9EE0C1A28FDD2560013FF99 /* text.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C028FDD2550013FF99 /* text.h */; }; + A9EE0C1B28FDD2560013FF99 /* extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08C128FDD2550013FF99 /* extensions.cpp */; }; + A9EE0C1C28FDD2560013FF99 /* extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08C128FDD2550013FF99 /* extensions.cpp */; }; + A9EE0C1D28FDD2560013FF99 /* extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08C128FDD2550013FF99 /* extensions.cpp */; }; + A9EE0C1E28FDD2560013FF99 /* pch_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08C228FDD2550013FF99 /* pch_source.cpp */; }; + A9EE0C1F28FDD2560013FF99 /* pch_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08C228FDD2550013FF99 /* pch_source.cpp */; }; + A9EE0C2028FDD2560013FF99 /* pch_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08C228FDD2550013FF99 /* pch_source.cpp */; }; + A9EE0C2128FDD2560013FF99 /* parse_number.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C428FDD2550013FF99 /* parse_number.h */; }; + A9EE0C2228FDD2560013FF99 /* parse_number.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C428FDD2550013FF99 /* parse_number.h */; }; + A9EE0C2328FDD2560013FF99 /* parse_number.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C428FDD2550013FF99 /* parse_number.h */; }; + A9EE0C2428FDD2560013FF99 /* ilist_node.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C528FDD2550013FF99 /* ilist_node.h */; }; + A9EE0C2528FDD2560013FF99 /* ilist_node.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C528FDD2550013FF99 /* ilist_node.h */; }; + A9EE0C2628FDD2560013FF99 /* ilist_node.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C528FDD2550013FF99 /* ilist_node.h */; }; + A9EE0C2728FDD2560013FF99 /* make_unique.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C628FDD2550013FF99 /* make_unique.h */; }; + A9EE0C2828FDD2560013FF99 /* make_unique.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C628FDD2550013FF99 /* make_unique.h */; }; + A9EE0C2928FDD2560013FF99 /* make_unique.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C628FDD2550013FF99 /* make_unique.h */; }; + A9EE0C2A28FDD2560013FF99 /* string_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C728FDD2550013FF99 /* string_utils.h */; }; + A9EE0C2B28FDD2560013FF99 /* string_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C728FDD2550013FF99 /* string_utils.h */; }; + A9EE0C2C28FDD2560013FF99 /* string_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C728FDD2550013FF99 /* string_utils.h */; }; + A9EE0C2D28FDD2560013FF99 /* small_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C828FDD2550013FF99 /* small_vector.h */; }; + A9EE0C2E28FDD2560013FF99 /* small_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C828FDD2550013FF99 /* small_vector.h */; }; + A9EE0C2F28FDD2560013FF99 /* small_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C828FDD2550013FF99 /* small_vector.h */; }; + A9EE0C3028FDD2560013FF99 /* hash_combine.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C928FDD2550013FF99 /* hash_combine.h */; }; + A9EE0C3128FDD2560013FF99 /* hash_combine.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C928FDD2550013FF99 /* hash_combine.h */; }; + A9EE0C3228FDD2560013FF99 /* hash_combine.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C928FDD2550013FF99 /* hash_combine.h */; }; + A9EE0C3328FDD2560013FF99 /* timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08CA28FDD2550013FF99 /* timer.cpp */; }; + A9EE0C3428FDD2560013FF99 /* timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08CA28FDD2550013FF99 /* timer.cpp */; }; + A9EE0C3528FDD2560013FF99 /* timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08CA28FDD2550013FF99 /* timer.cpp */; }; + A9EE0C3628FDD2560013FF99 /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CB28FDD2550013FF99 /* timer.h */; }; + A9EE0C3728FDD2560013FF99 /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CB28FDD2550013FF99 /* timer.h */; }; + A9EE0C3828FDD2560013FF99 /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CB28FDD2550013FF99 /* timer.h */; }; + A9EE0C3928FDD2560013FF99 /* string_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08CC28FDD2550013FF99 /* string_utils.cpp */; }; + A9EE0C3A28FDD2560013FF99 /* string_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08CC28FDD2550013FF99 /* string_utils.cpp */; }; + A9EE0C3B28FDD2560013FF99 /* string_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08CC28FDD2550013FF99 /* string_utils.cpp */; }; + A9EE0C3C28FDD2560013FF99 /* bit_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CD28FDD2550013FF99 /* bit_vector.h */; }; + A9EE0C3D28FDD2560013FF99 /* bit_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CD28FDD2550013FF99 /* bit_vector.h */; }; + A9EE0C3E28FDD2560013FF99 /* bit_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CD28FDD2550013FF99 /* bit_vector.h */; }; + A9EE0C3F28FDD2560013FF99 /* bitutils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CE28FDD2550013FF99 /* bitutils.h */; }; + A9EE0C4028FDD2560013FF99 /* bitutils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CE28FDD2550013FF99 /* bitutils.h */; }; + A9EE0C4128FDD2560013FF99 /* bitutils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CE28FDD2550013FF99 /* bitutils.h */; }; + A9EE0C4228FDD2560013FF99 /* hex_float.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CF28FDD2550013FF99 /* hex_float.h */; }; + A9EE0C4328FDD2560013FF99 /* hex_float.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CF28FDD2550013FF99 /* hex_float.h */; }; + A9EE0C4428FDD2560013FF99 /* hex_float.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CF28FDD2550013FF99 /* hex_float.h */; }; + A9EE0C4528FDD2560013FF99 /* parse_number.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D028FDD2550013FF99 /* parse_number.cpp */; }; + A9EE0C4628FDD2560013FF99 /* parse_number.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D028FDD2550013FF99 /* parse_number.cpp */; }; + A9EE0C4728FDD2560013FF99 /* parse_number.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D028FDD2550013FF99 /* parse_number.cpp */; }; + A9EE0C4828FDD2560013FF99 /* bit_vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D128FDD2550013FF99 /* bit_vector.cpp */; }; + A9EE0C4928FDD2560013FF99 /* bit_vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D128FDD2550013FF99 /* bit_vector.cpp */; }; + A9EE0C4A28FDD2560013FF99 /* bit_vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D128FDD2550013FF99 /* bit_vector.cpp */; }; + A9EE0C4B28FDD2560013FF99 /* ilist.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D228FDD2550013FF99 /* ilist.h */; }; + A9EE0C4C28FDD2560013FF99 /* ilist.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D228FDD2550013FF99 /* ilist.h */; }; + A9EE0C4D28FDD2560013FF99 /* ilist.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D228FDD2550013FF99 /* ilist.h */; }; + A9EE0C4E28FDD2560013FF99 /* spirv_target_env.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D328FDD2550013FF99 /* spirv_target_env.h */; }; + A9EE0C4F28FDD2560013FF99 /* spirv_target_env.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D328FDD2550013FF99 /* spirv_target_env.h */; }; + A9EE0C5028FDD2560013FF99 /* spirv_target_env.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D328FDD2550013FF99 /* spirv_target_env.h */; }; + A9EE0C5128FDD2560013FF99 /* table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D428FDD2550013FF99 /* table.cpp */; }; + A9EE0C5228FDD2560013FF99 /* table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D428FDD2550013FF99 /* table.cpp */; }; + A9EE0C5328FDD2560013FF99 /* table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D428FDD2550013FF99 /* table.cpp */; }; + A9EE0C5428FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D628FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.h */; }; + A9EE0C5528FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D628FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.h */; }; + A9EE0C5628FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D628FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.h */; }; + A9EE0C5728FDD2560013FF99 /* remove_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D728FDD2550013FF99 /* remove_selection_reduction_opportunity.cpp */; }; + A9EE0C5828FDD2560013FF99 /* remove_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D728FDD2550013FF99 /* remove_selection_reduction_opportunity.cpp */; }; + A9EE0C5928FDD2560013FF99 /* remove_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D728FDD2550013FF99 /* remove_selection_reduction_opportunity.cpp */; }; + A9EE0C5A28FDD2560013FF99 /* remove_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D828FDD2550013FF99 /* remove_block_reduction_opportunity.h */; }; + A9EE0C5B28FDD2560013FF99 /* remove_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D828FDD2550013FF99 /* remove_block_reduction_opportunity.h */; }; + A9EE0C5C28FDD2560013FF99 /* remove_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D828FDD2550013FF99 /* remove_block_reduction_opportunity.h */; }; + A9EE0C5D28FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D928FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h */; }; + A9EE0C5E28FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D928FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h */; }; + A9EE0C5F28FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D928FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h */; }; + A9EE0C6028FDD2560013FF99 /* reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DA28FDD2550013FF99 /* reduction_pass.cpp */; }; + A9EE0C6128FDD2560013FF99 /* reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DA28FDD2550013FF99 /* reduction_pass.cpp */; }; + A9EE0C6228FDD2560013FF99 /* reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DA28FDD2550013FF99 /* reduction_pass.cpp */; }; + A9EE0C6328FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08DB28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.h */; }; + A9EE0C6428FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08DB28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.h */; }; + A9EE0C6528FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08DB28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.h */; }; + A9EE0C6628FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DC28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.cpp */; }; + A9EE0C6728FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DC28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.cpp */; }; + A9EE0C6828FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DC28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.cpp */; }; + A9EE0C6928FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08DD28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.h */; }; + A9EE0C6A28FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08DD28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.h */; }; + A9EE0C6B28FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08DD28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.h */; }; + A9EE0C6C28FDD2560013FF99 /* reduction_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DF28FDD2550013FF99 /* reduction_util.cpp */; }; + A9EE0C6D28FDD2560013FF99 /* reduction_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DF28FDD2550013FF99 /* reduction_util.cpp */; }; + A9EE0C6E28FDD2560013FF99 /* reduction_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DF28FDD2550013FF99 /* reduction_util.cpp */; }; + A9EE0C6F28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E028FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h */; }; + A9EE0C7028FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E028FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h */; }; + A9EE0C7128FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E028FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h */; }; + A9EE0C7228FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E128FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */; }; + A9EE0C7328FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E128FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */; }; + A9EE0C7428FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E128FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */; }; + A9EE0C7528FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E228FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h */; }; + A9EE0C7628FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E228FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h */; }; + A9EE0C7728FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E228FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h */; }; + A9EE0C7828FDD2560013FF99 /* remove_function_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E328FDD2550013FF99 /* remove_function_reduction_opportunity_finder.cpp */; }; + A9EE0C7928FDD2560013FF99 /* remove_function_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E328FDD2550013FF99 /* remove_function_reduction_opportunity_finder.cpp */; }; + A9EE0C7A28FDD2560013FF99 /* remove_function_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E328FDD2550013FF99 /* remove_function_reduction_opportunity_finder.cpp */; }; + A9EE0C7B28FDD2560013FF99 /* remove_instruction_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E428FDD2550013FF99 /* remove_instruction_reduction_opportunity.h */; }; + A9EE0C7C28FDD2560013FF99 /* remove_instruction_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E428FDD2550013FF99 /* remove_instruction_reduction_opportunity.h */; }; + A9EE0C7D28FDD2560013FF99 /* remove_instruction_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E428FDD2550013FF99 /* remove_instruction_reduction_opportunity.h */; }; + A9EE0C7E28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */; }; + A9EE0C7F28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */; }; + A9EE0C8028FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */; }; + A9EE0C8128FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E628FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */; }; + A9EE0C8228FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E628FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */; }; + A9EE0C8328FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E628FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */; }; + A9EE0C8428FDD2560013FF99 /* remove_function_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E728FDD2550013FF99 /* remove_function_reduction_opportunity.cpp */; }; + A9EE0C8528FDD2560013FF99 /* remove_function_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E728FDD2550013FF99 /* remove_function_reduction_opportunity.cpp */; }; + A9EE0C8628FDD2560013FF99 /* remove_function_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E728FDD2550013FF99 /* remove_function_reduction_opportunity.cpp */; }; + A9EE0C8728FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E828FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */; }; + A9EE0C8828FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E828FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */; }; + A9EE0C8928FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E828FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */; }; + A9EE0C8A28FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E928FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.cpp */; }; + A9EE0C8B28FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E928FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.cpp */; }; + A9EE0C8C28FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E928FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.cpp */; }; + A9EE0C8D28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08EA28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */; }; + A9EE0C8E28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08EA28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */; }; + A9EE0C8F28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08EA28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */; }; + A9EE0C9028FDD2560013FF99 /* remove_struct_member_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EB28FDD2550013FF99 /* remove_struct_member_reduction_opportunity.h */; }; + A9EE0C9128FDD2560013FF99 /* remove_struct_member_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EB28FDD2550013FF99 /* remove_struct_member_reduction_opportunity.h */; }; + A9EE0C9228FDD2560013FF99 /* remove_struct_member_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EB28FDD2550013FF99 /* remove_struct_member_reduction_opportunity.h */; }; + A9EE0C9328FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EC28FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h */; }; + A9EE0C9428FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EC28FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h */; }; + A9EE0C9528FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EC28FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h */; }; + A9EE0C9628FDD2560013FF99 /* merge_blocks_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08ED28FDD2550013FF99 /* merge_blocks_reduction_opportunity.cpp */; }; + A9EE0C9728FDD2560013FF99 /* merge_blocks_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08ED28FDD2550013FF99 /* merge_blocks_reduction_opportunity.cpp */; }; + A9EE0C9828FDD2560013FF99 /* merge_blocks_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08ED28FDD2550013FF99 /* merge_blocks_reduction_opportunity.cpp */; }; + A9EE0C9928FDD2560013FF99 /* change_operand_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08EE28FDD2550013FF99 /* change_operand_reduction_opportunity.cpp */; }; + A9EE0C9A28FDD2560013FF99 /* change_operand_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08EE28FDD2550013FF99 /* change_operand_reduction_opportunity.cpp */; }; + A9EE0C9B28FDD2560013FF99 /* change_operand_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08EE28FDD2550013FF99 /* change_operand_reduction_opportunity.cpp */; }; + A9EE0C9C28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EF28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.h */; }; + A9EE0C9D28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EF28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.h */; }; + A9EE0C9E28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EF28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.h */; }; + A9EE0C9F28FDD2560013FF99 /* remove_function_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F028FDD2550013FF99 /* remove_function_reduction_opportunity.h */; }; + A9EE0CA028FDD2560013FF99 /* remove_function_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F028FDD2550013FF99 /* remove_function_reduction_opportunity.h */; }; + A9EE0CA128FDD2560013FF99 /* remove_function_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F028FDD2550013FF99 /* remove_function_reduction_opportunity.h */; }; + A9EE0CA228FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F128FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h */; }; + A9EE0CA328FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F128FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h */; }; + A9EE0CA428FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F128FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h */; }; + A9EE0CA528FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F228FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.h */; }; + A9EE0CA628FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F228FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.h */; }; + A9EE0CA728FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F228FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.h */; }; + A9EE0CA828FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F328FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h */; }; + A9EE0CA928FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F328FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h */; }; + A9EE0CAA28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F328FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h */; }; + A9EE0CAB28FDD2560013FF99 /* remove_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F428FDD2550013FF99 /* remove_selection_reduction_opportunity.h */; }; + A9EE0CAC28FDD2560013FF99 /* remove_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F428FDD2550013FF99 /* remove_selection_reduction_opportunity.h */; }; + A9EE0CAD28FDD2560013FF99 /* remove_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F428FDD2550013FF99 /* remove_selection_reduction_opportunity.h */; }; + A9EE0CAE28FDD2560013FF99 /* remove_instruction_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F528FDD2550013FF99 /* remove_instruction_reduction_opportunity.cpp */; }; + A9EE0CAF28FDD2560013FF99 /* remove_instruction_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F528FDD2550013FF99 /* remove_instruction_reduction_opportunity.cpp */; }; + A9EE0CB028FDD2560013FF99 /* remove_instruction_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F528FDD2550013FF99 /* remove_instruction_reduction_opportunity.cpp */; }; + A9EE0CB128FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F628FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.h */; }; + A9EE0CB228FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F628FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.h */; }; + A9EE0CB328FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F628FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.h */; }; + A9EE0CB428FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F728FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.h */; }; + A9EE0CB528FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F728FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.h */; }; + A9EE0CB628FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F728FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.h */; }; + A9EE0CB728FDD2560013FF99 /* pch_source_reduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F828FDD2550013FF99 /* pch_source_reduce.cpp */; }; + A9EE0CB828FDD2560013FF99 /* pch_source_reduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F828FDD2550013FF99 /* pch_source_reduce.cpp */; }; + A9EE0CB928FDD2560013FF99 /* pch_source_reduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F828FDD2550013FF99 /* pch_source_reduce.cpp */; }; + A9EE0CBA28FDD2560013FF99 /* remove_struct_member_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F928FDD2550013FF99 /* remove_struct_member_reduction_opportunity.cpp */; }; + A9EE0CBB28FDD2560013FF99 /* remove_struct_member_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F928FDD2550013FF99 /* remove_struct_member_reduction_opportunity.cpp */; }; + A9EE0CBC28FDD2560013FF99 /* remove_struct_member_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F928FDD2550013FF99 /* remove_struct_member_reduction_opportunity.cpp */; }; + A9EE0CBD28FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FA28FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h */; }; + A9EE0CBE28FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FA28FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h */; }; + A9EE0CBF28FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FA28FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h */; }; + A9EE0CC028FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FB28FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp */; }; + A9EE0CC128FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FB28FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp */; }; + A9EE0CC228FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FB28FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp */; }; + A9EE0CC328FDD2560013FF99 /* reducer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FC28FDD2550013FF99 /* reducer.cpp */; }; + A9EE0CC428FDD2560013FF99 /* reducer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FC28FDD2550013FF99 /* reducer.cpp */; }; + A9EE0CC528FDD2560013FF99 /* reducer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FC28FDD2550013FF99 /* reducer.cpp */; }; + A9EE0CC628FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FD28FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp */; }; + A9EE0CC728FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FD28FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp */; }; + A9EE0CC828FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FD28FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp */; }; + A9EE0CC928FDD2560013FF99 /* remove_function_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FE28FDD2550013FF99 /* remove_function_reduction_opportunity_finder.h */; }; + A9EE0CCA28FDD2560013FF99 /* remove_function_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FE28FDD2550013FF99 /* remove_function_reduction_opportunity_finder.h */; }; + A9EE0CCB28FDD2560013FF99 /* remove_function_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FE28FDD2550013FF99 /* remove_function_reduction_opportunity_finder.h */; }; + A9EE0CCC28FDD2560013FF99 /* pch_source_reduce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FF28FDD2550013FF99 /* pch_source_reduce.h */; }; + A9EE0CCD28FDD2560013FF99 /* pch_source_reduce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FF28FDD2550013FF99 /* pch_source_reduce.h */; }; + A9EE0CCE28FDD2560013FF99 /* pch_source_reduce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FF28FDD2550013FF99 /* pch_source_reduce.h */; }; + A9EE0CCF28FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090028FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.cpp */; }; + A9EE0CD028FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090028FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.cpp */; }; + A9EE0CD128FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090028FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.cpp */; }; + A9EE0CD228FDD2560013FF99 /* reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090128FDD2550013FF99 /* reduction_opportunity.cpp */; }; + A9EE0CD328FDD2560013FF99 /* reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090128FDD2550013FF99 /* reduction_opportunity.cpp */; }; + A9EE0CD428FDD2560013FF99 /* reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090128FDD2550013FF99 /* reduction_opportunity.cpp */; }; + A9EE0CD528FDD2560013FF99 /* reducer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090228FDD2550013FF99 /* reducer.h */; }; + A9EE0CD628FDD2560013FF99 /* reducer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090228FDD2550013FF99 /* reducer.h */; }; + A9EE0CD728FDD2560013FF99 /* reducer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090228FDD2550013FF99 /* reducer.h */; }; + A9EE0CD828FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090328FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.cpp */; }; + A9EE0CD928FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090328FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.cpp */; }; + A9EE0CDA28FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090328FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.cpp */; }; + A9EE0CDB28FDD2560013FF99 /* reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090428FDD2550013FF99 /* reduction_opportunity.h */; }; + A9EE0CDC28FDD2560013FF99 /* reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090428FDD2550013FF99 /* reduction_opportunity.h */; }; + A9EE0CDD28FDD2560013FF99 /* reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090428FDD2550013FF99 /* reduction_opportunity.h */; }; + A9EE0CDE28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */; }; + A9EE0CDF28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */; }; + A9EE0CE028FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */; }; + A9EE0CE128FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090628FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */; }; + A9EE0CE228FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090628FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */; }; + A9EE0CE328FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090628FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */; }; + A9EE0CE428FDD2560013FF99 /* reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090728FDD2550013FF99 /* reduction_opportunity_finder.h */; }; + A9EE0CE528FDD2560013FF99 /* reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090728FDD2550013FF99 /* reduction_opportunity_finder.h */; }; + A9EE0CE628FDD2560013FF99 /* reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090728FDD2550013FF99 /* reduction_opportunity_finder.h */; }; + A9EE0CE728FDD2560013FF99 /* change_operand_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090828FDD2550013FF99 /* change_operand_reduction_opportunity.h */; }; + A9EE0CE828FDD2560013FF99 /* change_operand_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090828FDD2550013FF99 /* change_operand_reduction_opportunity.h */; }; + A9EE0CE928FDD2560013FF99 /* change_operand_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090828FDD2550013FF99 /* change_operand_reduction_opportunity.h */; }; + A9EE0CEA28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090928FDD2550013FF99 /* remove_block_reduction_opportunity_finder.h */; }; + A9EE0CEB28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090928FDD2550013FF99 /* remove_block_reduction_opportunity_finder.h */; }; + A9EE0CEC28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090928FDD2550013FF99 /* remove_block_reduction_opportunity_finder.h */; }; + A9EE0CED28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090A28FDD2550013FF99 /* remove_block_reduction_opportunity_finder.cpp */; }; + A9EE0CEE28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090A28FDD2550013FF99 /* remove_block_reduction_opportunity_finder.cpp */; }; + A9EE0CEF28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090A28FDD2550013FF99 /* remove_block_reduction_opportunity_finder.cpp */; }; + A9EE0CF028FDD2560013FF99 /* reduction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090B28FDD2550013FF99 /* reduction_util.h */; }; + A9EE0CF128FDD2560013FF99 /* reduction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090B28FDD2550013FF99 /* reduction_util.h */; }; + A9EE0CF228FDD2560013FF99 /* reduction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090B28FDD2550013FF99 /* reduction_util.h */; }; + A9EE0CF328FDD2560013FF99 /* merge_blocks_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090C28FDD2550013FF99 /* merge_blocks_reduction_opportunity.h */; }; + A9EE0CF428FDD2560013FF99 /* merge_blocks_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090C28FDD2550013FF99 /* merge_blocks_reduction_opportunity.h */; }; + A9EE0CF528FDD2560013FF99 /* merge_blocks_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090C28FDD2550013FF99 /* merge_blocks_reduction_opportunity.h */; }; + A9EE0CF628FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090D28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */; }; + A9EE0CF728FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090D28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */; }; + A9EE0CF828FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090D28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */; }; + A9EE0CF928FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090E28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp */; }; + A9EE0CFA28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090E28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp */; }; + A9EE0CFB28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090E28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp */; }; + A9EE0CFC28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090F28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.cpp */; }; + A9EE0CFD28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090F28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.cpp */; }; + A9EE0CFE28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090F28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.cpp */; }; + A9EE0CFF28FDD2560013FF99 /* remove_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091028FDD2550013FF99 /* remove_block_reduction_opportunity.cpp */; }; + A9EE0D0028FDD2560013FF99 /* remove_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091028FDD2550013FF99 /* remove_block_reduction_opportunity.cpp */; }; + A9EE0D0128FDD2560013FF99 /* remove_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091028FDD2550013FF99 /* remove_block_reduction_opportunity.cpp */; }; + A9EE0D0228FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091128FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */; }; + A9EE0D0328FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091128FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */; }; + A9EE0D0428FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091128FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */; }; + A9EE0D0528FDD2560013FF99 /* reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091228FDD2550013FF99 /* reduction_opportunity_finder.cpp */; }; + A9EE0D0628FDD2560013FF99 /* reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091228FDD2550013FF99 /* reduction_opportunity_finder.cpp */; }; + A9EE0D0728FDD2560013FF99 /* reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091228FDD2550013FF99 /* reduction_opportunity_finder.cpp */; }; + A9EE0D0828FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091328FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp */; }; + A9EE0D0928FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091328FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp */; }; + A9EE0D0A28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091328FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp */; }; + A9EE0D0B28FDD2560013FF99 /* reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091428FDD2550013FF99 /* reduction_pass.h */; }; + A9EE0D0C28FDD2560013FF99 /* reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091428FDD2550013FF99 /* reduction_pass.h */; }; + A9EE0D0D28FDD2560013FF99 /* reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091428FDD2550013FF99 /* reduction_pass.h */; }; + A9EE0D0E28FDD2560013FF99 /* latest_version_opencl_std_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091528FDD2550013FF99 /* latest_version_opencl_std_header.h */; }; + A9EE0D0F28FDD2560013FF99 /* latest_version_opencl_std_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091528FDD2550013FF99 /* latest_version_opencl_std_header.h */; }; + A9EE0D1028FDD2560013FF99 /* latest_version_opencl_std_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091528FDD2550013FF99 /* latest_version_opencl_std_header.h */; }; + A9EE0D1128FDD2560013FF99 /* spirv_optimizer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091628FDD2550013FF99 /* spirv_optimizer_options.cpp */; }; + A9EE0D1228FDD2560013FF99 /* spirv_optimizer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091628FDD2550013FF99 /* spirv_optimizer_options.cpp */; }; + A9EE0D1328FDD2560013FF99 /* spirv_optimizer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091628FDD2550013FF99 /* spirv_optimizer_options.cpp */; }; + A9EE0D1428FDD2560013FF99 /* cfa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091728FDD2550013FF99 /* cfa.h */; }; + A9EE0D1528FDD2560013FF99 /* cfa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091728FDD2550013FF99 /* cfa.h */; }; + A9EE0D1628FDD2560013FF99 /* cfa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091728FDD2550013FF99 /* cfa.h */; }; + A9EE0D1728FDD2560013FF99 /* pch_source.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091828FDD2550013FF99 /* pch_source.h */; }; + A9EE0D1828FDD2560013FF99 /* pch_source.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091828FDD2550013FF99 /* pch_source.h */; }; + A9EE0D1928FDD2560013FF99 /* pch_source.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091828FDD2550013FF99 /* pch_source.h */; }; + A9EE0D1A28FDD2560013FF99 /* enum_string_mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091928FDD2550013FF99 /* enum_string_mapping.h */; }; + A9EE0D1B28FDD2560013FF99 /* enum_string_mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091928FDD2550013FF99 /* enum_string_mapping.h */; }; + A9EE0D1C28FDD2560013FF99 /* enum_string_mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091928FDD2550013FF99 /* enum_string_mapping.h */; }; + A9EE0D1D28FDD2560013FF99 /* spirv_fuzzer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091A28FDD2550013FF99 /* spirv_fuzzer_options.cpp */; }; + A9EE0D1E28FDD2560013FF99 /* spirv_fuzzer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091A28FDD2550013FF99 /* spirv_fuzzer_options.cpp */; }; + A9EE0D1F28FDD2560013FF99 /* spirv_fuzzer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091A28FDD2550013FF99 /* spirv_fuzzer_options.cpp */; }; + A9EE0D2028FDD2560013FF99 /* spirv_reducer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091B28FDD2550013FF99 /* spirv_reducer_options.h */; }; + A9EE0D2128FDD2560013FF99 /* spirv_reducer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091B28FDD2550013FF99 /* spirv_reducer_options.h */; }; + A9EE0D2228FDD2560013FF99 /* spirv_reducer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091B28FDD2550013FF99 /* spirv_reducer_options.h */; }; + A9EE0D2328FDD2560013FF99 /* spirv_validator_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091C28FDD2550013FF99 /* spirv_validator_options.cpp */; }; + A9EE0D2428FDD2560013FF99 /* spirv_validator_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091C28FDD2550013FF99 /* spirv_validator_options.cpp */; }; + A9EE0D2528FDD2560013FF99 /* spirv_validator_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091C28FDD2550013FF99 /* spirv_validator_options.cpp */; }; + A9EE0D2928FDD2560013FF99 /* print.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092328FDD2550013FF99 /* print.cpp */; }; + A9EE0D2A28FDD2560013FF99 /* print.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092328FDD2550013FF99 /* print.cpp */; }; + A9EE0D2B28FDD2560013FF99 /* print.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092328FDD2550013FF99 /* print.cpp */; }; + A9EE0D2C28FDD2560013FF99 /* spirv_definition.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092428FDD2550013FF99 /* spirv_definition.h */; }; + A9EE0D2D28FDD2560013FF99 /* spirv_definition.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092428FDD2550013FF99 /* spirv_definition.h */; }; + A9EE0D2E28FDD2560013FF99 /* spirv_definition.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092428FDD2550013FF99 /* spirv_definition.h */; }; + A9EE0D2F28FDD2560013FF99 /* operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092528FDD2550013FF99 /* operand.h */; }; + A9EE0D3028FDD2560013FF99 /* operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092528FDD2550013FF99 /* operand.h */; }; + A9EE0D3128FDD2560013FF99 /* operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092528FDD2550013FF99 /* operand.h */; }; + A9EE0D3228FDD2560013FF99 /* spirv_endian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092628FDD2550013FF99 /* spirv_endian.cpp */; }; + A9EE0D3328FDD2560013FF99 /* spirv_endian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092628FDD2550013FF99 /* spirv_endian.cpp */; }; + A9EE0D3428FDD2560013FF99 /* spirv_endian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092628FDD2550013FF99 /* spirv_endian.cpp */; }; + A9EE0D3528FDD2560013FF99 /* macro.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092728FDD2550013FF99 /* macro.h */; }; + A9EE0D3628FDD2560013FF99 /* macro.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092728FDD2550013FF99 /* macro.h */; }; + A9EE0D3728FDD2560013FF99 /* macro.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092728FDD2550013FF99 /* macro.h */; }; + A9EE0D3828FDD2560013FF99 /* spirv_constant.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092828FDD2550013FF99 /* spirv_constant.h */; }; + A9EE0D3928FDD2560013FF99 /* spirv_constant.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092828FDD2550013FF99 /* spirv_constant.h */; }; + A9EE0D3A28FDD2560013FF99 /* spirv_constant.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092828FDD2550013FF99 /* spirv_constant.h */; }; + A9EE0D3B28FDD2560013FF99 /* binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092928FDD2550013FF99 /* binary.cpp */; }; + A9EE0D3C28FDD2560013FF99 /* binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092928FDD2550013FF99 /* binary.cpp */; }; + A9EE0D3D28FDD2560013FF99 /* binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092928FDD2550013FF99 /* binary.cpp */; }; + A9EE0D3E28FDD2560013FF99 /* diff.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092C28FDD2550013FF99 /* diff.h */; }; + A9EE0D3F28FDD2560013FF99 /* diff.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092C28FDD2550013FF99 /* diff.h */; }; + A9EE0D4028FDD2560013FF99 /* diff.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092C28FDD2550013FF99 /* diff.h */; }; + A9EE0D4128FDD2560013FF99 /* lcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092D28FDD2550013FF99 /* lcs.h */; }; + A9EE0D4228FDD2560013FF99 /* lcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092D28FDD2550013FF99 /* lcs.h */; }; + A9EE0D4328FDD2560013FF99 /* lcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092D28FDD2550013FF99 /* lcs.h */; }; + A9EE0D4428FDD2560013FF99 /* diff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092E28FDD2550013FF99 /* diff.cpp */; }; + A9EE0D4528FDD2560013FF99 /* diff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092E28FDD2550013FF99 /* diff.cpp */; }; + A9EE0D4628FDD2560013FF99 /* diff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092E28FDD2550013FF99 /* diff.cpp */; }; + A9EE0D4728FDD2560013FF99 /* spirv_validator_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092F28FDD2550013FF99 /* spirv_validator_options.h */; }; + A9EE0D4828FDD2560013FF99 /* spirv_validator_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092F28FDD2550013FF99 /* spirv_validator_options.h */; }; + A9EE0D4928FDD2560013FF99 /* spirv_validator_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092F28FDD2550013FF99 /* spirv_validator_options.h */; }; + A9EE0D4A28FDD2560013FF99 /* enum_string_mapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093028FDD2550013FF99 /* enum_string_mapping.cpp */; }; + A9EE0D4B28FDD2560013FF99 /* enum_string_mapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093028FDD2550013FF99 /* enum_string_mapping.cpp */; }; + A9EE0D4C28FDD2560013FF99 /* enum_string_mapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093028FDD2550013FF99 /* enum_string_mapping.cpp */; }; + A9EE0D4D28FDD2560013FF99 /* text_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093128FDD2550013FF99 /* text_handler.h */; }; + A9EE0D4E28FDD2560013FF99 /* text_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093128FDD2550013FF99 /* text_handler.h */; }; + A9EE0D4F28FDD2560013FF99 /* text_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093128FDD2550013FF99 /* text_handler.h */; }; + A9EE0D5028FDD2560013FF99 /* parsed_operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093228FDD2550013FF99 /* parsed_operand.h */; }; + A9EE0D5128FDD2560013FF99 /* parsed_operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093228FDD2550013FF99 /* parsed_operand.h */; }; + A9EE0D5228FDD2560013FF99 /* parsed_operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093228FDD2550013FF99 /* parsed_operand.h */; }; + A9EE0D5328FDD2560013FF99 /* name_mapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093328FDD2550013FF99 /* name_mapper.h */; }; + A9EE0D5428FDD2560013FF99 /* name_mapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093328FDD2550013FF99 /* name_mapper.h */; }; + A9EE0D5528FDD2560013FF99 /* name_mapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093328FDD2550013FF99 /* name_mapper.h */; }; + A9EE0D5628FDD2560013FF99 /* spirv_reducer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093428FDD2550013FF99 /* spirv_reducer_options.cpp */; }; + A9EE0D5728FDD2560013FF99 /* spirv_reducer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093428FDD2550013FF99 /* spirv_reducer_options.cpp */; }; + A9EE0D5828FDD2560013FF99 /* spirv_reducer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093428FDD2550013FF99 /* spirv_reducer_options.cpp */; }; + A9EE0D5928FDD2560013FF99 /* parsed_operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093528FDD2550013FF99 /* parsed_operand.cpp */; }; + A9EE0D5A28FDD2560013FF99 /* parsed_operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093528FDD2550013FF99 /* parsed_operand.cpp */; }; + A9EE0D5B28FDD2560013FF99 /* parsed_operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093528FDD2550013FF99 /* parsed_operand.cpp */; }; + A9EE0D5C28FDD2560013FF99 /* diagnostic.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093628FDD2550013FF99 /* diagnostic.h */; }; + A9EE0D5D28FDD2560013FF99 /* diagnostic.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093628FDD2550013FF99 /* diagnostic.h */; }; + A9EE0D5E28FDD2560013FF99 /* diagnostic.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093628FDD2550013FF99 /* diagnostic.h */; }; + A9EE0D5F28FDD2560013FF99 /* spirv_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093728FDD2550013FF99 /* spirv_endian.h */; }; + A9EE0D6028FDD2560013FF99 /* spirv_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093728FDD2550013FF99 /* spirv_endian.h */; }; + A9EE0D6128FDD2560013FF99 /* spirv_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093728FDD2550013FF99 /* spirv_endian.h */; }; + A9EE0D6228FDD2560013FF99 /* name_mapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093828FDD2550013FF99 /* name_mapper.cpp */; }; + A9EE0D6328FDD2560013FF99 /* name_mapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093828FDD2550013FF99 /* name_mapper.cpp */; }; + A9EE0D6428FDD2560013FF99 /* name_mapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093828FDD2550013FF99 /* name_mapper.cpp */; }; + A9EE0D6528FDD2560013FF99 /* linker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093B28FDD2550013FF99 /* linker.cpp */; }; + A9EE0D6628FDD2560013FF99 /* linker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093B28FDD2550013FF99 /* linker.cpp */; }; + A9EE0D6728FDD2560013FF99 /* linker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093B28FDD2550013FF99 /* linker.cpp */; }; + A9EE0D6828FDD2560013FF99 /* common_debug_info.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093C28FDD2550013FF99 /* common_debug_info.h */; }; + A9EE0D6928FDD2560013FF99 /* common_debug_info.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093C28FDD2550013FF99 /* common_debug_info.h */; }; + A9EE0D6A28FDD2560013FF99 /* common_debug_info.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093C28FDD2550013FF99 /* common_debug_info.h */; }; + A9EE0D6B28FDD2560013FF99 /* software_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093D28FDD2550013FF99 /* software_version.cpp */; }; + A9EE0D6C28FDD2560013FF99 /* software_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093D28FDD2550013FF99 /* software_version.cpp */; }; + A9EE0D6D28FDD2560013FF99 /* software_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093D28FDD2550013FF99 /* software_version.cpp */; }; + A9EE0D6E28FDD2560013FF99 /* opcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093E28FDD2550013FF99 /* opcode.cpp */; }; + A9EE0D6F28FDD2560013FF99 /* opcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093E28FDD2550013FF99 /* opcode.cpp */; }; + A9EE0D7028FDD2560013FF99 /* opcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093E28FDD2550013FF99 /* opcode.cpp */; }; + A9EE0D7128FDD2560013FF99 /* print.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093F28FDD2550013FF99 /* print.h */; }; + A9EE0D7228FDD2560013FF99 /* print.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093F28FDD2550013FF99 /* print.h */; }; + A9EE0D7328FDD2560013FF99 /* print.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093F28FDD2550013FF99 /* print.h */; }; + A9EE0D7428FDD2560013FF99 /* ext_inst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094028FDD2550013FF99 /* ext_inst.cpp */; }; + A9EE0D7528FDD2560013FF99 /* ext_inst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094028FDD2550013FF99 /* ext_inst.cpp */; }; + A9EE0D7628FDD2560013FF99 /* ext_inst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094028FDD2550013FF99 /* ext_inst.cpp */; }; + A9EE0D7728FDD2560013FF99 /* disassemble.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094128FDD2550013FF99 /* disassemble.h */; }; + A9EE0D7828FDD2560013FF99 /* disassemble.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094128FDD2550013FF99 /* disassemble.h */; }; + A9EE0D7928FDD2560013FF99 /* disassemble.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094128FDD2550013FF99 /* disassemble.h */; }; + A9EE0D7A28FDD2560013FF99 /* optimizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094328FDD2550013FF99 /* optimizer.cpp */; }; + A9EE0D7B28FDD2560013FF99 /* optimizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094328FDD2550013FF99 /* optimizer.cpp */; }; + A9EE0D7C28FDD2560013FF99 /* optimizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094328FDD2550013FF99 /* optimizer.cpp */; }; + A9EE0D7D28FDD2560013FF99 /* if_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094428FDD2550013FF99 /* if_conversion.h */; }; + A9EE0D7E28FDD2560013FF99 /* if_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094428FDD2550013FF99 /* if_conversion.h */; }; + A9EE0D7F28FDD2560013FF99 /* if_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094428FDD2550013FF99 /* if_conversion.h */; }; + A9EE0D8028FDD2560013FF99 /* register_pressure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094528FDD2550013FF99 /* register_pressure.cpp */; }; + A9EE0D8128FDD2560013FF99 /* register_pressure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094528FDD2550013FF99 /* register_pressure.cpp */; }; + A9EE0D8228FDD2560013FF99 /* register_pressure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094528FDD2550013FF99 /* register_pressure.cpp */; }; + A9EE0D8328FDD2560013FF99 /* loop_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094628FDD2550013FF99 /* loop_utils.cpp */; }; + A9EE0D8428FDD2560013FF99 /* loop_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094628FDD2550013FF99 /* loop_utils.cpp */; }; + A9EE0D8528FDD2560013FF99 /* loop_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094628FDD2550013FF99 /* loop_utils.cpp */; }; + A9EE0D8628FDD2560013FF99 /* strip_nonsemantic_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094728FDD2550013FF99 /* strip_nonsemantic_info_pass.h */; }; + A9EE0D8728FDD2560013FF99 /* strip_nonsemantic_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094728FDD2550013FF99 /* strip_nonsemantic_info_pass.h */; }; + A9EE0D8828FDD2560013FF99 /* strip_nonsemantic_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094728FDD2550013FF99 /* strip_nonsemantic_info_pass.h */; }; + A9EE0D8928FDD2560013FF99 /* spread_volatile_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094828FDD2550013FF99 /* spread_volatile_semantics.cpp */; }; + A9EE0D8A28FDD2560013FF99 /* spread_volatile_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094828FDD2550013FF99 /* spread_volatile_semantics.cpp */; }; + A9EE0D8B28FDD2560013FF99 /* spread_volatile_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094828FDD2550013FF99 /* spread_volatile_semantics.cpp */; }; + A9EE0D8C28FDD2560013FF99 /* merge_return_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094928FDD2550013FF99 /* merge_return_pass.h */; }; + A9EE0D8D28FDD2560013FF99 /* merge_return_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094928FDD2550013FF99 /* merge_return_pass.h */; }; + A9EE0D8E28FDD2560013FF99 /* merge_return_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094928FDD2550013FF99 /* merge_return_pass.h */; }; + A9EE0D8F28FDD2560013FF99 /* inline_opaque_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094A28FDD2550013FF99 /* inline_opaque_pass.h */; }; + A9EE0D9028FDD2560013FF99 /* inline_opaque_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094A28FDD2550013FF99 /* inline_opaque_pass.h */; }; + A9EE0D9128FDD2560013FF99 /* inline_opaque_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094A28FDD2550013FF99 /* inline_opaque_pass.h */; }; + A9EE0D9228FDD2560013FF99 /* loop_fusion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094B28FDD2550013FF99 /* loop_fusion.h */; }; + A9EE0D9328FDD2560013FF99 /* loop_fusion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094B28FDD2550013FF99 /* loop_fusion.h */; }; + A9EE0D9428FDD2560013FF99 /* loop_fusion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094B28FDD2550013FF99 /* loop_fusion.h */; }; + A9EE0D9528FDD2560013FF99 /* combine_access_chains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094C28FDD2550013FF99 /* combine_access_chains.cpp */; }; + A9EE0D9628FDD2560013FF99 /* combine_access_chains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094C28FDD2550013FF99 /* combine_access_chains.cpp */; }; + A9EE0D9728FDD2560013FF99 /* combine_access_chains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094C28FDD2550013FF99 /* combine_access_chains.cpp */; }; + A9EE0D9828FDD2560013FF99 /* build_module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094D28FDD2550013FF99 /* build_module.cpp */; }; + A9EE0D9928FDD2560013FF99 /* build_module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094D28FDD2550013FF99 /* build_module.cpp */; }; + A9EE0D9A28FDD2560013FF99 /* build_module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094D28FDD2550013FF99 /* build_module.cpp */; }; + A9EE0D9B28FDD2560013FF99 /* composite.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094E28FDD2550013FF99 /* composite.h */; }; + A9EE0D9C28FDD2560013FF99 /* composite.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094E28FDD2550013FF99 /* composite.h */; }; + A9EE0D9D28FDD2560013FF99 /* composite.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094E28FDD2550013FF99 /* composite.h */; }; + A9EE0D9E28FDD2560013FF99 /* compact_ids_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094F28FDD2550013FF99 /* compact_ids_pass.h */; }; + A9EE0D9F28FDD2560013FF99 /* compact_ids_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094F28FDD2550013FF99 /* compact_ids_pass.h */; }; + A9EE0DA028FDD2560013FF99 /* compact_ids_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094F28FDD2550013FF99 /* compact_ids_pass.h */; }; + A9EE0DA128FDD2560013FF99 /* register_pressure.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095028FDD2550013FF99 /* register_pressure.h */; }; + A9EE0DA228FDD2560013FF99 /* register_pressure.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095028FDD2550013FF99 /* register_pressure.h */; }; + A9EE0DA328FDD2560013FF99 /* register_pressure.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095028FDD2550013FF99 /* register_pressure.h */; }; + A9EE0DA428FDD2560013FF99 /* tree_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095128FDD2550013FF99 /* tree_iterator.h */; }; + A9EE0DA528FDD2560013FF99 /* tree_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095128FDD2550013FF99 /* tree_iterator.h */; }; + A9EE0DA628FDD2560013FF99 /* tree_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095128FDD2550013FF99 /* tree_iterator.h */; }; + A9EE0DA728FDD2560013FF99 /* interface_var_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095228FDD2550013FF99 /* interface_var_sroa.h */; }; + A9EE0DA828FDD2560013FF99 /* interface_var_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095228FDD2550013FF99 /* interface_var_sroa.h */; }; + A9EE0DA928FDD2560013FF99 /* interface_var_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095228FDD2550013FF99 /* interface_var_sroa.h */; }; + A9EE0DAA28FDD2560013FF99 /* graphics_robust_access_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095328FDD2550013FF99 /* graphics_robust_access_pass.h */; }; + A9EE0DAB28FDD2560013FF99 /* graphics_robust_access_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095328FDD2550013FF99 /* graphics_robust_access_pass.h */; }; + A9EE0DAC28FDD2560013FF99 /* graphics_robust_access_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095328FDD2550013FF99 /* graphics_robust_access_pass.h */; }; + A9EE0DAD28FDD2560013FF99 /* local_single_store_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095428FDD2550013FF99 /* local_single_store_elim_pass.h */; }; + A9EE0DAE28FDD2560013FF99 /* local_single_store_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095428FDD2550013FF99 /* local_single_store_elim_pass.h */; }; + A9EE0DAF28FDD2560013FF99 /* local_single_store_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095428FDD2550013FF99 /* local_single_store_elim_pass.h */; }; + A9EE0DB028FDD2560013FF99 /* reduce_load_size.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095528FDD2550013FF99 /* reduce_load_size.h */; }; + A9EE0DB128FDD2560013FF99 /* reduce_load_size.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095528FDD2550013FF99 /* reduce_load_size.h */; }; + A9EE0DB228FDD2560013FF99 /* reduce_load_size.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095528FDD2550013FF99 /* reduce_load_size.h */; }; + A9EE0DB328FDD2560013FF99 /* code_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095628FDD2550013FF99 /* code_sink.cpp */; }; + A9EE0DB428FDD2560013FF99 /* code_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095628FDD2550013FF99 /* code_sink.cpp */; }; + A9EE0DB528FDD2560013FF99 /* code_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095628FDD2550013FF99 /* code_sink.cpp */; }; + A9EE0DB628FDD2560013FF99 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095728FDD2550013FF99 /* types.cpp */; }; + A9EE0DB728FDD2560013FF99 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095728FDD2550013FF99 /* types.cpp */; }; + A9EE0DB828FDD2560013FF99 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095728FDD2550013FF99 /* types.cpp */; }; + A9EE0DB928FDD2560013FF99 /* scalar_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095828FDD2550013FF99 /* scalar_analysis.h */; }; + A9EE0DBA28FDD2560013FF99 /* scalar_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095828FDD2550013FF99 /* scalar_analysis.h */; }; + A9EE0DBB28FDD2560013FF99 /* scalar_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095828FDD2550013FF99 /* scalar_analysis.h */; }; + A9EE0DBC28FDD2560013FF99 /* strip_debug_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095928FDD2550013FF99 /* strip_debug_info_pass.h */; }; + A9EE0DBD28FDD2560013FF99 /* strip_debug_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095928FDD2550013FF99 /* strip_debug_info_pass.h */; }; + A9EE0DBE28FDD2560013FF99 /* strip_debug_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095928FDD2550013FF99 /* strip_debug_info_pass.h */; }; + A9EE0DBF28FDD2560013FF99 /* replace_desc_array_access_using_var_index.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095A28FDD2550013FF99 /* replace_desc_array_access_using_var_index.h */; }; + A9EE0DC028FDD2560013FF99 /* replace_desc_array_access_using_var_index.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095A28FDD2550013FF99 /* replace_desc_array_access_using_var_index.h */; }; + A9EE0DC128FDD2560013FF99 /* replace_desc_array_access_using_var_index.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095A28FDD2550013FF99 /* replace_desc_array_access_using_var_index.h */; }; + A9EE0DC228FDD2560013FF99 /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095B28FDD2550013FF99 /* cfg.cpp */; }; + A9EE0DC328FDD2560013FF99 /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095B28FDD2550013FF99 /* cfg.cpp */; }; + A9EE0DC428FDD2560013FF99 /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095B28FDD2550013FF99 /* cfg.cpp */; }; + A9EE0DC528FDD2560013FF99 /* decoration_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095C28FDD2550013FF99 /* decoration_manager.cpp */; }; + A9EE0DC628FDD2560013FF99 /* decoration_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095C28FDD2550013FF99 /* decoration_manager.cpp */; }; + A9EE0DC728FDD2560013FF99 /* decoration_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095C28FDD2550013FF99 /* decoration_manager.cpp */; }; + A9EE0DC828FDD2560013FF99 /* local_single_block_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095D28FDD2550013FF99 /* local_single_block_elim_pass.cpp */; }; + A9EE0DC928FDD2560013FF99 /* local_single_block_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095D28FDD2550013FF99 /* local_single_block_elim_pass.cpp */; }; + A9EE0DCA28FDD2560013FF99 /* local_single_block_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095D28FDD2550013FF99 /* local_single_block_elim_pass.cpp */; }; + A9EE0DCB28FDD2560013FF99 /* freeze_spec_constant_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095E28FDD2550013FF99 /* freeze_spec_constant_value_pass.cpp */; }; + A9EE0DCC28FDD2560013FF99 /* freeze_spec_constant_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095E28FDD2550013FF99 /* freeze_spec_constant_value_pass.cpp */; }; + A9EE0DCD28FDD2560013FF99 /* freeze_spec_constant_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095E28FDD2550013FF99 /* freeze_spec_constant_value_pass.cpp */; }; + A9EE0DCE28FDD2560013FF99 /* replace_invalid_opc.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095F28FDD2550013FF99 /* replace_invalid_opc.h */; }; + A9EE0DCF28FDD2560013FF99 /* replace_invalid_opc.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095F28FDD2550013FF99 /* replace_invalid_opc.h */; }; + A9EE0DD028FDD2560013FF99 /* replace_invalid_opc.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095F28FDD2550013FF99 /* replace_invalid_opc.h */; }; + A9EE0DD128FDD2560013FF99 /* local_access_chain_convert_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096028FDD2550013FF99 /* local_access_chain_convert_pass.h */; }; + A9EE0DD228FDD2560013FF99 /* local_access_chain_convert_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096028FDD2550013FF99 /* local_access_chain_convert_pass.h */; }; + A9EE0DD328FDD2560013FF99 /* local_access_chain_convert_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096028FDD2550013FF99 /* local_access_chain_convert_pass.h */; }; + A9EE0DD428FDD2560013FF99 /* inst_bindless_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096128FDD2550013FF99 /* inst_bindless_check_pass.cpp */; }; + A9EE0DD528FDD2560013FF99 /* inst_bindless_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096128FDD2550013FF99 /* inst_bindless_check_pass.cpp */; }; + A9EE0DD628FDD2560013FF99 /* inst_bindless_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096128FDD2550013FF99 /* inst_bindless_check_pass.cpp */; }; + A9EE0DD728FDD2560013FF99 /* local_redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096228FDD2550013FF99 /* local_redundancy_elimination.cpp */; }; + A9EE0DD828FDD2560013FF99 /* local_redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096228FDD2550013FF99 /* local_redundancy_elimination.cpp */; }; + A9EE0DD928FDD2560013FF99 /* local_redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096228FDD2550013FF99 /* local_redundancy_elimination.cpp */; }; + A9EE0DDA28FDD2560013FF99 /* instrument_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096428FDD2550013FF99 /* instrument_pass.cpp */; }; + A9EE0DDB28FDD2560013FF99 /* instrument_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096428FDD2550013FF99 /* instrument_pass.cpp */; }; + A9EE0DDC28FDD2560013FF99 /* instrument_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096428FDD2550013FF99 /* instrument_pass.cpp */; }; + A9EE0DDD28FDD2560013FF99 /* propagator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096528FDD2550013FF99 /* propagator.h */; }; + A9EE0DDE28FDD2560013FF99 /* propagator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096528FDD2550013FF99 /* propagator.h */; }; + A9EE0DDF28FDD2560013FF99 /* propagator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096528FDD2550013FF99 /* propagator.h */; }; + A9EE0DE028FDD2560013FF99 /* instruction_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096628FDD2550013FF99 /* instruction_list.h */; }; + A9EE0DE128FDD2560013FF99 /* instruction_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096628FDD2550013FF99 /* instruction_list.h */; }; + A9EE0DE228FDD2560013FF99 /* instruction_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096628FDD2550013FF99 /* instruction_list.h */; }; + A9EE0DE328FDD2560013FF99 /* feature_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096728FDD2550013FF99 /* feature_manager.cpp */; }; + A9EE0DE428FDD2560013FF99 /* feature_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096728FDD2550013FF99 /* feature_manager.cpp */; }; + A9EE0DE528FDD2560013FF99 /* feature_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096728FDD2550013FF99 /* feature_manager.cpp */; }; + A9EE0DE628FDD2560013FF99 /* pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096828FDD2550013FF99 /* pass.cpp */; }; + A9EE0DE728FDD2560013FF99 /* pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096828FDD2550013FF99 /* pass.cpp */; }; + A9EE0DE828FDD2560013FF99 /* pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096828FDD2550013FF99 /* pass.cpp */; }; + A9EE0DE928FDD2560013FF99 /* loop_fission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096928FDD2550013FF99 /* loop_fission.cpp */; }; + A9EE0DEA28FDD2560013FF99 /* loop_fission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096928FDD2550013FF99 /* loop_fission.cpp */; }; + A9EE0DEB28FDD2560013FF99 /* loop_fission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096928FDD2550013FF99 /* loop_fission.cpp */; }; + A9EE0DEC28FDD2560013FF99 /* dominator_tree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096A28FDD2550013FF99 /* dominator_tree.cpp */; }; + A9EE0DED28FDD2560013FF99 /* dominator_tree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096A28FDD2550013FF99 /* dominator_tree.cpp */; }; + A9EE0DEE28FDD2560013FF99 /* dominator_tree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096A28FDD2550013FF99 /* dominator_tree.cpp */; }; + A9EE0DEF28FDD2560013FF99 /* amd_ext_to_khr.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096B28FDD2550013FF99 /* amd_ext_to_khr.h */; }; + A9EE0DF028FDD2560013FF99 /* amd_ext_to_khr.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096B28FDD2550013FF99 /* amd_ext_to_khr.h */; }; + A9EE0DF128FDD2560013FF99 /* amd_ext_to_khr.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096B28FDD2550013FF99 /* amd_ext_to_khr.h */; }; + A9EE0DF228FDD2560013FF99 /* merge_return_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096C28FDD2550013FF99 /* merge_return_pass.cpp */; }; + A9EE0DF328FDD2560013FF99 /* merge_return_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096C28FDD2550013FF99 /* merge_return_pass.cpp */; }; + A9EE0DF428FDD2560013FF99 /* merge_return_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096C28FDD2550013FF99 /* merge_return_pass.cpp */; }; + A9EE0DF528FDD2560013FF99 /* ir_context.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096D28FDD2550013FF99 /* ir_context.h */; }; + A9EE0DF628FDD2560013FF99 /* ir_context.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096D28FDD2550013FF99 /* ir_context.h */; }; + A9EE0DF728FDD2560013FF99 /* ir_context.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096D28FDD2550013FF99 /* ir_context.h */; }; + A9EE0DF828FDD2560013FF99 /* eliminate_dead_constant_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096E28FDD2550013FF99 /* eliminate_dead_constant_pass.cpp */; }; + A9EE0DF928FDD2560013FF99 /* eliminate_dead_constant_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096E28FDD2550013FF99 /* eliminate_dead_constant_pass.cpp */; }; + A9EE0DFA28FDD2560013FF99 /* eliminate_dead_constant_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096E28FDD2550013FF99 /* eliminate_dead_constant_pass.cpp */; }; + A9EE0DFB28FDD2560013FF99 /* control_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096F28FDD2550013FF99 /* control_dependence.h */; }; + A9EE0DFC28FDD2560013FF99 /* control_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096F28FDD2550013FF99 /* control_dependence.h */; }; + A9EE0DFD28FDD2560013FF99 /* control_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096F28FDD2550013FF99 /* control_dependence.h */; }; + A9EE0DFE28FDD2560013FF99 /* cfg_cleanup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097028FDD2550013FF99 /* cfg_cleanup_pass.cpp */; }; + A9EE0DFF28FDD2560013FF99 /* cfg_cleanup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097028FDD2550013FF99 /* cfg_cleanup_pass.cpp */; }; + A9EE0E0028FDD2560013FF99 /* cfg_cleanup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097028FDD2550013FF99 /* cfg_cleanup_pass.cpp */; }; + A9EE0E0128FDD2560013FF99 /* wrap_opkill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097128FDD2550013FF99 /* wrap_opkill.cpp */; }; + A9EE0E0228FDD2560013FF99 /* wrap_opkill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097128FDD2550013FF99 /* wrap_opkill.cpp */; }; + A9EE0E0328FDD2560013FF99 /* wrap_opkill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097128FDD2550013FF99 /* wrap_opkill.cpp */; }; + A9EE0E0428FDD2560013FF99 /* const_folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097228FDD2550013FF99 /* const_folding_rules.cpp */; }; + A9EE0E0528FDD2560013FF99 /* const_folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097228FDD2550013FF99 /* const_folding_rules.cpp */; }; + A9EE0E0628FDD2560013FF99 /* const_folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097228FDD2550013FF99 /* const_folding_rules.cpp */; }; + A9EE0E0728FDD2560013FF99 /* loop_unroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097328FDD2550013FF99 /* loop_unroller.h */; }; + A9EE0E0828FDD2560013FF99 /* loop_unroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097328FDD2550013FF99 /* loop_unroller.h */; }; + A9EE0E0928FDD2560013FF99 /* loop_unroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097328FDD2550013FF99 /* loop_unroller.h */; }; + A9EE0E0A28FDD2560013FF99 /* strip_debug_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097428FDD2550013FF99 /* strip_debug_info_pass.cpp */; }; + A9EE0E0B28FDD2560013FF99 /* strip_debug_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097428FDD2550013FF99 /* strip_debug_info_pass.cpp */; }; + A9EE0E0C28FDD2560013FF99 /* strip_debug_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097428FDD2550013FF99 /* strip_debug_info_pass.cpp */; }; + A9EE0E0D28FDD2560013FF99 /* ssa_rewrite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097528FDD2550013FF99 /* ssa_rewrite_pass.cpp */; }; + A9EE0E0E28FDD2560013FF99 /* ssa_rewrite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097528FDD2550013FF99 /* ssa_rewrite_pass.cpp */; }; + A9EE0E0F28FDD2560013FF99 /* ssa_rewrite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097528FDD2550013FF99 /* ssa_rewrite_pass.cpp */; }; + A9EE0E1028FDD2560013FF99 /* loop_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097628FDD2550013FF99 /* loop_dependence.cpp */; }; + A9EE0E1128FDD2560013FF99 /* loop_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097628FDD2550013FF99 /* loop_dependence.cpp */; }; + A9EE0E1228FDD2560013FF99 /* loop_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097628FDD2550013FF99 /* loop_dependence.cpp */; }; + A9EE0E1328FDD2560013FF99 /* unify_const_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097728FDD2550013FF99 /* unify_const_pass.h */; }; + A9EE0E1428FDD2560013FF99 /* unify_const_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097728FDD2550013FF99 /* unify_const_pass.h */; }; + A9EE0E1528FDD2560013FF99 /* unify_const_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097728FDD2550013FF99 /* unify_const_pass.h */; }; + A9EE0E1628FDD2560013FF99 /* ir_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097828FDD2550013FF99 /* ir_loader.h */; }; + A9EE0E1728FDD2560013FF99 /* ir_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097828FDD2550013FF99 /* ir_loader.h */; }; + A9EE0E1828FDD2560013FF99 /* ir_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097828FDD2550013FF99 /* ir_loader.h */; }; + A9EE0E1928FDD2560013FF99 /* inst_debug_printf_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097928FDD2550013FF99 /* inst_debug_printf_pass.cpp */; }; + A9EE0E1A28FDD2560013FF99 /* inst_debug_printf_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097928FDD2550013FF99 /* inst_debug_printf_pass.cpp */; }; + A9EE0E1B28FDD2560013FF99 /* inst_debug_printf_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097928FDD2550013FF99 /* inst_debug_printf_pass.cpp */; }; + A9EE0E1C28FDD2560013FF99 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097A28FDD2550013FF99 /* types.h */; }; + A9EE0E1D28FDD2560013FF99 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097A28FDD2550013FF99 /* types.h */; }; + A9EE0E1E28FDD2560013FF99 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097A28FDD2550013FF99 /* types.h */; }; + A9EE0E1F28FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097B28FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.h */; }; + A9EE0E2028FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097B28FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.h */; }; + A9EE0E2128FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097B28FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.h */; }; + A9EE0E2228FDD2560013FF99 /* mem_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097C28FDD2550013FF99 /* mem_pass.cpp */; }; + A9EE0E2328FDD2560013FF99 /* mem_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097C28FDD2550013FF99 /* mem_pass.cpp */; }; + A9EE0E2428FDD2560013FF99 /* mem_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097C28FDD2550013FF99 /* mem_pass.cpp */; }; + A9EE0E2528FDD2560013FF99 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097D28FDD2550013FF99 /* basic_block.h */; }; + A9EE0E2628FDD2560013FF99 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097D28FDD2550013FF99 /* basic_block.h */; }; + A9EE0E2728FDD2560013FF99 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097D28FDD2550013FF99 /* basic_block.h */; }; + A9EE0E2828FDD2560013FF99 /* remove_duplicates_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097E28FDD2550013FF99 /* remove_duplicates_pass.cpp */; }; + A9EE0E2928FDD2560013FF99 /* remove_duplicates_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097E28FDD2550013FF99 /* remove_duplicates_pass.cpp */; }; + A9EE0E2A28FDD2560013FF99 /* remove_duplicates_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097E28FDD2550013FF99 /* remove_duplicates_pass.cpp */; }; + A9EE0E2B28FDD2560013FF99 /* dead_variable_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097F28FDD2550013FF99 /* dead_variable_elimination.cpp */; }; + A9EE0E2C28FDD2560013FF99 /* dead_variable_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097F28FDD2550013FF99 /* dead_variable_elimination.cpp */; }; + A9EE0E2D28FDD2560013FF99 /* dead_variable_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097F28FDD2550013FF99 /* dead_variable_elimination.cpp */; }; + A9EE0E2E28FDD2560013FF99 /* block_merge_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098028FDD2550013FF99 /* block_merge_pass.h */; }; + A9EE0E2F28FDD2560013FF99 /* block_merge_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098028FDD2550013FF99 /* block_merge_pass.h */; }; + A9EE0E3028FDD2560013FF99 /* block_merge_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098028FDD2550013FF99 /* block_merge_pass.h */; }; + A9EE0E3128FDD2560013FF99 /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098128FDD2550013FF99 /* module.cpp */; }; + A9EE0E3228FDD2560013FF99 /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098128FDD2550013FF99 /* module.cpp */; }; + A9EE0E3328FDD2560013FF99 /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098128FDD2550013FF99 /* module.cpp */; }; + A9EE0E3428FDD2560013FF99 /* debug_info_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098228FDD2550013FF99 /* debug_info_manager.h */; }; + A9EE0E3528FDD2560013FF99 /* debug_info_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098228FDD2550013FF99 /* debug_info_manager.h */; }; + A9EE0E3628FDD2560013FF99 /* debug_info_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098228FDD2550013FF99 /* debug_info_manager.h */; }; + A9EE0E3728FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098328FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.cpp */; }; + A9EE0E3828FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098328FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.cpp */; }; + A9EE0E3928FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098328FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.cpp */; }; + A9EE0E3A28FDD2560013FF99 /* loop_unswitch_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098428FDD2550013FF99 /* loop_unswitch_pass.cpp */; }; + A9EE0E3B28FDD2560013FF99 /* loop_unswitch_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098428FDD2550013FF99 /* loop_unswitch_pass.cpp */; }; + A9EE0E3C28FDD2560013FF99 /* loop_unswitch_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098428FDD2550013FF99 /* loop_unswitch_pass.cpp */; }; + A9EE0E3D28FDD2560013FF99 /* unify_const_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098528FDD2550013FF99 /* unify_const_pass.cpp */; }; + A9EE0E3E28FDD2560013FF99 /* unify_const_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098528FDD2550013FF99 /* unify_const_pass.cpp */; }; + A9EE0E3F28FDD2560013FF99 /* unify_const_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098528FDD2550013FF99 /* unify_const_pass.cpp */; }; + A9EE0E4028FDD2560013FF99 /* type_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098628FDD2550013FF99 /* type_manager.cpp */; }; + A9EE0E4128FDD2560013FF99 /* type_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098628FDD2550013FF99 /* type_manager.cpp */; }; + A9EE0E4228FDD2560013FF99 /* type_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098628FDD2550013FF99 /* type_manager.cpp */; }; + A9EE0E4328FDD2560013FF99 /* private_to_local_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098728FDD2550013FF99 /* private_to_local_pass.h */; }; + A9EE0E4428FDD2560013FF99 /* private_to_local_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098728FDD2550013FF99 /* private_to_local_pass.h */; }; + A9EE0E4528FDD2560013FF99 /* private_to_local_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098728FDD2550013FF99 /* private_to_local_pass.h */; }; + A9EE0E4628FDD2560013FF99 /* convert_to_half_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098828FDD2550013FF99 /* convert_to_half_pass.h */; }; + A9EE0E4728FDD2560013FF99 /* convert_to_half_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098828FDD2550013FF99 /* convert_to_half_pass.h */; }; + A9EE0E4828FDD2560013FF99 /* convert_to_half_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098828FDD2550013FF99 /* convert_to_half_pass.h */; }; + A9EE0E4928FDD2560013FF99 /* remove_dontinline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098928FDD2550013FF99 /* remove_dontinline_pass.h */; }; + A9EE0E4A28FDD2560013FF99 /* remove_dontinline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098928FDD2550013FF99 /* remove_dontinline_pass.h */; }; + A9EE0E4B28FDD2560013FF99 /* remove_dontinline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098928FDD2550013FF99 /* remove_dontinline_pass.h */; }; + A9EE0E4C28FDD2560013FF99 /* relax_float_ops_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098A28FDD2550013FF99 /* relax_float_ops_pass.h */; }; + A9EE0E4D28FDD2560013FF99 /* relax_float_ops_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098A28FDD2550013FF99 /* relax_float_ops_pass.h */; }; + A9EE0E4E28FDD2560013FF99 /* relax_float_ops_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098A28FDD2550013FF99 /* relax_float_ops_pass.h */; }; + A9EE0E4F28FDD2570013FF99 /* inline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098B28FDD2550013FF99 /* inline_pass.cpp */; }; + A9EE0E5028FDD2570013FF99 /* inline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098B28FDD2550013FF99 /* inline_pass.cpp */; }; + A9EE0E5128FDD2570013FF99 /* inline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098B28FDD2550013FF99 /* inline_pass.cpp */; }; + A9EE0E5228FDD2570013FF99 /* def_use_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098C28FDD2550013FF99 /* def_use_manager.h */; }; + A9EE0E5328FDD2570013FF99 /* def_use_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098C28FDD2550013FF99 /* def_use_manager.h */; }; + A9EE0E5428FDD2570013FF99 /* def_use_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098C28FDD2550013FF99 /* def_use_manager.h */; }; + A9EE0E5528FDD2570013FF99 /* ir_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098D28FDD2550013FF99 /* ir_loader.cpp */; }; + A9EE0E5628FDD2570013FF99 /* ir_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098D28FDD2550013FF99 /* ir_loader.cpp */; }; + A9EE0E5728FDD2570013FF99 /* ir_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098D28FDD2550013FF99 /* ir_loader.cpp */; }; + A9EE0E5828FDD2570013FF99 /* convert_to_sampled_image_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098E28FDD2550013FF99 /* convert_to_sampled_image_pass.h */; }; + A9EE0E5928FDD2570013FF99 /* convert_to_sampled_image_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098E28FDD2550013FF99 /* convert_to_sampled_image_pass.h */; }; + A9EE0E5A28FDD2570013FF99 /* convert_to_sampled_image_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098E28FDD2550013FF99 /* convert_to_sampled_image_pass.h */; }; + A9EE0E5B28FDD2570013FF99 /* cfg_cleanup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098F28FDD2550013FF99 /* cfg_cleanup_pass.h */; }; + A9EE0E5C28FDD2570013FF99 /* cfg_cleanup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098F28FDD2550013FF99 /* cfg_cleanup_pass.h */; }; + A9EE0E5D28FDD2570013FF99 /* cfg_cleanup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098F28FDD2550013FF99 /* cfg_cleanup_pass.h */; }; + A9EE0E5E28FDD2570013FF99 /* licm_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099028FDD2550013FF99 /* licm_pass.cpp */; }; + A9EE0E5F28FDD2570013FF99 /* licm_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099028FDD2550013FF99 /* licm_pass.cpp */; }; + A9EE0E6028FDD2570013FF99 /* licm_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099028FDD2550013FF99 /* licm_pass.cpp */; }; + A9EE0E6128FDD2570013FF99 /* eliminate_dead_functions_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099128FDD2550013FF99 /* eliminate_dead_functions_pass.cpp */; }; + A9EE0E6228FDD2570013FF99 /* eliminate_dead_functions_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099128FDD2550013FF99 /* eliminate_dead_functions_pass.cpp */; }; + A9EE0E6328FDD2570013FF99 /* eliminate_dead_functions_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099128FDD2550013FF99 /* eliminate_dead_functions_pass.cpp */; }; + A9EE0E6428FDD2570013FF99 /* local_redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099228FDD2550013FF99 /* local_redundancy_elimination.h */; }; + A9EE0E6528FDD2570013FF99 /* local_redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099228FDD2550013FF99 /* local_redundancy_elimination.h */; }; + A9EE0E6628FDD2570013FF99 /* local_redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099228FDD2550013FF99 /* local_redundancy_elimination.h */; }; + A9EE0E6728FDD2570013FF99 /* loop_peeling.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099328FDD2550013FF99 /* loop_peeling.h */; }; + A9EE0E6828FDD2570013FF99 /* loop_peeling.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099328FDD2550013FF99 /* loop_peeling.h */; }; + A9EE0E6928FDD2570013FF99 /* loop_peeling.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099328FDD2550013FF99 /* loop_peeling.h */; }; + A9EE0E6A28FDD2570013FF99 /* vector_dce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099428FDD2550013FF99 /* vector_dce.cpp */; }; + A9EE0E6B28FDD2570013FF99 /* vector_dce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099428FDD2550013FF99 /* vector_dce.cpp */; }; + A9EE0E6C28FDD2570013FF99 /* vector_dce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099428FDD2550013FF99 /* vector_dce.cpp */; }; + A9EE0E6D28FDD2570013FF99 /* block_merge_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099528FDD2550013FF99 /* block_merge_util.h */; }; + A9EE0E6E28FDD2570013FF99 /* block_merge_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099528FDD2550013FF99 /* block_merge_util.h */; }; + A9EE0E6F28FDD2570013FF99 /* block_merge_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099528FDD2550013FF99 /* block_merge_util.h */; }; + A9EE0E7028FDD2570013FF99 /* loop_unroller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099628FDD2550013FF99 /* loop_unroller.cpp */; }; + A9EE0E7128FDD2570013FF99 /* loop_unroller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099628FDD2550013FF99 /* loop_unroller.cpp */; }; + A9EE0E7228FDD2570013FF99 /* loop_unroller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099628FDD2550013FF99 /* loop_unroller.cpp */; }; + A9EE0E7328FDD2570013FF99 /* desc_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099728FDD2550013FF99 /* desc_sroa.h */; }; + A9EE0E7428FDD2570013FF99 /* desc_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099728FDD2550013FF99 /* desc_sroa.h */; }; + A9EE0E7528FDD2570013FF99 /* desc_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099728FDD2550013FF99 /* desc_sroa.h */; }; + A9EE0E7628FDD2570013FF99 /* constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099828FDD2550013FF99 /* constants.cpp */; }; + A9EE0E7728FDD2570013FF99 /* constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099828FDD2550013FF99 /* constants.cpp */; }; + A9EE0E7828FDD2570013FF99 /* constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099828FDD2550013FF99 /* constants.cpp */; }; + A9EE0E7928FDD2570013FF99 /* loop_fusion_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099928FDD2550013FF99 /* loop_fusion_pass.h */; }; + A9EE0E7A28FDD2570013FF99 /* loop_fusion_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099928FDD2550013FF99 /* loop_fusion_pass.h */; }; + A9EE0E7B28FDD2570013FF99 /* loop_fusion_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099928FDD2550013FF99 /* loop_fusion_pass.h */; }; + A9EE0E7C28FDD2570013FF99 /* struct_cfg_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099A28FDD2550013FF99 /* struct_cfg_analysis.h */; }; + A9EE0E7D28FDD2570013FF99 /* struct_cfg_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099A28FDD2550013FF99 /* struct_cfg_analysis.h */; }; + A9EE0E7E28FDD2570013FF99 /* struct_cfg_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099A28FDD2550013FF99 /* struct_cfg_analysis.h */; }; + A9EE0E7F28FDD2570013FF99 /* desc_sroa_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099B28FDD2550013FF99 /* desc_sroa_util.cpp */; }; + A9EE0E8028FDD2570013FF99 /* desc_sroa_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099B28FDD2550013FF99 /* desc_sroa_util.cpp */; }; + A9EE0E8128FDD2570013FF99 /* desc_sroa_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099B28FDD2550013FF99 /* desc_sroa_util.cpp */; }; + A9EE0E8228FDD2570013FF99 /* inst_buff_addr_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099C28FDD2550013FF99 /* inst_buff_addr_check_pass.cpp */; }; + A9EE0E8328FDD2570013FF99 /* inst_buff_addr_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099C28FDD2550013FF99 /* inst_buff_addr_check_pass.cpp */; }; + A9EE0E8428FDD2570013FF99 /* inst_buff_addr_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099C28FDD2550013FF99 /* inst_buff_addr_check_pass.cpp */; }; + A9EE0E8528FDD2570013FF99 /* def_use_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099D28FDD2550013FF99 /* def_use_manager.cpp */; }; + A9EE0E8628FDD2570013FF99 /* def_use_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099D28FDD2550013FF99 /* def_use_manager.cpp */; }; + A9EE0E8728FDD2570013FF99 /* def_use_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099D28FDD2550013FF99 /* def_use_manager.cpp */; }; + A9EE0E8828FDD2570013FF99 /* wrap_opkill.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099E28FDD2550013FF99 /* wrap_opkill.h */; }; + A9EE0E8928FDD2570013FF99 /* wrap_opkill.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099E28FDD2550013FF99 /* wrap_opkill.h */; }; + A9EE0E8A28FDD2570013FF99 /* wrap_opkill.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099E28FDD2550013FF99 /* wrap_opkill.h */; }; + A9EE0E8B28FDD2570013FF99 /* empty_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099F28FDD2550013FF99 /* empty_pass.h */; }; + A9EE0E8C28FDD2570013FF99 /* empty_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099F28FDD2550013FF99 /* empty_pass.h */; }; + A9EE0E8D28FDD2570013FF99 /* empty_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099F28FDD2550013FF99 /* empty_pass.h */; }; + A9EE0E8E28FDD2570013FF99 /* eliminate_dead_input_components_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A028FDD2550013FF99 /* eliminate_dead_input_components_pass.h */; }; + A9EE0E8F28FDD2570013FF99 /* eliminate_dead_input_components_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A028FDD2550013FF99 /* eliminate_dead_input_components_pass.h */; }; + A9EE0E9028FDD2570013FF99 /* eliminate_dead_input_components_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A028FDD2550013FF99 /* eliminate_dead_input_components_pass.h */; }; + A9EE0E9128FDD2570013FF99 /* decoration_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A128FDD2550013FF99 /* decoration_manager.h */; }; + A9EE0E9228FDD2570013FF99 /* decoration_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A128FDD2550013FF99 /* decoration_manager.h */; }; + A9EE0E9328FDD2570013FF99 /* decoration_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A128FDD2550013FF99 /* decoration_manager.h */; }; + A9EE0E9428FDD2570013FF99 /* ccp_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A228FDD2550013FF99 /* ccp_pass.cpp */; }; + A9EE0E9528FDD2570013FF99 /* ccp_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A228FDD2550013FF99 /* ccp_pass.cpp */; }; + A9EE0E9628FDD2570013FF99 /* ccp_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A228FDD2550013FF99 /* ccp_pass.cpp */; }; + A9EE0E9728FDD2570013FF99 /* local_single_block_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A328FDD2550013FF99 /* local_single_block_elim_pass.h */; }; + A9EE0E9828FDD2570013FF99 /* local_single_block_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A328FDD2550013FF99 /* local_single_block_elim_pass.h */; }; + A9EE0E9928FDD2570013FF99 /* local_single_block_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A328FDD2550013FF99 /* local_single_block_elim_pass.h */; }; + A9EE0E9A28FDD2570013FF99 /* interp_fixup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A428FDD2550013FF99 /* interp_fixup_pass.h */; }; + A9EE0E9B28FDD2570013FF99 /* interp_fixup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A428FDD2550013FF99 /* interp_fixup_pass.h */; }; + A9EE0E9C28FDD2570013FF99 /* interp_fixup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A428FDD2550013FF99 /* interp_fixup_pass.h */; }; + A9EE0E9D28FDD2570013FF99 /* pch_source_opt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A528FDD2550013FF99 /* pch_source_opt.cpp */; }; + A9EE0E9E28FDD2570013FF99 /* pch_source_opt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A528FDD2550013FF99 /* pch_source_opt.cpp */; }; + A9EE0E9F28FDD2570013FF99 /* pch_source_opt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A528FDD2550013FF99 /* pch_source_opt.cpp */; }; + A9EE0EA028FDD2570013FF99 /* inst_buff_addr_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A628FDD2550013FF99 /* inst_buff_addr_check_pass.h */; }; + A9EE0EA128FDD2570013FF99 /* inst_buff_addr_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A628FDD2550013FF99 /* inst_buff_addr_check_pass.h */; }; + A9EE0EA228FDD2570013FF99 /* inst_buff_addr_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A628FDD2550013FF99 /* inst_buff_addr_check_pass.h */; }; + A9EE0EA328FDD2570013FF99 /* strength_reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A728FDD2550013FF99 /* strength_reduction_pass.h */; }; + A9EE0EA428FDD2570013FF99 /* strength_reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A728FDD2550013FF99 /* strength_reduction_pass.h */; }; + A9EE0EA528FDD2570013FF99 /* strength_reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A728FDD2550013FF99 /* strength_reduction_pass.h */; }; + A9EE0EA628FDD2570013FF99 /* aggressive_dead_code_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A828FDD2550013FF99 /* aggressive_dead_code_elim_pass.cpp */; }; + A9EE0EA728FDD2570013FF99 /* aggressive_dead_code_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A828FDD2550013FF99 /* aggressive_dead_code_elim_pass.cpp */; }; + A9EE0EA828FDD2570013FF99 /* aggressive_dead_code_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A828FDD2550013FF99 /* aggressive_dead_code_elim_pass.cpp */; }; + A9EE0EA928FDD2570013FF99 /* eliminate_dead_functions_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A928FDD2550013FF99 /* eliminate_dead_functions_util.cpp */; }; + A9EE0EAA28FDD2570013FF99 /* eliminate_dead_functions_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A928FDD2550013FF99 /* eliminate_dead_functions_util.cpp */; }; + A9EE0EAB28FDD2570013FF99 /* eliminate_dead_functions_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A928FDD2550013FF99 /* eliminate_dead_functions_util.cpp */; }; + A9EE0EAC28FDD2570013FF99 /* inst_debug_printf_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09AA28FDD2550013FF99 /* inst_debug_printf_pass.h */; }; + A9EE0EAD28FDD2570013FF99 /* inst_debug_printf_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09AA28FDD2550013FF99 /* inst_debug_printf_pass.h */; }; + A9EE0EAE28FDD2570013FF99 /* inst_debug_printf_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09AA28FDD2550013FF99 /* inst_debug_printf_pass.h */; }; + A9EE0EAF28FDD2570013FF99 /* simplification_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AB28FDD2550013FF99 /* simplification_pass.cpp */; }; + A9EE0EB028FDD2570013FF99 /* simplification_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AB28FDD2550013FF99 /* simplification_pass.cpp */; }; + A9EE0EB128FDD2570013FF99 /* simplification_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AB28FDD2550013FF99 /* simplification_pass.cpp */; }; + A9EE0EB228FDD2570013FF99 /* dead_branch_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AC28FDD2550013FF99 /* dead_branch_elim_pass.cpp */; }; + A9EE0EB328FDD2570013FF99 /* dead_branch_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AC28FDD2550013FF99 /* dead_branch_elim_pass.cpp */; }; + A9EE0EB428FDD2570013FF99 /* dead_branch_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AC28FDD2550013FF99 /* dead_branch_elim_pass.cpp */; }; + A9EE0EB528FDD2570013FF99 /* flatten_decoration_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AD28FDD2550013FF99 /* flatten_decoration_pass.cpp */; }; + A9EE0EB628FDD2570013FF99 /* flatten_decoration_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AD28FDD2550013FF99 /* flatten_decoration_pass.cpp */; }; + A9EE0EB728FDD2570013FF99 /* flatten_decoration_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AD28FDD2550013FF99 /* flatten_decoration_pass.cpp */; }; + A9EE0EB828FDD2570013FF99 /* dead_insert_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09AE28FDD2550013FF99 /* dead_insert_elim_pass.h */; }; + A9EE0EB928FDD2570013FF99 /* dead_insert_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09AE28FDD2550013FF99 /* dead_insert_elim_pass.h */; }; + A9EE0EBA28FDD2570013FF99 /* dead_insert_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09AE28FDD2550013FF99 /* dead_insert_elim_pass.h */; }; + A9EE0EBB28FDD2570013FF99 /* folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AF28FDD2550013FF99 /* folding_rules.cpp */; }; + A9EE0EBC28FDD2570013FF99 /* folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AF28FDD2550013FF99 /* folding_rules.cpp */; }; + A9EE0EBD28FDD2570013FF99 /* folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AF28FDD2550013FF99 /* folding_rules.cpp */; }; + A9EE0EBE28FDD2570013FF99 /* freeze_spec_constant_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B028FDD2550013FF99 /* freeze_spec_constant_value_pass.h */; }; + A9EE0EBF28FDD2570013FF99 /* freeze_spec_constant_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B028FDD2550013FF99 /* freeze_spec_constant_value_pass.h */; }; + A9EE0EC028FDD2570013FF99 /* freeze_spec_constant_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B028FDD2550013FF99 /* freeze_spec_constant_value_pass.h */; }; + A9EE0EC128FDD2570013FF99 /* ir_context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B128FDD2550013FF99 /* ir_context.cpp */; }; + A9EE0EC228FDD2570013FF99 /* ir_context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B128FDD2550013FF99 /* ir_context.cpp */; }; + A9EE0EC328FDD2570013FF99 /* ir_context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B128FDD2550013FF99 /* ir_context.cpp */; }; + A9EE0EC428FDD2570013FF99 /* instrument_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B228FDD2550013FF99 /* instrument_pass.h */; }; + A9EE0EC528FDD2570013FF99 /* instrument_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B228FDD2550013FF99 /* instrument_pass.h */; }; + A9EE0EC628FDD2570013FF99 /* instrument_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B228FDD2550013FF99 /* instrument_pass.h */; }; + A9EE0EC728FDD2570013FF99 /* mem_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B328FDD2550013FF99 /* mem_pass.h */; }; + A9EE0EC828FDD2570013FF99 /* mem_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B328FDD2550013FF99 /* mem_pass.h */; }; + A9EE0EC928FDD2570013FF99 /* mem_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B328FDD2550013FF99 /* mem_pass.h */; }; + A9EE0ECA28FDD2570013FF99 /* loop_descriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B428FDD2550013FF99 /* loop_descriptor.cpp */; }; + A9EE0ECB28FDD2570013FF99 /* loop_descriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B428FDD2550013FF99 /* loop_descriptor.cpp */; }; + A9EE0ECC28FDD2570013FF99 /* loop_descriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B428FDD2550013FF99 /* loop_descriptor.cpp */; }; + A9EE0ECD28FDD2570013FF99 /* eliminate_dead_members_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B528FDD2550013FF99 /* eliminate_dead_members_pass.h */; }; + A9EE0ECE28FDD2570013FF99 /* eliminate_dead_members_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B528FDD2550013FF99 /* eliminate_dead_members_pass.h */; }; + A9EE0ECF28FDD2570013FF99 /* eliminate_dead_members_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B528FDD2550013FF99 /* eliminate_dead_members_pass.h */; }; + A9EE0ED028FDD2570013FF99 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B628FDD2550013FF99 /* function.cpp */; }; + A9EE0ED128FDD2570013FF99 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B628FDD2550013FF99 /* function.cpp */; }; + A9EE0ED228FDD2570013FF99 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B628FDD2550013FF99 /* function.cpp */; }; + A9EE0ED328FDD2570013FF99 /* instruction_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B728FDD2550013FF99 /* instruction_list.cpp */; }; + A9EE0ED428FDD2570013FF99 /* instruction_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B728FDD2550013FF99 /* instruction_list.cpp */; }; + A9EE0ED528FDD2570013FF99 /* instruction_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B728FDD2550013FF99 /* instruction_list.cpp */; }; + A9EE0ED628FDD2570013FF99 /* control_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B828FDD2550013FF99 /* control_dependence.cpp */; }; + A9EE0ED728FDD2570013FF99 /* control_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B828FDD2550013FF99 /* control_dependence.cpp */; }; + A9EE0ED828FDD2570013FF99 /* control_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B828FDD2550013FF99 /* control_dependence.cpp */; }; + A9EE0ED928FDD2570013FF99 /* composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B928FDD2550013FF99 /* composite.cpp */; }; + A9EE0EDA28FDD2570013FF99 /* composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B928FDD2550013FF99 /* composite.cpp */; }; + A9EE0EDB28FDD2570013FF99 /* composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B928FDD2550013FF99 /* composite.cpp */; }; + A9EE0EDC28FDD2570013FF99 /* convert_to_half_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09BA28FDD2550013FF99 /* convert_to_half_pass.cpp */; }; + A9EE0EDD28FDD2570013FF99 /* convert_to_half_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09BA28FDD2550013FF99 /* convert_to_half_pass.cpp */; }; + A9EE0EDE28FDD2570013FF99 /* convert_to_half_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09BA28FDD2550013FF99 /* convert_to_half_pass.cpp */; }; + A9EE0EDF28FDD2570013FF99 /* inline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BB28FDD2550013FF99 /* inline_pass.h */; }; + A9EE0EE028FDD2570013FF99 /* inline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BB28FDD2550013FF99 /* inline_pass.h */; }; + A9EE0EE128FDD2570013FF99 /* inline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BB28FDD2550013FF99 /* inline_pass.h */; }; + A9EE0EE228FDD2570013FF99 /* loop_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BC28FDD2550013FF99 /* loop_dependence.h */; }; + A9EE0EE328FDD2570013FF99 /* loop_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BC28FDD2550013FF99 /* loop_dependence.h */; }; + A9EE0EE428FDD2570013FF99 /* loop_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BC28FDD2550013FF99 /* loop_dependence.h */; }; + A9EE0EE528FDD2570013FF99 /* value_number_table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BD28FDD2550013FF99 /* value_number_table.h */; }; + A9EE0EE628FDD2570013FF99 /* value_number_table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BD28FDD2550013FF99 /* value_number_table.h */; }; + A9EE0EE728FDD2570013FF99 /* value_number_table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BD28FDD2550013FF99 /* value_number_table.h */; }; + A9EE0EE828FDD2570013FF99 /* strip_nonsemantic_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09BE28FDD2550013FF99 /* strip_nonsemantic_info_pass.cpp */; }; + A9EE0EE928FDD2570013FF99 /* strip_nonsemantic_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09BE28FDD2550013FF99 /* strip_nonsemantic_info_pass.cpp */; }; + A9EE0EEA28FDD2570013FF99 /* strip_nonsemantic_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09BE28FDD2550013FF99 /* strip_nonsemantic_info_pass.cpp */; }; + A9EE0EEB28FDD2570013FF99 /* flatten_decoration_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BF28FDD2550013FF99 /* flatten_decoration_pass.h */; }; + A9EE0EEC28FDD2570013FF99 /* flatten_decoration_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BF28FDD2550013FF99 /* flatten_decoration_pass.h */; }; + A9EE0EED28FDD2570013FF99 /* flatten_decoration_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BF28FDD2550013FF99 /* flatten_decoration_pass.h */; }; + A9EE0EEE28FDD2570013FF99 /* if_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C028FDD2550013FF99 /* if_conversion.cpp */; }; + A9EE0EEF28FDD2570013FF99 /* if_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C028FDD2550013FF99 /* if_conversion.cpp */; }; + A9EE0EF028FDD2570013FF99 /* if_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C028FDD2550013FF99 /* if_conversion.cpp */; }; + A9EE0EF128FDD2570013FF99 /* fix_func_call_arguments.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C128FDD2550013FF99 /* fix_func_call_arguments.cpp */; }; + A9EE0EF228FDD2570013FF99 /* fix_func_call_arguments.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C128FDD2550013FF99 /* fix_func_call_arguments.cpp */; }; + A9EE0EF328FDD2570013FF99 /* fix_func_call_arguments.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C128FDD2550013FF99 /* fix_func_call_arguments.cpp */; }; + A9EE0EF428FDD2570013FF99 /* debug_info_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C228FDD2550013FF99 /* debug_info_manager.cpp */; }; + A9EE0EF528FDD2570013FF99 /* debug_info_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C228FDD2550013FF99 /* debug_info_manager.cpp */; }; + A9EE0EF628FDD2570013FF99 /* debug_info_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C228FDD2550013FF99 /* debug_info_manager.cpp */; }; + A9EE0EF728FDD2570013FF99 /* inline_exhaustive_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C328FDD2550013FF99 /* inline_exhaustive_pass.h */; }; + A9EE0EF828FDD2570013FF99 /* inline_exhaustive_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C328FDD2550013FF99 /* inline_exhaustive_pass.h */; }; + A9EE0EF928FDD2570013FF99 /* inline_exhaustive_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C328FDD2550013FF99 /* inline_exhaustive_pass.h */; }; + A9EE0EFA28FDD2570013FF99 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C428FDD2550013FF99 /* constants.h */; }; + A9EE0EFB28FDD2570013FF99 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C428FDD2550013FF99 /* constants.h */; }; + A9EE0EFC28FDD2570013FF99 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C428FDD2550013FF99 /* constants.h */; }; + A9EE0EFD28FDD2570013FF99 /* eliminate_dead_members_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C528FDD2550013FF99 /* eliminate_dead_members_pass.cpp */; }; + A9EE0EFE28FDD2570013FF99 /* eliminate_dead_members_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C528FDD2550013FF99 /* eliminate_dead_members_pass.cpp */; }; + A9EE0EFF28FDD2570013FF99 /* eliminate_dead_members_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C528FDD2550013FF99 /* eliminate_dead_members_pass.cpp */; }; + A9EE0F0028FDD2570013FF99 /* strength_reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C628FDD2550013FF99 /* strength_reduction_pass.cpp */; }; + A9EE0F0128FDD2570013FF99 /* strength_reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C628FDD2550013FF99 /* strength_reduction_pass.cpp */; }; + A9EE0F0228FDD2570013FF99 /* strength_reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C628FDD2550013FF99 /* strength_reduction_pass.cpp */; }; + A9EE0F0328FDD2570013FF99 /* desc_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C728FDD2550013FF99 /* desc_sroa.cpp */; }; + A9EE0F0428FDD2570013FF99 /* desc_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C728FDD2550013FF99 /* desc_sroa.cpp */; }; + A9EE0F0528FDD2570013FF99 /* desc_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C728FDD2550013FF99 /* desc_sroa.cpp */; }; + A9EE0F0628FDD2570013FF99 /* block_merge_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C828FDD2550013FF99 /* block_merge_util.cpp */; }; + A9EE0F0728FDD2570013FF99 /* block_merge_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C828FDD2550013FF99 /* block_merge_util.cpp */; }; + A9EE0F0828FDD2570013FF99 /* block_merge_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C828FDD2550013FF99 /* block_merge_util.cpp */; }; + A9EE0F0928FDD2570013FF99 /* upgrade_memory_model.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C928FDD2550013FF99 /* upgrade_memory_model.h */; }; + A9EE0F0A28FDD2570013FF99 /* upgrade_memory_model.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C928FDD2550013FF99 /* upgrade_memory_model.h */; }; + A9EE0F0B28FDD2570013FF99 /* upgrade_memory_model.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C928FDD2550013FF99 /* upgrade_memory_model.h */; }; + A9EE0F0C28FDD2570013FF99 /* copy_prop_arrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CA28FDD2550013FF99 /* copy_prop_arrays.cpp */; }; + A9EE0F0D28FDD2570013FF99 /* copy_prop_arrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CA28FDD2550013FF99 /* copy_prop_arrays.cpp */; }; + A9EE0F0E28FDD2570013FF99 /* copy_prop_arrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CA28FDD2550013FF99 /* copy_prop_arrays.cpp */; }; + A9EE0F0F28FDD2570013FF99 /* pass_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CB28FDD2550013FF99 /* pass_manager.cpp */; }; + A9EE0F1028FDD2570013FF99 /* pass_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CB28FDD2550013FF99 /* pass_manager.cpp */; }; + A9EE0F1128FDD2570013FF99 /* pass_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CB28FDD2550013FF99 /* pass_manager.cpp */; }; + A9EE0F1228FDD2570013FF99 /* inline_exhaustive_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CC28FDD2550013FF99 /* inline_exhaustive_pass.cpp */; }; + A9EE0F1328FDD2570013FF99 /* inline_exhaustive_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CC28FDD2550013FF99 /* inline_exhaustive_pass.cpp */; }; + A9EE0F1428FDD2570013FF99 /* inline_exhaustive_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CC28FDD2550013FF99 /* inline_exhaustive_pass.cpp */; }; + A9EE0F1528FDD2570013FF99 /* loop_fission.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09CD28FDD2550013FF99 /* loop_fission.h */; }; + A9EE0F1628FDD2570013FF99 /* loop_fission.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09CD28FDD2550013FF99 /* loop_fission.h */; }; + A9EE0F1728FDD2570013FF99 /* loop_fission.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09CD28FDD2550013FF99 /* loop_fission.h */; }; + A9EE0F1828FDD2570013FF99 /* workaround1209.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09CE28FDD2550013FF99 /* workaround1209.h */; }; + A9EE0F1928FDD2570013FF99 /* workaround1209.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09CE28FDD2550013FF99 /* workaround1209.h */; }; + A9EE0F1A28FDD2570013FF99 /* workaround1209.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09CE28FDD2550013FF99 /* workaround1209.h */; }; + A9EE0F1B28FDD2570013FF99 /* loop_fusion_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CF28FDD2550013FF99 /* loop_fusion_pass.cpp */; }; + A9EE0F1C28FDD2570013FF99 /* loop_fusion_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CF28FDD2550013FF99 /* loop_fusion_pass.cpp */; }; + A9EE0F1D28FDD2570013FF99 /* loop_fusion_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CF28FDD2550013FF99 /* loop_fusion_pass.cpp */; }; + A9EE0F1E28FDD2570013FF99 /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D028FDD2550013FF99 /* log.h */; }; + A9EE0F1F28FDD2570013FF99 /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D028FDD2550013FF99 /* log.h */; }; + A9EE0F2028FDD2570013FF99 /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D028FDD2550013FF99 /* log.h */; }; + A9EE0F2128FDD2570013FF99 /* copy_prop_arrays.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D128FDD2550013FF99 /* copy_prop_arrays.h */; }; + A9EE0F2228FDD2570013FF99 /* copy_prop_arrays.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D128FDD2550013FF99 /* copy_prop_arrays.h */; }; + A9EE0F2328FDD2570013FF99 /* copy_prop_arrays.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D128FDD2550013FF99 /* copy_prop_arrays.h */; }; + A9EE0F2428FDD2570013FF99 /* eliminate_dead_constant_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D228FDD2550013FF99 /* eliminate_dead_constant_pass.h */; }; + A9EE0F2528FDD2570013FF99 /* eliminate_dead_constant_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D228FDD2550013FF99 /* eliminate_dead_constant_pass.h */; }; + A9EE0F2628FDD2570013FF99 /* eliminate_dead_constant_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D228FDD2550013FF99 /* eliminate_dead_constant_pass.h */; }; + A9EE0F2728FDD2570013FF99 /* dead_insert_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D328FDD2550013FF99 /* dead_insert_elim_pass.cpp */; }; + A9EE0F2828FDD2570013FF99 /* dead_insert_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D328FDD2550013FF99 /* dead_insert_elim_pass.cpp */; }; + A9EE0F2928FDD2570013FF99 /* dead_insert_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D328FDD2550013FF99 /* dead_insert_elim_pass.cpp */; }; + A9EE0F2A28FDD2570013FF99 /* ssa_rewrite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D428FDD2550013FF99 /* ssa_rewrite_pass.h */; }; + A9EE0F2B28FDD2570013FF99 /* ssa_rewrite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D428FDD2550013FF99 /* ssa_rewrite_pass.h */; }; + A9EE0F2C28FDD2570013FF99 /* ssa_rewrite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D428FDD2550013FF99 /* ssa_rewrite_pass.h */; }; + A9EE0F2D28FDD2570013FF99 /* scalar_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D528FDD2550013FF99 /* scalar_analysis.cpp */; }; + A9EE0F2E28FDD2570013FF99 /* scalar_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D528FDD2550013FF99 /* scalar_analysis.cpp */; }; + A9EE0F2F28FDD2570013FF99 /* scalar_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D528FDD2550013FF99 /* scalar_analysis.cpp */; }; + A9EE0F3028FDD2570013FF99 /* dead_variable_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D628FDD2550013FF99 /* dead_variable_elimination.h */; }; + A9EE0F3128FDD2570013FF99 /* dead_variable_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D628FDD2550013FF99 /* dead_variable_elimination.h */; }; + A9EE0F3228FDD2570013FF99 /* dead_variable_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D628FDD2550013FF99 /* dead_variable_elimination.h */; }; + A9EE0F3328FDD2570013FF99 /* block_merge_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D728FDD2550013FF99 /* block_merge_pass.cpp */; }; + A9EE0F3428FDD2570013FF99 /* block_merge_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D728FDD2550013FF99 /* block_merge_pass.cpp */; }; + A9EE0F3528FDD2570013FF99 /* block_merge_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D728FDD2550013FF99 /* block_merge_pass.cpp */; }; + A9EE0F3628FDD2570013FF99 /* dominator_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D828FDD2550013FF99 /* dominator_analysis.h */; }; + A9EE0F3728FDD2570013FF99 /* dominator_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D828FDD2550013FF99 /* dominator_analysis.h */; }; + A9EE0F3828FDD2570013FF99 /* dominator_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D828FDD2550013FF99 /* dominator_analysis.h */; }; + A9EE0F3928FDD2570013FF99 /* convert_to_sampled_image_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D928FDD2550013FF99 /* convert_to_sampled_image_pass.cpp */; }; + A9EE0F3A28FDD2570013FF99 /* convert_to_sampled_image_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D928FDD2550013FF99 /* convert_to_sampled_image_pass.cpp */; }; + A9EE0F3B28FDD2570013FF99 /* convert_to_sampled_image_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D928FDD2550013FF99 /* convert_to_sampled_image_pass.cpp */; }; + A9EE0F3C28FDD2570013FF99 /* pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DA28FDD2550013FF99 /* pass.h */; }; + A9EE0F3D28FDD2570013FF99 /* pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DA28FDD2550013FF99 /* pass.h */; }; + A9EE0F3E28FDD2570013FF99 /* pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DA28FDD2550013FF99 /* pass.h */; }; + A9EE0F3F28FDD2570013FF99 /* folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DB28FDD2550013FF99 /* folding_rules.h */; }; + A9EE0F4028FDD2570013FF99 /* folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DB28FDD2550013FF99 /* folding_rules.h */; }; + A9EE0F4128FDD2570013FF99 /* folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DB28FDD2550013FF99 /* folding_rules.h */; }; + A9EE0F4228FDD2570013FF99 /* eliminate_dead_functions_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DC28FDD2550013FF99 /* eliminate_dead_functions_pass.h */; }; + A9EE0F4328FDD2570013FF99 /* eliminate_dead_functions_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DC28FDD2550013FF99 /* eliminate_dead_functions_pass.h */; }; + A9EE0F4428FDD2570013FF99 /* eliminate_dead_functions_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DC28FDD2550013FF99 /* eliminate_dead_functions_pass.h */; }; + A9EE0F4528FDD2570013FF99 /* eliminate_dead_functions_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DD28FDD2550013FF99 /* eliminate_dead_functions_util.h */; }; + A9EE0F4628FDD2570013FF99 /* eliminate_dead_functions_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DD28FDD2550013FF99 /* eliminate_dead_functions_util.h */; }; + A9EE0F4728FDD2570013FF99 /* eliminate_dead_functions_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DD28FDD2550013FF99 /* eliminate_dead_functions_util.h */; }; + A9EE0F4828FDD2570013FF99 /* fold.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DE28FDD2550013FF99 /* fold.h */; }; + A9EE0F4928FDD2570013FF99 /* fold.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DE28FDD2550013FF99 /* fold.h */; }; + A9EE0F4A28FDD2570013FF99 /* fold.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DE28FDD2550013FF99 /* fold.h */; }; + A9EE0F4B28FDD2570013FF99 /* local_single_store_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09DF28FDD2550013FF99 /* local_single_store_elim_pass.cpp */; }; + A9EE0F4C28FDD2570013FF99 /* local_single_store_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09DF28FDD2550013FF99 /* local_single_store_elim_pass.cpp */; }; + A9EE0F4D28FDD2570013FF99 /* local_single_store_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09DF28FDD2550013FF99 /* local_single_store_elim_pass.cpp */; }; + A9EE0F4E28FDD2570013FF99 /* dead_branch_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E028FDD2550013FF99 /* dead_branch_elim_pass.h */; }; + A9EE0F4F28FDD2570013FF99 /* dead_branch_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E028FDD2550013FF99 /* dead_branch_elim_pass.h */; }; + A9EE0F5028FDD2570013FF99 /* dead_branch_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E028FDD2550013FF99 /* dead_branch_elim_pass.h */; }; + A9EE0F5128FDD2570013FF99 /* private_to_local_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E128FDD2550013FF99 /* private_to_local_pass.cpp */; }; + A9EE0F5228FDD2570013FF99 /* private_to_local_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E128FDD2550013FF99 /* private_to_local_pass.cpp */; }; + A9EE0F5328FDD2570013FF99 /* private_to_local_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E128FDD2550013FF99 /* private_to_local_pass.cpp */; }; + A9EE0F5428FDD2570013FF99 /* scalar_analysis_nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E228FDD2550013FF99 /* scalar_analysis_nodes.h */; }; + A9EE0F5528FDD2570013FF99 /* scalar_analysis_nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E228FDD2550013FF99 /* scalar_analysis_nodes.h */; }; + A9EE0F5628FDD2570013FF99 /* scalar_analysis_nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E228FDD2550013FF99 /* scalar_analysis_nodes.h */; }; + A9EE0F5728FDD2570013FF99 /* propagator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E328FDD2550013FF99 /* propagator.cpp */; }; + A9EE0F5828FDD2570013FF99 /* propagator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E328FDD2550013FF99 /* propagator.cpp */; }; + A9EE0F5928FDD2570013FF99 /* propagator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E328FDD2550013FF99 /* propagator.cpp */; }; + A9EE0F5A28FDD2570013FF99 /* fix_storage_class.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E428FDD2550013FF99 /* fix_storage_class.h */; }; + A9EE0F5B28FDD2570013FF99 /* fix_storage_class.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E428FDD2550013FF99 /* fix_storage_class.h */; }; + A9EE0F5C28FDD2570013FF99 /* fix_storage_class.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E428FDD2550013FF99 /* fix_storage_class.h */; }; + A9EE0F5D28FDD2570013FF99 /* loop_dependence_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E528FDD2550013FF99 /* loop_dependence_helpers.cpp */; }; + A9EE0F5E28FDD2570013FF99 /* loop_dependence_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E528FDD2550013FF99 /* loop_dependence_helpers.cpp */; }; + A9EE0F5F28FDD2570013FF99 /* loop_dependence_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E528FDD2550013FF99 /* loop_dependence_helpers.cpp */; }; + A9EE0F6028FDD2570013FF99 /* set_spec_constant_default_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E628FDD2550013FF99 /* set_spec_constant_default_value_pass.cpp */; }; + A9EE0F6128FDD2570013FF99 /* set_spec_constant_default_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E628FDD2550013FF99 /* set_spec_constant_default_value_pass.cpp */; }; + A9EE0F6228FDD2570013FF99 /* set_spec_constant_default_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E628FDD2550013FF99 /* set_spec_constant_default_value_pass.cpp */; }; + A9EE0F6328FDD2570013FF99 /* passes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E728FDD2550013FF99 /* passes.h */; }; + A9EE0F6428FDD2570013FF99 /* passes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E728FDD2550013FF99 /* passes.h */; }; + A9EE0F6528FDD2570013FF99 /* passes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E728FDD2550013FF99 /* passes.h */; }; + A9EE0F6628FDD2570013FF99 /* fold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E828FDD2550013FF99 /* fold.cpp */; }; + A9EE0F6728FDD2570013FF99 /* fold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E828FDD2550013FF99 /* fold.cpp */; }; + A9EE0F6828FDD2570013FF99 /* fold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E828FDD2550013FF99 /* fold.cpp */; }; + A9EE0F6928FDD2570013FF99 /* amd_ext_to_khr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E928FDD2550013FF99 /* amd_ext_to_khr.cpp */; }; + A9EE0F6A28FDD2570013FF99 /* amd_ext_to_khr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E928FDD2550013FF99 /* amd_ext_to_khr.cpp */; }; + A9EE0F6B28FDD2570013FF99 /* amd_ext_to_khr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E928FDD2550013FF99 /* amd_ext_to_khr.cpp */; }; + A9EE0F6C28FDD2570013FF99 /* scalar_replacement_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EA28FDD2550013FF99 /* scalar_replacement_pass.cpp */; }; + A9EE0F6D28FDD2570013FF99 /* scalar_replacement_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EA28FDD2550013FF99 /* scalar_replacement_pass.cpp */; }; + A9EE0F6E28FDD2570013FF99 /* scalar_replacement_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EA28FDD2550013FF99 /* scalar_replacement_pass.cpp */; }; + A9EE0F6F28FDD2570013FF99 /* simplification_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09EB28FDD2550013FF99 /* simplification_pass.h */; }; + A9EE0F7028FDD2570013FF99 /* simplification_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09EB28FDD2550013FF99 /* simplification_pass.h */; }; + A9EE0F7128FDD2570013FF99 /* simplification_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09EB28FDD2550013FF99 /* simplification_pass.h */; }; + A9EE0F7228FDD2570013FF99 /* interface_var_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EC28FDD2550013FF99 /* interface_var_sroa.cpp */; }; + A9EE0F7328FDD2570013FF99 /* interface_var_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EC28FDD2550013FF99 /* interface_var_sroa.cpp */; }; + A9EE0F7428FDD2570013FF99 /* interface_var_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EC28FDD2550013FF99 /* interface_var_sroa.cpp */; }; + A9EE0F7528FDD2570013FF99 /* remove_duplicates_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09ED28FDD2550013FF99 /* remove_duplicates_pass.h */; }; + A9EE0F7628FDD2570013FF99 /* remove_duplicates_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09ED28FDD2550013FF99 /* remove_duplicates_pass.h */; }; + A9EE0F7728FDD2570013FF99 /* remove_duplicates_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09ED28FDD2550013FF99 /* remove_duplicates_pass.h */; }; + A9EE0F7828FDD2570013FF99 /* desc_sroa_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09EE28FDD2550013FF99 /* desc_sroa_util.h */; }; + A9EE0F7928FDD2570013FF99 /* desc_sroa_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09EE28FDD2550013FF99 /* desc_sroa_util.h */; }; + A9EE0F7A28FDD2570013FF99 /* desc_sroa_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09EE28FDD2550013FF99 /* desc_sroa_util.h */; }; + A9EE0F7B28FDD2570013FF99 /* redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EF28FDD2550013FF99 /* redundancy_elimination.cpp */; }; + A9EE0F7C28FDD2570013FF99 /* redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EF28FDD2550013FF99 /* redundancy_elimination.cpp */; }; + A9EE0F7D28FDD2570013FF99 /* redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EF28FDD2550013FF99 /* redundancy_elimination.cpp */; }; + A9EE0F7E28FDD2570013FF99 /* reflect.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F028FDD2550013FF99 /* reflect.h */; }; + A9EE0F7F28FDD2570013FF99 /* reflect.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F028FDD2550013FF99 /* reflect.h */; }; + A9EE0F8028FDD2570013FF99 /* reflect.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F028FDD2550013FF99 /* reflect.h */; }; + A9EE0F8128FDD2570013FF99 /* workaround1209.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F128FDD2550013FF99 /* workaround1209.cpp */; }; + A9EE0F8228FDD2570013FF99 /* workaround1209.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F128FDD2550013FF99 /* workaround1209.cpp */; }; + A9EE0F8328FDD2570013FF99 /* workaround1209.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F128FDD2550013FF99 /* workaround1209.cpp */; }; + A9EE0F8428FDD2570013FF99 /* null_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F228FDD2550013FF99 /* null_pass.h */; }; + A9EE0F8528FDD2570013FF99 /* null_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F228FDD2550013FF99 /* null_pass.h */; }; + A9EE0F8628FDD2570013FF99 /* null_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F228FDD2550013FF99 /* null_pass.h */; }; + A9EE0F8728FDD2570013FF99 /* relax_float_ops_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F328FDD2550013FF99 /* relax_float_ops_pass.cpp */; }; + A9EE0F8828FDD2570013FF99 /* relax_float_ops_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F328FDD2550013FF99 /* relax_float_ops_pass.cpp */; }; + A9EE0F8928FDD2570013FF99 /* relax_float_ops_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F328FDD2550013FF99 /* relax_float_ops_pass.cpp */; }; + A9EE0F8A28FDD2570013FF99 /* const_folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F428FDD2550013FF99 /* const_folding_rules.h */; }; + A9EE0F8B28FDD2570013FF99 /* const_folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F428FDD2550013FF99 /* const_folding_rules.h */; }; + A9EE0F8C28FDD2570013FF99 /* const_folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F428FDD2550013FF99 /* const_folding_rules.h */; }; + A9EE0F8D28FDD2570013FF99 /* scalar_replacement_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F528FDD2550013FF99 /* scalar_replacement_pass.h */; }; + A9EE0F8E28FDD2570013FF99 /* scalar_replacement_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F528FDD2550013FF99 /* scalar_replacement_pass.h */; }; + A9EE0F8F28FDD2570013FF99 /* scalar_replacement_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F528FDD2550013FF99 /* scalar_replacement_pass.h */; }; + A9EE0F9028FDD2570013FF99 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F628FDD2550013FF99 /* instruction.cpp */; }; + A9EE0F9128FDD2570013FF99 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F628FDD2550013FF99 /* instruction.cpp */; }; + A9EE0F9228FDD2570013FF99 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F628FDD2550013FF99 /* instruction.cpp */; }; + A9EE0F9328FDD2570013FF99 /* pch_source_opt.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F728FDD2550013FF99 /* pch_source_opt.h */; }; + A9EE0F9428FDD2570013FF99 /* pch_source_opt.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F728FDD2550013FF99 /* pch_source_opt.h */; }; + A9EE0F9528FDD2570013FF99 /* pch_source_opt.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F728FDD2550013FF99 /* pch_source_opt.h */; }; + A9EE0F9628FDD2570013FF99 /* reduce_load_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F828FDD2550013FF99 /* reduce_load_size.cpp */; }; + A9EE0F9728FDD2570013FF99 /* reduce_load_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F828FDD2550013FF99 /* reduce_load_size.cpp */; }; + A9EE0F9828FDD2570013FF99 /* reduce_load_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F828FDD2550013FF99 /* reduce_load_size.cpp */; }; + A9EE0F9928FDD2570013FF99 /* redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F928FDD2550013FF99 /* redundancy_elimination.h */; }; + A9EE0F9A28FDD2570013FF99 /* redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F928FDD2550013FF99 /* redundancy_elimination.h */; }; + A9EE0F9B28FDD2570013FF99 /* redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F928FDD2550013FF99 /* redundancy_elimination.h */; }; + A9EE0F9C28FDD2570013FF99 /* fix_storage_class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FA28FDD2550013FF99 /* fix_storage_class.cpp */; }; + A9EE0F9D28FDD2570013FF99 /* fix_storage_class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FA28FDD2550013FF99 /* fix_storage_class.cpp */; }; + A9EE0F9E28FDD2570013FF99 /* fix_storage_class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FA28FDD2550013FF99 /* fix_storage_class.cpp */; }; + A9EE0F9F28FDD2570013FF99 /* value_number_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FB28FDD2550013FF99 /* value_number_table.cpp */; }; + A9EE0FA028FDD2570013FF99 /* value_number_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FB28FDD2550013FF99 /* value_number_table.cpp */; }; + A9EE0FA128FDD2570013FF99 /* value_number_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FB28FDD2550013FF99 /* value_number_table.cpp */; }; + A9EE0FA228FDD2570013FF99 /* remove_unused_interface_variables_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FC28FDD2550013FF99 /* remove_unused_interface_variables_pass.cpp */; }; + A9EE0FA328FDD2570013FF99 /* remove_unused_interface_variables_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FC28FDD2550013FF99 /* remove_unused_interface_variables_pass.cpp */; }; + A9EE0FA428FDD2570013FF99 /* remove_unused_interface_variables_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FC28FDD2550013FF99 /* remove_unused_interface_variables_pass.cpp */; }; + A9EE0FA528FDD2570013FF99 /* inline_opaque_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FD28FDD2550013FF99 /* inline_opaque_pass.cpp */; }; + A9EE0FA628FDD2570013FF99 /* inline_opaque_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FD28FDD2550013FF99 /* inline_opaque_pass.cpp */; }; + A9EE0FA728FDD2570013FF99 /* inline_opaque_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FD28FDD2550013FF99 /* inline_opaque_pass.cpp */; }; + A9EE0FA828FDD2570013FF99 /* replace_invalid_opc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FE28FDD2550013FF99 /* replace_invalid_opc.cpp */; }; + A9EE0FA928FDD2570013FF99 /* replace_invalid_opc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FE28FDD2550013FF99 /* replace_invalid_opc.cpp */; }; + A9EE0FAA28FDD2570013FF99 /* replace_invalid_opc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FE28FDD2550013FF99 /* replace_invalid_opc.cpp */; }; + A9EE0FAB28FDD2570013FF99 /* loop_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09FF28FDD2550013FF99 /* loop_utils.h */; }; + A9EE0FAC28FDD2570013FF99 /* loop_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09FF28FDD2550013FF99 /* loop_utils.h */; }; + A9EE0FAD28FDD2570013FF99 /* loop_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09FF28FDD2550013FF99 /* loop_utils.h */; }; + A9EE0FAE28FDD2570013FF99 /* module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0028FDD2550013FF99 /* module.h */; }; + A9EE0FAF28FDD2570013FF99 /* module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0028FDD2550013FF99 /* module.h */; }; + A9EE0FB028FDD2570013FF99 /* module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0028FDD2550013FF99 /* module.h */; }; + A9EE0FB128FDD2570013FF99 /* dominator_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0128FDD2550013FF99 /* dominator_analysis.cpp */; }; + A9EE0FB228FDD2570013FF99 /* dominator_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0128FDD2550013FF99 /* dominator_analysis.cpp */; }; + A9EE0FB328FDD2570013FF99 /* dominator_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0128FDD2550013FF99 /* dominator_analysis.cpp */; }; + A9EE0FB428FDD2570013FF99 /* ir_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0228FDD2550013FF99 /* ir_builder.h */; }; + A9EE0FB528FDD2570013FF99 /* ir_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0228FDD2550013FF99 /* ir_builder.h */; }; + A9EE0FB628FDD2570013FF99 /* ir_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0228FDD2550013FF99 /* ir_builder.h */; }; + A9EE0FB728FDD2570013FF99 /* replace_desc_array_access_using_var_index.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0328FDD2550013FF99 /* replace_desc_array_access_using_var_index.cpp */; }; + A9EE0FB828FDD2570013FF99 /* replace_desc_array_access_using_var_index.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0328FDD2550013FF99 /* replace_desc_array_access_using_var_index.cpp */; }; + A9EE0FB928FDD2570013FF99 /* replace_desc_array_access_using_var_index.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0328FDD2550013FF99 /* replace_desc_array_access_using_var_index.cpp */; }; + A9EE0FBA28FDD2570013FF99 /* loop_unswitch_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0428FDD2550013FF99 /* loop_unswitch_pass.h */; }; + A9EE0FBB28FDD2570013FF99 /* loop_unswitch_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0428FDD2550013FF99 /* loop_unswitch_pass.h */; }; + A9EE0FBC28FDD2570013FF99 /* loop_unswitch_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0428FDD2550013FF99 /* loop_unswitch_pass.h */; }; + A9EE0FBD28FDD2570013FF99 /* cfg.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0528FDD2550013FF99 /* cfg.h */; }; + A9EE0FBE28FDD2570013FF99 /* cfg.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0528FDD2550013FF99 /* cfg.h */; }; + A9EE0FBF28FDD2570013FF99 /* cfg.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0528FDD2550013FF99 /* cfg.h */; }; + A9EE0FC028FDD2570013FF99 /* code_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0628FDD2550013FF99 /* code_sink.h */; }; + A9EE0FC128FDD2570013FF99 /* code_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0628FDD2550013FF99 /* code_sink.h */; }; + A9EE0FC228FDD2570013FF99 /* code_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0628FDD2550013FF99 /* code_sink.h */; }; + A9EE0FC328FDD2570013FF99 /* dataflow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0728FDD2550013FF99 /* dataflow.cpp */; }; + A9EE0FC428FDD2570013FF99 /* dataflow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0728FDD2550013FF99 /* dataflow.cpp */; }; + A9EE0FC528FDD2570013FF99 /* dataflow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0728FDD2550013FF99 /* dataflow.cpp */; }; + A9EE0FC628FDD2570013FF99 /* loop_descriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0828FDD2550013FF99 /* loop_descriptor.h */; }; + A9EE0FC728FDD2570013FF99 /* loop_descriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0828FDD2550013FF99 /* loop_descriptor.h */; }; + A9EE0FC828FDD2570013FF99 /* loop_descriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0828FDD2550013FF99 /* loop_descriptor.h */; }; + A9EE0FC928FDD2570013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0928FDD2550013FF99 /* instruction.h */; }; + A9EE0FCA28FDD2570013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0928FDD2550013FF99 /* instruction.h */; }; + A9EE0FCB28FDD2570013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0928FDD2550013FF99 /* instruction.h */; }; + A9EE0FCC28FDD2570013FF99 /* aggressive_dead_code_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0A28FDD2550013FF99 /* aggressive_dead_code_elim_pass.h */; }; + A9EE0FCD28FDD2570013FF99 /* aggressive_dead_code_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0A28FDD2550013FF99 /* aggressive_dead_code_elim_pass.h */; }; + A9EE0FCE28FDD2570013FF99 /* aggressive_dead_code_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0A28FDD2550013FF99 /* aggressive_dead_code_elim_pass.h */; }; + A9EE0FCF28FDD2570013FF99 /* struct_cfg_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0B28FDD2550013FF99 /* struct_cfg_analysis.cpp */; }; + A9EE0FD028FDD2570013FF99 /* struct_cfg_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0B28FDD2550013FF99 /* struct_cfg_analysis.cpp */; }; + A9EE0FD128FDD2570013FF99 /* struct_cfg_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0B28FDD2550013FF99 /* struct_cfg_analysis.cpp */; }; + A9EE0FD228FDD2570013FF99 /* remove_dontinline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0C28FDD2550013FF99 /* remove_dontinline_pass.cpp */; }; + A9EE0FD328FDD2570013FF99 /* remove_dontinline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0C28FDD2550013FF99 /* remove_dontinline_pass.cpp */; }; + A9EE0FD428FDD2570013FF99 /* remove_dontinline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0C28FDD2550013FF99 /* remove_dontinline_pass.cpp */; }; + A9EE0FD528FDD2570013FF99 /* vector_dce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0D28FDD2550013FF99 /* vector_dce.h */; }; + A9EE0FD628FDD2570013FF99 /* vector_dce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0D28FDD2550013FF99 /* vector_dce.h */; }; + A9EE0FD728FDD2570013FF99 /* vector_dce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0D28FDD2550013FF99 /* vector_dce.h */; }; + A9EE0FD828FDD2570013FF99 /* combine_access_chains.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0E28FDD2550013FF99 /* combine_access_chains.h */; }; + A9EE0FD928FDD2570013FF99 /* combine_access_chains.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0E28FDD2550013FF99 /* combine_access_chains.h */; }; + A9EE0FDA28FDD2570013FF99 /* combine_access_chains.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0E28FDD2550013FF99 /* combine_access_chains.h */; }; + A9EE0FDB28FDD2570013FF99 /* pass_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0F28FDD2550013FF99 /* pass_manager.h */; }; + A9EE0FDC28FDD2570013FF99 /* pass_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0F28FDD2550013FF99 /* pass_manager.h */; }; + A9EE0FDD28FDD2570013FF99 /* pass_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0F28FDD2550013FF99 /* pass_manager.h */; }; + A9EE0FDE28FDD2570013FF99 /* spread_volatile_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1028FDD2550013FF99 /* spread_volatile_semantics.h */; }; + A9EE0FDF28FDD2570013FF99 /* spread_volatile_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1028FDD2550013FF99 /* spread_volatile_semantics.h */; }; + A9EE0FE028FDD2570013FF99 /* spread_volatile_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1028FDD2550013FF99 /* spread_volatile_semantics.h */; }; + A9EE0FE128FDD2570013FF99 /* local_access_chain_convert_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1128FDD2550013FF99 /* local_access_chain_convert_pass.cpp */; }; + A9EE0FE228FDD2570013FF99 /* local_access_chain_convert_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1128FDD2550013FF99 /* local_access_chain_convert_pass.cpp */; }; + A9EE0FE328FDD2570013FF99 /* local_access_chain_convert_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1128FDD2550013FF99 /* local_access_chain_convert_pass.cpp */; }; + A9EE0FE428FDD2570013FF99 /* interp_fixup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1228FDD2550013FF99 /* interp_fixup_pass.cpp */; }; + A9EE0FE528FDD2570013FF99 /* interp_fixup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1228FDD2550013FF99 /* interp_fixup_pass.cpp */; }; + A9EE0FE628FDD2570013FF99 /* interp_fixup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1228FDD2550013FF99 /* interp_fixup_pass.cpp */; }; + A9EE0FE728FDD2570013FF99 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1328FDD2550013FF99 /* basic_block.cpp */; }; + A9EE0FE828FDD2570013FF99 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1328FDD2550013FF99 /* basic_block.cpp */; }; + A9EE0FE928FDD2570013FF99 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1328FDD2550013FF99 /* basic_block.cpp */; }; + A9EE0FEA28FDD2570013FF99 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1428FDD2550013FF99 /* iterator.h */; }; + A9EE0FEB28FDD2570013FF99 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1428FDD2550013FF99 /* iterator.h */; }; + A9EE0FEC28FDD2570013FF99 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1428FDD2550013FF99 /* iterator.h */; }; + A9EE0FED28FDD2570013FF99 /* licm_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1528FDD2550013FF99 /* licm_pass.h */; }; + A9EE0FEE28FDD2570013FF99 /* licm_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1528FDD2550013FF99 /* licm_pass.h */; }; + A9EE0FEF28FDD2570013FF99 /* licm_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1528FDD2550013FF99 /* licm_pass.h */; }; + A9EE0FF028FDD2570013FF99 /* build_module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1628FDD2550013FF99 /* build_module.h */; }; + A9EE0FF128FDD2570013FF99 /* build_module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1628FDD2550013FF99 /* build_module.h */; }; + A9EE0FF228FDD2570013FF99 /* build_module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1628FDD2550013FF99 /* build_module.h */; }; + A9EE0FF328FDD2570013FF99 /* ccp_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1728FDD2550013FF99 /* ccp_pass.h */; }; + A9EE0FF428FDD2570013FF99 /* ccp_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1728FDD2550013FF99 /* ccp_pass.h */; }; + A9EE0FF528FDD2570013FF99 /* ccp_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1728FDD2550013FF99 /* ccp_pass.h */; }; + A9EE0FF628FDD2570013FF99 /* graphics_robust_access_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1828FDD2550013FF99 /* graphics_robust_access_pass.cpp */; }; + A9EE0FF728FDD2570013FF99 /* graphics_robust_access_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1828FDD2550013FF99 /* graphics_robust_access_pass.cpp */; }; + A9EE0FF828FDD2570013FF99 /* graphics_robust_access_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1828FDD2550013FF99 /* graphics_robust_access_pass.cpp */; }; + A9EE0FF928FDD2570013FF99 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1928FDD2550013FF99 /* function.h */; }; + A9EE0FFA28FDD2570013FF99 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1928FDD2550013FF99 /* function.h */; }; + A9EE0FFB28FDD2570013FF99 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1928FDD2550013FF99 /* function.h */; }; + A9EE0FFC28FDD2570013FF99 /* fix_func_call_arguments.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1A28FDD2550013FF99 /* fix_func_call_arguments.h */; }; + A9EE0FFD28FDD2570013FF99 /* fix_func_call_arguments.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1A28FDD2550013FF99 /* fix_func_call_arguments.h */; }; + A9EE0FFE28FDD2570013FF99 /* fix_func_call_arguments.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1A28FDD2550013FF99 /* fix_func_call_arguments.h */; }; + A9EE0FFF28FDD2570013FF99 /* loop_fusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1B28FDD2550013FF99 /* loop_fusion.cpp */; }; + A9EE100028FDD2570013FF99 /* loop_fusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1B28FDD2550013FF99 /* loop_fusion.cpp */; }; + A9EE100128FDD2570013FF99 /* loop_fusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1B28FDD2550013FF99 /* loop_fusion.cpp */; }; + A9EE100228FDD2570013FF99 /* eliminate_dead_input_components_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1C28FDD2550013FF99 /* eliminate_dead_input_components_pass.cpp */; }; + A9EE100328FDD2570013FF99 /* eliminate_dead_input_components_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1C28FDD2550013FF99 /* eliminate_dead_input_components_pass.cpp */; }; + A9EE100428FDD2570013FF99 /* eliminate_dead_input_components_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1C28FDD2550013FF99 /* eliminate_dead_input_components_pass.cpp */; }; + A9EE100528FDD2570013FF99 /* upgrade_memory_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1D28FDD2550013FF99 /* upgrade_memory_model.cpp */; }; + A9EE100628FDD2570013FF99 /* upgrade_memory_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1D28FDD2550013FF99 /* upgrade_memory_model.cpp */; }; + A9EE100728FDD2570013FF99 /* upgrade_memory_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1D28FDD2550013FF99 /* upgrade_memory_model.cpp */; }; + A9EE100828FDD2570013FF99 /* feature_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1E28FDD2550013FF99 /* feature_manager.h */; }; + A9EE100928FDD2570013FF99 /* feature_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1E28FDD2550013FF99 /* feature_manager.h */; }; + A9EE100A28FDD2570013FF99 /* feature_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1E28FDD2550013FF99 /* feature_manager.h */; }; + A9EE100B28FDD2570013FF99 /* dataflow.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1F28FDD2550013FF99 /* dataflow.h */; }; + A9EE100C28FDD2570013FF99 /* dataflow.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1F28FDD2550013FF99 /* dataflow.h */; }; + A9EE100D28FDD2570013FF99 /* dataflow.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1F28FDD2550013FF99 /* dataflow.h */; }; + A9EE100E28FDD2570013FF99 /* inst_bindless_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2028FDD2550013FF99 /* inst_bindless_check_pass.h */; }; + A9EE100F28FDD2570013FF99 /* inst_bindless_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2028FDD2550013FF99 /* inst_bindless_check_pass.h */; }; + A9EE101028FDD2570013FF99 /* inst_bindless_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2028FDD2550013FF99 /* inst_bindless_check_pass.h */; }; + A9EE101128FDD2570013FF99 /* scalar_analysis_simplification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2128FDD2550013FF99 /* scalar_analysis_simplification.cpp */; }; + A9EE101228FDD2570013FF99 /* scalar_analysis_simplification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2128FDD2550013FF99 /* scalar_analysis_simplification.cpp */; }; + A9EE101328FDD2570013FF99 /* scalar_analysis_simplification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2128FDD2550013FF99 /* scalar_analysis_simplification.cpp */; }; + A9EE101428FDD2570013FF99 /* set_spec_constant_default_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2228FDD2550013FF99 /* set_spec_constant_default_value_pass.h */; }; + A9EE101528FDD2570013FF99 /* set_spec_constant_default_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2228FDD2550013FF99 /* set_spec_constant_default_value_pass.h */; }; + A9EE101628FDD2570013FF99 /* set_spec_constant_default_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2228FDD2550013FF99 /* set_spec_constant_default_value_pass.h */; }; + A9EE101728FDD2570013FF99 /* dominator_tree.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2328FDD2550013FF99 /* dominator_tree.h */; }; + A9EE101828FDD2570013FF99 /* dominator_tree.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2328FDD2550013FF99 /* dominator_tree.h */; }; + A9EE101928FDD2570013FF99 /* dominator_tree.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2328FDD2550013FF99 /* dominator_tree.h */; }; + A9EE101A28FDD2570013FF99 /* remove_unused_interface_variables_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2428FDD2550013FF99 /* remove_unused_interface_variables_pass.h */; }; + A9EE101B28FDD2570013FF99 /* remove_unused_interface_variables_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2428FDD2550013FF99 /* remove_unused_interface_variables_pass.h */; }; + A9EE101C28FDD2570013FF99 /* remove_unused_interface_variables_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2428FDD2550013FF99 /* remove_unused_interface_variables_pass.h */; }; + A9EE101D28FDD2570013FF99 /* type_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2528FDD2550013FF99 /* type_manager.h */; }; + A9EE101E28FDD2570013FF99 /* type_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2528FDD2550013FF99 /* type_manager.h */; }; + A9EE101F28FDD2570013FF99 /* type_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2528FDD2550013FF99 /* type_manager.h */; }; + A9EE102028FDD2570013FF99 /* compact_ids_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2628FDD2550013FF99 /* compact_ids_pass.cpp */; }; + A9EE102128FDD2570013FF99 /* compact_ids_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2628FDD2550013FF99 /* compact_ids_pass.cpp */; }; + A9EE102228FDD2570013FF99 /* compact_ids_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2628FDD2550013FF99 /* compact_ids_pass.cpp */; }; + A9EE102328FDD2570013FF99 /* loop_peeling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2728FDD2550013FF99 /* loop_peeling.cpp */; }; + A9EE102428FDD2570013FF99 /* loop_peeling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2728FDD2550013FF99 /* loop_peeling.cpp */; }; + A9EE102528FDD2570013FF99 /* loop_peeling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2728FDD2550013FF99 /* loop_peeling.cpp */; }; + A9EE102628FDD2570013FF99 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2828FDD2550013FF99 /* table.h */; }; + A9EE102728FDD2570013FF99 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2828FDD2550013FF99 /* table.h */; }; + A9EE102828FDD2570013FF99 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2828FDD2550013FF99 /* table.h */; }; + A9EE14BE28FDD2590013FF99 /* ext_inst.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB528FDD2560013FF99 /* ext_inst.h */; }; + A9EE14BF28FDD2590013FF99 /* ext_inst.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB528FDD2560013FF99 /* ext_inst.h */; }; + A9EE14C028FDD2590013FF99 /* ext_inst.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB528FDD2560013FF99 /* ext_inst.h */; }; + A9EE14C128FDD2590013FF99 /* diagnostic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BB628FDD2560013FF99 /* diagnostic.cpp */; }; + A9EE14C228FDD2590013FF99 /* diagnostic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BB628FDD2560013FF99 /* diagnostic.cpp */; }; + A9EE14C328FDD2590013FF99 /* diagnostic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BB628FDD2560013FF99 /* diagnostic.cpp */; }; + A9EE14C428FDD2590013FF99 /* latest_version_spirv_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB728FDD2560013FF99 /* latest_version_spirv_header.h */; }; + A9EE14C528FDD2590013FF99 /* latest_version_spirv_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB728FDD2560013FF99 /* latest_version_spirv_header.h */; }; + A9EE14C628FDD2590013FF99 /* latest_version_spirv_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB728FDD2560013FF99 /* latest_version_spirv_header.h */; }; + A9EE14C728FDD2590013FF99 /* libspirv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BB828FDD2560013FF99 /* libspirv.cpp */; }; + A9EE14C828FDD2590013FF99 /* libspirv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BB828FDD2560013FF99 /* libspirv.cpp */; }; + A9EE14C928FDD2590013FF99 /* libspirv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BB828FDD2560013FF99 /* libspirv.cpp */; }; + A9EE14CA28FDD2590013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB928FDD2560013FF99 /* instruction.h */; }; + A9EE14CB28FDD2590013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB928FDD2560013FF99 /* instruction.h */; }; + A9EE14CC28FDD2590013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB928FDD2560013FF99 /* instruction.h */; }; + A9EE14CD28FDD2590013FF99 /* spirv_optimizer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBA28FDD2560013FF99 /* spirv_optimizer_options.h */; }; + A9EE14CE28FDD2590013FF99 /* spirv_optimizer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBA28FDD2560013FF99 /* spirv_optimizer_options.h */; }; + A9EE14CF28FDD2590013FF99 /* spirv_optimizer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBA28FDD2560013FF99 /* spirv_optimizer_options.h */; }; + A9EE14D028FDD2590013FF99 /* opcode.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBB28FDD2560013FF99 /* opcode.h */; }; + A9EE14D128FDD2590013FF99 /* opcode.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBB28FDD2560013FF99 /* opcode.h */; }; + A9EE14D228FDD2590013FF99 /* opcode.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBB28FDD2560013FF99 /* opcode.h */; }; + A9EE14D328FDD2590013FF99 /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BBC28FDD2560013FF99 /* operand.cpp */; }; + A9EE14D428FDD2590013FF99 /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BBC28FDD2560013FF99 /* operand.cpp */; }; + A9EE14D528FDD2590013FF99 /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BBC28FDD2560013FF99 /* operand.cpp */; }; + A9EE14D628FDD2590013FF99 /* latest_version_glsl_std_450_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBD28FDD2560013FF99 /* latest_version_glsl_std_450_header.h */; }; + A9EE14D728FDD2590013FF99 /* latest_version_glsl_std_450_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBD28FDD2560013FF99 /* latest_version_glsl_std_450_header.h */; }; + A9EE14D828FDD2590013FF99 /* latest_version_glsl_std_450_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBD28FDD2560013FF99 /* latest_version_glsl_std_450_header.h */; }; + A9EE14D928FDD2590013FF99 /* extensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBE28FDD2560013FF99 /* extensions.h */; }; + A9EE14DA28FDD2590013FF99 /* extensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBE28FDD2560013FF99 /* extensions.h */; }; + A9EE14DB28FDD2590013FF99 /* extensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBE28FDD2560013FF99 /* extensions.h */; }; + A9EE14DC28FDD2590013FF99 /* disassemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BBF28FDD2560013FF99 /* disassemble.cpp */; }; + A9EE14DD28FDD2590013FF99 /* disassemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BBF28FDD2560013FF99 /* disassemble.cpp */; }; + A9EE14DE28FDD2590013FF99 /* disassemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BBF28FDD2560013FF99 /* disassemble.cpp */; }; + A9EE14DF28FDD2590013FF99 /* binary.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BC028FDD2560013FF99 /* binary.h */; }; + A9EE14E028FDD2590013FF99 /* binary.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BC028FDD2560013FF99 /* binary.h */; }; + A9EE14E128FDD2590013FF99 /* binary.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BC028FDD2560013FF99 /* binary.h */; }; + A9EE14E228FDD2590013FF99 /* text_handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC128FDD2560013FF99 /* text_handler.cpp */; }; + A9EE14E328FDD2590013FF99 /* text_handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC128FDD2560013FF99 /* text_handler.cpp */; }; + A9EE14E428FDD2590013FF99 /* text_handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC128FDD2560013FF99 /* text_handler.cpp */; }; + A9EE14E528FDD2590013FF99 /* validate_annotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC328FDD2560013FF99 /* validate_annotation.cpp */; }; + A9EE14E628FDD2590013FF99 /* validate_annotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC328FDD2560013FF99 /* validate_annotation.cpp */; }; + A9EE14E728FDD2590013FF99 /* validate_annotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC328FDD2560013FF99 /* validate_annotation.cpp */; }; + A9EE14E828FDD2590013FF99 /* validate_misc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC428FDD2560013FF99 /* validate_misc.cpp */; }; + A9EE14E928FDD2590013FF99 /* validate_misc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC428FDD2560013FF99 /* validate_misc.cpp */; }; + A9EE14EA28FDD2590013FF99 /* validate_misc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC428FDD2560013FF99 /* validate_misc.cpp */; }; + A9EE14EB28FDD2590013FF99 /* validate_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC528FDD2560013FF99 /* validate_cfg.cpp */; }; + A9EE14EC28FDD2590013FF99 /* validate_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC528FDD2560013FF99 /* validate_cfg.cpp */; }; + A9EE14ED28FDD2590013FF99 /* validate_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC528FDD2560013FF99 /* validate_cfg.cpp */; }; + A9EE14EE28FDD2590013FF99 /* validate_capability.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC628FDD2560013FF99 /* validate_capability.cpp */; }; + A9EE14EF28FDD2590013FF99 /* validate_capability.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC628FDD2560013FF99 /* validate_capability.cpp */; }; + A9EE14F028FDD2590013FF99 /* validate_capability.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC628FDD2560013FF99 /* validate_capability.cpp */; }; + A9EE14F128FDD2590013FF99 /* construct.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BC728FDD2560013FF99 /* construct.h */; }; + A9EE14F228FDD2590013FF99 /* construct.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BC728FDD2560013FF99 /* construct.h */; }; + A9EE14F328FDD2590013FF99 /* construct.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BC728FDD2560013FF99 /* construct.h */; }; + A9EE14F428FDD2590013FF99 /* validate_barriers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC828FDD2560013FF99 /* validate_barriers.cpp */; }; + A9EE14F528FDD2590013FF99 /* validate_barriers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC828FDD2560013FF99 /* validate_barriers.cpp */; }; + A9EE14F628FDD2590013FF99 /* validate_barriers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC828FDD2560013FF99 /* validate_barriers.cpp */; }; + A9EE14F728FDD2590013FF99 /* validate_non_uniform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC928FDD2560013FF99 /* validate_non_uniform.cpp */; }; + A9EE14F828FDD2590013FF99 /* validate_non_uniform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC928FDD2560013FF99 /* validate_non_uniform.cpp */; }; + A9EE14F928FDD2590013FF99 /* validate_non_uniform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC928FDD2560013FF99 /* validate_non_uniform.cpp */; }; + A9EE14FA28FDD2590013FF99 /* validate_ray_query.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCA28FDD2560013FF99 /* validate_ray_query.cpp */; }; + A9EE14FB28FDD2590013FF99 /* validate_ray_query.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCA28FDD2560013FF99 /* validate_ray_query.cpp */; }; + A9EE14FC28FDD2590013FF99 /* validate_ray_query.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCA28FDD2560013FF99 /* validate_ray_query.cpp */; }; + A9EE14FD28FDD2590013FF99 /* validate_ray_tracing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCB28FDD2560013FF99 /* validate_ray_tracing.cpp */; }; + A9EE14FE28FDD2590013FF99 /* validate_ray_tracing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCB28FDD2560013FF99 /* validate_ray_tracing.cpp */; }; + A9EE14FF28FDD2590013FF99 /* validate_ray_tracing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCB28FDD2560013FF99 /* validate_ray_tracing.cpp */; }; + A9EE150028FDD2590013FF99 /* validate_scopes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCC28FDD2560013FF99 /* validate_scopes.cpp */; }; + A9EE150128FDD2590013FF99 /* validate_scopes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCC28FDD2560013FF99 /* validate_scopes.cpp */; }; + A9EE150228FDD2590013FF99 /* validate_scopes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCC28FDD2560013FF99 /* validate_scopes.cpp */; }; + A9EE150328FDD2590013FF99 /* validate_atomics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCD28FDD2560013FF99 /* validate_atomics.cpp */; }; + A9EE150428FDD2590013FF99 /* validate_atomics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCD28FDD2560013FF99 /* validate_atomics.cpp */; }; + A9EE150528FDD2590013FF99 /* validate_atomics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCD28FDD2560013FF99 /* validate_atomics.cpp */; }; + A9EE150628FDD2590013FF99 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BCE28FDD2560013FF99 /* basic_block.h */; }; + A9EE150728FDD2590013FF99 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BCE28FDD2560013FF99 /* basic_block.h */; }; + A9EE150828FDD2590013FF99 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BCE28FDD2560013FF99 /* basic_block.h */; }; + A9EE150928FDD2590013FF99 /* validate_instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCF28FDD2560013FF99 /* validate_instruction.cpp */; }; + A9EE150A28FDD2590013FF99 /* validate_instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCF28FDD2560013FF99 /* validate_instruction.cpp */; }; + A9EE150B28FDD2590013FF99 /* validate_instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCF28FDD2560013FF99 /* validate_instruction.cpp */; }; + A9EE150C28FDD2590013FF99 /* validate_decorations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD028FDD2560013FF99 /* validate_decorations.cpp */; }; + A9EE150D28FDD2590013FF99 /* validate_decorations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD028FDD2560013FF99 /* validate_decorations.cpp */; }; + A9EE150E28FDD2590013FF99 /* validate_decorations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD028FDD2560013FF99 /* validate_decorations.cpp */; }; + A9EE150F28FDD2590013FF99 /* validate_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD128FDD2560013FF99 /* validate_debug.cpp */; }; + A9EE151028FDD2590013FF99 /* validate_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD128FDD2560013FF99 /* validate_debug.cpp */; }; + A9EE151128FDD2590013FF99 /* validate_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD128FDD2560013FF99 /* validate_debug.cpp */; }; + A9EE151228FDD2590013FF99 /* validate_builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD228FDD2560013FF99 /* validate_builtins.cpp */; }; + A9EE151328FDD2590013FF99 /* validate_builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD228FDD2560013FF99 /* validate_builtins.cpp */; }; + A9EE151428FDD2590013FF99 /* validate_builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD228FDD2560013FF99 /* validate_builtins.cpp */; }; + A9EE151528FDD2590013FF99 /* validate_interfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD328FDD2560013FF99 /* validate_interfaces.cpp */; }; + A9EE151628FDD2590013FF99 /* validate_interfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD328FDD2560013FF99 /* validate_interfaces.cpp */; }; + A9EE151728FDD2590013FF99 /* validate_interfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD328FDD2560013FF99 /* validate_interfaces.cpp */; }; + A9EE151828FDD2590013FF99 /* validate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD428FDD2560013FF99 /* validate.cpp */; }; + A9EE151928FDD2590013FF99 /* validate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD428FDD2560013FF99 /* validate.cpp */; }; + A9EE151A28FDD2590013FF99 /* validate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD428FDD2560013FF99 /* validate.cpp */; }; + A9EE151B28FDD2590013FF99 /* validation_state.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BD528FDD2560013FF99 /* validation_state.h */; }; + A9EE151C28FDD2590013FF99 /* validation_state.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BD528FDD2560013FF99 /* validation_state.h */; }; + A9EE151D28FDD2590013FF99 /* validation_state.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BD528FDD2560013FF99 /* validation_state.h */; }; + A9EE151E28FDD2590013FF99 /* validate_constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD628FDD2560013FF99 /* validate_constants.cpp */; }; + A9EE151F28FDD2590013FF99 /* validate_constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD628FDD2560013FF99 /* validate_constants.cpp */; }; + A9EE152028FDD2590013FF99 /* validate_constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD628FDD2560013FF99 /* validate_constants.cpp */; }; + A9EE152128FDD2590013FF99 /* validate_bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD728FDD2560013FF99 /* validate_bitwise.cpp */; }; + A9EE152228FDD2590013FF99 /* validate_bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD728FDD2560013FF99 /* validate_bitwise.cpp */; }; + A9EE152328FDD2590013FF99 /* validate_bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD728FDD2560013FF99 /* validate_bitwise.cpp */; }; + A9EE152428FDD2590013FF99 /* validate_extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD828FDD2560013FF99 /* validate_extensions.cpp */; }; + A9EE152528FDD2590013FF99 /* validate_extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD828FDD2560013FF99 /* validate_extensions.cpp */; }; + A9EE152628FDD2590013FF99 /* validate_extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD828FDD2560013FF99 /* validate_extensions.cpp */; }; + A9EE152728FDD2590013FF99 /* construct.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD928FDD2560013FF99 /* construct.cpp */; }; + A9EE152828FDD2590013FF99 /* construct.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD928FDD2560013FF99 /* construct.cpp */; }; + A9EE152928FDD2590013FF99 /* construct.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD928FDD2560013FF99 /* construct.cpp */; }; + A9EE152A28FDD2590013FF99 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDA28FDD2560013FF99 /* function.cpp */; }; + A9EE152B28FDD2590013FF99 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDA28FDD2560013FF99 /* function.cpp */; }; + A9EE152C28FDD2590013FF99 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDA28FDD2560013FF99 /* function.cpp */; }; + A9EE152D28FDD2590013FF99 /* validate.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BDB28FDD2560013FF99 /* validate.h */; }; + A9EE152E28FDD2590013FF99 /* validate.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BDB28FDD2560013FF99 /* validate.h */; }; + A9EE152F28FDD2590013FF99 /* validate.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BDB28FDD2560013FF99 /* validate.h */; }; + A9EE153028FDD2590013FF99 /* validate_adjacency.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDC28FDD2560013FF99 /* validate_adjacency.cpp */; }; + A9EE153128FDD2590013FF99 /* validate_adjacency.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDC28FDD2560013FF99 /* validate_adjacency.cpp */; }; + A9EE153228FDD2590013FF99 /* validate_adjacency.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDC28FDD2560013FF99 /* validate_adjacency.cpp */; }; + A9EE153328FDD2590013FF99 /* validate_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDD28FDD2560013FF99 /* validate_conversion.cpp */; }; + A9EE153428FDD2590013FF99 /* validate_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDD28FDD2560013FF99 /* validate_conversion.cpp */; }; + A9EE153528FDD2590013FF99 /* validate_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDD28FDD2560013FF99 /* validate_conversion.cpp */; }; + A9EE153628FDD2590013FF99 /* validate_small_type_uses.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDE28FDD2560013FF99 /* validate_small_type_uses.cpp */; }; + A9EE153728FDD2590013FF99 /* validate_small_type_uses.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDE28FDD2560013FF99 /* validate_small_type_uses.cpp */; }; + A9EE153828FDD2590013FF99 /* validate_small_type_uses.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDE28FDD2560013FF99 /* validate_small_type_uses.cpp */; }; + A9EE153928FDD2590013FF99 /* validate_scopes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BDF28FDD2560013FF99 /* validate_scopes.h */; }; + A9EE153A28FDD2590013FF99 /* validate_scopes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BDF28FDD2560013FF99 /* validate_scopes.h */; }; + A9EE153B28FDD2590013FF99 /* validate_scopes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BDF28FDD2560013FF99 /* validate_scopes.h */; }; + A9EE153C28FDD2590013FF99 /* validate_id.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE028FDD2560013FF99 /* validate_id.cpp */; }; + A9EE153D28FDD2590013FF99 /* validate_id.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE028FDD2560013FF99 /* validate_id.cpp */; }; + A9EE153E28FDD2590013FF99 /* validate_id.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE028FDD2560013FF99 /* validate_id.cpp */; }; + A9EE153F28FDD2590013FF99 /* validate_memory_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BE128FDD2560013FF99 /* validate_memory_semantics.h */; }; + A9EE154028FDD2590013FF99 /* validate_memory_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BE128FDD2560013FF99 /* validate_memory_semantics.h */; }; + A9EE154128FDD2590013FF99 /* validate_memory_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BE128FDD2560013FF99 /* validate_memory_semantics.h */; }; + A9EE154228FDD2590013FF99 /* validate_arithmetics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE228FDD2560013FF99 /* validate_arithmetics.cpp */; }; + A9EE154328FDD2590013FF99 /* validate_arithmetics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE228FDD2560013FF99 /* validate_arithmetics.cpp */; }; + A9EE154428FDD2590013FF99 /* validate_arithmetics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE228FDD2560013FF99 /* validate_arithmetics.cpp */; }; + A9EE154528FDD2590013FF99 /* validate_mode_setting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE328FDD2560013FF99 /* validate_mode_setting.cpp */; }; + A9EE154628FDD2590013FF99 /* validate_mode_setting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE328FDD2560013FF99 /* validate_mode_setting.cpp */; }; + A9EE154728FDD2590013FF99 /* validate_mode_setting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE328FDD2560013FF99 /* validate_mode_setting.cpp */; }; + A9EE154828FDD2590013FF99 /* validate_memory_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE428FDD2560013FF99 /* validate_memory_semantics.cpp */; }; + A9EE154928FDD2590013FF99 /* validate_memory_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE428FDD2560013FF99 /* validate_memory_semantics.cpp */; }; + A9EE154A28FDD2590013FF99 /* validate_memory_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE428FDD2560013FF99 /* validate_memory_semantics.cpp */; }; + A9EE154B28FDD2590013FF99 /* validate_logicals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE528FDD2560013FF99 /* validate_logicals.cpp */; }; + A9EE154C28FDD2590013FF99 /* validate_logicals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE528FDD2560013FF99 /* validate_logicals.cpp */; }; + A9EE154D28FDD2590013FF99 /* validate_logicals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE528FDD2560013FF99 /* validate_logicals.cpp */; }; + A9EE154E28FDD2590013FF99 /* validate_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE628FDD2560013FF99 /* validate_derivatives.cpp */; }; + A9EE154F28FDD2590013FF99 /* validate_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE628FDD2560013FF99 /* validate_derivatives.cpp */; }; + A9EE155028FDD2590013FF99 /* validate_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE628FDD2560013FF99 /* validate_derivatives.cpp */; }; + A9EE155128FDD2590013FF99 /* validate_memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE728FDD2560013FF99 /* validate_memory.cpp */; }; + A9EE155228FDD2590013FF99 /* validate_memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE728FDD2560013FF99 /* validate_memory.cpp */; }; + A9EE155328FDD2590013FF99 /* validate_memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE728FDD2560013FF99 /* validate_memory.cpp */; }; + A9EE155428FDD2590013FF99 /* validate_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE828FDD2560013FF99 /* validate_image.cpp */; }; + A9EE155528FDD2590013FF99 /* validate_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE828FDD2560013FF99 /* validate_image.cpp */; }; + A9EE155628FDD2590013FF99 /* validate_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE828FDD2560013FF99 /* validate_image.cpp */; }; + A9EE155728FDD2590013FF99 /* validate_literals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE928FDD2560013FF99 /* validate_literals.cpp */; }; + A9EE155828FDD2590013FF99 /* validate_literals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE928FDD2560013FF99 /* validate_literals.cpp */; }; + A9EE155928FDD2590013FF99 /* validate_literals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE928FDD2560013FF99 /* validate_literals.cpp */; }; + A9EE155A28FDD2590013FF99 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEA28FDD2560013FF99 /* instruction.cpp */; }; + A9EE155B28FDD2590013FF99 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEA28FDD2560013FF99 /* instruction.cpp */; }; + A9EE155C28FDD2590013FF99 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEA28FDD2560013FF99 /* instruction.cpp */; }; + A9EE155D28FDD2590013FF99 /* validate_type.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEB28FDD2560013FF99 /* validate_type.cpp */; }; + A9EE155E28FDD2590013FF99 /* validate_type.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEB28FDD2560013FF99 /* validate_type.cpp */; }; + A9EE155F28FDD2590013FF99 /* validate_type.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEB28FDD2560013FF99 /* validate_type.cpp */; }; + A9EE156028FDD2590013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BEC28FDD2560013FF99 /* instruction.h */; }; + A9EE156128FDD2590013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BEC28FDD2560013FF99 /* instruction.h */; }; + A9EE156228FDD2590013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BEC28FDD2560013FF99 /* instruction.h */; }; + A9EE156328FDD2590013FF99 /* validate_mesh_shading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BED28FDD2560013FF99 /* validate_mesh_shading.cpp */; }; + A9EE156428FDD2590013FF99 /* validate_mesh_shading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BED28FDD2560013FF99 /* validate_mesh_shading.cpp */; }; + A9EE156528FDD2590013FF99 /* validate_mesh_shading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BED28FDD2560013FF99 /* validate_mesh_shading.cpp */; }; + A9EE156628FDD2590013FF99 /* validate_execution_limitations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEE28FDD2560013FF99 /* validate_execution_limitations.cpp */; }; + A9EE156728FDD2590013FF99 /* validate_execution_limitations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEE28FDD2560013FF99 /* validate_execution_limitations.cpp */; }; + A9EE156828FDD2590013FF99 /* validate_execution_limitations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEE28FDD2560013FF99 /* validate_execution_limitations.cpp */; }; + A9EE156928FDD2590013FF99 /* validate_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEF28FDD2560013FF99 /* validate_layout.cpp */; }; + A9EE156A28FDD2590013FF99 /* validate_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEF28FDD2560013FF99 /* validate_layout.cpp */; }; + A9EE156B28FDD2590013FF99 /* validate_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEF28FDD2560013FF99 /* validate_layout.cpp */; }; + A9EE156C28FDD2590013FF99 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF028FDD2560013FF99 /* basic_block.cpp */; }; + A9EE156D28FDD2590013FF99 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF028FDD2560013FF99 /* basic_block.cpp */; }; + A9EE156E28FDD2590013FF99 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF028FDD2560013FF99 /* basic_block.cpp */; }; + A9EE156F28FDD2590013FF99 /* validate_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF128FDD2560013FF99 /* validate_function.cpp */; }; + A9EE157028FDD2590013FF99 /* validate_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF128FDD2560013FF99 /* validate_function.cpp */; }; + A9EE157128FDD2590013FF99 /* validate_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF128FDD2560013FF99 /* validate_function.cpp */; }; + A9EE157228FDD2590013FF99 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BF228FDD2560013FF99 /* function.h */; }; + A9EE157328FDD2590013FF99 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BF228FDD2560013FF99 /* function.h */; }; + A9EE157428FDD2590013FF99 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BF228FDD2560013FF99 /* function.h */; }; + A9EE157528FDD2590013FF99 /* validate_composites.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF328FDD2560013FF99 /* validate_composites.cpp */; }; + A9EE157628FDD2590013FF99 /* validate_composites.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF328FDD2560013FF99 /* validate_composites.cpp */; }; + A9EE157728FDD2590013FF99 /* validate_composites.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF328FDD2560013FF99 /* validate_composites.cpp */; }; + A9EE157828FDD2590013FF99 /* validation_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF428FDD2560013FF99 /* validation_state.cpp */; }; + A9EE157928FDD2590013FF99 /* validation_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF428FDD2560013FF99 /* validation_state.cpp */; }; + A9EE157A28FDD2590013FF99 /* validation_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF428FDD2560013FF99 /* validation_state.cpp */; }; + A9EE157B28FDD2590013FF99 /* validate_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF528FDD2560013FF99 /* validate_primitives.cpp */; }; + A9EE157C28FDD2590013FF99 /* validate_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF528FDD2560013FF99 /* validate_primitives.cpp */; }; + A9EE157D28FDD2590013FF99 /* validate_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF528FDD2560013FF99 /* validate_primitives.cpp */; }; + A9EE157E28FDD2590013FF99 /* decoration.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BF628FDD2560013FF99 /* decoration.h */; }; + A9EE157F28FDD2590013FF99 /* decoration.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BF628FDD2560013FF99 /* decoration.h */; }; + A9EE158028FDD2590013FF99 /* decoration.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BF628FDD2560013FF99 /* decoration.h */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -1731,418 +1776,6 @@ A90FD9E421CC4EB900B92BB2 /* libSPIRVCross.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSPIRVCross.a; sourceTree = BUILT_PRODUCTS_DIR; }; A9194DF424E8940600FB127B /* copy_ext_lib_to_staging.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = copy_ext_lib_to_staging.sh; sourceTree = ""; }; A9194DF524E8979100FB127B /* create_ext_lib_xcframeworks.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_ext_lib_xcframeworks.sh; sourceTree = ""; }; - A926B47F27AC718800144157 /* spirv_target_env.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_target_env.cpp; sourceTree = ""; }; - A926B48027AC718800144157 /* spirv_fuzzer_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_fuzzer_options.h; sourceTree = ""; }; - A926B48127AC718800144157 /* assembly_grammar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = assembly_grammar.h; sourceTree = ""; }; - A926B48327AC718800144157 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - A926B48427AC718800144157 /* lint_divergent_derivatives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lint_divergent_derivatives.cpp; sourceTree = ""; }; - A926B48527AC718800144157 /* linter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = linter.cpp; sourceTree = ""; }; - A926B48627AC718800144157 /* divergence_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = divergence_analysis.cpp; sourceTree = ""; }; - A926B48727AC718800144157 /* lints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lints.h; sourceTree = ""; }; - A926B48827AC718800144157 /* divergence_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = divergence_analysis.h; sourceTree = ""; }; - A926B48927AC718800144157 /* enum_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enum_set.h; sourceTree = ""; }; - A926B48A27AC718800144157 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - A926B48B27AC718800144157 /* text.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = text.cpp; sourceTree = ""; }; - A926B48C27AC718800144157 /* assembly_grammar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = assembly_grammar.cpp; sourceTree = ""; }; - A926B48D27AC718800144157 /* text.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = text.h; sourceTree = ""; }; - A926B48E27AC718800144157 /* extensions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = extensions.cpp; sourceTree = ""; }; - A926B48F27AC718800144157 /* pch_source.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pch_source.cpp; sourceTree = ""; }; - A926B49127AC718800144157 /* parse_number.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parse_number.h; sourceTree = ""; }; - A926B49227AC718800144157 /* ilist_node.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ilist_node.h; sourceTree = ""; }; - A926B49327AC718800144157 /* make_unique.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = make_unique.h; sourceTree = ""; }; - A926B49427AC718800144157 /* string_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = string_utils.h; sourceTree = ""; }; - A926B49527AC718800144157 /* small_vector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = small_vector.h; sourceTree = ""; }; - A926B49627AC718800144157 /* timer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = timer.cpp; sourceTree = ""; }; - A926B49727AC718800144157 /* timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = timer.h; sourceTree = ""; }; - A926B49827AC718800144157 /* string_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = string_utils.cpp; sourceTree = ""; }; - A926B49927AC718800144157 /* bit_vector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit_vector.h; sourceTree = ""; }; - A926B49A27AC718800144157 /* bitutils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bitutils.h; sourceTree = ""; }; - A926B49B27AC718800144157 /* hex_float.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hex_float.h; sourceTree = ""; }; - A926B49C27AC718800144157 /* parse_number.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parse_number.cpp; sourceTree = ""; }; - A926B49D27AC718800144157 /* bit_vector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bit_vector.cpp; sourceTree = ""; }; - A926B49E27AC718800144157 /* ilist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ilist.h; sourceTree = ""; }; - A926B49F27AC718800144157 /* spirv_target_env.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_target_env.h; sourceTree = ""; }; - A926B4A027AC718800144157 /* table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table.cpp; sourceTree = ""; }; - A926B4A227AC718800144157 /* operand_to_undef_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand_to_undef_reduction_opportunity_finder.h; sourceTree = ""; }; - A926B4A327AC718800144157 /* remove_selection_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_selection_reduction_opportunity.cpp; sourceTree = ""; }; - A926B4A427AC718800144157 /* remove_block_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_block_reduction_opportunity.h; sourceTree = ""; }; - A926B4A527AC718800144157 /* operand_to_dominating_id_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand_to_dominating_id_reduction_opportunity_finder.h; sourceTree = ""; }; - A926B4A627AC718800144157 /* reduction_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_pass.cpp; sourceTree = ""; }; - A926B4A727AC718800144157 /* structured_construct_to_block_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_construct_to_block_reduction_opportunity.h; sourceTree = ""; }; - A926B4A827AC718800144157 /* operand_to_const_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand_to_const_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A926B4A927AC718800144157 /* operand_to_const_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand_to_const_reduction_opportunity_finder.h; sourceTree = ""; }; - A926B4AA27AC718800144157 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - A926B4AB27AC718800144157 /* reduction_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_util.cpp; sourceTree = ""; }; - A926B4AC27AC718800144157 /* structured_construct_to_block_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_construct_to_block_reduction_opportunity_finder.h; sourceTree = ""; }; - A926B4AD27AC718800144157 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_loop_to_selection_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A926B4AE27AC718800144157 /* simple_conditional_branch_to_branch_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simple_conditional_branch_to_branch_reduction_opportunity.h; sourceTree = ""; }; - A926B4AF27AC718800144157 /* remove_function_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_function_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A926B4B027AC718800144157 /* remove_instruction_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_instruction_reduction_opportunity.h; sourceTree = ""; }; - A926B4B127AC718800144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conditional_branch_to_simple_conditional_branch_reduction_opportunity.h; sourceTree = ""; }; - A926B4B227AC718800144157 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simple_conditional_branch_to_branch_reduction_opportunity.cpp; sourceTree = ""; }; - A926B4B327AC718800144157 /* remove_function_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_function_reduction_opportunity.cpp; sourceTree = ""; }; - A926B4B427AC718800144157 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simple_conditional_branch_to_branch_opportunity_finder.cpp; sourceTree = ""; }; - A926B4B527AC718800144157 /* remove_selection_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_selection_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A926B4B627AC718800144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp; sourceTree = ""; }; - A926B4B727AC718800144157 /* remove_struct_member_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_struct_member_reduction_opportunity.h; sourceTree = ""; }; - A926B4B827AC718800144157 /* simple_conditional_branch_to_branch_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simple_conditional_branch_to_branch_opportunity_finder.h; sourceTree = ""; }; - A926B4B927AC718800144157 /* merge_blocks_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_blocks_reduction_opportunity.cpp; sourceTree = ""; }; - A926B4BA27AC718800144157 /* change_operand_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = change_operand_reduction_opportunity.cpp; sourceTree = ""; }; - A926B4BB27AC718800144157 /* structured_loop_to_selection_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_loop_to_selection_reduction_opportunity.h; sourceTree = ""; }; - A926B4BC27AC718800144157 /* remove_function_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_function_reduction_opportunity.h; sourceTree = ""; }; - A926B4BD27AC718800144157 /* remove_unused_instruction_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_unused_instruction_reduction_opportunity_finder.h; sourceTree = ""; }; - A926B4BE27AC718800144157 /* change_operand_to_undef_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = change_operand_to_undef_reduction_opportunity.h; sourceTree = ""; }; - A926B4BF27AC718800144157 /* structured_loop_to_selection_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_loop_to_selection_reduction_opportunity_finder.h; sourceTree = ""; }; - A926B4C027AC718800144157 /* remove_selection_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_selection_reduction_opportunity.h; sourceTree = ""; }; - A926B4C127AC718800144157 /* remove_instruction_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_instruction_reduction_opportunity.cpp; sourceTree = ""; }; - A926B4C227AC718800144157 /* remove_selection_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_selection_reduction_opportunity_finder.h; sourceTree = ""; }; - A926B4C327AC718800144157 /* merge_blocks_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_blocks_reduction_opportunity_finder.h; sourceTree = ""; }; - A926B4C427AC718800144157 /* pch_source_reduce.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pch_source_reduce.cpp; sourceTree = ""; }; - A926B4C527AC718800144157 /* remove_struct_member_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_struct_member_reduction_opportunity.cpp; sourceTree = ""; }; - A926B4C627AC718800144157 /* remove_unused_struct_member_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_unused_struct_member_reduction_opportunity_finder.h; sourceTree = ""; }; - A926B4C727AC718800144157 /* remove_unused_instruction_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_unused_instruction_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A926B4C827AC718800144157 /* reducer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reducer.cpp; sourceTree = ""; }; - A926B4C927AC718800144157 /* operand_to_undef_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand_to_undef_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A926B4CA27AC718800144157 /* remove_function_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_function_reduction_opportunity_finder.h; sourceTree = ""; }; - A926B4CB27AC718800144157 /* pch_source_reduce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pch_source_reduce.h; sourceTree = ""; }; - A926B4CC27AC718800144157 /* merge_blocks_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_blocks_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A926B4CD27AC718800144157 /* reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_opportunity.cpp; sourceTree = ""; }; - A926B4CE27AC718800144157 /* reducer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reducer.h; sourceTree = ""; }; - A926B4CF27AC718800144157 /* change_operand_to_undef_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = change_operand_to_undef_reduction_opportunity.cpp; sourceTree = ""; }; - A926B4D027AC718800144157 /* reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_opportunity.h; sourceTree = ""; }; - A926B4D127AC718800144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conditional_branch_to_simple_conditional_branch_opportunity_finder.h; sourceTree = ""; }; - A926B4D227AC718800144157 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand_to_dominating_id_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A926B4D327AC718800144157 /* reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_opportunity_finder.h; sourceTree = ""; }; - A926B4D427AC718800144157 /* change_operand_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = change_operand_reduction_opportunity.h; sourceTree = ""; }; - A926B4D527AC718800144157 /* remove_block_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_block_reduction_opportunity_finder.h; sourceTree = ""; }; - A926B4D627AC718800144157 /* remove_block_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_block_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A926B4D727AC718800144157 /* reduction_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_util.h; sourceTree = ""; }; - A926B4D827AC718800144157 /* merge_blocks_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_blocks_reduction_opportunity.h; sourceTree = ""; }; - A926B4D927AC718800144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp; sourceTree = ""; }; - A926B4DA27AC718800144157 /* structured_loop_to_selection_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_loop_to_selection_reduction_opportunity.cpp; sourceTree = ""; }; - A926B4DB27AC718800144157 /* structured_construct_to_block_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_construct_to_block_reduction_opportunity.cpp; sourceTree = ""; }; - A926B4DC27AC718800144157 /* remove_block_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_block_reduction_opportunity.cpp; sourceTree = ""; }; - A926B4DD27AC718800144157 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_unused_struct_member_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A926B4DE27AC718800144157 /* reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_opportunity_finder.cpp; sourceTree = ""; }; - A926B4DF27AC718800144157 /* structured_construct_to_block_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_construct_to_block_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A926B4E027AC718800144157 /* reduction_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_pass.h; sourceTree = ""; }; - A926B4E127AC718800144157 /* latest_version_opencl_std_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = latest_version_opencl_std_header.h; sourceTree = ""; }; - A926B4E227AC718800144157 /* spirv_optimizer_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_optimizer_options.cpp; sourceTree = ""; }; - A926B4E327AC718800144157 /* cfa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfa.h; sourceTree = ""; }; - A926B4E427AC718800144157 /* pch_source.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pch_source.h; sourceTree = ""; }; - A926B4E527AC718800144157 /* enum_string_mapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enum_string_mapping.h; sourceTree = ""; }; - A926B4E627AC718800144157 /* spirv_fuzzer_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_fuzzer_options.cpp; sourceTree = ""; }; - A926B4E727AC718800144157 /* spirv_reducer_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_reducer_options.h; sourceTree = ""; }; - A926B4E827AC718800144157 /* spirv_validator_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_validator_options.cpp; sourceTree = ""; }; - A926B4EF27AC718800144157 /* print.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = print.cpp; sourceTree = ""; }; - A926B4F027AC718800144157 /* spirv_definition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_definition.h; sourceTree = ""; }; - A926B4F127AC718800144157 /* operand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand.h; sourceTree = ""; }; - A926B4F227AC718800144157 /* spirv_endian.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_endian.cpp; sourceTree = ""; }; - A926B4F327AC718800144157 /* macro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macro.h; sourceTree = ""; }; - A926B4F427AC718800144157 /* spirv_constant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_constant.h; sourceTree = ""; }; - A926B4F527AC718800144157 /* binary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = binary.cpp; sourceTree = ""; }; - A926B4F627AC718800144157 /* spirv_validator_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_validator_options.h; sourceTree = ""; }; - A926B4F727AC718800144157 /* enum_string_mapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = enum_string_mapping.cpp; sourceTree = ""; }; - A926B4F827AC718800144157 /* text_handler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = text_handler.h; sourceTree = ""; }; - A926B4F927AC718800144157 /* parsed_operand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parsed_operand.h; sourceTree = ""; }; - A926B4FA27AC718800144157 /* name_mapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = name_mapper.h; sourceTree = ""; }; - A926B4FB27AC718800144157 /* spirv_reducer_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_reducer_options.cpp; sourceTree = ""; }; - A926B4FC27AC718800144157 /* parsed_operand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parsed_operand.cpp; sourceTree = ""; }; - A926B4FD27AC718800144157 /* diagnostic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = diagnostic.h; sourceTree = ""; }; - A926B4FE27AC718800144157 /* spirv_endian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_endian.h; sourceTree = ""; }; - A926B4FF27AC718800144157 /* name_mapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = name_mapper.cpp; sourceTree = ""; }; - A926B50127AC718800144157 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - A926B50227AC718800144157 /* linker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = linker.cpp; sourceTree = ""; }; - A926B50327AC718800144157 /* common_debug_info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common_debug_info.h; sourceTree = ""; }; - A926B50427AC718800144157 /* software_version.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = software_version.cpp; sourceTree = ""; }; - A926B50527AC718800144157 /* opcode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = opcode.cpp; sourceTree = ""; }; - A926B50627AC718800144157 /* print.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = print.h; sourceTree = ""; }; - A926B50727AC718800144157 /* ext_inst.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ext_inst.cpp; sourceTree = ""; }; - A926B50827AC718800144157 /* disassemble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = disassemble.h; sourceTree = ""; }; - A926B50A27AC718800144157 /* optimizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = optimizer.cpp; sourceTree = ""; }; - A926B50B27AC718800144157 /* if_conversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = if_conversion.h; sourceTree = ""; }; - A926B50C27AC718800144157 /* register_pressure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = register_pressure.cpp; sourceTree = ""; }; - A926B50D27AC718800144157 /* loop_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_utils.cpp; sourceTree = ""; }; - A926B50E27AC718800144157 /* strip_nonsemantic_info_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strip_nonsemantic_info_pass.h; sourceTree = ""; }; - A926B50F27AC718800144157 /* spread_volatile_semantics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spread_volatile_semantics.cpp; sourceTree = ""; }; - A926B51027AC718800144157 /* merge_return_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_return_pass.h; sourceTree = ""; }; - A926B51127AC718800144157 /* inline_opaque_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inline_opaque_pass.h; sourceTree = ""; }; - A926B51227AC718800144157 /* loop_fusion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_fusion.h; sourceTree = ""; }; - A926B51327AC718800144157 /* combine_access_chains.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = combine_access_chains.cpp; sourceTree = ""; }; - A926B51427AC718800144157 /* build_module.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = build_module.cpp; sourceTree = ""; }; - A926B51527AC718800144157 /* composite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = composite.h; sourceTree = ""; }; - A926B51627AC718800144157 /* compact_ids_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compact_ids_pass.h; sourceTree = ""; }; - A926B51727AC718800144157 /* register_pressure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = register_pressure.h; sourceTree = ""; }; - A926B51827AC718800144157 /* tree_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tree_iterator.h; sourceTree = ""; }; - A926B51927AC718800144157 /* graphics_robust_access_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = graphics_robust_access_pass.h; sourceTree = ""; }; - A926B51A27AC718800144157 /* local_single_store_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_single_store_elim_pass.h; sourceTree = ""; }; - A926B51B27AC718800144157 /* reduce_load_size.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduce_load_size.h; sourceTree = ""; }; - A926B51C27AC718800144157 /* code_sink.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = code_sink.cpp; sourceTree = ""; }; - A926B51D27AC718800144157 /* types.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = types.cpp; sourceTree = ""; }; - A926B51E27AC718800144157 /* scalar_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scalar_analysis.h; sourceTree = ""; }; - A926B51F27AC718800144157 /* strip_debug_info_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strip_debug_info_pass.h; sourceTree = ""; }; - A926B52027AC718800144157 /* replace_desc_array_access_using_var_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = replace_desc_array_access_using_var_index.h; sourceTree = ""; }; - A926B52127AC718800144157 /* cfg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cfg.cpp; sourceTree = ""; }; - A926B52227AC718800144157 /* decoration_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoration_manager.cpp; sourceTree = ""; }; - A926B52327AC718800144157 /* local_single_block_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_single_block_elim_pass.cpp; sourceTree = ""; }; - A926B52427AC718800144157 /* freeze_spec_constant_value_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = freeze_spec_constant_value_pass.cpp; sourceTree = ""; }; - A926B52527AC718800144157 /* replace_invalid_opc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = replace_invalid_opc.h; sourceTree = ""; }; - A926B52627AC718800144157 /* local_access_chain_convert_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_access_chain_convert_pass.h; sourceTree = ""; }; - A926B52727AC718800144157 /* inst_bindless_check_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inst_bindless_check_pass.cpp; sourceTree = ""; }; - A926B52827AC718800144157 /* local_redundancy_elimination.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_redundancy_elimination.cpp; sourceTree = ""; }; - A926B52927AC718800144157 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - A926B52A27AC718800144157 /* instrument_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instrument_pass.cpp; sourceTree = ""; }; - A926B52B27AC718800144157 /* propagator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = propagator.h; sourceTree = ""; }; - A926B52C27AC718800144157 /* instruction_list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction_list.h; sourceTree = ""; }; - A926B52D27AC718800144157 /* feature_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = feature_manager.cpp; sourceTree = ""; }; - A926B52E27AC718800144157 /* pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pass.cpp; sourceTree = ""; }; - A926B52F27AC718800144157 /* loop_fission.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_fission.cpp; sourceTree = ""; }; - A926B53027AC718800144157 /* dominator_tree.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dominator_tree.cpp; sourceTree = ""; }; - A926B53127AC718800144157 /* amd_ext_to_khr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = amd_ext_to_khr.h; sourceTree = ""; }; - A926B53227AC718800144157 /* merge_return_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_return_pass.cpp; sourceTree = ""; }; - A926B53327AC718800144157 /* ir_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ir_context.h; sourceTree = ""; }; - A926B53427AC718800144157 /* eliminate_dead_constant_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_constant_pass.cpp; sourceTree = ""; }; - A926B53527AC718800144157 /* control_dependence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = control_dependence.h; sourceTree = ""; }; - A926B53627AC718800144157 /* cfg_cleanup_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cfg_cleanup_pass.cpp; sourceTree = ""; }; - A926B53727AC718800144157 /* wrap_opkill.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wrap_opkill.cpp; sourceTree = ""; }; - A926B53827AC718800144157 /* const_folding_rules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = const_folding_rules.cpp; sourceTree = ""; }; - A926B53927AC718800144157 /* loop_unroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_unroller.h; sourceTree = ""; }; - A926B53A27AC718800144157 /* strip_debug_info_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strip_debug_info_pass.cpp; sourceTree = ""; }; - A926B53B27AC718800144157 /* ssa_rewrite_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ssa_rewrite_pass.cpp; sourceTree = ""; }; - A926B53C27AC718800144157 /* loop_dependence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_dependence.cpp; sourceTree = ""; }; - A926B53D27AC718800144157 /* unify_const_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unify_const_pass.h; sourceTree = ""; }; - A926B53E27AC718800144157 /* ir_loader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ir_loader.h; sourceTree = ""; }; - A926B53F27AC718800144157 /* inst_debug_printf_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inst_debug_printf_pass.cpp; sourceTree = ""; }; - A926B54027AC718800144157 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = ""; }; - A926B54127AC718800144157 /* fold_spec_constant_op_and_composite_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fold_spec_constant_op_and_composite_pass.h; sourceTree = ""; }; - A926B54227AC718800144157 /* mem_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mem_pass.cpp; sourceTree = ""; }; - A926B54327AC718800144157 /* basic_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = basic_block.h; sourceTree = ""; }; - A926B54427AC718800144157 /* remove_duplicates_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_duplicates_pass.cpp; sourceTree = ""; }; - A926B54527AC718800144157 /* dead_variable_elimination.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dead_variable_elimination.cpp; sourceTree = ""; }; - A926B54627AC718800144157 /* block_merge_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_merge_pass.h; sourceTree = ""; }; - A926B54727AC718800144157 /* module.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = module.cpp; sourceTree = ""; }; - A926B54827AC718800144157 /* debug_info_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = debug_info_manager.h; sourceTree = ""; }; - A926B54927AC718800144157 /* fold_spec_constant_op_and_composite_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fold_spec_constant_op_and_composite_pass.cpp; sourceTree = ""; }; - A926B54A27AC718800144157 /* loop_unswitch_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_unswitch_pass.cpp; sourceTree = ""; }; - A926B54B27AC718800144157 /* unify_const_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unify_const_pass.cpp; sourceTree = ""; }; - A926B54C27AC718800144157 /* type_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = type_manager.cpp; sourceTree = ""; }; - A926B54D27AC718800144157 /* private_to_local_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = private_to_local_pass.h; sourceTree = ""; }; - A926B54E27AC718800144157 /* convert_to_half_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convert_to_half_pass.h; sourceTree = ""; }; - A926B54F27AC718800144157 /* relax_float_ops_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = relax_float_ops_pass.h; sourceTree = ""; }; - A926B55027AC718800144157 /* inline_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inline_pass.cpp; sourceTree = ""; }; - A926B55127AC718800144157 /* def_use_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = def_use_manager.h; sourceTree = ""; }; - A926B55227AC718800144157 /* ir_loader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ir_loader.cpp; sourceTree = ""; }; - A926B55327AC718800144157 /* convert_to_sampled_image_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convert_to_sampled_image_pass.h; sourceTree = ""; }; - A926B55427AC718800144157 /* cfg_cleanup_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfg_cleanup_pass.h; sourceTree = ""; }; - A926B55527AC718800144157 /* licm_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = licm_pass.cpp; sourceTree = ""; }; - A926B55627AC718800144157 /* eliminate_dead_functions_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_functions_pass.cpp; sourceTree = ""; }; - A926B55727AC718800144157 /* local_redundancy_elimination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_redundancy_elimination.h; sourceTree = ""; }; - A926B55827AC718800144157 /* loop_peeling.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_peeling.h; sourceTree = ""; }; - A926B55927AC718800144157 /* vector_dce.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vector_dce.cpp; sourceTree = ""; }; - A926B55A27AC718800144157 /* block_merge_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_merge_util.h; sourceTree = ""; }; - A926B55B27AC718800144157 /* loop_unroller.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_unroller.cpp; sourceTree = ""; }; - A926B55C27AC718800144157 /* desc_sroa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = desc_sroa.h; sourceTree = ""; }; - A926B55D27AC718800144157 /* constants.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = constants.cpp; sourceTree = ""; }; - A926B55E27AC718800144157 /* loop_fusion_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_fusion_pass.h; sourceTree = ""; }; - A926B55F27AC718800144157 /* struct_cfg_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = struct_cfg_analysis.h; sourceTree = ""; }; - A926B56027AC718800144157 /* desc_sroa_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = desc_sroa_util.cpp; sourceTree = ""; }; - A926B56127AC718800144157 /* inst_buff_addr_check_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inst_buff_addr_check_pass.cpp; sourceTree = ""; }; - A926B56227AC718800144157 /* def_use_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = def_use_manager.cpp; sourceTree = ""; }; - A926B56327AC718800144157 /* wrap_opkill.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wrap_opkill.h; sourceTree = ""; }; - A926B56427AC718800144157 /* empty_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = empty_pass.h; sourceTree = ""; }; - A926B56527AC718800144157 /* decoration_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoration_manager.h; sourceTree = ""; }; - A926B56627AC718800144157 /* ccp_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ccp_pass.cpp; sourceTree = ""; }; - A926B56727AC718800144157 /* local_single_block_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_single_block_elim_pass.h; sourceTree = ""; }; - A926B56827AC718800144157 /* interp_fixup_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = interp_fixup_pass.h; sourceTree = ""; }; - A926B56927AC718800144157 /* pch_source_opt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pch_source_opt.cpp; sourceTree = ""; }; - A926B56A27AC718800144157 /* inst_buff_addr_check_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inst_buff_addr_check_pass.h; sourceTree = ""; }; - A926B56B27AC718800144157 /* strength_reduction_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strength_reduction_pass.h; sourceTree = ""; }; - A926B56C27AC718800144157 /* aggressive_dead_code_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aggressive_dead_code_elim_pass.cpp; sourceTree = ""; }; - A926B56D27AC718800144157 /* eliminate_dead_functions_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_functions_util.cpp; sourceTree = ""; }; - A926B56E27AC718800144157 /* inst_debug_printf_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inst_debug_printf_pass.h; sourceTree = ""; }; - A926B56F27AC718800144157 /* simplification_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simplification_pass.cpp; sourceTree = ""; }; - A926B57027AC718800144157 /* dead_branch_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dead_branch_elim_pass.cpp; sourceTree = ""; }; - A926B57127AC718800144157 /* flatten_decoration_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flatten_decoration_pass.cpp; sourceTree = ""; }; - A926B57227AC718800144157 /* dead_insert_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dead_insert_elim_pass.h; sourceTree = ""; }; - A926B57327AC718800144157 /* folding_rules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = folding_rules.cpp; sourceTree = ""; }; - A926B57427AC718800144157 /* freeze_spec_constant_value_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = freeze_spec_constant_value_pass.h; sourceTree = ""; }; - A926B57527AC718800144157 /* ir_context.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ir_context.cpp; sourceTree = ""; }; - A926B57627AC718800144157 /* instrument_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instrument_pass.h; sourceTree = ""; }; - A926B57727AC718800144157 /* mem_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mem_pass.h; sourceTree = ""; }; - A926B57827AC718800144157 /* loop_descriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_descriptor.cpp; sourceTree = ""; }; - A926B57927AC718800144157 /* eliminate_dead_members_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_members_pass.h; sourceTree = ""; }; - A926B57A27AC718800144157 /* function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = function.cpp; sourceTree = ""; }; - A926B57B27AC718800144157 /* instruction_list.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instruction_list.cpp; sourceTree = ""; }; - A926B57C27AC718800144157 /* control_dependence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = control_dependence.cpp; sourceTree = ""; }; - A926B57D27AC718800144157 /* composite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = composite.cpp; sourceTree = ""; }; - A926B57E27AC718800144157 /* convert_to_half_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = convert_to_half_pass.cpp; sourceTree = ""; }; - A926B57F27AC718800144157 /* inline_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inline_pass.h; sourceTree = ""; }; - A926B58027AC718800144157 /* loop_dependence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_dependence.h; sourceTree = ""; }; - A926B58127AC718800144157 /* value_number_table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = value_number_table.h; sourceTree = ""; }; - A926B58227AC718800144157 /* strip_nonsemantic_info_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strip_nonsemantic_info_pass.cpp; sourceTree = ""; }; - A926B58327AC718800144157 /* flatten_decoration_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flatten_decoration_pass.h; sourceTree = ""; }; - A926B58427AC718800144157 /* if_conversion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = if_conversion.cpp; sourceTree = ""; }; - A926B58527AC718800144157 /* debug_info_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = debug_info_manager.cpp; sourceTree = ""; }; - A926B58627AC718800144157 /* inline_exhaustive_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inline_exhaustive_pass.h; sourceTree = ""; }; - A926B58727AC718800144157 /* constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = constants.h; sourceTree = ""; }; - A926B58827AC718800144157 /* eliminate_dead_members_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_members_pass.cpp; sourceTree = ""; }; - A926B58927AC718800144157 /* strength_reduction_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strength_reduction_pass.cpp; sourceTree = ""; }; - A926B58A27AC718800144157 /* desc_sroa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = desc_sroa.cpp; sourceTree = ""; }; - A926B58B27AC718800144157 /* block_merge_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_merge_util.cpp; sourceTree = ""; }; - A926B58C27AC718800144157 /* upgrade_memory_model.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = upgrade_memory_model.h; sourceTree = ""; }; - A926B58D27AC718800144157 /* copy_prop_arrays.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = copy_prop_arrays.cpp; sourceTree = ""; }; - A926B58E27AC718800144157 /* pass_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pass_manager.cpp; sourceTree = ""; }; - A926B58F27AC718800144157 /* inline_exhaustive_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inline_exhaustive_pass.cpp; sourceTree = ""; }; - A926B59027AC718800144157 /* loop_fission.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_fission.h; sourceTree = ""; }; - A926B59127AC718800144157 /* workaround1209.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = workaround1209.h; sourceTree = ""; }; - A926B59227AC718800144157 /* loop_fusion_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_fusion_pass.cpp; sourceTree = ""; }; - A926B59327AC718800144157 /* log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log.h; sourceTree = ""; }; - A926B59427AC718800144157 /* copy_prop_arrays.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = copy_prop_arrays.h; sourceTree = ""; }; - A926B59527AC718800144157 /* eliminate_dead_constant_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_constant_pass.h; sourceTree = ""; }; - A926B59627AC718800144157 /* dead_insert_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dead_insert_elim_pass.cpp; sourceTree = ""; }; - A926B59727AC718800144157 /* ssa_rewrite_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssa_rewrite_pass.h; sourceTree = ""; }; - A926B59827AC718800144157 /* scalar_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scalar_analysis.cpp; sourceTree = ""; }; - A926B59927AC718800144157 /* dead_variable_elimination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dead_variable_elimination.h; sourceTree = ""; }; - A926B59A27AC718800144157 /* block_merge_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_merge_pass.cpp; sourceTree = ""; }; - A926B59B27AC718800144157 /* dominator_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dominator_analysis.h; sourceTree = ""; }; - A926B59C27AC718800144157 /* convert_to_sampled_image_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = convert_to_sampled_image_pass.cpp; sourceTree = ""; }; - A926B59D27AC718800144157 /* pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pass.h; sourceTree = ""; }; - A926B59E27AC718800144157 /* folding_rules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = folding_rules.h; sourceTree = ""; }; - A926B59F27AC718800144157 /* eliminate_dead_functions_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_functions_pass.h; sourceTree = ""; }; - A926B5A027AC718800144157 /* eliminate_dead_functions_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_functions_util.h; sourceTree = ""; }; - A926B5A127AC718800144157 /* fold.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fold.h; sourceTree = ""; }; - A926B5A227AC718800144157 /* local_single_store_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_single_store_elim_pass.cpp; sourceTree = ""; }; - A926B5A327AC718800144157 /* dead_branch_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dead_branch_elim_pass.h; sourceTree = ""; }; - A926B5A427AC718800144157 /* private_to_local_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = private_to_local_pass.cpp; sourceTree = ""; }; - A926B5A527AC718800144157 /* scalar_analysis_nodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scalar_analysis_nodes.h; sourceTree = ""; }; - A926B5A627AC718800144157 /* propagator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = propagator.cpp; sourceTree = ""; }; - A926B5A727AC718800144157 /* fix_storage_class.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fix_storage_class.h; sourceTree = ""; }; - A926B5A827AC718800144157 /* loop_dependence_helpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_dependence_helpers.cpp; sourceTree = ""; }; - A926B5A927AC718800144157 /* set_spec_constant_default_value_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = set_spec_constant_default_value_pass.cpp; sourceTree = ""; }; - A926B5AA27AC718800144157 /* passes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = passes.h; sourceTree = ""; }; - A926B5AB27AC718800144157 /* fold.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fold.cpp; sourceTree = ""; }; - A926B5AC27AC718800144157 /* amd_ext_to_khr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = amd_ext_to_khr.cpp; sourceTree = ""; }; - A926B5AD27AC718800144157 /* scalar_replacement_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scalar_replacement_pass.cpp; sourceTree = ""; }; - A926B5AE27AC718800144157 /* simplification_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simplification_pass.h; sourceTree = ""; }; - A926B5AF27AC718800144157 /* remove_duplicates_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_duplicates_pass.h; sourceTree = ""; }; - A926B5B027AC718800144157 /* desc_sroa_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = desc_sroa_util.h; sourceTree = ""; }; - A926B5B127AC718800144157 /* redundancy_elimination.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = redundancy_elimination.cpp; sourceTree = ""; }; - A926B5B227AC718800144157 /* reflect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reflect.h; sourceTree = ""; }; - A926B5B327AC718800144157 /* workaround1209.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = workaround1209.cpp; sourceTree = ""; }; - A926B5B427AC718800144157 /* null_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = null_pass.h; sourceTree = ""; }; - A926B5B527AC718800144157 /* relax_float_ops_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = relax_float_ops_pass.cpp; sourceTree = ""; }; - A926B5B627AC718800144157 /* const_folding_rules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = const_folding_rules.h; sourceTree = ""; }; - A926B5B727AC718800144157 /* scalar_replacement_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scalar_replacement_pass.h; sourceTree = ""; }; - A926B5B827AC718800144157 /* instruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instruction.cpp; sourceTree = ""; }; - A926B5B927AC718800144157 /* pch_source_opt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pch_source_opt.h; sourceTree = ""; }; - A926B5BA27AC718800144157 /* reduce_load_size.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduce_load_size.cpp; sourceTree = ""; }; - A926B5BB27AC718800144157 /* redundancy_elimination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = redundancy_elimination.h; sourceTree = ""; }; - A926B5BC27AC718800144157 /* fix_storage_class.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fix_storage_class.cpp; sourceTree = ""; }; - A926B5BD27AC718800144157 /* value_number_table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = value_number_table.cpp; sourceTree = ""; }; - A926B5BE27AC718800144157 /* remove_unused_interface_variables_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_unused_interface_variables_pass.cpp; sourceTree = ""; }; - A926B5BF27AC718800144157 /* inline_opaque_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inline_opaque_pass.cpp; sourceTree = ""; }; - A926B5C027AC718800144157 /* replace_invalid_opc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = replace_invalid_opc.cpp; sourceTree = ""; }; - A926B5C127AC718800144157 /* loop_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_utils.h; sourceTree = ""; }; - A926B5C227AC718800144157 /* module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = module.h; sourceTree = ""; }; - A926B5C327AC718800144157 /* dominator_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dominator_analysis.cpp; sourceTree = ""; }; - A926B5C427AC718800144157 /* ir_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ir_builder.h; sourceTree = ""; }; - A926B5C527AC718800144157 /* replace_desc_array_access_using_var_index.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = replace_desc_array_access_using_var_index.cpp; sourceTree = ""; }; - A926B5C627AC718800144157 /* loop_unswitch_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_unswitch_pass.h; sourceTree = ""; }; - A926B5C727AC718800144157 /* cfg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfg.h; sourceTree = ""; }; - A926B5C827AC718800144157 /* code_sink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = code_sink.h; sourceTree = ""; }; - A926B5C927AC718800144157 /* dataflow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dataflow.cpp; sourceTree = ""; }; - A926B5CA27AC718800144157 /* loop_descriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_descriptor.h; sourceTree = ""; }; - A926B5CB27AC718800144157 /* instruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction.h; sourceTree = ""; }; - A926B5CC27AC718800144157 /* aggressive_dead_code_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aggressive_dead_code_elim_pass.h; sourceTree = ""; }; - A926B5CD27AC718800144157 /* struct_cfg_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = struct_cfg_analysis.cpp; sourceTree = ""; }; - A926B5CE27AC718800144157 /* vector_dce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vector_dce.h; sourceTree = ""; }; - A926B5CF27AC718800144157 /* combine_access_chains.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = combine_access_chains.h; sourceTree = ""; }; - A926B5D027AC718800144157 /* pass_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pass_manager.h; sourceTree = ""; }; - A926B5D127AC718800144157 /* spread_volatile_semantics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spread_volatile_semantics.h; sourceTree = ""; }; - A926B5D227AC718800144157 /* local_access_chain_convert_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_access_chain_convert_pass.cpp; sourceTree = ""; }; - A926B5D327AC718800144157 /* interp_fixup_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = interp_fixup_pass.cpp; sourceTree = ""; }; - A926B5D427AC718800144157 /* basic_block.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = basic_block.cpp; sourceTree = ""; }; - A926B5D527AC718800144157 /* iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iterator.h; sourceTree = ""; }; - A926B5D627AC718800144157 /* licm_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = licm_pass.h; sourceTree = ""; }; - A926B5D727AC718800144157 /* build_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = build_module.h; sourceTree = ""; }; - A926B5D827AC718800144157 /* ccp_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccp_pass.h; sourceTree = ""; }; - A926B5D927AC718800144157 /* graphics_robust_access_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = graphics_robust_access_pass.cpp; sourceTree = ""; }; - A926B5DA27AC718800144157 /* function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = function.h; sourceTree = ""; }; - A926B5DB27AC718800144157 /* loop_fusion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_fusion.cpp; sourceTree = ""; }; - A926B5DC27AC718800144157 /* upgrade_memory_model.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = upgrade_memory_model.cpp; sourceTree = ""; }; - A926B5DD27AC718800144157 /* feature_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = feature_manager.h; sourceTree = ""; }; - A926B5DE27AC718800144157 /* dataflow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dataflow.h; sourceTree = ""; }; - A926B5DF27AC718800144157 /* inst_bindless_check_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inst_bindless_check_pass.h; sourceTree = ""; }; - A926B5E027AC718800144157 /* scalar_analysis_simplification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scalar_analysis_simplification.cpp; sourceTree = ""; }; - A926B5E127AC718800144157 /* set_spec_constant_default_value_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = set_spec_constant_default_value_pass.h; sourceTree = ""; }; - A926B5E227AC718800144157 /* dominator_tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dominator_tree.h; sourceTree = ""; }; - A926B5E327AC718800144157 /* remove_unused_interface_variables_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_unused_interface_variables_pass.h; sourceTree = ""; }; - A926B5E427AC718800144157 /* type_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = type_manager.h; sourceTree = ""; }; - A926B5E527AC718800144157 /* compact_ids_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compact_ids_pass.cpp; sourceTree = ""; }; - A926B5E627AC718800144157 /* loop_peeling.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_peeling.cpp; sourceTree = ""; }; - A926B5E727AC718800144157 /* table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table.h; sourceTree = ""; }; - A926B77427AC718900144157 /* ext_inst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ext_inst.h; sourceTree = ""; }; - A926B77527AC718900144157 /* diagnostic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = diagnostic.cpp; sourceTree = ""; }; - A926B77627AC718900144157 /* latest_version_spirv_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = latest_version_spirv_header.h; sourceTree = ""; }; - A926B77727AC718900144157 /* libspirv.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = libspirv.cpp; sourceTree = ""; }; - A926B77827AC718900144157 /* instruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction.h; sourceTree = ""; }; - A926B77927AC718900144157 /* spirv_optimizer_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_optimizer_options.h; sourceTree = ""; }; - A926B77A27AC718900144157 /* opcode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opcode.h; sourceTree = ""; }; - A926B77B27AC718900144157 /* operand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand.cpp; sourceTree = ""; }; - A926B77C27AC718900144157 /* latest_version_glsl_std_450_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = latest_version_glsl_std_450_header.h; sourceTree = ""; }; - A926B77D27AC718900144157 /* extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = extensions.h; sourceTree = ""; }; - A926B77E27AC718900144157 /* disassemble.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = disassemble.cpp; sourceTree = ""; }; - A926B77F27AC718900144157 /* binary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = binary.h; sourceTree = ""; }; - A926B78027AC718900144157 /* text_handler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = text_handler.cpp; sourceTree = ""; }; - A926B78227AC718900144157 /* validate_annotation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_annotation.cpp; sourceTree = ""; }; - A926B78327AC718900144157 /* validate_misc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_misc.cpp; sourceTree = ""; }; - A926B78427AC718900144157 /* validate_cfg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_cfg.cpp; sourceTree = ""; }; - A926B78527AC718900144157 /* validate_capability.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_capability.cpp; sourceTree = ""; }; - A926B78627AC718900144157 /* construct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = construct.h; sourceTree = ""; }; - A926B78727AC718900144157 /* validate_barriers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_barriers.cpp; sourceTree = ""; }; - A926B78827AC718900144157 /* validate_non_uniform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_non_uniform.cpp; sourceTree = ""; }; - A926B78927AC718900144157 /* validate_scopes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_scopes.cpp; sourceTree = ""; }; - A926B78A27AC718900144157 /* validate_atomics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_atomics.cpp; sourceTree = ""; }; - A926B78B27AC718900144157 /* basic_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = basic_block.h; sourceTree = ""; }; - A926B78C27AC718900144157 /* validate_instruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_instruction.cpp; sourceTree = ""; }; - A926B78D27AC718900144157 /* validate_decorations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_decorations.cpp; sourceTree = ""; }; - A926B78E27AC718900144157 /* validate_debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_debug.cpp; sourceTree = ""; }; - A926B78F27AC718900144157 /* validate_builtins.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_builtins.cpp; sourceTree = ""; }; - A926B79027AC718900144157 /* validate_interfaces.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_interfaces.cpp; sourceTree = ""; }; - A926B79127AC718900144157 /* validate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate.cpp; sourceTree = ""; }; - A926B79227AC718900144157 /* validation_state.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validation_state.h; sourceTree = ""; }; - A926B79327AC718900144157 /* validate_constants.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_constants.cpp; sourceTree = ""; }; - A926B79427AC718900144157 /* validate_bitwise.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_bitwise.cpp; sourceTree = ""; }; - A926B79527AC718900144157 /* validate_extensions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_extensions.cpp; sourceTree = ""; }; - A926B79627AC718900144157 /* construct.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = construct.cpp; sourceTree = ""; }; - A926B79727AC718900144157 /* function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = function.cpp; sourceTree = ""; }; - A926B79827AC718900144157 /* validate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validate.h; sourceTree = ""; }; - A926B79927AC718900144157 /* validate_adjacency.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_adjacency.cpp; sourceTree = ""; }; - A926B79A27AC718900144157 /* validate_conversion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_conversion.cpp; sourceTree = ""; }; - A926B79B27AC718900144157 /* validate_small_type_uses.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_small_type_uses.cpp; sourceTree = ""; }; - A926B79C27AC718900144157 /* validate_scopes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validate_scopes.h; sourceTree = ""; }; - A926B79D27AC718900144157 /* validate_id.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_id.cpp; sourceTree = ""; }; - A926B79E27AC718900144157 /* validate_memory_semantics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validate_memory_semantics.h; sourceTree = ""; }; - A926B79F27AC718900144157 /* validate_arithmetics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_arithmetics.cpp; sourceTree = ""; }; - A926B7A027AC718900144157 /* validate_mode_setting.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_mode_setting.cpp; sourceTree = ""; }; - A926B7A127AC718900144157 /* validate_memory_semantics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_memory_semantics.cpp; sourceTree = ""; }; - A926B7A227AC718900144157 /* validate_logicals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_logicals.cpp; sourceTree = ""; }; - A926B7A327AC718900144157 /* validate_derivatives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_derivatives.cpp; sourceTree = ""; }; - A926B7A427AC718900144157 /* validate_memory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_memory.cpp; sourceTree = ""; }; - A926B7A527AC718900144157 /* validate_image.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_image.cpp; sourceTree = ""; }; - A926B7A627AC718900144157 /* validate_literals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_literals.cpp; sourceTree = ""; }; - A926B7A727AC718900144157 /* instruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instruction.cpp; sourceTree = ""; }; - A926B7A827AC718900144157 /* validate_type.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_type.cpp; sourceTree = ""; }; - A926B7A927AC718900144157 /* instruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction.h; sourceTree = ""; }; - A926B7AA27AC718900144157 /* validate_execution_limitations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_execution_limitations.cpp; sourceTree = ""; }; - A926B7AB27AC718900144157 /* validate_layout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_layout.cpp; sourceTree = ""; }; - A926B7AC27AC718900144157 /* basic_block.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = basic_block.cpp; sourceTree = ""; }; - A926B7AD27AC718900144157 /* validate_function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_function.cpp; sourceTree = ""; }; - A926B7AE27AC718900144157 /* function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = function.h; sourceTree = ""; }; - A926B7AF27AC718900144157 /* validate_composites.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_composites.cpp; sourceTree = ""; }; - A926B7B027AC718900144157 /* validation_state.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validation_state.cpp; sourceTree = ""; }; - A926B7B127AC718900144157 /* validate_primitives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_primitives.cpp; sourceTree = ""; }; - A926B7B227AC718900144157 /* decoration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoration.h; sourceTree = ""; }; A9415EF624366B0E00566F16 /* packagePregenSpirvToolsHeaders */ = {isa = PBXFileReference; lastKnownFileType = text; path = packagePregenSpirvToolsHeaders; sourceTree = ""; }; A9717C0326EE8C570041AE82 /* spirv_cross_containers.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = spirv_cross_containers.hpp; sourceTree = ""; }; A9717C0426EE8C570041AE82 /* spirv_cross_error_handling.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = spirv_cross_error_handling.hpp; sourceTree = ""; }; @@ -2271,6 +1904,434 @@ A997F9CD26865A550006F71B /* Link.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Link.cpp; sourceTree = ""; }; A9C2104521D14FD7006BA2D3 /* fetchDependencies */ = {isa = PBXFileReference; lastKnownFileType = text; path = fetchDependencies; sourceTree = ""; }; A9C2104721D15843006BA2D3 /* ExternalRevisions */ = {isa = PBXFileReference; lastKnownFileType = folder; path = ExternalRevisions; sourceTree = ""; }; + A9EE08B228FDD2550013FF99 /* spirv_target_env.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_target_env.cpp; sourceTree = ""; }; + A9EE08B328FDD2550013FF99 /* spirv_fuzzer_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_fuzzer_options.h; sourceTree = ""; }; + A9EE08B428FDD2550013FF99 /* assembly_grammar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = assembly_grammar.h; sourceTree = ""; }; + A9EE08B628FDD2550013FF99 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + A9EE08B728FDD2550013FF99 /* lint_divergent_derivatives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lint_divergent_derivatives.cpp; sourceTree = ""; }; + A9EE08B828FDD2550013FF99 /* linter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = linter.cpp; sourceTree = ""; }; + A9EE08B928FDD2550013FF99 /* divergence_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = divergence_analysis.cpp; sourceTree = ""; }; + A9EE08BA28FDD2550013FF99 /* lints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lints.h; sourceTree = ""; }; + A9EE08BB28FDD2550013FF99 /* divergence_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = divergence_analysis.h; sourceTree = ""; }; + A9EE08BC28FDD2550013FF99 /* enum_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enum_set.h; sourceTree = ""; }; + A9EE08BD28FDD2550013FF99 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + A9EE08BE28FDD2550013FF99 /* text.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = text.cpp; sourceTree = ""; }; + A9EE08BF28FDD2550013FF99 /* assembly_grammar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = assembly_grammar.cpp; sourceTree = ""; }; + A9EE08C028FDD2550013FF99 /* text.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = text.h; sourceTree = ""; }; + A9EE08C128FDD2550013FF99 /* extensions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = extensions.cpp; sourceTree = ""; }; + A9EE08C228FDD2550013FF99 /* pch_source.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pch_source.cpp; sourceTree = ""; }; + A9EE08C428FDD2550013FF99 /* parse_number.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parse_number.h; sourceTree = ""; }; + A9EE08C528FDD2550013FF99 /* ilist_node.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ilist_node.h; sourceTree = ""; }; + A9EE08C628FDD2550013FF99 /* make_unique.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = make_unique.h; sourceTree = ""; }; + A9EE08C728FDD2550013FF99 /* string_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = string_utils.h; sourceTree = ""; }; + A9EE08C828FDD2550013FF99 /* small_vector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = small_vector.h; sourceTree = ""; }; + A9EE08C928FDD2550013FF99 /* hash_combine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash_combine.h; sourceTree = ""; }; + A9EE08CA28FDD2550013FF99 /* timer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = timer.cpp; sourceTree = ""; }; + A9EE08CB28FDD2550013FF99 /* timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = timer.h; sourceTree = ""; }; + A9EE08CC28FDD2550013FF99 /* string_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = string_utils.cpp; sourceTree = ""; }; + A9EE08CD28FDD2550013FF99 /* bit_vector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit_vector.h; sourceTree = ""; }; + A9EE08CE28FDD2550013FF99 /* bitutils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bitutils.h; sourceTree = ""; }; + A9EE08CF28FDD2550013FF99 /* hex_float.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hex_float.h; sourceTree = ""; }; + A9EE08D028FDD2550013FF99 /* parse_number.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parse_number.cpp; sourceTree = ""; }; + A9EE08D128FDD2550013FF99 /* bit_vector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bit_vector.cpp; sourceTree = ""; }; + A9EE08D228FDD2550013FF99 /* ilist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ilist.h; sourceTree = ""; }; + A9EE08D328FDD2550013FF99 /* spirv_target_env.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_target_env.h; sourceTree = ""; }; + A9EE08D428FDD2550013FF99 /* table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table.cpp; sourceTree = ""; }; + A9EE08D628FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand_to_undef_reduction_opportunity_finder.h; sourceTree = ""; }; + A9EE08D728FDD2550013FF99 /* remove_selection_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_selection_reduction_opportunity.cpp; sourceTree = ""; }; + A9EE08D828FDD2550013FF99 /* remove_block_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_block_reduction_opportunity.h; sourceTree = ""; }; + A9EE08D928FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand_to_dominating_id_reduction_opportunity_finder.h; sourceTree = ""; }; + A9EE08DA28FDD2550013FF99 /* reduction_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_pass.cpp; sourceTree = ""; }; + A9EE08DB28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_construct_to_block_reduction_opportunity.h; sourceTree = ""; }; + A9EE08DC28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand_to_const_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9EE08DD28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand_to_const_reduction_opportunity_finder.h; sourceTree = ""; }; + A9EE08DE28FDD2550013FF99 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + A9EE08DF28FDD2550013FF99 /* reduction_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_util.cpp; sourceTree = ""; }; + A9EE08E028FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_construct_to_block_reduction_opportunity_finder.h; sourceTree = ""; }; + A9EE08E128FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_loop_to_selection_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9EE08E228FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simple_conditional_branch_to_branch_reduction_opportunity.h; sourceTree = ""; }; + A9EE08E328FDD2550013FF99 /* remove_function_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_function_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9EE08E428FDD2550013FF99 /* remove_instruction_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_instruction_reduction_opportunity.h; sourceTree = ""; }; + A9EE08E528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conditional_branch_to_simple_conditional_branch_reduction_opportunity.h; sourceTree = ""; }; + A9EE08E628FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simple_conditional_branch_to_branch_reduction_opportunity.cpp; sourceTree = ""; }; + A9EE08E728FDD2550013FF99 /* remove_function_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_function_reduction_opportunity.cpp; sourceTree = ""; }; + A9EE08E828FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simple_conditional_branch_to_branch_opportunity_finder.cpp; sourceTree = ""; }; + A9EE08E928FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_selection_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9EE08EA28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp; sourceTree = ""; }; + A9EE08EB28FDD2550013FF99 /* remove_struct_member_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_struct_member_reduction_opportunity.h; sourceTree = ""; }; + A9EE08EC28FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simple_conditional_branch_to_branch_opportunity_finder.h; sourceTree = ""; }; + A9EE08ED28FDD2550013FF99 /* merge_blocks_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_blocks_reduction_opportunity.cpp; sourceTree = ""; }; + A9EE08EE28FDD2550013FF99 /* change_operand_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = change_operand_reduction_opportunity.cpp; sourceTree = ""; }; + A9EE08EF28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_loop_to_selection_reduction_opportunity.h; sourceTree = ""; }; + A9EE08F028FDD2550013FF99 /* remove_function_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_function_reduction_opportunity.h; sourceTree = ""; }; + A9EE08F128FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_unused_instruction_reduction_opportunity_finder.h; sourceTree = ""; }; + A9EE08F228FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = change_operand_to_undef_reduction_opportunity.h; sourceTree = ""; }; + A9EE08F328FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_loop_to_selection_reduction_opportunity_finder.h; sourceTree = ""; }; + A9EE08F428FDD2550013FF99 /* remove_selection_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_selection_reduction_opportunity.h; sourceTree = ""; }; + A9EE08F528FDD2550013FF99 /* remove_instruction_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_instruction_reduction_opportunity.cpp; sourceTree = ""; }; + A9EE08F628FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_selection_reduction_opportunity_finder.h; sourceTree = ""; }; + A9EE08F728FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_blocks_reduction_opportunity_finder.h; sourceTree = ""; }; + A9EE08F828FDD2550013FF99 /* pch_source_reduce.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pch_source_reduce.cpp; sourceTree = ""; }; + A9EE08F928FDD2550013FF99 /* remove_struct_member_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_struct_member_reduction_opportunity.cpp; sourceTree = ""; }; + A9EE08FA28FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_unused_struct_member_reduction_opportunity_finder.h; sourceTree = ""; }; + A9EE08FB28FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_unused_instruction_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9EE08FC28FDD2550013FF99 /* reducer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reducer.cpp; sourceTree = ""; }; + A9EE08FD28FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand_to_undef_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9EE08FE28FDD2550013FF99 /* remove_function_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_function_reduction_opportunity_finder.h; sourceTree = ""; }; + A9EE08FF28FDD2550013FF99 /* pch_source_reduce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pch_source_reduce.h; sourceTree = ""; }; + A9EE090028FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_blocks_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9EE090128FDD2550013FF99 /* reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_opportunity.cpp; sourceTree = ""; }; + A9EE090228FDD2550013FF99 /* reducer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reducer.h; sourceTree = ""; }; + A9EE090328FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = change_operand_to_undef_reduction_opportunity.cpp; sourceTree = ""; }; + A9EE090428FDD2550013FF99 /* reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_opportunity.h; sourceTree = ""; }; + A9EE090528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conditional_branch_to_simple_conditional_branch_opportunity_finder.h; sourceTree = ""; }; + A9EE090628FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand_to_dominating_id_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9EE090728FDD2550013FF99 /* reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_opportunity_finder.h; sourceTree = ""; }; + A9EE090828FDD2550013FF99 /* change_operand_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = change_operand_reduction_opportunity.h; sourceTree = ""; }; + A9EE090928FDD2550013FF99 /* remove_block_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_block_reduction_opportunity_finder.h; sourceTree = ""; }; + A9EE090A28FDD2550013FF99 /* remove_block_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_block_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9EE090B28FDD2550013FF99 /* reduction_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_util.h; sourceTree = ""; }; + A9EE090C28FDD2550013FF99 /* merge_blocks_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_blocks_reduction_opportunity.h; sourceTree = ""; }; + A9EE090D28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp; sourceTree = ""; }; + A9EE090E28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_loop_to_selection_reduction_opportunity.cpp; sourceTree = ""; }; + A9EE090F28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_construct_to_block_reduction_opportunity.cpp; sourceTree = ""; }; + A9EE091028FDD2550013FF99 /* remove_block_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_block_reduction_opportunity.cpp; sourceTree = ""; }; + A9EE091128FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_unused_struct_member_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9EE091228FDD2550013FF99 /* reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9EE091328FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_construct_to_block_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9EE091428FDD2550013FF99 /* reduction_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_pass.h; sourceTree = ""; }; + A9EE091528FDD2550013FF99 /* latest_version_opencl_std_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = latest_version_opencl_std_header.h; sourceTree = ""; }; + A9EE091628FDD2550013FF99 /* spirv_optimizer_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_optimizer_options.cpp; sourceTree = ""; }; + A9EE091728FDD2550013FF99 /* cfa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfa.h; sourceTree = ""; }; + A9EE091828FDD2550013FF99 /* pch_source.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pch_source.h; sourceTree = ""; }; + A9EE091928FDD2550013FF99 /* enum_string_mapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enum_string_mapping.h; sourceTree = ""; }; + A9EE091A28FDD2550013FF99 /* spirv_fuzzer_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_fuzzer_options.cpp; sourceTree = ""; }; + A9EE091B28FDD2550013FF99 /* spirv_reducer_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_reducer_options.h; sourceTree = ""; }; + A9EE091C28FDD2550013FF99 /* spirv_validator_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_validator_options.cpp; sourceTree = ""; }; + A9EE092328FDD2550013FF99 /* print.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = print.cpp; sourceTree = ""; }; + A9EE092428FDD2550013FF99 /* spirv_definition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_definition.h; sourceTree = ""; }; + A9EE092528FDD2550013FF99 /* operand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand.h; sourceTree = ""; }; + A9EE092628FDD2550013FF99 /* spirv_endian.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_endian.cpp; sourceTree = ""; }; + A9EE092728FDD2550013FF99 /* macro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macro.h; sourceTree = ""; }; + A9EE092828FDD2550013FF99 /* spirv_constant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_constant.h; sourceTree = ""; }; + A9EE092928FDD2550013FF99 /* binary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = binary.cpp; sourceTree = ""; }; + A9EE092B28FDD2550013FF99 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + A9EE092C28FDD2550013FF99 /* diff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = diff.h; sourceTree = ""; }; + A9EE092D28FDD2550013FF99 /* lcs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lcs.h; sourceTree = ""; }; + A9EE092E28FDD2550013FF99 /* diff.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = diff.cpp; sourceTree = ""; }; + A9EE092F28FDD2550013FF99 /* spirv_validator_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_validator_options.h; sourceTree = ""; }; + A9EE093028FDD2550013FF99 /* enum_string_mapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = enum_string_mapping.cpp; sourceTree = ""; }; + A9EE093128FDD2550013FF99 /* text_handler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = text_handler.h; sourceTree = ""; }; + A9EE093228FDD2550013FF99 /* parsed_operand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parsed_operand.h; sourceTree = ""; }; + A9EE093328FDD2550013FF99 /* name_mapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = name_mapper.h; sourceTree = ""; }; + A9EE093428FDD2550013FF99 /* spirv_reducer_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_reducer_options.cpp; sourceTree = ""; }; + A9EE093528FDD2550013FF99 /* parsed_operand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parsed_operand.cpp; sourceTree = ""; }; + A9EE093628FDD2550013FF99 /* diagnostic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = diagnostic.h; sourceTree = ""; }; + A9EE093728FDD2550013FF99 /* spirv_endian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_endian.h; sourceTree = ""; }; + A9EE093828FDD2550013FF99 /* name_mapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = name_mapper.cpp; sourceTree = ""; }; + A9EE093A28FDD2550013FF99 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + A9EE093B28FDD2550013FF99 /* linker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = linker.cpp; sourceTree = ""; }; + A9EE093C28FDD2550013FF99 /* common_debug_info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common_debug_info.h; sourceTree = ""; }; + A9EE093D28FDD2550013FF99 /* software_version.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = software_version.cpp; sourceTree = ""; }; + A9EE093E28FDD2550013FF99 /* opcode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = opcode.cpp; sourceTree = ""; }; + A9EE093F28FDD2550013FF99 /* print.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = print.h; sourceTree = ""; }; + A9EE094028FDD2550013FF99 /* ext_inst.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ext_inst.cpp; sourceTree = ""; }; + A9EE094128FDD2550013FF99 /* disassemble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = disassemble.h; sourceTree = ""; }; + A9EE094328FDD2550013FF99 /* optimizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = optimizer.cpp; sourceTree = ""; }; + A9EE094428FDD2550013FF99 /* if_conversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = if_conversion.h; sourceTree = ""; }; + A9EE094528FDD2550013FF99 /* register_pressure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = register_pressure.cpp; sourceTree = ""; }; + A9EE094628FDD2550013FF99 /* loop_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_utils.cpp; sourceTree = ""; }; + A9EE094728FDD2550013FF99 /* strip_nonsemantic_info_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strip_nonsemantic_info_pass.h; sourceTree = ""; }; + A9EE094828FDD2550013FF99 /* spread_volatile_semantics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spread_volatile_semantics.cpp; sourceTree = ""; }; + A9EE094928FDD2550013FF99 /* merge_return_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_return_pass.h; sourceTree = ""; }; + A9EE094A28FDD2550013FF99 /* inline_opaque_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inline_opaque_pass.h; sourceTree = ""; }; + A9EE094B28FDD2550013FF99 /* loop_fusion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_fusion.h; sourceTree = ""; }; + A9EE094C28FDD2550013FF99 /* combine_access_chains.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = combine_access_chains.cpp; sourceTree = ""; }; + A9EE094D28FDD2550013FF99 /* build_module.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = build_module.cpp; sourceTree = ""; }; + A9EE094E28FDD2550013FF99 /* composite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = composite.h; sourceTree = ""; }; + A9EE094F28FDD2550013FF99 /* compact_ids_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compact_ids_pass.h; sourceTree = ""; }; + A9EE095028FDD2550013FF99 /* register_pressure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = register_pressure.h; sourceTree = ""; }; + A9EE095128FDD2550013FF99 /* tree_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tree_iterator.h; sourceTree = ""; }; + A9EE095228FDD2550013FF99 /* interface_var_sroa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = interface_var_sroa.h; sourceTree = ""; }; + A9EE095328FDD2550013FF99 /* graphics_robust_access_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = graphics_robust_access_pass.h; sourceTree = ""; }; + A9EE095428FDD2550013FF99 /* local_single_store_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_single_store_elim_pass.h; sourceTree = ""; }; + A9EE095528FDD2550013FF99 /* reduce_load_size.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduce_load_size.h; sourceTree = ""; }; + A9EE095628FDD2550013FF99 /* code_sink.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = code_sink.cpp; sourceTree = ""; }; + A9EE095728FDD2550013FF99 /* types.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = types.cpp; sourceTree = ""; }; + A9EE095828FDD2550013FF99 /* scalar_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scalar_analysis.h; sourceTree = ""; }; + A9EE095928FDD2550013FF99 /* strip_debug_info_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strip_debug_info_pass.h; sourceTree = ""; }; + A9EE095A28FDD2550013FF99 /* replace_desc_array_access_using_var_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = replace_desc_array_access_using_var_index.h; sourceTree = ""; }; + A9EE095B28FDD2550013FF99 /* cfg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cfg.cpp; sourceTree = ""; }; + A9EE095C28FDD2550013FF99 /* decoration_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoration_manager.cpp; sourceTree = ""; }; + A9EE095D28FDD2550013FF99 /* local_single_block_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_single_block_elim_pass.cpp; sourceTree = ""; }; + A9EE095E28FDD2550013FF99 /* freeze_spec_constant_value_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = freeze_spec_constant_value_pass.cpp; sourceTree = ""; }; + A9EE095F28FDD2550013FF99 /* replace_invalid_opc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = replace_invalid_opc.h; sourceTree = ""; }; + A9EE096028FDD2550013FF99 /* local_access_chain_convert_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_access_chain_convert_pass.h; sourceTree = ""; }; + A9EE096128FDD2550013FF99 /* inst_bindless_check_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inst_bindless_check_pass.cpp; sourceTree = ""; }; + A9EE096228FDD2550013FF99 /* local_redundancy_elimination.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_redundancy_elimination.cpp; sourceTree = ""; }; + A9EE096328FDD2550013FF99 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + A9EE096428FDD2550013FF99 /* instrument_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instrument_pass.cpp; sourceTree = ""; }; + A9EE096528FDD2550013FF99 /* propagator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = propagator.h; sourceTree = ""; }; + A9EE096628FDD2550013FF99 /* instruction_list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction_list.h; sourceTree = ""; }; + A9EE096728FDD2550013FF99 /* feature_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = feature_manager.cpp; sourceTree = ""; }; + A9EE096828FDD2550013FF99 /* pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pass.cpp; sourceTree = ""; }; + A9EE096928FDD2550013FF99 /* loop_fission.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_fission.cpp; sourceTree = ""; }; + A9EE096A28FDD2550013FF99 /* dominator_tree.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dominator_tree.cpp; sourceTree = ""; }; + A9EE096B28FDD2550013FF99 /* amd_ext_to_khr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = amd_ext_to_khr.h; sourceTree = ""; }; + A9EE096C28FDD2550013FF99 /* merge_return_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_return_pass.cpp; sourceTree = ""; }; + A9EE096D28FDD2550013FF99 /* ir_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ir_context.h; sourceTree = ""; }; + A9EE096E28FDD2550013FF99 /* eliminate_dead_constant_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_constant_pass.cpp; sourceTree = ""; }; + A9EE096F28FDD2550013FF99 /* control_dependence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = control_dependence.h; sourceTree = ""; }; + A9EE097028FDD2550013FF99 /* cfg_cleanup_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cfg_cleanup_pass.cpp; sourceTree = ""; }; + A9EE097128FDD2550013FF99 /* wrap_opkill.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wrap_opkill.cpp; sourceTree = ""; }; + A9EE097228FDD2550013FF99 /* const_folding_rules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = const_folding_rules.cpp; sourceTree = ""; }; + A9EE097328FDD2550013FF99 /* loop_unroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_unroller.h; sourceTree = ""; }; + A9EE097428FDD2550013FF99 /* strip_debug_info_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strip_debug_info_pass.cpp; sourceTree = ""; }; + A9EE097528FDD2550013FF99 /* ssa_rewrite_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ssa_rewrite_pass.cpp; sourceTree = ""; }; + A9EE097628FDD2550013FF99 /* loop_dependence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_dependence.cpp; sourceTree = ""; }; + A9EE097728FDD2550013FF99 /* unify_const_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unify_const_pass.h; sourceTree = ""; }; + A9EE097828FDD2550013FF99 /* ir_loader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ir_loader.h; sourceTree = ""; }; + A9EE097928FDD2550013FF99 /* inst_debug_printf_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inst_debug_printf_pass.cpp; sourceTree = ""; }; + A9EE097A28FDD2550013FF99 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = ""; }; + A9EE097B28FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fold_spec_constant_op_and_composite_pass.h; sourceTree = ""; }; + A9EE097C28FDD2550013FF99 /* mem_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mem_pass.cpp; sourceTree = ""; }; + A9EE097D28FDD2550013FF99 /* basic_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = basic_block.h; sourceTree = ""; }; + A9EE097E28FDD2550013FF99 /* remove_duplicates_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_duplicates_pass.cpp; sourceTree = ""; }; + A9EE097F28FDD2550013FF99 /* dead_variable_elimination.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dead_variable_elimination.cpp; sourceTree = ""; }; + A9EE098028FDD2550013FF99 /* block_merge_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_merge_pass.h; sourceTree = ""; }; + A9EE098128FDD2550013FF99 /* module.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = module.cpp; sourceTree = ""; }; + A9EE098228FDD2550013FF99 /* debug_info_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = debug_info_manager.h; sourceTree = ""; }; + A9EE098328FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fold_spec_constant_op_and_composite_pass.cpp; sourceTree = ""; }; + A9EE098428FDD2550013FF99 /* loop_unswitch_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_unswitch_pass.cpp; sourceTree = ""; }; + A9EE098528FDD2550013FF99 /* unify_const_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unify_const_pass.cpp; sourceTree = ""; }; + A9EE098628FDD2550013FF99 /* type_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = type_manager.cpp; sourceTree = ""; }; + A9EE098728FDD2550013FF99 /* private_to_local_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = private_to_local_pass.h; sourceTree = ""; }; + A9EE098828FDD2550013FF99 /* convert_to_half_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convert_to_half_pass.h; sourceTree = ""; }; + A9EE098928FDD2550013FF99 /* remove_dontinline_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_dontinline_pass.h; sourceTree = ""; }; + A9EE098A28FDD2550013FF99 /* relax_float_ops_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = relax_float_ops_pass.h; sourceTree = ""; }; + A9EE098B28FDD2550013FF99 /* inline_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inline_pass.cpp; sourceTree = ""; }; + A9EE098C28FDD2550013FF99 /* def_use_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = def_use_manager.h; sourceTree = ""; }; + A9EE098D28FDD2550013FF99 /* ir_loader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ir_loader.cpp; sourceTree = ""; }; + A9EE098E28FDD2550013FF99 /* convert_to_sampled_image_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convert_to_sampled_image_pass.h; sourceTree = ""; }; + A9EE098F28FDD2550013FF99 /* cfg_cleanup_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfg_cleanup_pass.h; sourceTree = ""; }; + A9EE099028FDD2550013FF99 /* licm_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = licm_pass.cpp; sourceTree = ""; }; + A9EE099128FDD2550013FF99 /* eliminate_dead_functions_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_functions_pass.cpp; sourceTree = ""; }; + A9EE099228FDD2550013FF99 /* local_redundancy_elimination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_redundancy_elimination.h; sourceTree = ""; }; + A9EE099328FDD2550013FF99 /* loop_peeling.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_peeling.h; sourceTree = ""; }; + A9EE099428FDD2550013FF99 /* vector_dce.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vector_dce.cpp; sourceTree = ""; }; + A9EE099528FDD2550013FF99 /* block_merge_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_merge_util.h; sourceTree = ""; }; + A9EE099628FDD2550013FF99 /* loop_unroller.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_unroller.cpp; sourceTree = ""; }; + A9EE099728FDD2550013FF99 /* desc_sroa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = desc_sroa.h; sourceTree = ""; }; + A9EE099828FDD2550013FF99 /* constants.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = constants.cpp; sourceTree = ""; }; + A9EE099928FDD2550013FF99 /* loop_fusion_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_fusion_pass.h; sourceTree = ""; }; + A9EE099A28FDD2550013FF99 /* struct_cfg_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = struct_cfg_analysis.h; sourceTree = ""; }; + A9EE099B28FDD2550013FF99 /* desc_sroa_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = desc_sroa_util.cpp; sourceTree = ""; }; + A9EE099C28FDD2550013FF99 /* inst_buff_addr_check_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inst_buff_addr_check_pass.cpp; sourceTree = ""; }; + A9EE099D28FDD2550013FF99 /* def_use_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = def_use_manager.cpp; sourceTree = ""; }; + A9EE099E28FDD2550013FF99 /* wrap_opkill.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wrap_opkill.h; sourceTree = ""; }; + A9EE099F28FDD2550013FF99 /* empty_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = empty_pass.h; sourceTree = ""; }; + A9EE09A028FDD2550013FF99 /* eliminate_dead_input_components_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_input_components_pass.h; sourceTree = ""; }; + A9EE09A128FDD2550013FF99 /* decoration_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoration_manager.h; sourceTree = ""; }; + A9EE09A228FDD2550013FF99 /* ccp_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ccp_pass.cpp; sourceTree = ""; }; + A9EE09A328FDD2550013FF99 /* local_single_block_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_single_block_elim_pass.h; sourceTree = ""; }; + A9EE09A428FDD2550013FF99 /* interp_fixup_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = interp_fixup_pass.h; sourceTree = ""; }; + A9EE09A528FDD2550013FF99 /* pch_source_opt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pch_source_opt.cpp; sourceTree = ""; }; + A9EE09A628FDD2550013FF99 /* inst_buff_addr_check_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inst_buff_addr_check_pass.h; sourceTree = ""; }; + A9EE09A728FDD2550013FF99 /* strength_reduction_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strength_reduction_pass.h; sourceTree = ""; }; + A9EE09A828FDD2550013FF99 /* aggressive_dead_code_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aggressive_dead_code_elim_pass.cpp; sourceTree = ""; }; + A9EE09A928FDD2550013FF99 /* eliminate_dead_functions_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_functions_util.cpp; sourceTree = ""; }; + A9EE09AA28FDD2550013FF99 /* inst_debug_printf_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inst_debug_printf_pass.h; sourceTree = ""; }; + A9EE09AB28FDD2550013FF99 /* simplification_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simplification_pass.cpp; sourceTree = ""; }; + A9EE09AC28FDD2550013FF99 /* dead_branch_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dead_branch_elim_pass.cpp; sourceTree = ""; }; + A9EE09AD28FDD2550013FF99 /* flatten_decoration_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flatten_decoration_pass.cpp; sourceTree = ""; }; + A9EE09AE28FDD2550013FF99 /* dead_insert_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dead_insert_elim_pass.h; sourceTree = ""; }; + A9EE09AF28FDD2550013FF99 /* folding_rules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = folding_rules.cpp; sourceTree = ""; }; + A9EE09B028FDD2550013FF99 /* freeze_spec_constant_value_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = freeze_spec_constant_value_pass.h; sourceTree = ""; }; + A9EE09B128FDD2550013FF99 /* ir_context.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ir_context.cpp; sourceTree = ""; }; + A9EE09B228FDD2550013FF99 /* instrument_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instrument_pass.h; sourceTree = ""; }; + A9EE09B328FDD2550013FF99 /* mem_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mem_pass.h; sourceTree = ""; }; + A9EE09B428FDD2550013FF99 /* loop_descriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_descriptor.cpp; sourceTree = ""; }; + A9EE09B528FDD2550013FF99 /* eliminate_dead_members_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_members_pass.h; sourceTree = ""; }; + A9EE09B628FDD2550013FF99 /* function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = function.cpp; sourceTree = ""; }; + A9EE09B728FDD2550013FF99 /* instruction_list.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instruction_list.cpp; sourceTree = ""; }; + A9EE09B828FDD2550013FF99 /* control_dependence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = control_dependence.cpp; sourceTree = ""; }; + A9EE09B928FDD2550013FF99 /* composite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = composite.cpp; sourceTree = ""; }; + A9EE09BA28FDD2550013FF99 /* convert_to_half_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = convert_to_half_pass.cpp; sourceTree = ""; }; + A9EE09BB28FDD2550013FF99 /* inline_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inline_pass.h; sourceTree = ""; }; + A9EE09BC28FDD2550013FF99 /* loop_dependence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_dependence.h; sourceTree = ""; }; + A9EE09BD28FDD2550013FF99 /* value_number_table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = value_number_table.h; sourceTree = ""; }; + A9EE09BE28FDD2550013FF99 /* strip_nonsemantic_info_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strip_nonsemantic_info_pass.cpp; sourceTree = ""; }; + A9EE09BF28FDD2550013FF99 /* flatten_decoration_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flatten_decoration_pass.h; sourceTree = ""; }; + A9EE09C028FDD2550013FF99 /* if_conversion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = if_conversion.cpp; sourceTree = ""; }; + A9EE09C128FDD2550013FF99 /* fix_func_call_arguments.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fix_func_call_arguments.cpp; sourceTree = ""; }; + A9EE09C228FDD2550013FF99 /* debug_info_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = debug_info_manager.cpp; sourceTree = ""; }; + A9EE09C328FDD2550013FF99 /* inline_exhaustive_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inline_exhaustive_pass.h; sourceTree = ""; }; + A9EE09C428FDD2550013FF99 /* constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = constants.h; sourceTree = ""; }; + A9EE09C528FDD2550013FF99 /* eliminate_dead_members_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_members_pass.cpp; sourceTree = ""; }; + A9EE09C628FDD2550013FF99 /* strength_reduction_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strength_reduction_pass.cpp; sourceTree = ""; }; + A9EE09C728FDD2550013FF99 /* desc_sroa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = desc_sroa.cpp; sourceTree = ""; }; + A9EE09C828FDD2550013FF99 /* block_merge_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_merge_util.cpp; sourceTree = ""; }; + A9EE09C928FDD2550013FF99 /* upgrade_memory_model.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = upgrade_memory_model.h; sourceTree = ""; }; + A9EE09CA28FDD2550013FF99 /* copy_prop_arrays.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = copy_prop_arrays.cpp; sourceTree = ""; }; + A9EE09CB28FDD2550013FF99 /* pass_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pass_manager.cpp; sourceTree = ""; }; + A9EE09CC28FDD2550013FF99 /* inline_exhaustive_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inline_exhaustive_pass.cpp; sourceTree = ""; }; + A9EE09CD28FDD2550013FF99 /* loop_fission.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_fission.h; sourceTree = ""; }; + A9EE09CE28FDD2550013FF99 /* workaround1209.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = workaround1209.h; sourceTree = ""; }; + A9EE09CF28FDD2550013FF99 /* loop_fusion_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_fusion_pass.cpp; sourceTree = ""; }; + A9EE09D028FDD2550013FF99 /* log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log.h; sourceTree = ""; }; + A9EE09D128FDD2550013FF99 /* copy_prop_arrays.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = copy_prop_arrays.h; sourceTree = ""; }; + A9EE09D228FDD2550013FF99 /* eliminate_dead_constant_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_constant_pass.h; sourceTree = ""; }; + A9EE09D328FDD2550013FF99 /* dead_insert_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dead_insert_elim_pass.cpp; sourceTree = ""; }; + A9EE09D428FDD2550013FF99 /* ssa_rewrite_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssa_rewrite_pass.h; sourceTree = ""; }; + A9EE09D528FDD2550013FF99 /* scalar_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scalar_analysis.cpp; sourceTree = ""; }; + A9EE09D628FDD2550013FF99 /* dead_variable_elimination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dead_variable_elimination.h; sourceTree = ""; }; + A9EE09D728FDD2550013FF99 /* block_merge_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_merge_pass.cpp; sourceTree = ""; }; + A9EE09D828FDD2550013FF99 /* dominator_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dominator_analysis.h; sourceTree = ""; }; + A9EE09D928FDD2550013FF99 /* convert_to_sampled_image_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = convert_to_sampled_image_pass.cpp; sourceTree = ""; }; + A9EE09DA28FDD2550013FF99 /* pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pass.h; sourceTree = ""; }; + A9EE09DB28FDD2550013FF99 /* folding_rules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = folding_rules.h; sourceTree = ""; }; + A9EE09DC28FDD2550013FF99 /* eliminate_dead_functions_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_functions_pass.h; sourceTree = ""; }; + A9EE09DD28FDD2550013FF99 /* eliminate_dead_functions_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_functions_util.h; sourceTree = ""; }; + A9EE09DE28FDD2550013FF99 /* fold.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fold.h; sourceTree = ""; }; + A9EE09DF28FDD2550013FF99 /* local_single_store_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_single_store_elim_pass.cpp; sourceTree = ""; }; + A9EE09E028FDD2550013FF99 /* dead_branch_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dead_branch_elim_pass.h; sourceTree = ""; }; + A9EE09E128FDD2550013FF99 /* private_to_local_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = private_to_local_pass.cpp; sourceTree = ""; }; + A9EE09E228FDD2550013FF99 /* scalar_analysis_nodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scalar_analysis_nodes.h; sourceTree = ""; }; + A9EE09E328FDD2550013FF99 /* propagator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = propagator.cpp; sourceTree = ""; }; + A9EE09E428FDD2550013FF99 /* fix_storage_class.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fix_storage_class.h; sourceTree = ""; }; + A9EE09E528FDD2550013FF99 /* loop_dependence_helpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_dependence_helpers.cpp; sourceTree = ""; }; + A9EE09E628FDD2550013FF99 /* set_spec_constant_default_value_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = set_spec_constant_default_value_pass.cpp; sourceTree = ""; }; + A9EE09E728FDD2550013FF99 /* passes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = passes.h; sourceTree = ""; }; + A9EE09E828FDD2550013FF99 /* fold.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fold.cpp; sourceTree = ""; }; + A9EE09E928FDD2550013FF99 /* amd_ext_to_khr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = amd_ext_to_khr.cpp; sourceTree = ""; }; + A9EE09EA28FDD2550013FF99 /* scalar_replacement_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scalar_replacement_pass.cpp; sourceTree = ""; }; + A9EE09EB28FDD2550013FF99 /* simplification_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simplification_pass.h; sourceTree = ""; }; + A9EE09EC28FDD2550013FF99 /* interface_var_sroa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = interface_var_sroa.cpp; sourceTree = ""; }; + A9EE09ED28FDD2550013FF99 /* remove_duplicates_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_duplicates_pass.h; sourceTree = ""; }; + A9EE09EE28FDD2550013FF99 /* desc_sroa_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = desc_sroa_util.h; sourceTree = ""; }; + A9EE09EF28FDD2550013FF99 /* redundancy_elimination.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = redundancy_elimination.cpp; sourceTree = ""; }; + A9EE09F028FDD2550013FF99 /* reflect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reflect.h; sourceTree = ""; }; + A9EE09F128FDD2550013FF99 /* workaround1209.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = workaround1209.cpp; sourceTree = ""; }; + A9EE09F228FDD2550013FF99 /* null_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = null_pass.h; sourceTree = ""; }; + A9EE09F328FDD2550013FF99 /* relax_float_ops_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = relax_float_ops_pass.cpp; sourceTree = ""; }; + A9EE09F428FDD2550013FF99 /* const_folding_rules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = const_folding_rules.h; sourceTree = ""; }; + A9EE09F528FDD2550013FF99 /* scalar_replacement_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scalar_replacement_pass.h; sourceTree = ""; }; + A9EE09F628FDD2550013FF99 /* instruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instruction.cpp; sourceTree = ""; }; + A9EE09F728FDD2550013FF99 /* pch_source_opt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pch_source_opt.h; sourceTree = ""; }; + A9EE09F828FDD2550013FF99 /* reduce_load_size.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduce_load_size.cpp; sourceTree = ""; }; + A9EE09F928FDD2550013FF99 /* redundancy_elimination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = redundancy_elimination.h; sourceTree = ""; }; + A9EE09FA28FDD2550013FF99 /* fix_storage_class.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fix_storage_class.cpp; sourceTree = ""; }; + A9EE09FB28FDD2550013FF99 /* value_number_table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = value_number_table.cpp; sourceTree = ""; }; + A9EE09FC28FDD2550013FF99 /* remove_unused_interface_variables_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_unused_interface_variables_pass.cpp; sourceTree = ""; }; + A9EE09FD28FDD2550013FF99 /* inline_opaque_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inline_opaque_pass.cpp; sourceTree = ""; }; + A9EE09FE28FDD2550013FF99 /* replace_invalid_opc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = replace_invalid_opc.cpp; sourceTree = ""; }; + A9EE09FF28FDD2550013FF99 /* loop_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_utils.h; sourceTree = ""; }; + A9EE0A0028FDD2550013FF99 /* module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = module.h; sourceTree = ""; }; + A9EE0A0128FDD2550013FF99 /* dominator_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dominator_analysis.cpp; sourceTree = ""; }; + A9EE0A0228FDD2550013FF99 /* ir_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ir_builder.h; sourceTree = ""; }; + A9EE0A0328FDD2550013FF99 /* replace_desc_array_access_using_var_index.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = replace_desc_array_access_using_var_index.cpp; sourceTree = ""; }; + A9EE0A0428FDD2550013FF99 /* loop_unswitch_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_unswitch_pass.h; sourceTree = ""; }; + A9EE0A0528FDD2550013FF99 /* cfg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfg.h; sourceTree = ""; }; + A9EE0A0628FDD2550013FF99 /* code_sink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = code_sink.h; sourceTree = ""; }; + A9EE0A0728FDD2550013FF99 /* dataflow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dataflow.cpp; sourceTree = ""; }; + A9EE0A0828FDD2550013FF99 /* loop_descriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_descriptor.h; sourceTree = ""; }; + A9EE0A0928FDD2550013FF99 /* instruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction.h; sourceTree = ""; }; + A9EE0A0A28FDD2550013FF99 /* aggressive_dead_code_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aggressive_dead_code_elim_pass.h; sourceTree = ""; }; + A9EE0A0B28FDD2550013FF99 /* struct_cfg_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = struct_cfg_analysis.cpp; sourceTree = ""; }; + A9EE0A0C28FDD2550013FF99 /* remove_dontinline_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_dontinline_pass.cpp; sourceTree = ""; }; + A9EE0A0D28FDD2550013FF99 /* vector_dce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vector_dce.h; sourceTree = ""; }; + A9EE0A0E28FDD2550013FF99 /* combine_access_chains.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = combine_access_chains.h; sourceTree = ""; }; + A9EE0A0F28FDD2550013FF99 /* pass_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pass_manager.h; sourceTree = ""; }; + A9EE0A1028FDD2550013FF99 /* spread_volatile_semantics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spread_volatile_semantics.h; sourceTree = ""; }; + A9EE0A1128FDD2550013FF99 /* local_access_chain_convert_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_access_chain_convert_pass.cpp; sourceTree = ""; }; + A9EE0A1228FDD2550013FF99 /* interp_fixup_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = interp_fixup_pass.cpp; sourceTree = ""; }; + A9EE0A1328FDD2550013FF99 /* basic_block.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = basic_block.cpp; sourceTree = ""; }; + A9EE0A1428FDD2550013FF99 /* iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iterator.h; sourceTree = ""; }; + A9EE0A1528FDD2550013FF99 /* licm_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = licm_pass.h; sourceTree = ""; }; + A9EE0A1628FDD2550013FF99 /* build_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = build_module.h; sourceTree = ""; }; + A9EE0A1728FDD2550013FF99 /* ccp_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccp_pass.h; sourceTree = ""; }; + A9EE0A1828FDD2550013FF99 /* graphics_robust_access_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = graphics_robust_access_pass.cpp; sourceTree = ""; }; + A9EE0A1928FDD2550013FF99 /* function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = function.h; sourceTree = ""; }; + A9EE0A1A28FDD2550013FF99 /* fix_func_call_arguments.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fix_func_call_arguments.h; sourceTree = ""; }; + A9EE0A1B28FDD2550013FF99 /* loop_fusion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_fusion.cpp; sourceTree = ""; }; + A9EE0A1C28FDD2550013FF99 /* eliminate_dead_input_components_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_input_components_pass.cpp; sourceTree = ""; }; + A9EE0A1D28FDD2550013FF99 /* upgrade_memory_model.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = upgrade_memory_model.cpp; sourceTree = ""; }; + A9EE0A1E28FDD2550013FF99 /* feature_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = feature_manager.h; sourceTree = ""; }; + A9EE0A1F28FDD2550013FF99 /* dataflow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dataflow.h; sourceTree = ""; }; + A9EE0A2028FDD2550013FF99 /* inst_bindless_check_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inst_bindless_check_pass.h; sourceTree = ""; }; + A9EE0A2128FDD2550013FF99 /* scalar_analysis_simplification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scalar_analysis_simplification.cpp; sourceTree = ""; }; + A9EE0A2228FDD2550013FF99 /* set_spec_constant_default_value_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = set_spec_constant_default_value_pass.h; sourceTree = ""; }; + A9EE0A2328FDD2550013FF99 /* dominator_tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dominator_tree.h; sourceTree = ""; }; + A9EE0A2428FDD2550013FF99 /* remove_unused_interface_variables_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_unused_interface_variables_pass.h; sourceTree = ""; }; + A9EE0A2528FDD2550013FF99 /* type_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = type_manager.h; sourceTree = ""; }; + A9EE0A2628FDD2550013FF99 /* compact_ids_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compact_ids_pass.cpp; sourceTree = ""; }; + A9EE0A2728FDD2550013FF99 /* loop_peeling.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_peeling.cpp; sourceTree = ""; }; + A9EE0A2828FDD2550013FF99 /* table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table.h; sourceTree = ""; }; + A9EE0BB528FDD2560013FF99 /* ext_inst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ext_inst.h; sourceTree = ""; }; + A9EE0BB628FDD2560013FF99 /* diagnostic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = diagnostic.cpp; sourceTree = ""; }; + A9EE0BB728FDD2560013FF99 /* latest_version_spirv_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = latest_version_spirv_header.h; sourceTree = ""; }; + A9EE0BB828FDD2560013FF99 /* libspirv.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = libspirv.cpp; sourceTree = ""; }; + A9EE0BB928FDD2560013FF99 /* instruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction.h; sourceTree = ""; }; + A9EE0BBA28FDD2560013FF99 /* spirv_optimizer_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_optimizer_options.h; sourceTree = ""; }; + A9EE0BBB28FDD2560013FF99 /* opcode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opcode.h; sourceTree = ""; }; + A9EE0BBC28FDD2560013FF99 /* operand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand.cpp; sourceTree = ""; }; + A9EE0BBD28FDD2560013FF99 /* latest_version_glsl_std_450_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = latest_version_glsl_std_450_header.h; sourceTree = ""; }; + A9EE0BBE28FDD2560013FF99 /* extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = extensions.h; sourceTree = ""; }; + A9EE0BBF28FDD2560013FF99 /* disassemble.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = disassemble.cpp; sourceTree = ""; }; + A9EE0BC028FDD2560013FF99 /* binary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = binary.h; sourceTree = ""; }; + A9EE0BC128FDD2560013FF99 /* text_handler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = text_handler.cpp; sourceTree = ""; }; + A9EE0BC328FDD2560013FF99 /* validate_annotation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_annotation.cpp; sourceTree = ""; }; + A9EE0BC428FDD2560013FF99 /* validate_misc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_misc.cpp; sourceTree = ""; }; + A9EE0BC528FDD2560013FF99 /* validate_cfg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_cfg.cpp; sourceTree = ""; }; + A9EE0BC628FDD2560013FF99 /* validate_capability.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_capability.cpp; sourceTree = ""; }; + A9EE0BC728FDD2560013FF99 /* construct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = construct.h; sourceTree = ""; }; + A9EE0BC828FDD2560013FF99 /* validate_barriers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_barriers.cpp; sourceTree = ""; }; + A9EE0BC928FDD2560013FF99 /* validate_non_uniform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_non_uniform.cpp; sourceTree = ""; }; + A9EE0BCA28FDD2560013FF99 /* validate_ray_query.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_ray_query.cpp; sourceTree = ""; }; + A9EE0BCB28FDD2560013FF99 /* validate_ray_tracing.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_ray_tracing.cpp; sourceTree = ""; }; + A9EE0BCC28FDD2560013FF99 /* validate_scopes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_scopes.cpp; sourceTree = ""; }; + A9EE0BCD28FDD2560013FF99 /* validate_atomics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_atomics.cpp; sourceTree = ""; }; + A9EE0BCE28FDD2560013FF99 /* basic_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = basic_block.h; sourceTree = ""; }; + A9EE0BCF28FDD2560013FF99 /* validate_instruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_instruction.cpp; sourceTree = ""; }; + A9EE0BD028FDD2560013FF99 /* validate_decorations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_decorations.cpp; sourceTree = ""; }; + A9EE0BD128FDD2560013FF99 /* validate_debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_debug.cpp; sourceTree = ""; }; + A9EE0BD228FDD2560013FF99 /* validate_builtins.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_builtins.cpp; sourceTree = ""; }; + A9EE0BD328FDD2560013FF99 /* validate_interfaces.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_interfaces.cpp; sourceTree = ""; }; + A9EE0BD428FDD2560013FF99 /* validate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate.cpp; sourceTree = ""; }; + A9EE0BD528FDD2560013FF99 /* validation_state.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validation_state.h; sourceTree = ""; }; + A9EE0BD628FDD2560013FF99 /* validate_constants.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_constants.cpp; sourceTree = ""; }; + A9EE0BD728FDD2560013FF99 /* validate_bitwise.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_bitwise.cpp; sourceTree = ""; }; + A9EE0BD828FDD2560013FF99 /* validate_extensions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_extensions.cpp; sourceTree = ""; }; + A9EE0BD928FDD2560013FF99 /* construct.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = construct.cpp; sourceTree = ""; }; + A9EE0BDA28FDD2560013FF99 /* function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = function.cpp; sourceTree = ""; }; + A9EE0BDB28FDD2560013FF99 /* validate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validate.h; sourceTree = ""; }; + A9EE0BDC28FDD2560013FF99 /* validate_adjacency.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_adjacency.cpp; sourceTree = ""; }; + A9EE0BDD28FDD2560013FF99 /* validate_conversion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_conversion.cpp; sourceTree = ""; }; + A9EE0BDE28FDD2560013FF99 /* validate_small_type_uses.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_small_type_uses.cpp; sourceTree = ""; }; + A9EE0BDF28FDD2560013FF99 /* validate_scopes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validate_scopes.h; sourceTree = ""; }; + A9EE0BE028FDD2560013FF99 /* validate_id.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_id.cpp; sourceTree = ""; }; + A9EE0BE128FDD2560013FF99 /* validate_memory_semantics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validate_memory_semantics.h; sourceTree = ""; }; + A9EE0BE228FDD2560013FF99 /* validate_arithmetics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_arithmetics.cpp; sourceTree = ""; }; + A9EE0BE328FDD2560013FF99 /* validate_mode_setting.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_mode_setting.cpp; sourceTree = ""; }; + A9EE0BE428FDD2560013FF99 /* validate_memory_semantics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_memory_semantics.cpp; sourceTree = ""; }; + A9EE0BE528FDD2560013FF99 /* validate_logicals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_logicals.cpp; sourceTree = ""; }; + A9EE0BE628FDD2560013FF99 /* validate_derivatives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_derivatives.cpp; sourceTree = ""; }; + A9EE0BE728FDD2560013FF99 /* validate_memory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_memory.cpp; sourceTree = ""; }; + A9EE0BE828FDD2560013FF99 /* validate_image.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_image.cpp; sourceTree = ""; }; + A9EE0BE928FDD2560013FF99 /* validate_literals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_literals.cpp; sourceTree = ""; }; + A9EE0BEA28FDD2560013FF99 /* instruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instruction.cpp; sourceTree = ""; }; + A9EE0BEB28FDD2560013FF99 /* validate_type.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_type.cpp; sourceTree = ""; }; + A9EE0BEC28FDD2560013FF99 /* instruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction.h; sourceTree = ""; }; + A9EE0BED28FDD2560013FF99 /* validate_mesh_shading.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_mesh_shading.cpp; sourceTree = ""; }; + A9EE0BEE28FDD2560013FF99 /* validate_execution_limitations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_execution_limitations.cpp; sourceTree = ""; }; + A9EE0BEF28FDD2560013FF99 /* validate_layout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_layout.cpp; sourceTree = ""; }; + A9EE0BF028FDD2560013FF99 /* basic_block.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = basic_block.cpp; sourceTree = ""; }; + A9EE0BF128FDD2560013FF99 /* validate_function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_function.cpp; sourceTree = ""; }; + A9EE0BF228FDD2560013FF99 /* function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = function.h; sourceTree = ""; }; + A9EE0BF328FDD2560013FF99 /* validate_composites.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_composites.cpp; sourceTree = ""; }; + A9EE0BF428FDD2560013FF99 /* validation_state.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validation_state.cpp; sourceTree = ""; }; + A9EE0BF528FDD2560013FF99 /* validate_primitives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_primitives.cpp; sourceTree = ""; }; + A9EE0BF628FDD2560013FF99 /* decoration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoration.h; sourceTree = ""; }; A9FC5F7F249DA96D003CB086 /* package_ext_libs_finish.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_ext_libs_finish.sh; sourceTree = ""; }; /* End PBXFileReference section */ @@ -2285,473 +2346,6 @@ path = External; sourceTree = ""; }; - A926B47E27AC718800144157 /* source */ = { - isa = PBXGroup; - children = ( - A926B47F27AC718800144157 /* spirv_target_env.cpp */, - A926B48027AC718800144157 /* spirv_fuzzer_options.h */, - A926B48127AC718800144157 /* assembly_grammar.h */, - A926B48227AC718800144157 /* lint */, - A926B48927AC718800144157 /* enum_set.h */, - A926B48A27AC718800144157 /* CMakeLists.txt */, - A926B48B27AC718800144157 /* text.cpp */, - A926B48C27AC718800144157 /* assembly_grammar.cpp */, - A926B48D27AC718800144157 /* text.h */, - A926B48E27AC718800144157 /* extensions.cpp */, - A926B48F27AC718800144157 /* pch_source.cpp */, - A926B49027AC718800144157 /* util */, - A926B49F27AC718800144157 /* spirv_target_env.h */, - A926B4A027AC718800144157 /* table.cpp */, - A926B4A127AC718800144157 /* reduce */, - A926B4E127AC718800144157 /* latest_version_opencl_std_header.h */, - A926B4E227AC718800144157 /* spirv_optimizer_options.cpp */, - A926B4E327AC718800144157 /* cfa.h */, - A926B4E427AC718800144157 /* pch_source.h */, - A926B4E527AC718800144157 /* enum_string_mapping.h */, - A926B4E627AC718800144157 /* spirv_fuzzer_options.cpp */, - A926B4E727AC718800144157 /* spirv_reducer_options.h */, - A926B4E827AC718800144157 /* spirv_validator_options.cpp */, - A926B4EF27AC718800144157 /* print.cpp */, - A926B4F027AC718800144157 /* spirv_definition.h */, - A926B4F127AC718800144157 /* operand.h */, - A926B4F227AC718800144157 /* spirv_endian.cpp */, - A926B4F327AC718800144157 /* macro.h */, - A926B4F427AC718800144157 /* spirv_constant.h */, - A926B4F527AC718800144157 /* binary.cpp */, - A926B4F627AC718800144157 /* spirv_validator_options.h */, - A926B4F727AC718800144157 /* enum_string_mapping.cpp */, - A926B4F827AC718800144157 /* text_handler.h */, - A926B4F927AC718800144157 /* parsed_operand.h */, - A926B4FA27AC718800144157 /* name_mapper.h */, - A926B4FB27AC718800144157 /* spirv_reducer_options.cpp */, - A926B4FC27AC718800144157 /* parsed_operand.cpp */, - A926B4FD27AC718800144157 /* diagnostic.h */, - A926B4FE27AC718800144157 /* spirv_endian.h */, - A926B4FF27AC718800144157 /* name_mapper.cpp */, - A926B50027AC718800144157 /* link */, - A926B50327AC718800144157 /* common_debug_info.h */, - A926B50427AC718800144157 /* software_version.cpp */, - A926B50527AC718800144157 /* opcode.cpp */, - A926B50627AC718800144157 /* print.h */, - A926B50727AC718800144157 /* ext_inst.cpp */, - A926B50827AC718800144157 /* disassemble.h */, - A926B50927AC718800144157 /* opt */, - A926B5E727AC718800144157 /* table.h */, - A926B77427AC718900144157 /* ext_inst.h */, - A926B77527AC718900144157 /* diagnostic.cpp */, - A926B77627AC718900144157 /* latest_version_spirv_header.h */, - A926B77727AC718900144157 /* libspirv.cpp */, - A926B77827AC718900144157 /* instruction.h */, - A926B77927AC718900144157 /* spirv_optimizer_options.h */, - A926B77A27AC718900144157 /* opcode.h */, - A926B77B27AC718900144157 /* operand.cpp */, - A926B77C27AC718900144157 /* latest_version_glsl_std_450_header.h */, - A926B77D27AC718900144157 /* extensions.h */, - A926B77E27AC718900144157 /* disassemble.cpp */, - A926B77F27AC718900144157 /* binary.h */, - A926B78027AC718900144157 /* text_handler.cpp */, - A926B78127AC718900144157 /* val */, - ); - path = source; - sourceTree = ""; - }; - A926B48227AC718800144157 /* lint */ = { - isa = PBXGroup; - children = ( - A926B48327AC718800144157 /* CMakeLists.txt */, - A926B48427AC718800144157 /* lint_divergent_derivatives.cpp */, - A926B48527AC718800144157 /* linter.cpp */, - A926B48627AC718800144157 /* divergence_analysis.cpp */, - A926B48727AC718800144157 /* lints.h */, - A926B48827AC718800144157 /* divergence_analysis.h */, - ); - path = lint; - sourceTree = ""; - }; - A926B49027AC718800144157 /* util */ = { - isa = PBXGroup; - children = ( - A926B49127AC718800144157 /* parse_number.h */, - A926B49227AC718800144157 /* ilist_node.h */, - A926B49327AC718800144157 /* make_unique.h */, - A926B49427AC718800144157 /* string_utils.h */, - A926B49527AC718800144157 /* small_vector.h */, - A926B49627AC718800144157 /* timer.cpp */, - A926B49727AC718800144157 /* timer.h */, - A926B49827AC718800144157 /* string_utils.cpp */, - A926B49927AC718800144157 /* bit_vector.h */, - A926B49A27AC718800144157 /* bitutils.h */, - A926B49B27AC718800144157 /* hex_float.h */, - A926B49C27AC718800144157 /* parse_number.cpp */, - A926B49D27AC718800144157 /* bit_vector.cpp */, - A926B49E27AC718800144157 /* ilist.h */, - ); - path = util; - sourceTree = ""; - }; - A926B4A127AC718800144157 /* reduce */ = { - isa = PBXGroup; - children = ( - A926B4A227AC718800144157 /* operand_to_undef_reduction_opportunity_finder.h */, - A926B4A327AC718800144157 /* remove_selection_reduction_opportunity.cpp */, - A926B4A427AC718800144157 /* remove_block_reduction_opportunity.h */, - A926B4A527AC718800144157 /* operand_to_dominating_id_reduction_opportunity_finder.h */, - A926B4A627AC718800144157 /* reduction_pass.cpp */, - A926B4A727AC718800144157 /* structured_construct_to_block_reduction_opportunity.h */, - A926B4A827AC718800144157 /* operand_to_const_reduction_opportunity_finder.cpp */, - A926B4A927AC718800144157 /* operand_to_const_reduction_opportunity_finder.h */, - A926B4AA27AC718800144157 /* CMakeLists.txt */, - A926B4AB27AC718800144157 /* reduction_util.cpp */, - A926B4AC27AC718800144157 /* structured_construct_to_block_reduction_opportunity_finder.h */, - A926B4AD27AC718800144157 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */, - A926B4AE27AC718800144157 /* simple_conditional_branch_to_branch_reduction_opportunity.h */, - A926B4AF27AC718800144157 /* remove_function_reduction_opportunity_finder.cpp */, - A926B4B027AC718800144157 /* remove_instruction_reduction_opportunity.h */, - A926B4B127AC718800144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */, - A926B4B227AC718800144157 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */, - A926B4B327AC718800144157 /* remove_function_reduction_opportunity.cpp */, - A926B4B427AC718800144157 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */, - A926B4B527AC718800144157 /* remove_selection_reduction_opportunity_finder.cpp */, - A926B4B627AC718800144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */, - A926B4B727AC718800144157 /* remove_struct_member_reduction_opportunity.h */, - A926B4B827AC718800144157 /* simple_conditional_branch_to_branch_opportunity_finder.h */, - A926B4B927AC718800144157 /* merge_blocks_reduction_opportunity.cpp */, - A926B4BA27AC718800144157 /* change_operand_reduction_opportunity.cpp */, - A926B4BB27AC718800144157 /* structured_loop_to_selection_reduction_opportunity.h */, - A926B4BC27AC718800144157 /* remove_function_reduction_opportunity.h */, - A926B4BD27AC718800144157 /* remove_unused_instruction_reduction_opportunity_finder.h */, - A926B4BE27AC718800144157 /* change_operand_to_undef_reduction_opportunity.h */, - A926B4BF27AC718800144157 /* structured_loop_to_selection_reduction_opportunity_finder.h */, - A926B4C027AC718800144157 /* remove_selection_reduction_opportunity.h */, - A926B4C127AC718800144157 /* remove_instruction_reduction_opportunity.cpp */, - A926B4C227AC718800144157 /* remove_selection_reduction_opportunity_finder.h */, - A926B4C327AC718800144157 /* merge_blocks_reduction_opportunity_finder.h */, - A926B4C427AC718800144157 /* pch_source_reduce.cpp */, - A926B4C527AC718800144157 /* remove_struct_member_reduction_opportunity.cpp */, - A926B4C627AC718800144157 /* remove_unused_struct_member_reduction_opportunity_finder.h */, - A926B4C727AC718800144157 /* remove_unused_instruction_reduction_opportunity_finder.cpp */, - A926B4C827AC718800144157 /* reducer.cpp */, - A926B4C927AC718800144157 /* operand_to_undef_reduction_opportunity_finder.cpp */, - A926B4CA27AC718800144157 /* remove_function_reduction_opportunity_finder.h */, - A926B4CB27AC718800144157 /* pch_source_reduce.h */, - A926B4CC27AC718800144157 /* merge_blocks_reduction_opportunity_finder.cpp */, - A926B4CD27AC718800144157 /* reduction_opportunity.cpp */, - A926B4CE27AC718800144157 /* reducer.h */, - A926B4CF27AC718800144157 /* change_operand_to_undef_reduction_opportunity.cpp */, - A926B4D027AC718800144157 /* reduction_opportunity.h */, - A926B4D127AC718800144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */, - A926B4D227AC718800144157 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */, - A926B4D327AC718800144157 /* reduction_opportunity_finder.h */, - A926B4D427AC718800144157 /* change_operand_reduction_opportunity.h */, - A926B4D527AC718800144157 /* remove_block_reduction_opportunity_finder.h */, - A926B4D627AC718800144157 /* remove_block_reduction_opportunity_finder.cpp */, - A926B4D727AC718800144157 /* reduction_util.h */, - A926B4D827AC718800144157 /* merge_blocks_reduction_opportunity.h */, - A926B4D927AC718800144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */, - A926B4DA27AC718800144157 /* structured_loop_to_selection_reduction_opportunity.cpp */, - A926B4DB27AC718800144157 /* structured_construct_to_block_reduction_opportunity.cpp */, - A926B4DC27AC718800144157 /* remove_block_reduction_opportunity.cpp */, - A926B4DD27AC718800144157 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */, - A926B4DE27AC718800144157 /* reduction_opportunity_finder.cpp */, - A926B4DF27AC718800144157 /* structured_construct_to_block_reduction_opportunity_finder.cpp */, - A926B4E027AC718800144157 /* reduction_pass.h */, - ); - path = reduce; - sourceTree = ""; - }; - A926B50027AC718800144157 /* link */ = { - isa = PBXGroup; - children = ( - A926B50127AC718800144157 /* CMakeLists.txt */, - A926B50227AC718800144157 /* linker.cpp */, - ); - path = link; - sourceTree = ""; - }; - A926B50927AC718800144157 /* opt */ = { - isa = PBXGroup; - children = ( - A926B50A27AC718800144157 /* optimizer.cpp */, - A926B50B27AC718800144157 /* if_conversion.h */, - A926B50C27AC718800144157 /* register_pressure.cpp */, - A926B50D27AC718800144157 /* loop_utils.cpp */, - A926B50E27AC718800144157 /* strip_nonsemantic_info_pass.h */, - A926B50F27AC718800144157 /* spread_volatile_semantics.cpp */, - A926B51027AC718800144157 /* merge_return_pass.h */, - A926B51127AC718800144157 /* inline_opaque_pass.h */, - A926B51227AC718800144157 /* loop_fusion.h */, - A926B51327AC718800144157 /* combine_access_chains.cpp */, - A926B51427AC718800144157 /* build_module.cpp */, - A926B51527AC718800144157 /* composite.h */, - A926B51627AC718800144157 /* compact_ids_pass.h */, - A926B51727AC718800144157 /* register_pressure.h */, - A926B51827AC718800144157 /* tree_iterator.h */, - A926B51927AC718800144157 /* graphics_robust_access_pass.h */, - A926B51A27AC718800144157 /* local_single_store_elim_pass.h */, - A926B51B27AC718800144157 /* reduce_load_size.h */, - A926B51C27AC718800144157 /* code_sink.cpp */, - A926B51D27AC718800144157 /* types.cpp */, - A926B51E27AC718800144157 /* scalar_analysis.h */, - A926B51F27AC718800144157 /* strip_debug_info_pass.h */, - A926B52027AC718800144157 /* replace_desc_array_access_using_var_index.h */, - A926B52127AC718800144157 /* cfg.cpp */, - A926B52227AC718800144157 /* decoration_manager.cpp */, - A926B52327AC718800144157 /* local_single_block_elim_pass.cpp */, - A926B52427AC718800144157 /* freeze_spec_constant_value_pass.cpp */, - A926B52527AC718800144157 /* replace_invalid_opc.h */, - A926B52627AC718800144157 /* local_access_chain_convert_pass.h */, - A926B52727AC718800144157 /* inst_bindless_check_pass.cpp */, - A926B52827AC718800144157 /* local_redundancy_elimination.cpp */, - A926B52927AC718800144157 /* CMakeLists.txt */, - A926B52A27AC718800144157 /* instrument_pass.cpp */, - A926B52B27AC718800144157 /* propagator.h */, - A926B52C27AC718800144157 /* instruction_list.h */, - A926B52D27AC718800144157 /* feature_manager.cpp */, - A926B52E27AC718800144157 /* pass.cpp */, - A926B52F27AC718800144157 /* loop_fission.cpp */, - A926B53027AC718800144157 /* dominator_tree.cpp */, - A926B53127AC718800144157 /* amd_ext_to_khr.h */, - A926B53227AC718800144157 /* merge_return_pass.cpp */, - A926B53327AC718800144157 /* ir_context.h */, - A926B53427AC718800144157 /* eliminate_dead_constant_pass.cpp */, - A926B53527AC718800144157 /* control_dependence.h */, - A926B53627AC718800144157 /* cfg_cleanup_pass.cpp */, - A926B53727AC718800144157 /* wrap_opkill.cpp */, - A926B53827AC718800144157 /* const_folding_rules.cpp */, - A926B53927AC718800144157 /* loop_unroller.h */, - A926B53A27AC718800144157 /* strip_debug_info_pass.cpp */, - A926B53B27AC718800144157 /* ssa_rewrite_pass.cpp */, - A926B53C27AC718800144157 /* loop_dependence.cpp */, - A926B53D27AC718800144157 /* unify_const_pass.h */, - A926B53E27AC718800144157 /* ir_loader.h */, - A926B53F27AC718800144157 /* inst_debug_printf_pass.cpp */, - A926B54027AC718800144157 /* types.h */, - A926B54127AC718800144157 /* fold_spec_constant_op_and_composite_pass.h */, - A926B54227AC718800144157 /* mem_pass.cpp */, - A926B54327AC718800144157 /* basic_block.h */, - A926B54427AC718800144157 /* remove_duplicates_pass.cpp */, - A926B54527AC718800144157 /* dead_variable_elimination.cpp */, - A926B54627AC718800144157 /* block_merge_pass.h */, - A926B54727AC718800144157 /* module.cpp */, - A926B54827AC718800144157 /* debug_info_manager.h */, - A926B54927AC718800144157 /* fold_spec_constant_op_and_composite_pass.cpp */, - A926B54A27AC718800144157 /* loop_unswitch_pass.cpp */, - A926B54B27AC718800144157 /* unify_const_pass.cpp */, - A926B54C27AC718800144157 /* type_manager.cpp */, - A926B54D27AC718800144157 /* private_to_local_pass.h */, - A926B54E27AC718800144157 /* convert_to_half_pass.h */, - A926B54F27AC718800144157 /* relax_float_ops_pass.h */, - A926B55027AC718800144157 /* inline_pass.cpp */, - A926B55127AC718800144157 /* def_use_manager.h */, - A926B55227AC718800144157 /* ir_loader.cpp */, - A926B55327AC718800144157 /* convert_to_sampled_image_pass.h */, - A926B55427AC718800144157 /* cfg_cleanup_pass.h */, - A926B55527AC718800144157 /* licm_pass.cpp */, - A926B55627AC718800144157 /* eliminate_dead_functions_pass.cpp */, - A926B55727AC718800144157 /* local_redundancy_elimination.h */, - A926B55827AC718800144157 /* loop_peeling.h */, - A926B55927AC718800144157 /* vector_dce.cpp */, - A926B55A27AC718800144157 /* block_merge_util.h */, - A926B55B27AC718800144157 /* loop_unroller.cpp */, - A926B55C27AC718800144157 /* desc_sroa.h */, - A926B55D27AC718800144157 /* constants.cpp */, - A926B55E27AC718800144157 /* loop_fusion_pass.h */, - A926B55F27AC718800144157 /* struct_cfg_analysis.h */, - A926B56027AC718800144157 /* desc_sroa_util.cpp */, - A926B56127AC718800144157 /* inst_buff_addr_check_pass.cpp */, - A926B56227AC718800144157 /* def_use_manager.cpp */, - A926B56327AC718800144157 /* wrap_opkill.h */, - A926B56427AC718800144157 /* empty_pass.h */, - A926B56527AC718800144157 /* decoration_manager.h */, - A926B56627AC718800144157 /* ccp_pass.cpp */, - A926B56727AC718800144157 /* local_single_block_elim_pass.h */, - A926B56827AC718800144157 /* interp_fixup_pass.h */, - A926B56927AC718800144157 /* pch_source_opt.cpp */, - A926B56A27AC718800144157 /* inst_buff_addr_check_pass.h */, - A926B56B27AC718800144157 /* strength_reduction_pass.h */, - A926B56C27AC718800144157 /* aggressive_dead_code_elim_pass.cpp */, - A926B56D27AC718800144157 /* eliminate_dead_functions_util.cpp */, - A926B56E27AC718800144157 /* inst_debug_printf_pass.h */, - A926B56F27AC718800144157 /* simplification_pass.cpp */, - A926B57027AC718800144157 /* dead_branch_elim_pass.cpp */, - A926B57127AC718800144157 /* flatten_decoration_pass.cpp */, - A926B57227AC718800144157 /* dead_insert_elim_pass.h */, - A926B57327AC718800144157 /* folding_rules.cpp */, - A926B57427AC718800144157 /* freeze_spec_constant_value_pass.h */, - A926B57527AC718800144157 /* ir_context.cpp */, - A926B57627AC718800144157 /* instrument_pass.h */, - A926B57727AC718800144157 /* mem_pass.h */, - A926B57827AC718800144157 /* loop_descriptor.cpp */, - A926B57927AC718800144157 /* eliminate_dead_members_pass.h */, - A926B57A27AC718800144157 /* function.cpp */, - A926B57B27AC718800144157 /* instruction_list.cpp */, - A926B57C27AC718800144157 /* control_dependence.cpp */, - A926B57D27AC718800144157 /* composite.cpp */, - A926B57E27AC718800144157 /* convert_to_half_pass.cpp */, - A926B57F27AC718800144157 /* inline_pass.h */, - A926B58027AC718800144157 /* loop_dependence.h */, - A926B58127AC718800144157 /* value_number_table.h */, - A926B58227AC718800144157 /* strip_nonsemantic_info_pass.cpp */, - A926B58327AC718800144157 /* flatten_decoration_pass.h */, - A926B58427AC718800144157 /* if_conversion.cpp */, - A926B58527AC718800144157 /* debug_info_manager.cpp */, - A926B58627AC718800144157 /* inline_exhaustive_pass.h */, - A926B58727AC718800144157 /* constants.h */, - A926B58827AC718800144157 /* eliminate_dead_members_pass.cpp */, - A926B58927AC718800144157 /* strength_reduction_pass.cpp */, - A926B58A27AC718800144157 /* desc_sroa.cpp */, - A926B58B27AC718800144157 /* block_merge_util.cpp */, - A926B58C27AC718800144157 /* upgrade_memory_model.h */, - A926B58D27AC718800144157 /* copy_prop_arrays.cpp */, - A926B58E27AC718800144157 /* pass_manager.cpp */, - A926B58F27AC718800144157 /* inline_exhaustive_pass.cpp */, - A926B59027AC718800144157 /* loop_fission.h */, - A926B59127AC718800144157 /* workaround1209.h */, - A926B59227AC718800144157 /* loop_fusion_pass.cpp */, - A926B59327AC718800144157 /* log.h */, - A926B59427AC718800144157 /* copy_prop_arrays.h */, - A926B59527AC718800144157 /* eliminate_dead_constant_pass.h */, - A926B59627AC718800144157 /* dead_insert_elim_pass.cpp */, - A926B59727AC718800144157 /* ssa_rewrite_pass.h */, - A926B59827AC718800144157 /* scalar_analysis.cpp */, - A926B59927AC718800144157 /* dead_variable_elimination.h */, - A926B59A27AC718800144157 /* block_merge_pass.cpp */, - A926B59B27AC718800144157 /* dominator_analysis.h */, - A926B59C27AC718800144157 /* convert_to_sampled_image_pass.cpp */, - A926B59D27AC718800144157 /* pass.h */, - A926B59E27AC718800144157 /* folding_rules.h */, - A926B59F27AC718800144157 /* eliminate_dead_functions_pass.h */, - A926B5A027AC718800144157 /* eliminate_dead_functions_util.h */, - A926B5A127AC718800144157 /* fold.h */, - A926B5A227AC718800144157 /* local_single_store_elim_pass.cpp */, - A926B5A327AC718800144157 /* dead_branch_elim_pass.h */, - A926B5A427AC718800144157 /* private_to_local_pass.cpp */, - A926B5A527AC718800144157 /* scalar_analysis_nodes.h */, - A926B5A627AC718800144157 /* propagator.cpp */, - A926B5A727AC718800144157 /* fix_storage_class.h */, - A926B5A827AC718800144157 /* loop_dependence_helpers.cpp */, - A926B5A927AC718800144157 /* set_spec_constant_default_value_pass.cpp */, - A926B5AA27AC718800144157 /* passes.h */, - A926B5AB27AC718800144157 /* fold.cpp */, - A926B5AC27AC718800144157 /* amd_ext_to_khr.cpp */, - A926B5AD27AC718800144157 /* scalar_replacement_pass.cpp */, - A926B5AE27AC718800144157 /* simplification_pass.h */, - A926B5AF27AC718800144157 /* remove_duplicates_pass.h */, - A926B5B027AC718800144157 /* desc_sroa_util.h */, - A926B5B127AC718800144157 /* redundancy_elimination.cpp */, - A926B5B227AC718800144157 /* reflect.h */, - A926B5B327AC718800144157 /* workaround1209.cpp */, - A926B5B427AC718800144157 /* null_pass.h */, - A926B5B527AC718800144157 /* relax_float_ops_pass.cpp */, - A926B5B627AC718800144157 /* const_folding_rules.h */, - A926B5B727AC718800144157 /* scalar_replacement_pass.h */, - A926B5B827AC718800144157 /* instruction.cpp */, - A926B5B927AC718800144157 /* pch_source_opt.h */, - A926B5BA27AC718800144157 /* reduce_load_size.cpp */, - A926B5BB27AC718800144157 /* redundancy_elimination.h */, - A926B5BC27AC718800144157 /* fix_storage_class.cpp */, - A926B5BD27AC718800144157 /* value_number_table.cpp */, - A926B5BE27AC718800144157 /* remove_unused_interface_variables_pass.cpp */, - A926B5BF27AC718800144157 /* inline_opaque_pass.cpp */, - A926B5C027AC718800144157 /* replace_invalid_opc.cpp */, - A926B5C127AC718800144157 /* loop_utils.h */, - A926B5C227AC718800144157 /* module.h */, - A926B5C327AC718800144157 /* dominator_analysis.cpp */, - A926B5C427AC718800144157 /* ir_builder.h */, - A926B5C527AC718800144157 /* replace_desc_array_access_using_var_index.cpp */, - A926B5C627AC718800144157 /* loop_unswitch_pass.h */, - A926B5C727AC718800144157 /* cfg.h */, - A926B5C827AC718800144157 /* code_sink.h */, - A926B5C927AC718800144157 /* dataflow.cpp */, - A926B5CA27AC718800144157 /* loop_descriptor.h */, - A926B5CB27AC718800144157 /* instruction.h */, - A926B5CC27AC718800144157 /* aggressive_dead_code_elim_pass.h */, - A926B5CD27AC718800144157 /* struct_cfg_analysis.cpp */, - A926B5CE27AC718800144157 /* vector_dce.h */, - A926B5CF27AC718800144157 /* combine_access_chains.h */, - A926B5D027AC718800144157 /* pass_manager.h */, - A926B5D127AC718800144157 /* spread_volatile_semantics.h */, - A926B5D227AC718800144157 /* local_access_chain_convert_pass.cpp */, - A926B5D327AC718800144157 /* interp_fixup_pass.cpp */, - A926B5D427AC718800144157 /* basic_block.cpp */, - A926B5D527AC718800144157 /* iterator.h */, - A926B5D627AC718800144157 /* licm_pass.h */, - A926B5D727AC718800144157 /* build_module.h */, - A926B5D827AC718800144157 /* ccp_pass.h */, - A926B5D927AC718800144157 /* graphics_robust_access_pass.cpp */, - A926B5DA27AC718800144157 /* function.h */, - A926B5DB27AC718800144157 /* loop_fusion.cpp */, - A926B5DC27AC718800144157 /* upgrade_memory_model.cpp */, - A926B5DD27AC718800144157 /* feature_manager.h */, - A926B5DE27AC718800144157 /* dataflow.h */, - A926B5DF27AC718800144157 /* inst_bindless_check_pass.h */, - A926B5E027AC718800144157 /* scalar_analysis_simplification.cpp */, - A926B5E127AC718800144157 /* set_spec_constant_default_value_pass.h */, - A926B5E227AC718800144157 /* dominator_tree.h */, - A926B5E327AC718800144157 /* remove_unused_interface_variables_pass.h */, - A926B5E427AC718800144157 /* type_manager.h */, - A926B5E527AC718800144157 /* compact_ids_pass.cpp */, - A926B5E627AC718800144157 /* loop_peeling.cpp */, - ); - path = opt; - sourceTree = ""; - }; - A926B78127AC718900144157 /* val */ = { - isa = PBXGroup; - children = ( - A926B78227AC718900144157 /* validate_annotation.cpp */, - A926B78327AC718900144157 /* validate_misc.cpp */, - A926B78427AC718900144157 /* validate_cfg.cpp */, - A926B78527AC718900144157 /* validate_capability.cpp */, - A926B78627AC718900144157 /* construct.h */, - A926B78727AC718900144157 /* validate_barriers.cpp */, - A926B78827AC718900144157 /* validate_non_uniform.cpp */, - A926B78927AC718900144157 /* validate_scopes.cpp */, - A926B78A27AC718900144157 /* validate_atomics.cpp */, - A926B78B27AC718900144157 /* basic_block.h */, - A926B78C27AC718900144157 /* validate_instruction.cpp */, - A926B78D27AC718900144157 /* validate_decorations.cpp */, - A926B78E27AC718900144157 /* validate_debug.cpp */, - A926B78F27AC718900144157 /* validate_builtins.cpp */, - A926B79027AC718900144157 /* validate_interfaces.cpp */, - A926B79127AC718900144157 /* validate.cpp */, - A926B79227AC718900144157 /* validation_state.h */, - A926B79327AC718900144157 /* validate_constants.cpp */, - A926B79427AC718900144157 /* validate_bitwise.cpp */, - A926B79527AC718900144157 /* validate_extensions.cpp */, - A926B79627AC718900144157 /* construct.cpp */, - A926B79727AC718900144157 /* function.cpp */, - A926B79827AC718900144157 /* validate.h */, - A926B79927AC718900144157 /* validate_adjacency.cpp */, - A926B79A27AC718900144157 /* validate_conversion.cpp */, - A926B79B27AC718900144157 /* validate_small_type_uses.cpp */, - A926B79C27AC718900144157 /* validate_scopes.h */, - A926B79D27AC718900144157 /* validate_id.cpp */, - A926B79E27AC718900144157 /* validate_memory_semantics.h */, - A926B79F27AC718900144157 /* validate_arithmetics.cpp */, - A926B7A027AC718900144157 /* validate_mode_setting.cpp */, - A926B7A127AC718900144157 /* validate_memory_semantics.cpp */, - A926B7A227AC718900144157 /* validate_logicals.cpp */, - A926B7A327AC718900144157 /* validate_derivatives.cpp */, - A926B7A427AC718900144157 /* validate_memory.cpp */, - A926B7A527AC718900144157 /* validate_image.cpp */, - A926B7A627AC718900144157 /* validate_literals.cpp */, - A926B7A727AC718900144157 /* instruction.cpp */, - A926B7A827AC718900144157 /* validate_type.cpp */, - A926B7A927AC718900144157 /* instruction.h */, - A926B7AA27AC718900144157 /* validate_execution_limitations.cpp */, - A926B7AB27AC718900144157 /* validate_layout.cpp */, - A926B7AC27AC718900144157 /* basic_block.cpp */, - A926B7AD27AC718900144157 /* validate_function.cpp */, - A926B7AE27AC718900144157 /* function.h */, - A926B7AF27AC718900144157 /* validate_composites.cpp */, - A926B7B027AC718900144157 /* validation_state.cpp */, - A926B7B127AC718900144157 /* validate_primitives.cpp */, - A926B7B227AC718900144157 /* decoration.h */, - ); - path = val; - sourceTree = ""; - }; A9679AAB21D2699800856BF7 /* Scripts */ = { isa = PBXGroup; children = ( @@ -2768,7 +2362,7 @@ A972A82421CECC410013AB25 /* SPIRV-Tools */ = { isa = PBXGroup; children = ( - A926B47E27AC718800144157 /* source */, + A9EE08B128FDD2550013FF99 /* source */, ); name = "SPIRV-Tools"; path = "glslang/External/spirv-tools"; @@ -3021,6 +2615,497 @@ path = GenericCodeGen; sourceTree = ""; }; + A9EE08B128FDD2550013FF99 /* source */ = { + isa = PBXGroup; + children = ( + A9EE08B228FDD2550013FF99 /* spirv_target_env.cpp */, + A9EE08B328FDD2550013FF99 /* spirv_fuzzer_options.h */, + A9EE08B428FDD2550013FF99 /* assembly_grammar.h */, + A9EE08B528FDD2550013FF99 /* lint */, + A9EE08BC28FDD2550013FF99 /* enum_set.h */, + A9EE08BD28FDD2550013FF99 /* CMakeLists.txt */, + A9EE08BE28FDD2550013FF99 /* text.cpp */, + A9EE08BF28FDD2550013FF99 /* assembly_grammar.cpp */, + A9EE08C028FDD2550013FF99 /* text.h */, + A9EE08C128FDD2550013FF99 /* extensions.cpp */, + A9EE08C228FDD2550013FF99 /* pch_source.cpp */, + A9EE08C328FDD2550013FF99 /* util */, + A9EE08D328FDD2550013FF99 /* spirv_target_env.h */, + A9EE08D428FDD2550013FF99 /* table.cpp */, + A9EE08D528FDD2550013FF99 /* reduce */, + A9EE091528FDD2550013FF99 /* latest_version_opencl_std_header.h */, + A9EE091628FDD2550013FF99 /* spirv_optimizer_options.cpp */, + A9EE091728FDD2550013FF99 /* cfa.h */, + A9EE091828FDD2550013FF99 /* pch_source.h */, + A9EE091928FDD2550013FF99 /* enum_string_mapping.h */, + A9EE091A28FDD2550013FF99 /* spirv_fuzzer_options.cpp */, + A9EE091B28FDD2550013FF99 /* spirv_reducer_options.h */, + A9EE091C28FDD2550013FF99 /* spirv_validator_options.cpp */, + A9EE092328FDD2550013FF99 /* print.cpp */, + A9EE092428FDD2550013FF99 /* spirv_definition.h */, + A9EE092528FDD2550013FF99 /* operand.h */, + A9EE092628FDD2550013FF99 /* spirv_endian.cpp */, + A9EE092728FDD2550013FF99 /* macro.h */, + A9EE092828FDD2550013FF99 /* spirv_constant.h */, + A9EE092928FDD2550013FF99 /* binary.cpp */, + A9EE092A28FDD2550013FF99 /* diff */, + A9EE092F28FDD2550013FF99 /* spirv_validator_options.h */, + A9EE093028FDD2550013FF99 /* enum_string_mapping.cpp */, + A9EE093128FDD2550013FF99 /* text_handler.h */, + A9EE093228FDD2550013FF99 /* parsed_operand.h */, + A9EE093328FDD2550013FF99 /* name_mapper.h */, + A9EE093428FDD2550013FF99 /* spirv_reducer_options.cpp */, + A9EE093528FDD2550013FF99 /* parsed_operand.cpp */, + A9EE093628FDD2550013FF99 /* diagnostic.h */, + A9EE093728FDD2550013FF99 /* spirv_endian.h */, + A9EE093828FDD2550013FF99 /* name_mapper.cpp */, + A9EE093928FDD2550013FF99 /* link */, + A9EE093C28FDD2550013FF99 /* common_debug_info.h */, + A9EE093D28FDD2550013FF99 /* software_version.cpp */, + A9EE093E28FDD2550013FF99 /* opcode.cpp */, + A9EE093F28FDD2550013FF99 /* print.h */, + A9EE094028FDD2550013FF99 /* ext_inst.cpp */, + A9EE094128FDD2550013FF99 /* disassemble.h */, + A9EE094228FDD2550013FF99 /* opt */, + A9EE0A2828FDD2550013FF99 /* table.h */, + A9EE0BB528FDD2560013FF99 /* ext_inst.h */, + A9EE0BB628FDD2560013FF99 /* diagnostic.cpp */, + A9EE0BB728FDD2560013FF99 /* latest_version_spirv_header.h */, + A9EE0BB828FDD2560013FF99 /* libspirv.cpp */, + A9EE0BB928FDD2560013FF99 /* instruction.h */, + A9EE0BBA28FDD2560013FF99 /* spirv_optimizer_options.h */, + A9EE0BBB28FDD2560013FF99 /* opcode.h */, + A9EE0BBC28FDD2560013FF99 /* operand.cpp */, + A9EE0BBD28FDD2560013FF99 /* latest_version_glsl_std_450_header.h */, + A9EE0BBE28FDD2560013FF99 /* extensions.h */, + A9EE0BBF28FDD2560013FF99 /* disassemble.cpp */, + A9EE0BC028FDD2560013FF99 /* binary.h */, + A9EE0BC128FDD2560013FF99 /* text_handler.cpp */, + A9EE0BC228FDD2560013FF99 /* val */, + ); + path = source; + sourceTree = ""; + }; + A9EE08B528FDD2550013FF99 /* lint */ = { + isa = PBXGroup; + children = ( + A9EE08B628FDD2550013FF99 /* CMakeLists.txt */, + A9EE08B728FDD2550013FF99 /* lint_divergent_derivatives.cpp */, + A9EE08B828FDD2550013FF99 /* linter.cpp */, + A9EE08B928FDD2550013FF99 /* divergence_analysis.cpp */, + A9EE08BA28FDD2550013FF99 /* lints.h */, + A9EE08BB28FDD2550013FF99 /* divergence_analysis.h */, + ); + path = lint; + sourceTree = ""; + }; + A9EE08C328FDD2550013FF99 /* util */ = { + isa = PBXGroup; + children = ( + A9EE08C428FDD2550013FF99 /* parse_number.h */, + A9EE08C528FDD2550013FF99 /* ilist_node.h */, + A9EE08C628FDD2550013FF99 /* make_unique.h */, + A9EE08C728FDD2550013FF99 /* string_utils.h */, + A9EE08C828FDD2550013FF99 /* small_vector.h */, + A9EE08C928FDD2550013FF99 /* hash_combine.h */, + A9EE08CA28FDD2550013FF99 /* timer.cpp */, + A9EE08CB28FDD2550013FF99 /* timer.h */, + A9EE08CC28FDD2550013FF99 /* string_utils.cpp */, + A9EE08CD28FDD2550013FF99 /* bit_vector.h */, + A9EE08CE28FDD2550013FF99 /* bitutils.h */, + A9EE08CF28FDD2550013FF99 /* hex_float.h */, + A9EE08D028FDD2550013FF99 /* parse_number.cpp */, + A9EE08D128FDD2550013FF99 /* bit_vector.cpp */, + A9EE08D228FDD2550013FF99 /* ilist.h */, + ); + path = util; + sourceTree = ""; + }; + A9EE08D528FDD2550013FF99 /* reduce */ = { + isa = PBXGroup; + children = ( + A9EE08D628FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.h */, + A9EE08D728FDD2550013FF99 /* remove_selection_reduction_opportunity.cpp */, + A9EE08D828FDD2550013FF99 /* remove_block_reduction_opportunity.h */, + A9EE08D928FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h */, + A9EE08DA28FDD2550013FF99 /* reduction_pass.cpp */, + A9EE08DB28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.h */, + A9EE08DC28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.cpp */, + A9EE08DD28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.h */, + A9EE08DE28FDD2550013FF99 /* CMakeLists.txt */, + A9EE08DF28FDD2550013FF99 /* reduction_util.cpp */, + A9EE08E028FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h */, + A9EE08E128FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */, + A9EE08E228FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h */, + A9EE08E328FDD2550013FF99 /* remove_function_reduction_opportunity_finder.cpp */, + A9EE08E428FDD2550013FF99 /* remove_instruction_reduction_opportunity.h */, + A9EE08E528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */, + A9EE08E628FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */, + A9EE08E728FDD2550013FF99 /* remove_function_reduction_opportunity.cpp */, + A9EE08E828FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */, + A9EE08E928FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.cpp */, + A9EE08EA28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */, + A9EE08EB28FDD2550013FF99 /* remove_struct_member_reduction_opportunity.h */, + A9EE08EC28FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h */, + A9EE08ED28FDD2550013FF99 /* merge_blocks_reduction_opportunity.cpp */, + A9EE08EE28FDD2550013FF99 /* change_operand_reduction_opportunity.cpp */, + A9EE08EF28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.h */, + A9EE08F028FDD2550013FF99 /* remove_function_reduction_opportunity.h */, + A9EE08F128FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h */, + A9EE08F228FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.h */, + A9EE08F328FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h */, + A9EE08F428FDD2550013FF99 /* remove_selection_reduction_opportunity.h */, + A9EE08F528FDD2550013FF99 /* remove_instruction_reduction_opportunity.cpp */, + A9EE08F628FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.h */, + A9EE08F728FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.h */, + A9EE08F828FDD2550013FF99 /* pch_source_reduce.cpp */, + A9EE08F928FDD2550013FF99 /* remove_struct_member_reduction_opportunity.cpp */, + A9EE08FA28FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h */, + A9EE08FB28FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp */, + A9EE08FC28FDD2550013FF99 /* reducer.cpp */, + A9EE08FD28FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp */, + A9EE08FE28FDD2550013FF99 /* remove_function_reduction_opportunity_finder.h */, + A9EE08FF28FDD2550013FF99 /* pch_source_reduce.h */, + A9EE090028FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.cpp */, + A9EE090128FDD2550013FF99 /* reduction_opportunity.cpp */, + A9EE090228FDD2550013FF99 /* reducer.h */, + A9EE090328FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.cpp */, + A9EE090428FDD2550013FF99 /* reduction_opportunity.h */, + A9EE090528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */, + A9EE090628FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */, + A9EE090728FDD2550013FF99 /* reduction_opportunity_finder.h */, + A9EE090828FDD2550013FF99 /* change_operand_reduction_opportunity.h */, + A9EE090928FDD2550013FF99 /* remove_block_reduction_opportunity_finder.h */, + A9EE090A28FDD2550013FF99 /* remove_block_reduction_opportunity_finder.cpp */, + A9EE090B28FDD2550013FF99 /* reduction_util.h */, + A9EE090C28FDD2550013FF99 /* merge_blocks_reduction_opportunity.h */, + A9EE090D28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */, + A9EE090E28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp */, + A9EE090F28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.cpp */, + A9EE091028FDD2550013FF99 /* remove_block_reduction_opportunity.cpp */, + A9EE091128FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */, + A9EE091228FDD2550013FF99 /* reduction_opportunity_finder.cpp */, + A9EE091328FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp */, + A9EE091428FDD2550013FF99 /* reduction_pass.h */, + ); + path = reduce; + sourceTree = ""; + }; + A9EE092A28FDD2550013FF99 /* diff */ = { + isa = PBXGroup; + children = ( + A9EE092B28FDD2550013FF99 /* CMakeLists.txt */, + A9EE092C28FDD2550013FF99 /* diff.h */, + A9EE092D28FDD2550013FF99 /* lcs.h */, + A9EE092E28FDD2550013FF99 /* diff.cpp */, + ); + path = diff; + sourceTree = ""; + }; + A9EE093928FDD2550013FF99 /* link */ = { + isa = PBXGroup; + children = ( + A9EE093A28FDD2550013FF99 /* CMakeLists.txt */, + A9EE093B28FDD2550013FF99 /* linker.cpp */, + ); + path = link; + sourceTree = ""; + }; + A9EE094228FDD2550013FF99 /* opt */ = { + isa = PBXGroup; + children = ( + A9EE094328FDD2550013FF99 /* optimizer.cpp */, + A9EE094428FDD2550013FF99 /* if_conversion.h */, + A9EE094528FDD2550013FF99 /* register_pressure.cpp */, + A9EE094628FDD2550013FF99 /* loop_utils.cpp */, + A9EE094728FDD2550013FF99 /* strip_nonsemantic_info_pass.h */, + A9EE094828FDD2550013FF99 /* spread_volatile_semantics.cpp */, + A9EE094928FDD2550013FF99 /* merge_return_pass.h */, + A9EE094A28FDD2550013FF99 /* inline_opaque_pass.h */, + A9EE094B28FDD2550013FF99 /* loop_fusion.h */, + A9EE094C28FDD2550013FF99 /* combine_access_chains.cpp */, + A9EE094D28FDD2550013FF99 /* build_module.cpp */, + A9EE094E28FDD2550013FF99 /* composite.h */, + A9EE094F28FDD2550013FF99 /* compact_ids_pass.h */, + A9EE095028FDD2550013FF99 /* register_pressure.h */, + A9EE095128FDD2550013FF99 /* tree_iterator.h */, + A9EE095228FDD2550013FF99 /* interface_var_sroa.h */, + A9EE095328FDD2550013FF99 /* graphics_robust_access_pass.h */, + A9EE095428FDD2550013FF99 /* local_single_store_elim_pass.h */, + A9EE095528FDD2550013FF99 /* reduce_load_size.h */, + A9EE095628FDD2550013FF99 /* code_sink.cpp */, + A9EE095728FDD2550013FF99 /* types.cpp */, + A9EE095828FDD2550013FF99 /* scalar_analysis.h */, + A9EE095928FDD2550013FF99 /* strip_debug_info_pass.h */, + A9EE095A28FDD2550013FF99 /* replace_desc_array_access_using_var_index.h */, + A9EE095B28FDD2550013FF99 /* cfg.cpp */, + A9EE095C28FDD2550013FF99 /* decoration_manager.cpp */, + A9EE095D28FDD2550013FF99 /* local_single_block_elim_pass.cpp */, + A9EE095E28FDD2550013FF99 /* freeze_spec_constant_value_pass.cpp */, + A9EE095F28FDD2550013FF99 /* replace_invalid_opc.h */, + A9EE096028FDD2550013FF99 /* local_access_chain_convert_pass.h */, + A9EE096128FDD2550013FF99 /* inst_bindless_check_pass.cpp */, + A9EE096228FDD2550013FF99 /* local_redundancy_elimination.cpp */, + A9EE096328FDD2550013FF99 /* CMakeLists.txt */, + A9EE096428FDD2550013FF99 /* instrument_pass.cpp */, + A9EE096528FDD2550013FF99 /* propagator.h */, + A9EE096628FDD2550013FF99 /* instruction_list.h */, + A9EE096728FDD2550013FF99 /* feature_manager.cpp */, + A9EE096828FDD2550013FF99 /* pass.cpp */, + A9EE096928FDD2550013FF99 /* loop_fission.cpp */, + A9EE096A28FDD2550013FF99 /* dominator_tree.cpp */, + A9EE096B28FDD2550013FF99 /* amd_ext_to_khr.h */, + A9EE096C28FDD2550013FF99 /* merge_return_pass.cpp */, + A9EE096D28FDD2550013FF99 /* ir_context.h */, + A9EE096E28FDD2550013FF99 /* eliminate_dead_constant_pass.cpp */, + A9EE096F28FDD2550013FF99 /* control_dependence.h */, + A9EE097028FDD2550013FF99 /* cfg_cleanup_pass.cpp */, + A9EE097128FDD2550013FF99 /* wrap_opkill.cpp */, + A9EE097228FDD2550013FF99 /* const_folding_rules.cpp */, + A9EE097328FDD2550013FF99 /* loop_unroller.h */, + A9EE097428FDD2550013FF99 /* strip_debug_info_pass.cpp */, + A9EE097528FDD2550013FF99 /* ssa_rewrite_pass.cpp */, + A9EE097628FDD2550013FF99 /* loop_dependence.cpp */, + A9EE097728FDD2550013FF99 /* unify_const_pass.h */, + A9EE097828FDD2550013FF99 /* ir_loader.h */, + A9EE097928FDD2550013FF99 /* inst_debug_printf_pass.cpp */, + A9EE097A28FDD2550013FF99 /* types.h */, + A9EE097B28FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.h */, + A9EE097C28FDD2550013FF99 /* mem_pass.cpp */, + A9EE097D28FDD2550013FF99 /* basic_block.h */, + A9EE097E28FDD2550013FF99 /* remove_duplicates_pass.cpp */, + A9EE097F28FDD2550013FF99 /* dead_variable_elimination.cpp */, + A9EE098028FDD2550013FF99 /* block_merge_pass.h */, + A9EE098128FDD2550013FF99 /* module.cpp */, + A9EE098228FDD2550013FF99 /* debug_info_manager.h */, + A9EE098328FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.cpp */, + A9EE098428FDD2550013FF99 /* loop_unswitch_pass.cpp */, + A9EE098528FDD2550013FF99 /* unify_const_pass.cpp */, + A9EE098628FDD2550013FF99 /* type_manager.cpp */, + A9EE098728FDD2550013FF99 /* private_to_local_pass.h */, + A9EE098828FDD2550013FF99 /* convert_to_half_pass.h */, + A9EE098928FDD2550013FF99 /* remove_dontinline_pass.h */, + A9EE098A28FDD2550013FF99 /* relax_float_ops_pass.h */, + A9EE098B28FDD2550013FF99 /* inline_pass.cpp */, + A9EE098C28FDD2550013FF99 /* def_use_manager.h */, + A9EE098D28FDD2550013FF99 /* ir_loader.cpp */, + A9EE098E28FDD2550013FF99 /* convert_to_sampled_image_pass.h */, + A9EE098F28FDD2550013FF99 /* cfg_cleanup_pass.h */, + A9EE099028FDD2550013FF99 /* licm_pass.cpp */, + A9EE099128FDD2550013FF99 /* eliminate_dead_functions_pass.cpp */, + A9EE099228FDD2550013FF99 /* local_redundancy_elimination.h */, + A9EE099328FDD2550013FF99 /* loop_peeling.h */, + A9EE099428FDD2550013FF99 /* vector_dce.cpp */, + A9EE099528FDD2550013FF99 /* block_merge_util.h */, + A9EE099628FDD2550013FF99 /* loop_unroller.cpp */, + A9EE099728FDD2550013FF99 /* desc_sroa.h */, + A9EE099828FDD2550013FF99 /* constants.cpp */, + A9EE099928FDD2550013FF99 /* loop_fusion_pass.h */, + A9EE099A28FDD2550013FF99 /* struct_cfg_analysis.h */, + A9EE099B28FDD2550013FF99 /* desc_sroa_util.cpp */, + A9EE099C28FDD2550013FF99 /* inst_buff_addr_check_pass.cpp */, + A9EE099D28FDD2550013FF99 /* def_use_manager.cpp */, + A9EE099E28FDD2550013FF99 /* wrap_opkill.h */, + A9EE099F28FDD2550013FF99 /* empty_pass.h */, + A9EE09A028FDD2550013FF99 /* eliminate_dead_input_components_pass.h */, + A9EE09A128FDD2550013FF99 /* decoration_manager.h */, + A9EE09A228FDD2550013FF99 /* ccp_pass.cpp */, + A9EE09A328FDD2550013FF99 /* local_single_block_elim_pass.h */, + A9EE09A428FDD2550013FF99 /* interp_fixup_pass.h */, + A9EE09A528FDD2550013FF99 /* pch_source_opt.cpp */, + A9EE09A628FDD2550013FF99 /* inst_buff_addr_check_pass.h */, + A9EE09A728FDD2550013FF99 /* strength_reduction_pass.h */, + A9EE09A828FDD2550013FF99 /* aggressive_dead_code_elim_pass.cpp */, + A9EE09A928FDD2550013FF99 /* eliminate_dead_functions_util.cpp */, + A9EE09AA28FDD2550013FF99 /* inst_debug_printf_pass.h */, + A9EE09AB28FDD2550013FF99 /* simplification_pass.cpp */, + A9EE09AC28FDD2550013FF99 /* dead_branch_elim_pass.cpp */, + A9EE09AD28FDD2550013FF99 /* flatten_decoration_pass.cpp */, + A9EE09AE28FDD2550013FF99 /* dead_insert_elim_pass.h */, + A9EE09AF28FDD2550013FF99 /* folding_rules.cpp */, + A9EE09B028FDD2550013FF99 /* freeze_spec_constant_value_pass.h */, + A9EE09B128FDD2550013FF99 /* ir_context.cpp */, + A9EE09B228FDD2550013FF99 /* instrument_pass.h */, + A9EE09B328FDD2550013FF99 /* mem_pass.h */, + A9EE09B428FDD2550013FF99 /* loop_descriptor.cpp */, + A9EE09B528FDD2550013FF99 /* eliminate_dead_members_pass.h */, + A9EE09B628FDD2550013FF99 /* function.cpp */, + A9EE09B728FDD2550013FF99 /* instruction_list.cpp */, + A9EE09B828FDD2550013FF99 /* control_dependence.cpp */, + A9EE09B928FDD2550013FF99 /* composite.cpp */, + A9EE09BA28FDD2550013FF99 /* convert_to_half_pass.cpp */, + A9EE09BB28FDD2550013FF99 /* inline_pass.h */, + A9EE09BC28FDD2550013FF99 /* loop_dependence.h */, + A9EE09BD28FDD2550013FF99 /* value_number_table.h */, + A9EE09BE28FDD2550013FF99 /* strip_nonsemantic_info_pass.cpp */, + A9EE09BF28FDD2550013FF99 /* flatten_decoration_pass.h */, + A9EE09C028FDD2550013FF99 /* if_conversion.cpp */, + A9EE09C128FDD2550013FF99 /* fix_func_call_arguments.cpp */, + A9EE09C228FDD2550013FF99 /* debug_info_manager.cpp */, + A9EE09C328FDD2550013FF99 /* inline_exhaustive_pass.h */, + A9EE09C428FDD2550013FF99 /* constants.h */, + A9EE09C528FDD2550013FF99 /* eliminate_dead_members_pass.cpp */, + A9EE09C628FDD2550013FF99 /* strength_reduction_pass.cpp */, + A9EE09C728FDD2550013FF99 /* desc_sroa.cpp */, + A9EE09C828FDD2550013FF99 /* block_merge_util.cpp */, + A9EE09C928FDD2550013FF99 /* upgrade_memory_model.h */, + A9EE09CA28FDD2550013FF99 /* copy_prop_arrays.cpp */, + A9EE09CB28FDD2550013FF99 /* pass_manager.cpp */, + A9EE09CC28FDD2550013FF99 /* inline_exhaustive_pass.cpp */, + A9EE09CD28FDD2550013FF99 /* loop_fission.h */, + A9EE09CE28FDD2550013FF99 /* workaround1209.h */, + A9EE09CF28FDD2550013FF99 /* loop_fusion_pass.cpp */, + A9EE09D028FDD2550013FF99 /* log.h */, + A9EE09D128FDD2550013FF99 /* copy_prop_arrays.h */, + A9EE09D228FDD2550013FF99 /* eliminate_dead_constant_pass.h */, + A9EE09D328FDD2550013FF99 /* dead_insert_elim_pass.cpp */, + A9EE09D428FDD2550013FF99 /* ssa_rewrite_pass.h */, + A9EE09D528FDD2550013FF99 /* scalar_analysis.cpp */, + A9EE09D628FDD2550013FF99 /* dead_variable_elimination.h */, + A9EE09D728FDD2550013FF99 /* block_merge_pass.cpp */, + A9EE09D828FDD2550013FF99 /* dominator_analysis.h */, + A9EE09D928FDD2550013FF99 /* convert_to_sampled_image_pass.cpp */, + A9EE09DA28FDD2550013FF99 /* pass.h */, + A9EE09DB28FDD2550013FF99 /* folding_rules.h */, + A9EE09DC28FDD2550013FF99 /* eliminate_dead_functions_pass.h */, + A9EE09DD28FDD2550013FF99 /* eliminate_dead_functions_util.h */, + A9EE09DE28FDD2550013FF99 /* fold.h */, + A9EE09DF28FDD2550013FF99 /* local_single_store_elim_pass.cpp */, + A9EE09E028FDD2550013FF99 /* dead_branch_elim_pass.h */, + A9EE09E128FDD2550013FF99 /* private_to_local_pass.cpp */, + A9EE09E228FDD2550013FF99 /* scalar_analysis_nodes.h */, + A9EE09E328FDD2550013FF99 /* propagator.cpp */, + A9EE09E428FDD2550013FF99 /* fix_storage_class.h */, + A9EE09E528FDD2550013FF99 /* loop_dependence_helpers.cpp */, + A9EE09E628FDD2550013FF99 /* set_spec_constant_default_value_pass.cpp */, + A9EE09E728FDD2550013FF99 /* passes.h */, + A9EE09E828FDD2550013FF99 /* fold.cpp */, + A9EE09E928FDD2550013FF99 /* amd_ext_to_khr.cpp */, + A9EE09EA28FDD2550013FF99 /* scalar_replacement_pass.cpp */, + A9EE09EB28FDD2550013FF99 /* simplification_pass.h */, + A9EE09EC28FDD2550013FF99 /* interface_var_sroa.cpp */, + A9EE09ED28FDD2550013FF99 /* remove_duplicates_pass.h */, + A9EE09EE28FDD2550013FF99 /* desc_sroa_util.h */, + A9EE09EF28FDD2550013FF99 /* redundancy_elimination.cpp */, + A9EE09F028FDD2550013FF99 /* reflect.h */, + A9EE09F128FDD2550013FF99 /* workaround1209.cpp */, + A9EE09F228FDD2550013FF99 /* null_pass.h */, + A9EE09F328FDD2550013FF99 /* relax_float_ops_pass.cpp */, + A9EE09F428FDD2550013FF99 /* const_folding_rules.h */, + A9EE09F528FDD2550013FF99 /* scalar_replacement_pass.h */, + A9EE09F628FDD2550013FF99 /* instruction.cpp */, + A9EE09F728FDD2550013FF99 /* pch_source_opt.h */, + A9EE09F828FDD2550013FF99 /* reduce_load_size.cpp */, + A9EE09F928FDD2550013FF99 /* redundancy_elimination.h */, + A9EE09FA28FDD2550013FF99 /* fix_storage_class.cpp */, + A9EE09FB28FDD2550013FF99 /* value_number_table.cpp */, + A9EE09FC28FDD2550013FF99 /* remove_unused_interface_variables_pass.cpp */, + A9EE09FD28FDD2550013FF99 /* inline_opaque_pass.cpp */, + A9EE09FE28FDD2550013FF99 /* replace_invalid_opc.cpp */, + A9EE09FF28FDD2550013FF99 /* loop_utils.h */, + A9EE0A0028FDD2550013FF99 /* module.h */, + A9EE0A0128FDD2550013FF99 /* dominator_analysis.cpp */, + A9EE0A0228FDD2550013FF99 /* ir_builder.h */, + A9EE0A0328FDD2550013FF99 /* replace_desc_array_access_using_var_index.cpp */, + A9EE0A0428FDD2550013FF99 /* loop_unswitch_pass.h */, + A9EE0A0528FDD2550013FF99 /* cfg.h */, + A9EE0A0628FDD2550013FF99 /* code_sink.h */, + A9EE0A0728FDD2550013FF99 /* dataflow.cpp */, + A9EE0A0828FDD2550013FF99 /* loop_descriptor.h */, + A9EE0A0928FDD2550013FF99 /* instruction.h */, + A9EE0A0A28FDD2550013FF99 /* aggressive_dead_code_elim_pass.h */, + A9EE0A0B28FDD2550013FF99 /* struct_cfg_analysis.cpp */, + A9EE0A0C28FDD2550013FF99 /* remove_dontinline_pass.cpp */, + A9EE0A0D28FDD2550013FF99 /* vector_dce.h */, + A9EE0A0E28FDD2550013FF99 /* combine_access_chains.h */, + A9EE0A0F28FDD2550013FF99 /* pass_manager.h */, + A9EE0A1028FDD2550013FF99 /* spread_volatile_semantics.h */, + A9EE0A1128FDD2550013FF99 /* local_access_chain_convert_pass.cpp */, + A9EE0A1228FDD2550013FF99 /* interp_fixup_pass.cpp */, + A9EE0A1328FDD2550013FF99 /* basic_block.cpp */, + A9EE0A1428FDD2550013FF99 /* iterator.h */, + A9EE0A1528FDD2550013FF99 /* licm_pass.h */, + A9EE0A1628FDD2550013FF99 /* build_module.h */, + A9EE0A1728FDD2550013FF99 /* ccp_pass.h */, + A9EE0A1828FDD2550013FF99 /* graphics_robust_access_pass.cpp */, + A9EE0A1928FDD2550013FF99 /* function.h */, + A9EE0A1A28FDD2550013FF99 /* fix_func_call_arguments.h */, + A9EE0A1B28FDD2550013FF99 /* loop_fusion.cpp */, + A9EE0A1C28FDD2550013FF99 /* eliminate_dead_input_components_pass.cpp */, + A9EE0A1D28FDD2550013FF99 /* upgrade_memory_model.cpp */, + A9EE0A1E28FDD2550013FF99 /* feature_manager.h */, + A9EE0A1F28FDD2550013FF99 /* dataflow.h */, + A9EE0A2028FDD2550013FF99 /* inst_bindless_check_pass.h */, + A9EE0A2128FDD2550013FF99 /* scalar_analysis_simplification.cpp */, + A9EE0A2228FDD2550013FF99 /* set_spec_constant_default_value_pass.h */, + A9EE0A2328FDD2550013FF99 /* dominator_tree.h */, + A9EE0A2428FDD2550013FF99 /* remove_unused_interface_variables_pass.h */, + A9EE0A2528FDD2550013FF99 /* type_manager.h */, + A9EE0A2628FDD2550013FF99 /* compact_ids_pass.cpp */, + A9EE0A2728FDD2550013FF99 /* loop_peeling.cpp */, + ); + path = opt; + sourceTree = ""; + }; + A9EE0BC228FDD2560013FF99 /* val */ = { + isa = PBXGroup; + children = ( + A9EE0BC328FDD2560013FF99 /* validate_annotation.cpp */, + A9EE0BC428FDD2560013FF99 /* validate_misc.cpp */, + A9EE0BC528FDD2560013FF99 /* validate_cfg.cpp */, + A9EE0BC628FDD2560013FF99 /* validate_capability.cpp */, + A9EE0BC728FDD2560013FF99 /* construct.h */, + A9EE0BC828FDD2560013FF99 /* validate_barriers.cpp */, + A9EE0BC928FDD2560013FF99 /* validate_non_uniform.cpp */, + A9EE0BCA28FDD2560013FF99 /* validate_ray_query.cpp */, + A9EE0BCB28FDD2560013FF99 /* validate_ray_tracing.cpp */, + A9EE0BCC28FDD2560013FF99 /* validate_scopes.cpp */, + A9EE0BCD28FDD2560013FF99 /* validate_atomics.cpp */, + A9EE0BCE28FDD2560013FF99 /* basic_block.h */, + A9EE0BCF28FDD2560013FF99 /* validate_instruction.cpp */, + A9EE0BD028FDD2560013FF99 /* validate_decorations.cpp */, + A9EE0BD128FDD2560013FF99 /* validate_debug.cpp */, + A9EE0BD228FDD2560013FF99 /* validate_builtins.cpp */, + A9EE0BD328FDD2560013FF99 /* validate_interfaces.cpp */, + A9EE0BD428FDD2560013FF99 /* validate.cpp */, + A9EE0BD528FDD2560013FF99 /* validation_state.h */, + A9EE0BD628FDD2560013FF99 /* validate_constants.cpp */, + A9EE0BD728FDD2560013FF99 /* validate_bitwise.cpp */, + A9EE0BD828FDD2560013FF99 /* validate_extensions.cpp */, + A9EE0BD928FDD2560013FF99 /* construct.cpp */, + A9EE0BDA28FDD2560013FF99 /* function.cpp */, + A9EE0BDB28FDD2560013FF99 /* validate.h */, + A9EE0BDC28FDD2560013FF99 /* validate_adjacency.cpp */, + A9EE0BDD28FDD2560013FF99 /* validate_conversion.cpp */, + A9EE0BDE28FDD2560013FF99 /* validate_small_type_uses.cpp */, + A9EE0BDF28FDD2560013FF99 /* validate_scopes.h */, + A9EE0BE028FDD2560013FF99 /* validate_id.cpp */, + A9EE0BE128FDD2560013FF99 /* validate_memory_semantics.h */, + A9EE0BE228FDD2560013FF99 /* validate_arithmetics.cpp */, + A9EE0BE328FDD2560013FF99 /* validate_mode_setting.cpp */, + A9EE0BE428FDD2560013FF99 /* validate_memory_semantics.cpp */, + A9EE0BE528FDD2560013FF99 /* validate_logicals.cpp */, + A9EE0BE628FDD2560013FF99 /* validate_derivatives.cpp */, + A9EE0BE728FDD2560013FF99 /* validate_memory.cpp */, + A9EE0BE828FDD2560013FF99 /* validate_image.cpp */, + A9EE0BE928FDD2560013FF99 /* validate_literals.cpp */, + A9EE0BEA28FDD2560013FF99 /* instruction.cpp */, + A9EE0BEB28FDD2560013FF99 /* validate_type.cpp */, + A9EE0BEC28FDD2560013FF99 /* instruction.h */, + A9EE0BED28FDD2560013FF99 /* validate_mesh_shading.cpp */, + A9EE0BEE28FDD2560013FF99 /* validate_execution_limitations.cpp */, + A9EE0BEF28FDD2560013FF99 /* validate_layout.cpp */, + A9EE0BF028FDD2560013FF99 /* basic_block.cpp */, + A9EE0BF128FDD2560013FF99 /* validate_function.cpp */, + A9EE0BF228FDD2560013FF99 /* function.h */, + A9EE0BF328FDD2560013FF99 /* validate_composites.cpp */, + A9EE0BF428FDD2560013FF99 /* validation_state.cpp */, + A9EE0BF528FDD2560013FF99 /* validate_primitives.cpp */, + A9EE0BF628FDD2560013FF99 /* decoration.h */, + ); + path = val; + sourceTree = ""; + }; A9F55D24198BE6A7004EC31B = { isa = PBXGroup; children = ( @@ -3099,203 +3184,210 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A926BB6827AC718A00144157 /* loop_descriptor.h in Headers */, - A926B89E27AC718900144157 /* reduction_opportunity_finder.h in Headers */, - A926BB8927AC718A00144157 /* iterator.h in Headers */, - A926BA0627AC718A00144157 /* cfg_cleanup_pass.h in Headers */, - A926BA5427AC718A00144157 /* inst_debug_printf_pass.h in Headers */, - A926BA6027AC718A00144157 /* dead_insert_elim_pass.h in Headers */, - A926BB9827AC718A00144157 /* function.h in Headers */, - A926BB5C27AC718A00144157 /* loop_unswitch_pass.h in Headers */, - A926B9CD27AC718A00144157 /* fold_spec_constant_op_and_composite_pass.h in Headers */, - A926B95827AC718900144157 /* graphics_robust_access_pass.h in Headers */, - A926BBA127AC718A00144157 /* feature_manager.h in Headers */, - A926BB0827AC718A00144157 /* passes.h in Headers */, - A926B80E27AC718900144157 /* operand_to_undef_reduction_opportunity_finder.h in Headers */, - A926B7DE27AC718900144157 /* parse_number.h in Headers */, - A926B82F27AC718900144157 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */, - A926B9A927AC718900144157 /* control_dependence.h in Headers */, - A926B7F627AC718900144157 /* bit_vector.h in Headers */, - A926B96A27AC718900144157 /* strip_debug_info_pass.h in Headers */, - A926B9F127AC718A00144157 /* private_to_local_pass.h in Headers */, - A926B96727AC718900144157 /* scalar_analysis.h in Headers */, - A926B82327AC718900144157 /* operand_to_const_reduction_opportunity_finder.h in Headers */, - A926B86E27AC718900144157 /* merge_blocks_reduction_opportunity_finder.h in Headers */, - A926BABA27AC718A00144157 /* loop_fission.h in Headers */, - A926BAC927AC718A00144157 /* eliminate_dead_constant_pass.h in Headers */, - A926B8FE27AC718900144157 /* text_handler.h in Headers */, - A926B80527AC718900144157 /* ilist.h in Headers */, - A926B9F427AC718A00144157 /* convert_to_half_pass.h in Headers */, - A926BB1727AC718A00144157 /* remove_duplicates_pass.h in Headers */, - A926BB1427AC718A00144157 /* simplification_pass.h in Headers */, - A926B7E427AC718900144157 /* make_unique.h in Headers */, - A926BB3527AC718A00144157 /* pch_source_opt.h in Headers */, - A926BA6C27AC718A00144157 /* instrument_pass.h in Headers */, - A926B8C527AC718900144157 /* reduction_pass.h in Headers */, - A926B97C27AC718900144157 /* replace_invalid_opc.h in Headers */, - A926C0F327AC718C00144157 /* instruction.h in Headers */, - A926B84A27AC718900144157 /* remove_struct_member_reduction_opportunity.h in Headers */, - A926BA8727AC718A00144157 /* inline_pass.h in Headers */, - A926B7FC27AC718900144157 /* hex_float.h in Headers */, - A926B94027AC718900144157 /* inline_opaque_pass.h in Headers */, - A926BB9227AC718A00144157 /* ccp_pass.h in Headers */, - A926BB4D27AC718A00144157 /* loop_utils.h in Headers */, - A926B88327AC718900144157 /* remove_function_reduction_opportunity_finder.h in Headers */, - A926B7CC27AC718900144157 /* enum_set.h in Headers */, - A926BA9F27AC718A00144157 /* constants.h in Headers */, - A926B9E227AC718A00144157 /* debug_info_manager.h in Headers */, - A926B7C627AC718900144157 /* lints.h in Headers */, - A926BBBF27AC718A00144157 /* table.h in Headers */, - A926BADB27AC718A00144157 /* dominator_analysis.h in Headers */, - A926B89827AC718900144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */, - A926B90D27AC718900144157 /* diagnostic.h in Headers */, - A926BACF27AC718A00144157 /* ssa_rewrite_pass.h in Headers */, - A926BA3927AC718A00144157 /* decoration_manager.h in Headers */, - A926BAEA27AC718A00144157 /* eliminate_dead_functions_util.h in Headers */, - A926BAC327AC718A00144157 /* log.h in Headers */, - A926BB5627AC718A00144157 /* ir_builder.h in Headers */, - A926BAFF27AC718A00144157 /* fix_storage_class.h in Headers */, - A926B96D27AC718900144157 /* replace_desc_array_access_using_var_index.h in Headers */, - A926BB2627AC718A00144157 /* null_pass.h in Headers */, - A926BA4227AC718A00144157 /* interp_fixup_pass.h in Headers */, - A926B8C827AC718900144157 /* latest_version_opencl_std_header.h in Headers */, - A926B90427AC718900144157 /* name_mapper.h in Headers */, - A926BB5027AC718A00144157 /* module.h in Headers */, - A926B8D427AC718900144157 /* enum_string_mapping.h in Headers */, - A926B7BA27AC718900144157 /* assembly_grammar.h in Headers */, - A926C05727AC718C00144157 /* ext_inst.h in Headers */, - A926B7EA27AC718900144157 /* small_vector.h in Headers */, - A926BB2C27AC718A00144157 /* const_folding_rules.h in Headers */, - A926BA9327AC718A00144157 /* flatten_decoration_pass.h in Headers */, - A926B9C427AC718900144157 /* ir_loader.h in Headers */, - A926BA0F27AC718A00144157 /* local_redundancy_elimination.h in Headers */, - A926B81427AC718900144157 /* remove_block_reduction_opportunity.h in Headers */, - A926C0CC27AC718C00144157 /* validate_scopes.h in Headers */, - A926B8A427AC718900144157 /* remove_block_reduction_opportunity_finder.h in Headers */, - A926B89527AC718900144157 /* reduction_opportunity.h in Headers */, - A926B85F27AC718900144157 /* change_operand_to_undef_reduction_opportunity.h in Headers */, - A926B85927AC718900144157 /* remove_function_reduction_opportunity.h in Headers */, - A926C06627AC718C00144157 /* spirv_optimizer_options.h in Headers */, - A926B97F27AC718900144157 /* local_access_chain_convert_pass.h in Headers */, - A926B8F827AC718900144157 /* spirv_validator_options.h in Headers */, - A926B80827AC718900144157 /* spirv_target_env.h in Headers */, - A926B9DC27AC718A00144157 /* block_merge_pass.h in Headers */, - A926C06F27AC718C00144157 /* latest_version_glsl_std_450_header.h in Headers */, - A926B7F027AC718900144157 /* timer.h in Headers */, - A926B86227AC718900144157 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */, - A926B87727AC718900144157 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */, - A926C08A27AC718C00144157 /* construct.h in Headers */, - A926BABD27AC718A00144157 /* workaround1209.h in Headers */, - A926BAF327AC718A00144157 /* dead_branch_elim_pass.h in Headers */, - A926BBAD27AC718A00144157 /* set_spec_constant_default_value_pass.h in Headers */, - A926B86B27AC718900144157 /* remove_selection_reduction_opportunity_finder.h in Headers */, - A926BBA727AC718A00144157 /* inst_bindless_check_pass.h in Headers */, - A926BB8F27AC718A00144157 /* build_module.h in Headers */, - A926B9FD27AC718A00144157 /* def_use_manager.h in Headers */, - A926BAE727AC718A00144157 /* eliminate_dead_functions_pass.h in Headers */, - A926B94327AC718900144157 /* loop_fusion.h in Headers */, - A926B98E27AC718900144157 /* instruction_list.h in Headers */, - A926B94C27AC718900144157 /* composite.h in Headers */, - A926B92227AC718900144157 /* print.h in Headers */, - A926B7F927AC718900144157 /* bitutils.h in Headers */, - A926BA2427AC718A00144157 /* loop_fusion_pass.h in Headers */, - A926B91927AC718900144157 /* common_debug_info.h in Headers */, - A926C0C027AC718C00144157 /* validate.h in Headers */, - A926BA2727AC718A00144157 /* struct_cfg_analysis.h in Headers */, - A926B8D127AC718900144157 /* pch_source.h in Headers */, - A926B83527AC718900144157 /* remove_instruction_reduction_opportunity.h in Headers */, - A926B7E127AC718900144157 /* ilist_node.h in Headers */, - A926B95527AC718900144157 /* tree_iterator.h in Headers */, - A926B94F27AC718900144157 /* compact_ids_pass.h in Headers */, - A926BAE427AC718A00144157 /* folding_rules.h in Headers */, - A926B8AA27AC718900144157 /* reduction_util.h in Headers */, - A926B88627AC718900144157 /* pch_source_reduce.h in Headers */, - A926BB7D27AC718A00144157 /* spread_volatile_semantics.h in Headers */, - A926BA0327AC718A00144157 /* convert_to_sampled_image_pass.h in Headers */, - A926BA1227AC718A00144157 /* loop_peeling.h in Headers */, - A926C07227AC718C00144157 /* extensions.h in Headers */, - A926BA8A27AC718A00144157 /* loop_dependence.h in Headers */, - A926B8A127AC718900144157 /* change_operand_reduction_opportunity.h in Headers */, - A926B9F727AC718A00144157 /* relax_float_ops_pass.h in Headers */, - A926BA7527AC718A00144157 /* eliminate_dead_members_pass.h in Headers */, - A926B7D527AC718900144157 /* text.h in Headers */, - A926BA3327AC718A00144157 /* wrap_opkill.h in Headers */, - A926B81727AC718900144157 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */, - A926C05D27AC718C00144157 /* latest_version_spirv_header.h in Headers */, - A926B90127AC718900144157 /* parsed_operand.h in Headers */, - A926BB2027AC718A00144157 /* reflect.h in Headers */, - A926C0AE27AC718C00144157 /* validation_state.h in Headers */, - A926B8CE27AC718900144157 /* cfa.h in Headers */, - A926B81D27AC718900144157 /* structured_construct_to_block_reduction_opportunity.h in Headers */, - A926C06327AC718C00144157 /* instruction.h in Headers */, - A926BBB327AC718A00144157 /* remove_unused_interface_variables_pass.h in Headers */, - A926BB6B27AC718A00144157 /* instruction.h in Headers */, - A926C06927AC718C00144157 /* opcode.h in Headers */, - A926B84D27AC718900144157 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */, - A926B9A327AC718900144157 /* ir_context.h in Headers */, - A926B8E627AC718900144157 /* spirv_definition.h in Headers */, - A926BAC627AC718A00144157 /* copy_prop_arrays.h in Headers */, - A926BB6227AC718A00144157 /* code_sink.h in Headers */, - A926B7E727AC718900144157 /* string_utils.h in Headers */, - A926BB7427AC718A00144157 /* vector_dce.h in Headers */, - A926BA6F27AC718A00144157 /* mem_pass.h in Headers */, - A926B7C927AC718900144157 /* divergence_analysis.h in Headers */, - A926BAE127AC718A00144157 /* pass.h in Headers */, - A926B88F27AC718900144157 /* reducer.h in Headers */, - A926B7B727AC718900144157 /* spirv_fuzzer_options.h in Headers */, - A926B8F227AC718900144157 /* spirv_constant.h in Headers */, - A926BB2F27AC718A00144157 /* scalar_replacement_pass.h in Headers */, - A926BAD527AC718A00144157 /* dead_variable_elimination.h in Headers */, - A926B9B527AC718900144157 /* loop_unroller.h in Headers */, - A926C10227AC718C00144157 /* function.h in Headers */, - A926B8AD27AC718900144157 /* merge_blocks_reduction_opportunity.h in Headers */, - A926BB5F27AC718A00144157 /* cfg.h in Headers */, - A926B93727AC718900144157 /* strip_nonsemantic_info_pass.h in Headers */, - A926C07827AC718C00144157 /* binary.h in Headers */, - A926B82927AC718900144157 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */, - A926BBA427AC718A00144157 /* dataflow.h in Headers */, - A926C09927AC718C00144157 /* basic_block.h in Headers */, - A926BAF927AC718A00144157 /* scalar_analysis_nodes.h in Headers */, - A926B9CA27AC718900144157 /* types.h in Headers */, - A926C10E27AC718C00144157 /* decoration.h in Headers */, - A926BA8D27AC718A00144157 /* value_number_table.h in Headers */, - A926B85627AC718900144157 /* structured_loop_to_selection_reduction_opportunity.h in Headers */, - A926B92E27AC718900144157 /* if_conversion.h in Headers */, - A926B86527AC718900144157 /* remove_selection_reduction_opportunity.h in Headers */, - A926B8DA27AC718900144157 /* spirv_reducer_options.h in Headers */, - A926B91027AC718900144157 /* spirv_endian.h in Headers */, - A926BB6E27AC718A00144157 /* aggressive_dead_code_elim_pass.h in Headers */, - A926BB3B27AC718A00144157 /* redundancy_elimination.h in Headers */, - A926C0D227AC718C00144157 /* validate_memory_semantics.h in Headers */, - A926BAED27AC718A00144157 /* fold.h in Headers */, - A926B85C27AC718900144157 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */, - A926BB7727AC718A00144157 /* combine_access_chains.h in Headers */, - A926BB1A27AC718A00144157 /* desc_sroa_util.h in Headers */, - A926BA1E27AC718A00144157 /* desc_sroa.h in Headers */, - A926B95227AC718900144157 /* register_pressure.h in Headers */, - A926BA3627AC718A00144157 /* empty_pass.h in Headers */, - A926B95B27AC718900144157 /* local_single_store_elim_pass.h in Headers */, - A926BA9C27AC718A00144157 /* inline_exhaustive_pass.h in Headers */, - A926BBB627AC718A00144157 /* type_manager.h in Headers */, - A926BA4B27AC718A00144157 /* strength_reduction_pass.h in Headers */, - A926B98B27AC718900144157 /* propagator.h in Headers */, - A926B83827AC718900144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */, - A926BA3F27AC718A00144157 /* local_single_block_elim_pass.h in Headers */, - A926BB7A27AC718A00144157 /* pass_manager.h in Headers */, - A926BA6627AC718A00144157 /* freeze_spec_constant_value_pass.h in Headers */, - A926B93D27AC718900144157 /* merge_return_pass.h in Headers */, - A926B92827AC718900144157 /* disassemble.h in Headers */, - A926BA4827AC718A00144157 /* inst_buff_addr_check_pass.h in Headers */, - A926B99D27AC718900144157 /* amd_ext_to_khr.h in Headers */, - A926B95E27AC718900144157 /* reduce_load_size.h in Headers */, - A926BA1827AC718A00144157 /* block_merge_util.h in Headers */, - A926BB8C27AC718A00144157 /* licm_pass.h in Headers */, - A926B9C127AC718900144157 /* unify_const_pass.h in Headers */, - A926BBB027AC718A00144157 /* dominator_tree.h in Headers */, - A926BAAE27AC718A00144157 /* upgrade_memory_model.h in Headers */, - A926B8E927AC718900144157 /* operand.h in Headers */, - A926B8EF27AC718900144157 /* macro.h in Headers */, - A926B9D327AC718A00144157 /* basic_block.h in Headers */, + A9EE0DCF28FDD2560013FF99 /* replace_invalid_opc.h in Headers */, + A9EE0E1728FDD2560013FF99 /* ir_loader.h in Headers */, + A9EE0D4E28FDD2560013FF99 /* text_handler.h in Headers */, + A9EE0C2228FDD2560013FF99 /* parse_number.h in Headers */, + A9EE0C2828FDD2560013FF99 /* make_unique.h in Headers */, + A9EE0E6E28FDD2570013FF99 /* block_merge_util.h in Headers */, + A9EE0DBA28FDD2560013FF99 /* scalar_analysis.h in Headers */, + A9EE0D9C28FDD2560013FF99 /* composite.h in Headers */, + A9EE0F2228FDD2570013FF99 /* copy_prop_arrays.h in Headers */, + A9EE14CB28FDD2590013FF99 /* instruction.h in Headers */, + A9EE0E4728FDD2560013FF99 /* convert_to_half_pass.h in Headers */, + A9EE0C1028FDD2560013FF99 /* enum_set.h in Headers */, + A9EE0EAD28FDD2570013FF99 /* inst_debug_printf_pass.h in Headers */, + A9EE14E028FDD2590013FF99 /* binary.h in Headers */, + A9EE0FC728FDD2570013FF99 /* loop_descriptor.h in Headers */, + A9EE0FCA28FDD2570013FF99 /* instruction.h in Headers */, + A9EE101E28FDD2570013FF99 /* type_manager.h in Headers */, + A9EE0E6828FDD2570013FF99 /* loop_peeling.h in Headers */, + A9EE0EB928FDD2570013FF99 /* dead_insert_elim_pass.h in Headers */, + A9EE0C0A28FDD2560013FF99 /* lints.h in Headers */, + A9EE0CDC28FDD2560013FF99 /* reduction_opportunity.h in Headers */, + A9EE0FAF28FDD2570013FF99 /* module.h in Headers */, + A9EE0F3728FDD2570013FF99 /* dominator_analysis.h in Headers */, + A9EE0D9028FDD2560013FF99 /* inline_opaque_pass.h in Headers */, + A9EE0F7928FDD2570013FF99 /* desc_sroa_util.h in Headers */, + A9EE0E2028FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.h in Headers */, + A9EE0E5928FDD2570013FF99 /* convert_to_sampled_image_pass.h in Headers */, + A9EE14D728FDD2590013FF99 /* latest_version_glsl_std_450_header.h in Headers */, + A9EE0DD228FDD2560013FF99 /* local_access_chain_convert_pass.h in Headers */, + A9EE0E8C28FDD2570013FF99 /* empty_pass.h in Headers */, + A9EE100F28FDD2570013FF99 /* inst_bindless_check_pass.h in Headers */, + A9EE0D1828FDD2560013FF99 /* pch_source.h in Headers */, + A9EE153A28FDD2590013FF99 /* validate_scopes.h in Headers */, + A9EE0DAB28FDD2560013FF99 /* graphics_robust_access_pass.h in Headers */, + A9EE0E4428FDD2560013FF99 /* private_to_local_pass.h in Headers */, + A9EE100928FDD2570013FF99 /* feature_manager.h in Headers */, + A9EE0C6A28FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.h in Headers */, + A9EE14D128FDD2590013FF99 /* opcode.h in Headers */, + A9EE0E9828FDD2570013FF99 /* local_single_block_elim_pass.h in Headers */, + A9EE0F5528FDD2570013FF99 /* scalar_analysis_nodes.h in Headers */, + A9EE0D8728FDD2560013FF99 /* strip_nonsemantic_info_pass.h in Headers */, + A9EE0E2628FDD2560013FF99 /* basic_block.h in Headers */, + A9EE0EFB28FDD2570013FF99 /* constants.h in Headers */, + A9EE0C6428FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.h in Headers */, + A9EE14F228FDD2590013FF99 /* construct.h in Headers */, + A9EE0C4F28FDD2560013FF99 /* spirv_target_env.h in Headers */, + A9EE0E1D28FDD2560013FF99 /* types.h in Headers */, + A9EE0FD628FDD2570013FF99 /* vector_dce.h in Headers */, + A9EE0D9328FDD2560013FF99 /* loop_fusion.h in Headers */, + A9EE0EC828FDD2570013FF99 /* mem_pass.h in Headers */, + A9EE0FDC28FDD2570013FF99 /* pass_manager.h in Headers */, + A9EE0D7228FDD2560013FF99 /* print.h in Headers */, + A9EE150728FDD2590013FF99 /* basic_block.h in Headers */, + A9EE0C9D28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.h in Headers */, + A9EE0EE628FDD2570013FF99 /* value_number_table.h in Headers */, + A9EE0F7F28FDD2570013FF99 /* reflect.h in Headers */, + A9EE151C28FDD2590013FF99 /* validation_state.h in Headers */, + A9EE0E5C28FDD2570013FF99 /* cfg_cleanup_pass.h in Headers */, + A9EE0FDF28FDD2570013FF99 /* spread_volatile_semantics.h in Headers */, + A9EE0F3D28FDD2570013FF99 /* pass.h in Headers */, + A9EE0DA528FDD2560013FF99 /* tree_iterator.h in Headers */, + A9EE0F2528FDD2570013FF99 /* eliminate_dead_constant_pass.h in Headers */, + A9EE14BF28FDD2590013FF99 /* ext_inst.h in Headers */, + A9EE0C9128FDD2560013FF99 /* remove_struct_member_reduction_opportunity.h in Headers */, + A9EE0C3128FDD2560013FF99 /* hash_combine.h in Headers */, + A9EE0CDF28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */, + A9EE0DBD28FDD2560013FF99 /* strip_debug_info_pass.h in Headers */, + A9EE0E8928FDD2570013FF99 /* wrap_opkill.h in Headers */, + A9EE0CB528FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.h in Headers */, + A9EE0FF428FDD2570013FF99 /* ccp_pass.h in Headers */, + A9EE0F9A28FDD2570013FF99 /* redundancy_elimination.h in Headers */, + A9EE0E9228FDD2570013FF99 /* decoration_manager.h in Headers */, + A9EE0D0C28FDD2560013FF99 /* reduction_pass.h in Headers */, + A9EE0DAE28FDD2560013FF99 /* local_single_store_elim_pass.h in Headers */, + A9EE0D0F28FDD2560013FF99 /* latest_version_opencl_std_header.h in Headers */, + A9EE0C5B28FDD2560013FF99 /* remove_block_reduction_opportunity.h in Headers */, + A9EE0F1628FDD2570013FF99 /* loop_fission.h in Headers */, + A9EE0CCA28FDD2560013FF99 /* remove_function_reduction_opportunity_finder.h in Headers */, + A9EE0F8528FDD2570013FF99 /* null_pass.h in Headers */, + A9EE0C3D28FDD2560013FF99 /* bit_vector.h in Headers */, + A9EE0EA128FDD2570013FF99 /* inst_buff_addr_check_pass.h in Headers */, + A9EE0BFE28FDD2560013FF99 /* assembly_grammar.h in Headers */, + A9EE0E1428FDD2560013FF99 /* unify_const_pass.h in Headers */, + A9EE0C7628FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */, + A9EE0CF128FDD2560013FF99 /* reduction_util.h in Headers */, + A9EE14C528FDD2590013FF99 /* latest_version_spirv_header.h in Headers */, + A9EE0CEB28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.h in Headers */, + A9EE101528FDD2570013FF99 /* set_spec_constant_default_value_pass.h in Headers */, + A9EE0C5E28FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */, + A9EE0EE028FDD2570013FF99 /* inline_pass.h in Headers */, + A9EE0F2B28FDD2570013FF99 /* ssa_rewrite_pass.h in Headers */, + A9EE0D3028FDD2560013FF99 /* operand.h in Headers */, + A9EE0F0A28FDD2570013FF99 /* upgrade_memory_model.h in Headers */, + A9EE0F7028FDD2570013FF99 /* simplification_pass.h in Headers */, + A9EE0FAC28FDD2570013FF99 /* loop_utils.h in Headers */, + A9EE0D7828FDD2560013FF99 /* disassemble.h in Headers */, + A9EE0F4F28FDD2570013FF99 /* dead_branch_elim_pass.h in Headers */, + A9EE0CA328FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */, + A9EE0C2E28FDD2560013FF99 /* small_vector.h in Headers */, + A9EE0C2528FDD2560013FF99 /* ilist_node.h in Headers */, + A9EE0DF628FDD2560013FF99 /* ir_context.h in Headers */, + A9EE101B28FDD2570013FF99 /* remove_unused_interface_variables_pass.h in Headers */, + A9EE0DA828FDD2560013FF99 /* interface_var_sroa.h in Headers */, + A9EE0C7028FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */, + A9EE0FFD28FDD2570013FF99 /* fix_func_call_arguments.h in Headers */, + A9EE102728FDD2570013FF99 /* table.h in Headers */, + A9EE0E4D28FDD2560013FF99 /* relax_float_ops_pass.h in Headers */, + A9EE0F1F28FDD2570013FF99 /* log.h in Headers */, + A9EE0CAC28FDD2560013FF99 /* remove_selection_reduction_opportunity.h in Headers */, + A9EE0C1928FDD2560013FF99 /* text.h in Headers */, + A9EE0F4328FDD2570013FF99 /* eliminate_dead_functions_pass.h in Headers */, + A9EE157F28FDD2590013FF99 /* decoration.h in Headers */, + A9EE0C2B28FDD2560013FF99 /* string_utils.h in Headers */, + A9EE0CA628FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.h in Headers */, + A9EE0D4228FDD2560013FF99 /* lcs.h in Headers */, + A9EE0F8B28FDD2570013FF99 /* const_folding_rules.h in Headers */, + A9EE0C4C28FDD2560013FF99 /* ilist.h in Headers */, + A9EE0CA928FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */, + A9EE0DB128FDD2560013FF99 /* reduce_load_size.h in Headers */, + A9EE0DFC28FDD2560013FF99 /* control_dependence.h in Headers */, + A9EE101828FDD2570013FF99 /* dominator_tree.h in Headers */, + A9EE0D5D28FDD2560013FF99 /* diagnostic.h in Headers */, + A9EE0CF428FDD2560013FF99 /* merge_blocks_reduction_opportunity.h in Headers */, + A9EE0FCD28FDD2570013FF99 /* aggressive_dead_code_elim_pass.h in Headers */, + A9EE0D2128FDD2560013FF99 /* spirv_reducer_options.h in Headers */, + A9EE0FF128FDD2570013FF99 /* build_module.h in Headers */, + A9EE0FBE28FDD2570013FF99 /* cfg.h in Headers */, + A9EE0CCD28FDD2560013FF99 /* pch_source_reduce.h in Headers */, + A9EE0D5428FDD2560013FF99 /* name_mapper.h in Headers */, + A9EE0E0828FDD2560013FF99 /* loop_unroller.h in Headers */, + A9EE14DA28FDD2590013FF99 /* extensions.h in Headers */, + A9EE152E28FDD2590013FF99 /* validate.h in Headers */, + A9EE0DE128FDD2560013FF99 /* instruction_list.h in Headers */, + A9EE0FB528FDD2570013FF99 /* ir_builder.h in Headers */, + A9EE0DDE28FDD2560013FF99 /* propagator.h in Headers */, + A9EE0C9428FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */, + A9EE0E7A28FDD2570013FF99 /* loop_fusion_pass.h in Headers */, + A9EE0D3F28FDD2560013FF99 /* diff.h in Headers */, + A9EE0E4A28FDD2560013FF99 /* remove_dontinline_pass.h in Headers */, + A9EE0F3128FDD2570013FF99 /* dead_variable_elimination.h in Headers */, + A9EE0FD928FDD2570013FF99 /* combine_access_chains.h in Headers */, + A9EE0CBE28FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */, + A9EE156128FDD2590013FF99 /* instruction.h in Headers */, + A9EE0D1B28FDD2560013FF99 /* enum_string_mapping.h in Headers */, + A9EE0F4628FDD2570013FF99 /* eliminate_dead_functions_util.h in Headers */, + A9EE0C4328FDD2560013FF99 /* hex_float.h in Headers */, + A9EE0F7628FDD2570013FF99 /* remove_duplicates_pass.h in Headers */, + A9EE0E9B28FDD2570013FF99 /* interp_fixup_pass.h in Headers */, + A9EE0D4828FDD2560013FF99 /* spirv_validator_options.h in Headers */, + A9EE0CB228FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.h in Headers */, + A9EE0D2D28FDD2560013FF99 /* spirv_definition.h in Headers */, + A9EE0CA028FDD2560013FF99 /* remove_function_reduction_opportunity.h in Headers */, + A9EE0CD628FDD2560013FF99 /* reducer.h in Headers */, + A9EE0D6928FDD2560013FF99 /* common_debug_info.h in Headers */, + A9EE0D6028FDD2560013FF99 /* spirv_endian.h in Headers */, + A9EE0EA428FDD2570013FF99 /* strength_reduction_pass.h in Headers */, + A9EE0F4928FDD2570013FF99 /* fold.h in Headers */, + A9EE0FC128FDD2570013FF99 /* code_sink.h in Headers */, + A9EE0F9428FDD2570013FF99 /* pch_source_opt.h in Headers */, + A9EE0FBB28FDD2570013FF99 /* loop_unswitch_pass.h in Headers */, + A9EE0CE528FDD2560013FF99 /* reduction_opportunity_finder.h in Headers */, + A9EE0C0D28FDD2560013FF99 /* divergence_analysis.h in Headers */, + A9EE157328FDD2590013FF99 /* function.h in Headers */, + A9EE0FFA28FDD2570013FF99 /* function.h in Headers */, + A9EE0E2F28FDD2560013FF99 /* block_merge_pass.h in Headers */, + A9EE0C4028FDD2560013FF99 /* bitutils.h in Headers */, + A9EE0F5B28FDD2570013FF99 /* fix_storage_class.h in Headers */, + A9EE0F4028FDD2570013FF99 /* folding_rules.h in Headers */, + A9EE0D5128FDD2560013FF99 /* parsed_operand.h in Headers */, + A9EE0D3928FDD2560013FF99 /* spirv_constant.h in Headers */, + A9EE0D8D28FDD2560013FF99 /* merge_return_pass.h in Headers */, + A9EE0E7D28FDD2570013FF99 /* struct_cfg_analysis.h in Headers */, + A9EE0CE828FDD2560013FF99 /* change_operand_reduction_opportunity.h in Headers */, + A9EE0ECE28FDD2570013FF99 /* eliminate_dead_members_pass.h in Headers */, + A9EE0E8F28FDD2570013FF99 /* eliminate_dead_input_components_pass.h in Headers */, + A9EE0D1528FDD2560013FF99 /* cfa.h in Headers */, + A9EE0E7428FDD2570013FF99 /* desc_sroa.h in Headers */, + A9EE0DC028FDD2560013FF99 /* replace_desc_array_access_using_var_index.h in Headers */, + A9EE0FEE28FDD2570013FF99 /* licm_pass.h in Headers */, + A9EE154028FDD2590013FF99 /* validate_memory_semantics.h in Headers */, + A9EE0E6528FDD2570013FF99 /* local_redundancy_elimination.h in Headers */, + A9EE0EEC28FDD2570013FF99 /* flatten_decoration_pass.h in Headers */, + A9EE0EBF28FDD2570013FF99 /* freeze_spec_constant_value_pass.h in Headers */, + A9EE0DF028FDD2560013FF99 /* amd_ext_to_khr.h in Headers */, + A9EE0D9F28FDD2560013FF99 /* compact_ids_pass.h in Headers */, + A9EE0D3628FDD2560013FF99 /* macro.h in Headers */, + A9EE0C3728FDD2560013FF99 /* timer.h in Headers */, + A9EE0EE328FDD2570013FF99 /* loop_dependence.h in Headers */, + A9EE14CE28FDD2590013FF99 /* spirv_optimizer_options.h in Headers */, + A9EE0C7C28FDD2560013FF99 /* remove_instruction_reduction_opportunity.h in Headers */, + A9EE0F1928FDD2570013FF99 /* workaround1209.h in Headers */, + A9EE0EC528FDD2570013FF99 /* instrument_pass.h in Headers */, + A9EE0E5328FDD2570013FF99 /* def_use_manager.h in Headers */, + A9EE0E3528FDD2560013FF99 /* debug_info_manager.h in Headers */, + A9EE0C7F28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */, + A9EE100C28FDD2570013FF99 /* dataflow.h in Headers */, + A9EE0DA228FDD2560013FF99 /* register_pressure.h in Headers */, + A9EE0F8E28FDD2570013FF99 /* scalar_replacement_pass.h in Headers */, + A9EE0EF828FDD2570013FF99 /* inline_exhaustive_pass.h in Headers */, + A9EE0F6428FDD2570013FF99 /* passes.h in Headers */, + A9EE0FEB28FDD2570013FF99 /* iterator.h in Headers */, + A9EE0C5528FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.h in Headers */, + A9EE0BFB28FDD2560013FF99 /* spirv_fuzzer_options.h in Headers */, + A9EE0D7E28FDD2560013FF99 /* if_conversion.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3322,203 +3414,210 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A926BB6727AC718A00144157 /* loop_descriptor.h in Headers */, - A926B89D27AC718900144157 /* reduction_opportunity_finder.h in Headers */, - A926BB8827AC718A00144157 /* iterator.h in Headers */, - A926BA0527AC718A00144157 /* cfg_cleanup_pass.h in Headers */, - A926BA5327AC718A00144157 /* inst_debug_printf_pass.h in Headers */, - A926BA5F27AC718A00144157 /* dead_insert_elim_pass.h in Headers */, - A926BB9727AC718A00144157 /* function.h in Headers */, - A926BB5B27AC718A00144157 /* loop_unswitch_pass.h in Headers */, - A926B9CC27AC718A00144157 /* fold_spec_constant_op_and_composite_pass.h in Headers */, - A926B95727AC718900144157 /* graphics_robust_access_pass.h in Headers */, - A926BBA027AC718A00144157 /* feature_manager.h in Headers */, - A926BB0727AC718A00144157 /* passes.h in Headers */, - A926B80D27AC718900144157 /* operand_to_undef_reduction_opportunity_finder.h in Headers */, - A926B7DD27AC718900144157 /* parse_number.h in Headers */, - A926B82E27AC718900144157 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */, - A926B9A827AC718900144157 /* control_dependence.h in Headers */, - A926B7F527AC718900144157 /* bit_vector.h in Headers */, - A926B96927AC718900144157 /* strip_debug_info_pass.h in Headers */, - A926B9F027AC718A00144157 /* private_to_local_pass.h in Headers */, - A926B96627AC718900144157 /* scalar_analysis.h in Headers */, - A926B82227AC718900144157 /* operand_to_const_reduction_opportunity_finder.h in Headers */, - A926B86D27AC718900144157 /* merge_blocks_reduction_opportunity_finder.h in Headers */, - A926BAB927AC718A00144157 /* loop_fission.h in Headers */, - A926BAC827AC718A00144157 /* eliminate_dead_constant_pass.h in Headers */, - A926B8FD27AC718900144157 /* text_handler.h in Headers */, - A926B80427AC718900144157 /* ilist.h in Headers */, - A926B9F327AC718A00144157 /* convert_to_half_pass.h in Headers */, - A926BB1627AC718A00144157 /* remove_duplicates_pass.h in Headers */, - A926BB1327AC718A00144157 /* simplification_pass.h in Headers */, - A926B7E327AC718900144157 /* make_unique.h in Headers */, - A926BB3427AC718A00144157 /* pch_source_opt.h in Headers */, - A926BA6B27AC718A00144157 /* instrument_pass.h in Headers */, - A926B8C427AC718900144157 /* reduction_pass.h in Headers */, - A926B97B27AC718900144157 /* replace_invalid_opc.h in Headers */, - A926C0F227AC718C00144157 /* instruction.h in Headers */, - A926B84927AC718900144157 /* remove_struct_member_reduction_opportunity.h in Headers */, - A926BA8627AC718A00144157 /* inline_pass.h in Headers */, - A926B7FB27AC718900144157 /* hex_float.h in Headers */, - A926B93F27AC718900144157 /* inline_opaque_pass.h in Headers */, - A926BB9127AC718A00144157 /* ccp_pass.h in Headers */, - A926BB4C27AC718A00144157 /* loop_utils.h in Headers */, - A926B88227AC718900144157 /* remove_function_reduction_opportunity_finder.h in Headers */, - A926B7CB27AC718900144157 /* enum_set.h in Headers */, - A926BA9E27AC718A00144157 /* constants.h in Headers */, - A926B9E127AC718A00144157 /* debug_info_manager.h in Headers */, - A926B7C527AC718900144157 /* lints.h in Headers */, - A926BBBE27AC718A00144157 /* table.h in Headers */, - A926BADA27AC718A00144157 /* dominator_analysis.h in Headers */, - A926B89727AC718900144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */, - A926B90C27AC718900144157 /* diagnostic.h in Headers */, - A926BACE27AC718A00144157 /* ssa_rewrite_pass.h in Headers */, - A926BA3827AC718A00144157 /* decoration_manager.h in Headers */, - A926BAE927AC718A00144157 /* eliminate_dead_functions_util.h in Headers */, - A926BAC227AC718A00144157 /* log.h in Headers */, - A926BB5527AC718A00144157 /* ir_builder.h in Headers */, - A926BAFE27AC718A00144157 /* fix_storage_class.h in Headers */, - A926B96C27AC718900144157 /* replace_desc_array_access_using_var_index.h in Headers */, - A926BB2527AC718A00144157 /* null_pass.h in Headers */, - A926BA4127AC718A00144157 /* interp_fixup_pass.h in Headers */, - A926B8C727AC718900144157 /* latest_version_opencl_std_header.h in Headers */, - A926B90327AC718900144157 /* name_mapper.h in Headers */, - A926BB4F27AC718A00144157 /* module.h in Headers */, - A926B8D327AC718900144157 /* enum_string_mapping.h in Headers */, - A926B7B927AC718900144157 /* assembly_grammar.h in Headers */, - A926C05627AC718C00144157 /* ext_inst.h in Headers */, - A926B7E927AC718900144157 /* small_vector.h in Headers */, - A926BB2B27AC718A00144157 /* const_folding_rules.h in Headers */, - A926BA9227AC718A00144157 /* flatten_decoration_pass.h in Headers */, - A926B9C327AC718900144157 /* ir_loader.h in Headers */, - A926BA0E27AC718A00144157 /* local_redundancy_elimination.h in Headers */, - A926B81327AC718900144157 /* remove_block_reduction_opportunity.h in Headers */, - A926C0CB27AC718C00144157 /* validate_scopes.h in Headers */, - A926B8A327AC718900144157 /* remove_block_reduction_opportunity_finder.h in Headers */, - A926B89427AC718900144157 /* reduction_opportunity.h in Headers */, - A926B85E27AC718900144157 /* change_operand_to_undef_reduction_opportunity.h in Headers */, - A926B85827AC718900144157 /* remove_function_reduction_opportunity.h in Headers */, - A926C06527AC718C00144157 /* spirv_optimizer_options.h in Headers */, - A926B97E27AC718900144157 /* local_access_chain_convert_pass.h in Headers */, - A926B8F727AC718900144157 /* spirv_validator_options.h in Headers */, - A926B80727AC718900144157 /* spirv_target_env.h in Headers */, - A926B9DB27AC718A00144157 /* block_merge_pass.h in Headers */, - A926C06E27AC718C00144157 /* latest_version_glsl_std_450_header.h in Headers */, - A926B7EF27AC718900144157 /* timer.h in Headers */, - A926B86127AC718900144157 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */, - A926B87627AC718900144157 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */, - A926C08927AC718C00144157 /* construct.h in Headers */, - A926BABC27AC718A00144157 /* workaround1209.h in Headers */, - A926BAF227AC718A00144157 /* dead_branch_elim_pass.h in Headers */, - A926BBAC27AC718A00144157 /* set_spec_constant_default_value_pass.h in Headers */, - A926B86A27AC718900144157 /* remove_selection_reduction_opportunity_finder.h in Headers */, - A926BBA627AC718A00144157 /* inst_bindless_check_pass.h in Headers */, - A926BB8E27AC718A00144157 /* build_module.h in Headers */, - A926B9FC27AC718A00144157 /* def_use_manager.h in Headers */, - A926BAE627AC718A00144157 /* eliminate_dead_functions_pass.h in Headers */, - A926B94227AC718900144157 /* loop_fusion.h in Headers */, - A926B98D27AC718900144157 /* instruction_list.h in Headers */, - A926B94B27AC718900144157 /* composite.h in Headers */, - A926B92127AC718900144157 /* print.h in Headers */, - A926B7F827AC718900144157 /* bitutils.h in Headers */, - A926BA2327AC718A00144157 /* loop_fusion_pass.h in Headers */, - A926B91827AC718900144157 /* common_debug_info.h in Headers */, - A926C0BF27AC718C00144157 /* validate.h in Headers */, - A926BA2627AC718A00144157 /* struct_cfg_analysis.h in Headers */, - A926B8D027AC718900144157 /* pch_source.h in Headers */, - A926B83427AC718900144157 /* remove_instruction_reduction_opportunity.h in Headers */, - A926B7E027AC718900144157 /* ilist_node.h in Headers */, - A926B95427AC718900144157 /* tree_iterator.h in Headers */, - A926B94E27AC718900144157 /* compact_ids_pass.h in Headers */, - A926BAE327AC718A00144157 /* folding_rules.h in Headers */, - A926B8A927AC718900144157 /* reduction_util.h in Headers */, - A926B88527AC718900144157 /* pch_source_reduce.h in Headers */, - A926BB7C27AC718A00144157 /* spread_volatile_semantics.h in Headers */, - A926BA0227AC718A00144157 /* convert_to_sampled_image_pass.h in Headers */, - A926BA1127AC718A00144157 /* loop_peeling.h in Headers */, - A926C07127AC718C00144157 /* extensions.h in Headers */, - A926BA8927AC718A00144157 /* loop_dependence.h in Headers */, - A926B8A027AC718900144157 /* change_operand_reduction_opportunity.h in Headers */, - A926B9F627AC718A00144157 /* relax_float_ops_pass.h in Headers */, - A926BA7427AC718A00144157 /* eliminate_dead_members_pass.h in Headers */, - A926B7D427AC718900144157 /* text.h in Headers */, - A926BA3227AC718A00144157 /* wrap_opkill.h in Headers */, - A926B81627AC718900144157 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */, - A926C05C27AC718C00144157 /* latest_version_spirv_header.h in Headers */, - A926B90027AC718900144157 /* parsed_operand.h in Headers */, - A926BB1F27AC718A00144157 /* reflect.h in Headers */, - A926C0AD27AC718C00144157 /* validation_state.h in Headers */, - A926B8CD27AC718900144157 /* cfa.h in Headers */, - A926B81C27AC718900144157 /* structured_construct_to_block_reduction_opportunity.h in Headers */, - A926C06227AC718C00144157 /* instruction.h in Headers */, - A926BBB227AC718A00144157 /* remove_unused_interface_variables_pass.h in Headers */, - A926BB6A27AC718A00144157 /* instruction.h in Headers */, - A926C06827AC718C00144157 /* opcode.h in Headers */, - A926B84C27AC718900144157 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */, - A926B9A227AC718900144157 /* ir_context.h in Headers */, - A926B8E527AC718900144157 /* spirv_definition.h in Headers */, - A926BAC527AC718A00144157 /* copy_prop_arrays.h in Headers */, - A926BB6127AC718A00144157 /* code_sink.h in Headers */, - A926B7E627AC718900144157 /* string_utils.h in Headers */, - A926BB7327AC718A00144157 /* vector_dce.h in Headers */, - A926BA6E27AC718A00144157 /* mem_pass.h in Headers */, - A926B7C827AC718900144157 /* divergence_analysis.h in Headers */, - A926BAE027AC718A00144157 /* pass.h in Headers */, - A926B88E27AC718900144157 /* reducer.h in Headers */, - A926B7B627AC718900144157 /* spirv_fuzzer_options.h in Headers */, - A926B8F127AC718900144157 /* spirv_constant.h in Headers */, - A926BB2E27AC718A00144157 /* scalar_replacement_pass.h in Headers */, - A926BAD427AC718A00144157 /* dead_variable_elimination.h in Headers */, - A926B9B427AC718900144157 /* loop_unroller.h in Headers */, - A926C10127AC718C00144157 /* function.h in Headers */, - A926B8AC27AC718900144157 /* merge_blocks_reduction_opportunity.h in Headers */, - A926BB5E27AC718A00144157 /* cfg.h in Headers */, - A926B93627AC718900144157 /* strip_nonsemantic_info_pass.h in Headers */, - A926C07727AC718C00144157 /* binary.h in Headers */, - A926B82827AC718900144157 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */, - A926BBA327AC718A00144157 /* dataflow.h in Headers */, - A926C09827AC718C00144157 /* basic_block.h in Headers */, - A926BAF827AC718A00144157 /* scalar_analysis_nodes.h in Headers */, - A926B9C927AC718900144157 /* types.h in Headers */, - A926C10D27AC718C00144157 /* decoration.h in Headers */, - A926BA8C27AC718A00144157 /* value_number_table.h in Headers */, - A926B85527AC718900144157 /* structured_loop_to_selection_reduction_opportunity.h in Headers */, - A926B92D27AC718900144157 /* if_conversion.h in Headers */, - A926B86427AC718900144157 /* remove_selection_reduction_opportunity.h in Headers */, - A926B8D927AC718900144157 /* spirv_reducer_options.h in Headers */, - A926B90F27AC718900144157 /* spirv_endian.h in Headers */, - A926BB6D27AC718A00144157 /* aggressive_dead_code_elim_pass.h in Headers */, - A926BB3A27AC718A00144157 /* redundancy_elimination.h in Headers */, - A926C0D127AC718C00144157 /* validate_memory_semantics.h in Headers */, - A926BAEC27AC718A00144157 /* fold.h in Headers */, - A926B85B27AC718900144157 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */, - A926BB7627AC718A00144157 /* combine_access_chains.h in Headers */, - A926BB1927AC718A00144157 /* desc_sroa_util.h in Headers */, - A926BA1D27AC718A00144157 /* desc_sroa.h in Headers */, - A926B95127AC718900144157 /* register_pressure.h in Headers */, - A926BA3527AC718A00144157 /* empty_pass.h in Headers */, - A926B95A27AC718900144157 /* local_single_store_elim_pass.h in Headers */, - A926BA9B27AC718A00144157 /* inline_exhaustive_pass.h in Headers */, - A926BBB527AC718A00144157 /* type_manager.h in Headers */, - A926BA4A27AC718A00144157 /* strength_reduction_pass.h in Headers */, - A926B98A27AC718900144157 /* propagator.h in Headers */, - A926B83727AC718900144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */, - A926BA3E27AC718A00144157 /* local_single_block_elim_pass.h in Headers */, - A926BB7927AC718A00144157 /* pass_manager.h in Headers */, - A926BA6527AC718A00144157 /* freeze_spec_constant_value_pass.h in Headers */, - A926B93C27AC718900144157 /* merge_return_pass.h in Headers */, - A926B92727AC718900144157 /* disassemble.h in Headers */, - A926BA4727AC718A00144157 /* inst_buff_addr_check_pass.h in Headers */, - A926B99C27AC718900144157 /* amd_ext_to_khr.h in Headers */, - A926B95D27AC718900144157 /* reduce_load_size.h in Headers */, - A926BA1727AC718A00144157 /* block_merge_util.h in Headers */, - A926BB8B27AC718A00144157 /* licm_pass.h in Headers */, - A926B9C027AC718900144157 /* unify_const_pass.h in Headers */, - A926BBAF27AC718A00144157 /* dominator_tree.h in Headers */, - A926BAAD27AC718A00144157 /* upgrade_memory_model.h in Headers */, - A926B8E827AC718900144157 /* operand.h in Headers */, - A926B8EE27AC718900144157 /* macro.h in Headers */, - A926B9D227AC718A00144157 /* basic_block.h in Headers */, + A9EE0DCE28FDD2560013FF99 /* replace_invalid_opc.h in Headers */, + A9EE0E1628FDD2560013FF99 /* ir_loader.h in Headers */, + A9EE0D4D28FDD2560013FF99 /* text_handler.h in Headers */, + A9EE0C2128FDD2560013FF99 /* parse_number.h in Headers */, + A9EE0C2728FDD2560013FF99 /* make_unique.h in Headers */, + A9EE0E6D28FDD2570013FF99 /* block_merge_util.h in Headers */, + A9EE0DB928FDD2560013FF99 /* scalar_analysis.h in Headers */, + A9EE0D9B28FDD2560013FF99 /* composite.h in Headers */, + A9EE0F2128FDD2570013FF99 /* copy_prop_arrays.h in Headers */, + A9EE14CA28FDD2590013FF99 /* instruction.h in Headers */, + A9EE0E4628FDD2560013FF99 /* convert_to_half_pass.h in Headers */, + A9EE0C0F28FDD2560013FF99 /* enum_set.h in Headers */, + A9EE0EAC28FDD2570013FF99 /* inst_debug_printf_pass.h in Headers */, + A9EE14DF28FDD2590013FF99 /* binary.h in Headers */, + A9EE0FC628FDD2570013FF99 /* loop_descriptor.h in Headers */, + A9EE0FC928FDD2570013FF99 /* instruction.h in Headers */, + A9EE101D28FDD2570013FF99 /* type_manager.h in Headers */, + A9EE0E6728FDD2570013FF99 /* loop_peeling.h in Headers */, + A9EE0EB828FDD2570013FF99 /* dead_insert_elim_pass.h in Headers */, + A9EE0C0928FDD2560013FF99 /* lints.h in Headers */, + A9EE0CDB28FDD2560013FF99 /* reduction_opportunity.h in Headers */, + A9EE0FAE28FDD2570013FF99 /* module.h in Headers */, + A9EE0F3628FDD2570013FF99 /* dominator_analysis.h in Headers */, + A9EE0D8F28FDD2560013FF99 /* inline_opaque_pass.h in Headers */, + A9EE0F7828FDD2570013FF99 /* desc_sroa_util.h in Headers */, + A9EE0E1F28FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.h in Headers */, + A9EE0E5828FDD2570013FF99 /* convert_to_sampled_image_pass.h in Headers */, + A9EE14D628FDD2590013FF99 /* latest_version_glsl_std_450_header.h in Headers */, + A9EE0DD128FDD2560013FF99 /* local_access_chain_convert_pass.h in Headers */, + A9EE0E8B28FDD2570013FF99 /* empty_pass.h in Headers */, + A9EE100E28FDD2570013FF99 /* inst_bindless_check_pass.h in Headers */, + A9EE0D1728FDD2560013FF99 /* pch_source.h in Headers */, + A9EE153928FDD2590013FF99 /* validate_scopes.h in Headers */, + A9EE0DAA28FDD2560013FF99 /* graphics_robust_access_pass.h in Headers */, + A9EE0E4328FDD2560013FF99 /* private_to_local_pass.h in Headers */, + A9EE100828FDD2570013FF99 /* feature_manager.h in Headers */, + A9EE0C6928FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.h in Headers */, + A9EE14D028FDD2590013FF99 /* opcode.h in Headers */, + A9EE0E9728FDD2570013FF99 /* local_single_block_elim_pass.h in Headers */, + A9EE0F5428FDD2570013FF99 /* scalar_analysis_nodes.h in Headers */, + A9EE0D8628FDD2560013FF99 /* strip_nonsemantic_info_pass.h in Headers */, + A9EE0E2528FDD2560013FF99 /* basic_block.h in Headers */, + A9EE0EFA28FDD2570013FF99 /* constants.h in Headers */, + A9EE0C6328FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.h in Headers */, + A9EE14F128FDD2590013FF99 /* construct.h in Headers */, + A9EE0C4E28FDD2560013FF99 /* spirv_target_env.h in Headers */, + A9EE0E1C28FDD2560013FF99 /* types.h in Headers */, + A9EE0FD528FDD2570013FF99 /* vector_dce.h in Headers */, + A9EE0D9228FDD2560013FF99 /* loop_fusion.h in Headers */, + A9EE0EC728FDD2570013FF99 /* mem_pass.h in Headers */, + A9EE0FDB28FDD2570013FF99 /* pass_manager.h in Headers */, + A9EE0D7128FDD2560013FF99 /* print.h in Headers */, + A9EE150628FDD2590013FF99 /* basic_block.h in Headers */, + A9EE0C9C28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.h in Headers */, + A9EE0EE528FDD2570013FF99 /* value_number_table.h in Headers */, + A9EE0F7E28FDD2570013FF99 /* reflect.h in Headers */, + A9EE151B28FDD2590013FF99 /* validation_state.h in Headers */, + A9EE0E5B28FDD2570013FF99 /* cfg_cleanup_pass.h in Headers */, + A9EE0FDE28FDD2570013FF99 /* spread_volatile_semantics.h in Headers */, + A9EE0F3C28FDD2570013FF99 /* pass.h in Headers */, + A9EE0DA428FDD2560013FF99 /* tree_iterator.h in Headers */, + A9EE0F2428FDD2570013FF99 /* eliminate_dead_constant_pass.h in Headers */, + A9EE14BE28FDD2590013FF99 /* ext_inst.h in Headers */, + A9EE0C9028FDD2560013FF99 /* remove_struct_member_reduction_opportunity.h in Headers */, + A9EE0C3028FDD2560013FF99 /* hash_combine.h in Headers */, + A9EE0CDE28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */, + A9EE0DBC28FDD2560013FF99 /* strip_debug_info_pass.h in Headers */, + A9EE0E8828FDD2570013FF99 /* wrap_opkill.h in Headers */, + A9EE0CB428FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.h in Headers */, + A9EE0FF328FDD2570013FF99 /* ccp_pass.h in Headers */, + A9EE0F9928FDD2570013FF99 /* redundancy_elimination.h in Headers */, + A9EE0E9128FDD2570013FF99 /* decoration_manager.h in Headers */, + A9EE0D0B28FDD2560013FF99 /* reduction_pass.h in Headers */, + A9EE0DAD28FDD2560013FF99 /* local_single_store_elim_pass.h in Headers */, + A9EE0D0E28FDD2560013FF99 /* latest_version_opencl_std_header.h in Headers */, + A9EE0C5A28FDD2560013FF99 /* remove_block_reduction_opportunity.h in Headers */, + A9EE0F1528FDD2570013FF99 /* loop_fission.h in Headers */, + A9EE0CC928FDD2560013FF99 /* remove_function_reduction_opportunity_finder.h in Headers */, + A9EE0F8428FDD2570013FF99 /* null_pass.h in Headers */, + A9EE0C3C28FDD2560013FF99 /* bit_vector.h in Headers */, + A9EE0EA028FDD2570013FF99 /* inst_buff_addr_check_pass.h in Headers */, + A9EE0BFD28FDD2560013FF99 /* assembly_grammar.h in Headers */, + A9EE0E1328FDD2560013FF99 /* unify_const_pass.h in Headers */, + A9EE0C7528FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */, + A9EE0CF028FDD2560013FF99 /* reduction_util.h in Headers */, + A9EE14C428FDD2590013FF99 /* latest_version_spirv_header.h in Headers */, + A9EE0CEA28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.h in Headers */, + A9EE101428FDD2570013FF99 /* set_spec_constant_default_value_pass.h in Headers */, + A9EE0C5D28FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */, + A9EE0EDF28FDD2570013FF99 /* inline_pass.h in Headers */, + A9EE0F2A28FDD2570013FF99 /* ssa_rewrite_pass.h in Headers */, + A9EE0D2F28FDD2560013FF99 /* operand.h in Headers */, + A9EE0F0928FDD2570013FF99 /* upgrade_memory_model.h in Headers */, + A9EE0F6F28FDD2570013FF99 /* simplification_pass.h in Headers */, + A9EE0FAB28FDD2570013FF99 /* loop_utils.h in Headers */, + A9EE0D7728FDD2560013FF99 /* disassemble.h in Headers */, + A9EE0F4E28FDD2570013FF99 /* dead_branch_elim_pass.h in Headers */, + A9EE0CA228FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */, + A9EE0C2D28FDD2560013FF99 /* small_vector.h in Headers */, + A9EE0C2428FDD2560013FF99 /* ilist_node.h in Headers */, + A9EE0DF528FDD2560013FF99 /* ir_context.h in Headers */, + A9EE101A28FDD2570013FF99 /* remove_unused_interface_variables_pass.h in Headers */, + A9EE0DA728FDD2560013FF99 /* interface_var_sroa.h in Headers */, + A9EE0C6F28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */, + A9EE0FFC28FDD2570013FF99 /* fix_func_call_arguments.h in Headers */, + A9EE102628FDD2570013FF99 /* table.h in Headers */, + A9EE0E4C28FDD2560013FF99 /* relax_float_ops_pass.h in Headers */, + A9EE0F1E28FDD2570013FF99 /* log.h in Headers */, + A9EE0CAB28FDD2560013FF99 /* remove_selection_reduction_opportunity.h in Headers */, + A9EE0C1828FDD2560013FF99 /* text.h in Headers */, + A9EE0F4228FDD2570013FF99 /* eliminate_dead_functions_pass.h in Headers */, + A9EE157E28FDD2590013FF99 /* decoration.h in Headers */, + A9EE0C2A28FDD2560013FF99 /* string_utils.h in Headers */, + A9EE0CA528FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.h in Headers */, + A9EE0D4128FDD2560013FF99 /* lcs.h in Headers */, + A9EE0F8A28FDD2570013FF99 /* const_folding_rules.h in Headers */, + A9EE0C4B28FDD2560013FF99 /* ilist.h in Headers */, + A9EE0CA828FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */, + A9EE0DB028FDD2560013FF99 /* reduce_load_size.h in Headers */, + A9EE0DFB28FDD2560013FF99 /* control_dependence.h in Headers */, + A9EE101728FDD2570013FF99 /* dominator_tree.h in Headers */, + A9EE0D5C28FDD2560013FF99 /* diagnostic.h in Headers */, + A9EE0CF328FDD2560013FF99 /* merge_blocks_reduction_opportunity.h in Headers */, + A9EE0FCC28FDD2570013FF99 /* aggressive_dead_code_elim_pass.h in Headers */, + A9EE0D2028FDD2560013FF99 /* spirv_reducer_options.h in Headers */, + A9EE0FF028FDD2570013FF99 /* build_module.h in Headers */, + A9EE0FBD28FDD2570013FF99 /* cfg.h in Headers */, + A9EE0CCC28FDD2560013FF99 /* pch_source_reduce.h in Headers */, + A9EE0D5328FDD2560013FF99 /* name_mapper.h in Headers */, + A9EE0E0728FDD2560013FF99 /* loop_unroller.h in Headers */, + A9EE14D928FDD2590013FF99 /* extensions.h in Headers */, + A9EE152D28FDD2590013FF99 /* validate.h in Headers */, + A9EE0DE028FDD2560013FF99 /* instruction_list.h in Headers */, + A9EE0FB428FDD2570013FF99 /* ir_builder.h in Headers */, + A9EE0DDD28FDD2560013FF99 /* propagator.h in Headers */, + A9EE0C9328FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */, + A9EE0E7928FDD2570013FF99 /* loop_fusion_pass.h in Headers */, + A9EE0D3E28FDD2560013FF99 /* diff.h in Headers */, + A9EE0E4928FDD2560013FF99 /* remove_dontinline_pass.h in Headers */, + A9EE0F3028FDD2570013FF99 /* dead_variable_elimination.h in Headers */, + A9EE0FD828FDD2570013FF99 /* combine_access_chains.h in Headers */, + A9EE0CBD28FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */, + A9EE156028FDD2590013FF99 /* instruction.h in Headers */, + A9EE0D1A28FDD2560013FF99 /* enum_string_mapping.h in Headers */, + A9EE0F4528FDD2570013FF99 /* eliminate_dead_functions_util.h in Headers */, + A9EE0C4228FDD2560013FF99 /* hex_float.h in Headers */, + A9EE0F7528FDD2570013FF99 /* remove_duplicates_pass.h in Headers */, + A9EE0E9A28FDD2570013FF99 /* interp_fixup_pass.h in Headers */, + A9EE0D4728FDD2560013FF99 /* spirv_validator_options.h in Headers */, + A9EE0CB128FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.h in Headers */, + A9EE0D2C28FDD2560013FF99 /* spirv_definition.h in Headers */, + A9EE0C9F28FDD2560013FF99 /* remove_function_reduction_opportunity.h in Headers */, + A9EE0CD528FDD2560013FF99 /* reducer.h in Headers */, + A9EE0D6828FDD2560013FF99 /* common_debug_info.h in Headers */, + A9EE0D5F28FDD2560013FF99 /* spirv_endian.h in Headers */, + A9EE0EA328FDD2570013FF99 /* strength_reduction_pass.h in Headers */, + A9EE0F4828FDD2570013FF99 /* fold.h in Headers */, + A9EE0FC028FDD2570013FF99 /* code_sink.h in Headers */, + A9EE0F9328FDD2570013FF99 /* pch_source_opt.h in Headers */, + A9EE0FBA28FDD2570013FF99 /* loop_unswitch_pass.h in Headers */, + A9EE0CE428FDD2560013FF99 /* reduction_opportunity_finder.h in Headers */, + A9EE0C0C28FDD2560013FF99 /* divergence_analysis.h in Headers */, + A9EE157228FDD2590013FF99 /* function.h in Headers */, + A9EE0FF928FDD2570013FF99 /* function.h in Headers */, + A9EE0E2E28FDD2560013FF99 /* block_merge_pass.h in Headers */, + A9EE0C3F28FDD2560013FF99 /* bitutils.h in Headers */, + A9EE0F5A28FDD2570013FF99 /* fix_storage_class.h in Headers */, + A9EE0F3F28FDD2570013FF99 /* folding_rules.h in Headers */, + A9EE0D5028FDD2560013FF99 /* parsed_operand.h in Headers */, + A9EE0D3828FDD2560013FF99 /* spirv_constant.h in Headers */, + A9EE0D8C28FDD2560013FF99 /* merge_return_pass.h in Headers */, + A9EE0E7C28FDD2570013FF99 /* struct_cfg_analysis.h in Headers */, + A9EE0CE728FDD2560013FF99 /* change_operand_reduction_opportunity.h in Headers */, + A9EE0ECD28FDD2570013FF99 /* eliminate_dead_members_pass.h in Headers */, + A9EE0E8E28FDD2570013FF99 /* eliminate_dead_input_components_pass.h in Headers */, + A9EE0D1428FDD2560013FF99 /* cfa.h in Headers */, + A9EE0E7328FDD2570013FF99 /* desc_sroa.h in Headers */, + A9EE0DBF28FDD2560013FF99 /* replace_desc_array_access_using_var_index.h in Headers */, + A9EE0FED28FDD2570013FF99 /* licm_pass.h in Headers */, + A9EE153F28FDD2590013FF99 /* validate_memory_semantics.h in Headers */, + A9EE0E6428FDD2570013FF99 /* local_redundancy_elimination.h in Headers */, + A9EE0EEB28FDD2570013FF99 /* flatten_decoration_pass.h in Headers */, + A9EE0EBE28FDD2570013FF99 /* freeze_spec_constant_value_pass.h in Headers */, + A9EE0DEF28FDD2560013FF99 /* amd_ext_to_khr.h in Headers */, + A9EE0D9E28FDD2560013FF99 /* compact_ids_pass.h in Headers */, + A9EE0D3528FDD2560013FF99 /* macro.h in Headers */, + A9EE0C3628FDD2560013FF99 /* timer.h in Headers */, + A9EE0EE228FDD2570013FF99 /* loop_dependence.h in Headers */, + A9EE14CD28FDD2590013FF99 /* spirv_optimizer_options.h in Headers */, + A9EE0C7B28FDD2560013FF99 /* remove_instruction_reduction_opportunity.h in Headers */, + A9EE0F1828FDD2570013FF99 /* workaround1209.h in Headers */, + A9EE0EC428FDD2570013FF99 /* instrument_pass.h in Headers */, + A9EE0E5228FDD2570013FF99 /* def_use_manager.h in Headers */, + A9EE0E3428FDD2560013FF99 /* debug_info_manager.h in Headers */, + A9EE0C7E28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */, + A9EE100B28FDD2570013FF99 /* dataflow.h in Headers */, + A9EE0DA128FDD2560013FF99 /* register_pressure.h in Headers */, + A9EE0F8D28FDD2570013FF99 /* scalar_replacement_pass.h in Headers */, + A9EE0EF728FDD2570013FF99 /* inline_exhaustive_pass.h in Headers */, + A9EE0F6328FDD2570013FF99 /* passes.h in Headers */, + A9EE0FEA28FDD2570013FF99 /* iterator.h in Headers */, + A9EE0C5428FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.h in Headers */, + A9EE0BFA28FDD2560013FF99 /* spirv_fuzzer_options.h in Headers */, + A9EE0D7D28FDD2560013FF99 /* if_conversion.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3526,203 +3625,210 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A926BB6927AC718A00144157 /* loop_descriptor.h in Headers */, - A926B89F27AC718900144157 /* reduction_opportunity_finder.h in Headers */, - A926BB8A27AC718A00144157 /* iterator.h in Headers */, - A926BA0727AC718A00144157 /* cfg_cleanup_pass.h in Headers */, - A926BA5527AC718A00144157 /* inst_debug_printf_pass.h in Headers */, - A926BA6127AC718A00144157 /* dead_insert_elim_pass.h in Headers */, - A926BB9927AC718A00144157 /* function.h in Headers */, - A926BB5D27AC718A00144157 /* loop_unswitch_pass.h in Headers */, - A926B9CE27AC718A00144157 /* fold_spec_constant_op_and_composite_pass.h in Headers */, - A926B95927AC718900144157 /* graphics_robust_access_pass.h in Headers */, - A926BBA227AC718A00144157 /* feature_manager.h in Headers */, - A926BB0927AC718A00144157 /* passes.h in Headers */, - A926B80F27AC718900144157 /* operand_to_undef_reduction_opportunity_finder.h in Headers */, - A926B7DF27AC718900144157 /* parse_number.h in Headers */, - A926B83027AC718900144157 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */, - A926B9AA27AC718900144157 /* control_dependence.h in Headers */, - A926B7F727AC718900144157 /* bit_vector.h in Headers */, - A926B96B27AC718900144157 /* strip_debug_info_pass.h in Headers */, - A926B9F227AC718A00144157 /* private_to_local_pass.h in Headers */, - A926B96827AC718900144157 /* scalar_analysis.h in Headers */, - A926B82427AC718900144157 /* operand_to_const_reduction_opportunity_finder.h in Headers */, - A926B86F27AC718900144157 /* merge_blocks_reduction_opportunity_finder.h in Headers */, - A926BABB27AC718A00144157 /* loop_fission.h in Headers */, - A926BACA27AC718A00144157 /* eliminate_dead_constant_pass.h in Headers */, - A926B8FF27AC718900144157 /* text_handler.h in Headers */, - A926B80627AC718900144157 /* ilist.h in Headers */, - A926B9F527AC718A00144157 /* convert_to_half_pass.h in Headers */, - A926BB1827AC718A00144157 /* remove_duplicates_pass.h in Headers */, - A926BB1527AC718A00144157 /* simplification_pass.h in Headers */, - A926B7E527AC718900144157 /* make_unique.h in Headers */, - A926BB3627AC718A00144157 /* pch_source_opt.h in Headers */, - A926BA6D27AC718A00144157 /* instrument_pass.h in Headers */, - A926B8C627AC718900144157 /* reduction_pass.h in Headers */, - A926B97D27AC718900144157 /* replace_invalid_opc.h in Headers */, - A926C0F427AC718C00144157 /* instruction.h in Headers */, - A926B84B27AC718900144157 /* remove_struct_member_reduction_opportunity.h in Headers */, - A926BA8827AC718A00144157 /* inline_pass.h in Headers */, - A926B7FD27AC718900144157 /* hex_float.h in Headers */, - A926B94127AC718900144157 /* inline_opaque_pass.h in Headers */, - A926BB9327AC718A00144157 /* ccp_pass.h in Headers */, - A926BB4E27AC718A00144157 /* loop_utils.h in Headers */, - A926B88427AC718900144157 /* remove_function_reduction_opportunity_finder.h in Headers */, - A926B7CD27AC718900144157 /* enum_set.h in Headers */, - A926BAA027AC718A00144157 /* constants.h in Headers */, - A926B9E327AC718A00144157 /* debug_info_manager.h in Headers */, - A926B7C727AC718900144157 /* lints.h in Headers */, - A926BBC027AC718A00144157 /* table.h in Headers */, - A926BADC27AC718A00144157 /* dominator_analysis.h in Headers */, - A926B89927AC718900144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */, - A926B90E27AC718900144157 /* diagnostic.h in Headers */, - A926BAD027AC718A00144157 /* ssa_rewrite_pass.h in Headers */, - A926BA3A27AC718A00144157 /* decoration_manager.h in Headers */, - A926BAEB27AC718A00144157 /* eliminate_dead_functions_util.h in Headers */, - A926BAC427AC718A00144157 /* log.h in Headers */, - A926BB5727AC718A00144157 /* ir_builder.h in Headers */, - A926BB0027AC718A00144157 /* fix_storage_class.h in Headers */, - A926B96E27AC718900144157 /* replace_desc_array_access_using_var_index.h in Headers */, - A926BB2727AC718A00144157 /* null_pass.h in Headers */, - A926BA4327AC718A00144157 /* interp_fixup_pass.h in Headers */, - A926B8C927AC718900144157 /* latest_version_opencl_std_header.h in Headers */, - A926B90527AC718900144157 /* name_mapper.h in Headers */, - A926BB5127AC718A00144157 /* module.h in Headers */, - A926B8D527AC718900144157 /* enum_string_mapping.h in Headers */, - A926B7BB27AC718900144157 /* assembly_grammar.h in Headers */, - A926C05827AC718C00144157 /* ext_inst.h in Headers */, - A926B7EB27AC718900144157 /* small_vector.h in Headers */, - A926BB2D27AC718A00144157 /* const_folding_rules.h in Headers */, - A926BA9427AC718A00144157 /* flatten_decoration_pass.h in Headers */, - A926B9C527AC718900144157 /* ir_loader.h in Headers */, - A926BA1027AC718A00144157 /* local_redundancy_elimination.h in Headers */, - A926B81527AC718900144157 /* remove_block_reduction_opportunity.h in Headers */, - A926C0CD27AC718C00144157 /* validate_scopes.h in Headers */, - A926B8A527AC718900144157 /* remove_block_reduction_opportunity_finder.h in Headers */, - A926B89627AC718900144157 /* reduction_opportunity.h in Headers */, - A926B86027AC718900144157 /* change_operand_to_undef_reduction_opportunity.h in Headers */, - A926B85A27AC718900144157 /* remove_function_reduction_opportunity.h in Headers */, - A926C06727AC718C00144157 /* spirv_optimizer_options.h in Headers */, - A926B98027AC718900144157 /* local_access_chain_convert_pass.h in Headers */, - A926B8F927AC718900144157 /* spirv_validator_options.h in Headers */, - A926B80927AC718900144157 /* spirv_target_env.h in Headers */, - A926B9DD27AC718A00144157 /* block_merge_pass.h in Headers */, - A926C07027AC718C00144157 /* latest_version_glsl_std_450_header.h in Headers */, - A926B7F127AC718900144157 /* timer.h in Headers */, - A926B86327AC718900144157 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */, - A926B87827AC718900144157 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */, - A926C08B27AC718C00144157 /* construct.h in Headers */, - A926BABE27AC718A00144157 /* workaround1209.h in Headers */, - A926BAF427AC718A00144157 /* dead_branch_elim_pass.h in Headers */, - A926BBAE27AC718A00144157 /* set_spec_constant_default_value_pass.h in Headers */, - A926B86C27AC718900144157 /* remove_selection_reduction_opportunity_finder.h in Headers */, - A926BBA827AC718A00144157 /* inst_bindless_check_pass.h in Headers */, - A926BB9027AC718A00144157 /* build_module.h in Headers */, - A926B9FE27AC718A00144157 /* def_use_manager.h in Headers */, - A926BAE827AC718A00144157 /* eliminate_dead_functions_pass.h in Headers */, - A926B94427AC718900144157 /* loop_fusion.h in Headers */, - A926B98F27AC718900144157 /* instruction_list.h in Headers */, - A926B94D27AC718900144157 /* composite.h in Headers */, - A926B92327AC718900144157 /* print.h in Headers */, - A926B7FA27AC718900144157 /* bitutils.h in Headers */, - A926BA2527AC718A00144157 /* loop_fusion_pass.h in Headers */, - A926B91A27AC718900144157 /* common_debug_info.h in Headers */, - A926C0C127AC718C00144157 /* validate.h in Headers */, - A926BA2827AC718A00144157 /* struct_cfg_analysis.h in Headers */, - A926B8D227AC718900144157 /* pch_source.h in Headers */, - A926B83627AC718900144157 /* remove_instruction_reduction_opportunity.h in Headers */, - A926B7E227AC718900144157 /* ilist_node.h in Headers */, - A926B95627AC718900144157 /* tree_iterator.h in Headers */, - A926B95027AC718900144157 /* compact_ids_pass.h in Headers */, - A926BAE527AC718A00144157 /* folding_rules.h in Headers */, - A926B8AB27AC718900144157 /* reduction_util.h in Headers */, - A926B88727AC718900144157 /* pch_source_reduce.h in Headers */, - A926BB7E27AC718A00144157 /* spread_volatile_semantics.h in Headers */, - A926BA0427AC718A00144157 /* convert_to_sampled_image_pass.h in Headers */, - A926BA1327AC718A00144157 /* loop_peeling.h in Headers */, - A926C07327AC718C00144157 /* extensions.h in Headers */, - A926BA8B27AC718A00144157 /* loop_dependence.h in Headers */, - A926B8A227AC718900144157 /* change_operand_reduction_opportunity.h in Headers */, - A926B9F827AC718A00144157 /* relax_float_ops_pass.h in Headers */, - A926BA7627AC718A00144157 /* eliminate_dead_members_pass.h in Headers */, - A926B7D627AC718900144157 /* text.h in Headers */, - A926BA3427AC718A00144157 /* wrap_opkill.h in Headers */, - A926B81827AC718900144157 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */, - A926C05E27AC718C00144157 /* latest_version_spirv_header.h in Headers */, - A926B90227AC718900144157 /* parsed_operand.h in Headers */, - A926BB2127AC718A00144157 /* reflect.h in Headers */, - A926C0AF27AC718C00144157 /* validation_state.h in Headers */, - A926B8CF27AC718900144157 /* cfa.h in Headers */, - A926B81E27AC718900144157 /* structured_construct_to_block_reduction_opportunity.h in Headers */, - A926C06427AC718C00144157 /* instruction.h in Headers */, - A926BBB427AC718A00144157 /* remove_unused_interface_variables_pass.h in Headers */, - A926BB6C27AC718A00144157 /* instruction.h in Headers */, - A926C06A27AC718C00144157 /* opcode.h in Headers */, - A926B84E27AC718900144157 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */, - A926B9A427AC718900144157 /* ir_context.h in Headers */, - A926B8E727AC718900144157 /* spirv_definition.h in Headers */, - A926BAC727AC718A00144157 /* copy_prop_arrays.h in Headers */, - A926BB6327AC718A00144157 /* code_sink.h in Headers */, - A926B7E827AC718900144157 /* string_utils.h in Headers */, - A926BB7527AC718A00144157 /* vector_dce.h in Headers */, - A926BA7027AC718A00144157 /* mem_pass.h in Headers */, - A926B7CA27AC718900144157 /* divergence_analysis.h in Headers */, - A926BAE227AC718A00144157 /* pass.h in Headers */, - A926B89027AC718900144157 /* reducer.h in Headers */, - A926B7B827AC718900144157 /* spirv_fuzzer_options.h in Headers */, - A926B8F327AC718900144157 /* spirv_constant.h in Headers */, - A926BB3027AC718A00144157 /* scalar_replacement_pass.h in Headers */, - A926BAD627AC718A00144157 /* dead_variable_elimination.h in Headers */, - A926B9B627AC718900144157 /* loop_unroller.h in Headers */, - A926C10327AC718C00144157 /* function.h in Headers */, - A926B8AE27AC718900144157 /* merge_blocks_reduction_opportunity.h in Headers */, - A926BB6027AC718A00144157 /* cfg.h in Headers */, - A926B93827AC718900144157 /* strip_nonsemantic_info_pass.h in Headers */, - A926C07927AC718C00144157 /* binary.h in Headers */, - A926B82A27AC718900144157 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */, - A926BBA527AC718A00144157 /* dataflow.h in Headers */, - A926C09A27AC718C00144157 /* basic_block.h in Headers */, - A926BAFA27AC718A00144157 /* scalar_analysis_nodes.h in Headers */, - A926B9CB27AC718900144157 /* types.h in Headers */, - A926C10F27AC718C00144157 /* decoration.h in Headers */, - A926BA8E27AC718A00144157 /* value_number_table.h in Headers */, - A926B85727AC718900144157 /* structured_loop_to_selection_reduction_opportunity.h in Headers */, - A926B92F27AC718900144157 /* if_conversion.h in Headers */, - A926B86627AC718900144157 /* remove_selection_reduction_opportunity.h in Headers */, - A926B8DB27AC718900144157 /* spirv_reducer_options.h in Headers */, - A926B91127AC718900144157 /* spirv_endian.h in Headers */, - A926BB6F27AC718A00144157 /* aggressive_dead_code_elim_pass.h in Headers */, - A926BB3C27AC718A00144157 /* redundancy_elimination.h in Headers */, - A926C0D327AC718C00144157 /* validate_memory_semantics.h in Headers */, - A926BAEE27AC718A00144157 /* fold.h in Headers */, - A926B85D27AC718900144157 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */, - A926BB7827AC718A00144157 /* combine_access_chains.h in Headers */, - A926BB1B27AC718A00144157 /* desc_sroa_util.h in Headers */, - A926BA1F27AC718A00144157 /* desc_sroa.h in Headers */, - A926B95327AC718900144157 /* register_pressure.h in Headers */, - A926BA3727AC718A00144157 /* empty_pass.h in Headers */, - A926B95C27AC718900144157 /* local_single_store_elim_pass.h in Headers */, - A926BA9D27AC718A00144157 /* inline_exhaustive_pass.h in Headers */, - A926BBB727AC718A00144157 /* type_manager.h in Headers */, - A926BA4C27AC718A00144157 /* strength_reduction_pass.h in Headers */, - A926B98C27AC718900144157 /* propagator.h in Headers */, - A926B83927AC718900144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */, - A926BA4027AC718A00144157 /* local_single_block_elim_pass.h in Headers */, - A926BB7B27AC718A00144157 /* pass_manager.h in Headers */, - A926BA6727AC718A00144157 /* freeze_spec_constant_value_pass.h in Headers */, - A926B93E27AC718900144157 /* merge_return_pass.h in Headers */, - A926B92927AC718900144157 /* disassemble.h in Headers */, - A926BA4927AC718A00144157 /* inst_buff_addr_check_pass.h in Headers */, - A926B99E27AC718900144157 /* amd_ext_to_khr.h in Headers */, - A926B95F27AC718900144157 /* reduce_load_size.h in Headers */, - A926BA1927AC718A00144157 /* block_merge_util.h in Headers */, - A926BB8D27AC718A00144157 /* licm_pass.h in Headers */, - A926B9C227AC718900144157 /* unify_const_pass.h in Headers */, - A926BBB127AC718A00144157 /* dominator_tree.h in Headers */, - A926BAAF27AC718A00144157 /* upgrade_memory_model.h in Headers */, - A926B8EA27AC718900144157 /* operand.h in Headers */, - A926B8F027AC718900144157 /* macro.h in Headers */, - A926B9D427AC718A00144157 /* basic_block.h in Headers */, + A9EE0DD028FDD2560013FF99 /* replace_invalid_opc.h in Headers */, + A9EE0E1828FDD2560013FF99 /* ir_loader.h in Headers */, + A9EE0D4F28FDD2560013FF99 /* text_handler.h in Headers */, + A9EE0C2328FDD2560013FF99 /* parse_number.h in Headers */, + A9EE0C2928FDD2560013FF99 /* make_unique.h in Headers */, + A9EE0E6F28FDD2570013FF99 /* block_merge_util.h in Headers */, + A9EE0DBB28FDD2560013FF99 /* scalar_analysis.h in Headers */, + A9EE0D9D28FDD2560013FF99 /* composite.h in Headers */, + A9EE0F2328FDD2570013FF99 /* copy_prop_arrays.h in Headers */, + A9EE14CC28FDD2590013FF99 /* instruction.h in Headers */, + A9EE0E4828FDD2560013FF99 /* convert_to_half_pass.h in Headers */, + A9EE0C1128FDD2560013FF99 /* enum_set.h in Headers */, + A9EE0EAE28FDD2570013FF99 /* inst_debug_printf_pass.h in Headers */, + A9EE14E128FDD2590013FF99 /* binary.h in Headers */, + A9EE0FC828FDD2570013FF99 /* loop_descriptor.h in Headers */, + A9EE0FCB28FDD2570013FF99 /* instruction.h in Headers */, + A9EE101F28FDD2570013FF99 /* type_manager.h in Headers */, + A9EE0E6928FDD2570013FF99 /* loop_peeling.h in Headers */, + A9EE0EBA28FDD2570013FF99 /* dead_insert_elim_pass.h in Headers */, + A9EE0C0B28FDD2560013FF99 /* lints.h in Headers */, + A9EE0CDD28FDD2560013FF99 /* reduction_opportunity.h in Headers */, + A9EE0FB028FDD2570013FF99 /* module.h in Headers */, + A9EE0F3828FDD2570013FF99 /* dominator_analysis.h in Headers */, + A9EE0D9128FDD2560013FF99 /* inline_opaque_pass.h in Headers */, + A9EE0F7A28FDD2570013FF99 /* desc_sroa_util.h in Headers */, + A9EE0E2128FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.h in Headers */, + A9EE0E5A28FDD2570013FF99 /* convert_to_sampled_image_pass.h in Headers */, + A9EE14D828FDD2590013FF99 /* latest_version_glsl_std_450_header.h in Headers */, + A9EE0DD328FDD2560013FF99 /* local_access_chain_convert_pass.h in Headers */, + A9EE0E8D28FDD2570013FF99 /* empty_pass.h in Headers */, + A9EE101028FDD2570013FF99 /* inst_bindless_check_pass.h in Headers */, + A9EE0D1928FDD2560013FF99 /* pch_source.h in Headers */, + A9EE153B28FDD2590013FF99 /* validate_scopes.h in Headers */, + A9EE0DAC28FDD2560013FF99 /* graphics_robust_access_pass.h in Headers */, + A9EE0E4528FDD2560013FF99 /* private_to_local_pass.h in Headers */, + A9EE100A28FDD2570013FF99 /* feature_manager.h in Headers */, + A9EE0C6B28FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.h in Headers */, + A9EE14D228FDD2590013FF99 /* opcode.h in Headers */, + A9EE0E9928FDD2570013FF99 /* local_single_block_elim_pass.h in Headers */, + A9EE0F5628FDD2570013FF99 /* scalar_analysis_nodes.h in Headers */, + A9EE0D8828FDD2560013FF99 /* strip_nonsemantic_info_pass.h in Headers */, + A9EE0E2728FDD2560013FF99 /* basic_block.h in Headers */, + A9EE0EFC28FDD2570013FF99 /* constants.h in Headers */, + A9EE0C6528FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.h in Headers */, + A9EE14F328FDD2590013FF99 /* construct.h in Headers */, + A9EE0C5028FDD2560013FF99 /* spirv_target_env.h in Headers */, + A9EE0E1E28FDD2560013FF99 /* types.h in Headers */, + A9EE0FD728FDD2570013FF99 /* vector_dce.h in Headers */, + A9EE0D9428FDD2560013FF99 /* loop_fusion.h in Headers */, + A9EE0EC928FDD2570013FF99 /* mem_pass.h in Headers */, + A9EE0FDD28FDD2570013FF99 /* pass_manager.h in Headers */, + A9EE0D7328FDD2560013FF99 /* print.h in Headers */, + A9EE150828FDD2590013FF99 /* basic_block.h in Headers */, + A9EE0C9E28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.h in Headers */, + A9EE0EE728FDD2570013FF99 /* value_number_table.h in Headers */, + A9EE0F8028FDD2570013FF99 /* reflect.h in Headers */, + A9EE151D28FDD2590013FF99 /* validation_state.h in Headers */, + A9EE0E5D28FDD2570013FF99 /* cfg_cleanup_pass.h in Headers */, + A9EE0FE028FDD2570013FF99 /* spread_volatile_semantics.h in Headers */, + A9EE0F3E28FDD2570013FF99 /* pass.h in Headers */, + A9EE0DA628FDD2560013FF99 /* tree_iterator.h in Headers */, + A9EE0F2628FDD2570013FF99 /* eliminate_dead_constant_pass.h in Headers */, + A9EE14C028FDD2590013FF99 /* ext_inst.h in Headers */, + A9EE0C9228FDD2560013FF99 /* remove_struct_member_reduction_opportunity.h in Headers */, + A9EE0C3228FDD2560013FF99 /* hash_combine.h in Headers */, + A9EE0CE028FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */, + A9EE0DBE28FDD2560013FF99 /* strip_debug_info_pass.h in Headers */, + A9EE0E8A28FDD2570013FF99 /* wrap_opkill.h in Headers */, + A9EE0CB628FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.h in Headers */, + A9EE0FF528FDD2570013FF99 /* ccp_pass.h in Headers */, + A9EE0F9B28FDD2570013FF99 /* redundancy_elimination.h in Headers */, + A9EE0E9328FDD2570013FF99 /* decoration_manager.h in Headers */, + A9EE0D0D28FDD2560013FF99 /* reduction_pass.h in Headers */, + A9EE0DAF28FDD2560013FF99 /* local_single_store_elim_pass.h in Headers */, + A9EE0D1028FDD2560013FF99 /* latest_version_opencl_std_header.h in Headers */, + A9EE0C5C28FDD2560013FF99 /* remove_block_reduction_opportunity.h in Headers */, + A9EE0F1728FDD2570013FF99 /* loop_fission.h in Headers */, + A9EE0CCB28FDD2560013FF99 /* remove_function_reduction_opportunity_finder.h in Headers */, + A9EE0F8628FDD2570013FF99 /* null_pass.h in Headers */, + A9EE0C3E28FDD2560013FF99 /* bit_vector.h in Headers */, + A9EE0EA228FDD2570013FF99 /* inst_buff_addr_check_pass.h in Headers */, + A9EE0BFF28FDD2560013FF99 /* assembly_grammar.h in Headers */, + A9EE0E1528FDD2560013FF99 /* unify_const_pass.h in Headers */, + A9EE0C7728FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */, + A9EE0CF228FDD2560013FF99 /* reduction_util.h in Headers */, + A9EE14C628FDD2590013FF99 /* latest_version_spirv_header.h in Headers */, + A9EE0CEC28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.h in Headers */, + A9EE101628FDD2570013FF99 /* set_spec_constant_default_value_pass.h in Headers */, + A9EE0C5F28FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */, + A9EE0EE128FDD2570013FF99 /* inline_pass.h in Headers */, + A9EE0F2C28FDD2570013FF99 /* ssa_rewrite_pass.h in Headers */, + A9EE0D3128FDD2560013FF99 /* operand.h in Headers */, + A9EE0F0B28FDD2570013FF99 /* upgrade_memory_model.h in Headers */, + A9EE0F7128FDD2570013FF99 /* simplification_pass.h in Headers */, + A9EE0FAD28FDD2570013FF99 /* loop_utils.h in Headers */, + A9EE0D7928FDD2560013FF99 /* disassemble.h in Headers */, + A9EE0F5028FDD2570013FF99 /* dead_branch_elim_pass.h in Headers */, + A9EE0CA428FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */, + A9EE0C2F28FDD2560013FF99 /* small_vector.h in Headers */, + A9EE0C2628FDD2560013FF99 /* ilist_node.h in Headers */, + A9EE0DF728FDD2560013FF99 /* ir_context.h in Headers */, + A9EE101C28FDD2570013FF99 /* remove_unused_interface_variables_pass.h in Headers */, + A9EE0DA928FDD2560013FF99 /* interface_var_sroa.h in Headers */, + A9EE0C7128FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */, + A9EE0FFE28FDD2570013FF99 /* fix_func_call_arguments.h in Headers */, + A9EE102828FDD2570013FF99 /* table.h in Headers */, + A9EE0E4E28FDD2560013FF99 /* relax_float_ops_pass.h in Headers */, + A9EE0F2028FDD2570013FF99 /* log.h in Headers */, + A9EE0CAD28FDD2560013FF99 /* remove_selection_reduction_opportunity.h in Headers */, + A9EE0C1A28FDD2560013FF99 /* text.h in Headers */, + A9EE0F4428FDD2570013FF99 /* eliminate_dead_functions_pass.h in Headers */, + A9EE158028FDD2590013FF99 /* decoration.h in Headers */, + A9EE0C2C28FDD2560013FF99 /* string_utils.h in Headers */, + A9EE0CA728FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.h in Headers */, + A9EE0D4328FDD2560013FF99 /* lcs.h in Headers */, + A9EE0F8C28FDD2570013FF99 /* const_folding_rules.h in Headers */, + A9EE0C4D28FDD2560013FF99 /* ilist.h in Headers */, + A9EE0CAA28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */, + A9EE0DB228FDD2560013FF99 /* reduce_load_size.h in Headers */, + A9EE0DFD28FDD2560013FF99 /* control_dependence.h in Headers */, + A9EE101928FDD2570013FF99 /* dominator_tree.h in Headers */, + A9EE0D5E28FDD2560013FF99 /* diagnostic.h in Headers */, + A9EE0CF528FDD2560013FF99 /* merge_blocks_reduction_opportunity.h in Headers */, + A9EE0FCE28FDD2570013FF99 /* aggressive_dead_code_elim_pass.h in Headers */, + A9EE0D2228FDD2560013FF99 /* spirv_reducer_options.h in Headers */, + A9EE0FF228FDD2570013FF99 /* build_module.h in Headers */, + A9EE0FBF28FDD2570013FF99 /* cfg.h in Headers */, + A9EE0CCE28FDD2560013FF99 /* pch_source_reduce.h in Headers */, + A9EE0D5528FDD2560013FF99 /* name_mapper.h in Headers */, + A9EE0E0928FDD2560013FF99 /* loop_unroller.h in Headers */, + A9EE14DB28FDD2590013FF99 /* extensions.h in Headers */, + A9EE152F28FDD2590013FF99 /* validate.h in Headers */, + A9EE0DE228FDD2560013FF99 /* instruction_list.h in Headers */, + A9EE0FB628FDD2570013FF99 /* ir_builder.h in Headers */, + A9EE0DDF28FDD2560013FF99 /* propagator.h in Headers */, + A9EE0C9528FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */, + A9EE0E7B28FDD2570013FF99 /* loop_fusion_pass.h in Headers */, + A9EE0D4028FDD2560013FF99 /* diff.h in Headers */, + A9EE0E4B28FDD2560013FF99 /* remove_dontinline_pass.h in Headers */, + A9EE0F3228FDD2570013FF99 /* dead_variable_elimination.h in Headers */, + A9EE0FDA28FDD2570013FF99 /* combine_access_chains.h in Headers */, + A9EE0CBF28FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */, + A9EE156228FDD2590013FF99 /* instruction.h in Headers */, + A9EE0D1C28FDD2560013FF99 /* enum_string_mapping.h in Headers */, + A9EE0F4728FDD2570013FF99 /* eliminate_dead_functions_util.h in Headers */, + A9EE0C4428FDD2560013FF99 /* hex_float.h in Headers */, + A9EE0F7728FDD2570013FF99 /* remove_duplicates_pass.h in Headers */, + A9EE0E9C28FDD2570013FF99 /* interp_fixup_pass.h in Headers */, + A9EE0D4928FDD2560013FF99 /* spirv_validator_options.h in Headers */, + A9EE0CB328FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.h in Headers */, + A9EE0D2E28FDD2560013FF99 /* spirv_definition.h in Headers */, + A9EE0CA128FDD2560013FF99 /* remove_function_reduction_opportunity.h in Headers */, + A9EE0CD728FDD2560013FF99 /* reducer.h in Headers */, + A9EE0D6A28FDD2560013FF99 /* common_debug_info.h in Headers */, + A9EE0D6128FDD2560013FF99 /* spirv_endian.h in Headers */, + A9EE0EA528FDD2570013FF99 /* strength_reduction_pass.h in Headers */, + A9EE0F4A28FDD2570013FF99 /* fold.h in Headers */, + A9EE0FC228FDD2570013FF99 /* code_sink.h in Headers */, + A9EE0F9528FDD2570013FF99 /* pch_source_opt.h in Headers */, + A9EE0FBC28FDD2570013FF99 /* loop_unswitch_pass.h in Headers */, + A9EE0CE628FDD2560013FF99 /* reduction_opportunity_finder.h in Headers */, + A9EE0C0E28FDD2560013FF99 /* divergence_analysis.h in Headers */, + A9EE157428FDD2590013FF99 /* function.h in Headers */, + A9EE0FFB28FDD2570013FF99 /* function.h in Headers */, + A9EE0E3028FDD2560013FF99 /* block_merge_pass.h in Headers */, + A9EE0C4128FDD2560013FF99 /* bitutils.h in Headers */, + A9EE0F5C28FDD2570013FF99 /* fix_storage_class.h in Headers */, + A9EE0F4128FDD2570013FF99 /* folding_rules.h in Headers */, + A9EE0D5228FDD2560013FF99 /* parsed_operand.h in Headers */, + A9EE0D3A28FDD2560013FF99 /* spirv_constant.h in Headers */, + A9EE0D8E28FDD2560013FF99 /* merge_return_pass.h in Headers */, + A9EE0E7E28FDD2570013FF99 /* struct_cfg_analysis.h in Headers */, + A9EE0CE928FDD2560013FF99 /* change_operand_reduction_opportunity.h in Headers */, + A9EE0ECF28FDD2570013FF99 /* eliminate_dead_members_pass.h in Headers */, + A9EE0E9028FDD2570013FF99 /* eliminate_dead_input_components_pass.h in Headers */, + A9EE0D1628FDD2560013FF99 /* cfa.h in Headers */, + A9EE0E7528FDD2570013FF99 /* desc_sroa.h in Headers */, + A9EE0DC128FDD2560013FF99 /* replace_desc_array_access_using_var_index.h in Headers */, + A9EE0FEF28FDD2570013FF99 /* licm_pass.h in Headers */, + A9EE154128FDD2590013FF99 /* validate_memory_semantics.h in Headers */, + A9EE0E6628FDD2570013FF99 /* local_redundancy_elimination.h in Headers */, + A9EE0EED28FDD2570013FF99 /* flatten_decoration_pass.h in Headers */, + A9EE0EC028FDD2570013FF99 /* freeze_spec_constant_value_pass.h in Headers */, + A9EE0DF128FDD2560013FF99 /* amd_ext_to_khr.h in Headers */, + A9EE0DA028FDD2560013FF99 /* compact_ids_pass.h in Headers */, + A9EE0D3728FDD2560013FF99 /* macro.h in Headers */, + A9EE0C3828FDD2560013FF99 /* timer.h in Headers */, + A9EE0EE428FDD2570013FF99 /* loop_dependence.h in Headers */, + A9EE14CF28FDD2590013FF99 /* spirv_optimizer_options.h in Headers */, + A9EE0C7D28FDD2560013FF99 /* remove_instruction_reduction_opportunity.h in Headers */, + A9EE0F1A28FDD2570013FF99 /* workaround1209.h in Headers */, + A9EE0EC628FDD2570013FF99 /* instrument_pass.h in Headers */, + A9EE0E5428FDD2570013FF99 /* def_use_manager.h in Headers */, + A9EE0E3628FDD2560013FF99 /* debug_info_manager.h in Headers */, + A9EE0C8028FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */, + A9EE100D28FDD2570013FF99 /* dataflow.h in Headers */, + A9EE0DA328FDD2560013FF99 /* register_pressure.h in Headers */, + A9EE0F8F28FDD2570013FF99 /* scalar_replacement_pass.h in Headers */, + A9EE0EF928FDD2570013FF99 /* inline_exhaustive_pass.h in Headers */, + A9EE0F6528FDD2570013FF99 /* passes.h in Headers */, + A9EE0FEC28FDD2570013FF99 /* iterator.h in Headers */, + A9EE0C5628FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.h in Headers */, + A9EE0BFC28FDD2560013FF99 /* spirv_fuzzer_options.h in Headers */, + A9EE0D7F28FDD2560013FF99 /* if_conversion.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4412,216 +4518,224 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A926B80B27AC718900144157 /* table.cpp in Sources */, - A926B89227AC718900144157 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */, - A926BA7E27AC718A00144157 /* control_dependence.cpp in Sources */, - A926B80227AC718900144157 /* bit_vector.cpp in Sources */, - A926BA7827AC718A00144157 /* function.cpp in Sources */, - A926BA3C27AC718A00144157 /* ccp_pass.cpp in Sources */, - A926BA9627AC718A00144157 /* if_conversion.cpp in Sources */, - A926B82C27AC718900144157 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */, - A926BA5127AC718A00144157 /* eliminate_dead_functions_util.cpp in Sources */, - A926B87D27AC718900144157 /* reducer.cpp in Sources */, - A926B83E27AC718900144157 /* remove_function_reduction_opportunity.cpp in Sources */, - A926B82027AC718900144157 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */, - A926C06027AC718C00144157 /* libspirv.cpp in Sources */, - A926C09627AC718C00144157 /* validate_atomics.cpp in Sources */, - A926C08427AC718C00144157 /* validate_cfg.cpp in Sources */, - A926B9B827AC718900144157 /* strip_debug_info_pass.cpp in Sources */, - A926B8F527AC718900144157 /* binary.cpp in Sources */, - A926BAC027AC718A00144157 /* loop_fusion_pass.cpp in Sources */, - A926BB5927AC718A00144157 /* replace_desc_array_access_using_var_index.cpp in Sources */, - A926B93A27AC718900144157 /* spread_volatile_semantics.cpp in Sources */, - A926C10527AC718C00144157 /* validate_composites.cpp in Sources */, - A926C0CF27AC718C00144157 /* validate_id.cpp in Sources */, - A926B98827AC718900144157 /* instrument_pass.cpp in Sources */, - A926B91627AC718900144157 /* linker.cpp in Sources */, - A926B8D727AC718900144157 /* spirv_fuzzer_options.cpp in Sources */, - A926BA1527AC718A00144157 /* vector_dce.cpp in Sources */, - A926BAA827AC718A00144157 /* desc_sroa.cpp in Sources */, - A926BB4127AC718A00144157 /* value_number_table.cpp in Sources */, - A926BB0E27AC718A00144157 /* amd_ext_to_khr.cpp in Sources */, - A926C0B127AC718C00144157 /* validate_constants.cpp in Sources */, - A926B7FF27AC718900144157 /* parse_number.cpp in Sources */, - A926BA9927AC718A00144157 /* debug_info_manager.cpp in Sources */, - A926C0BA27AC718C00144157 /* construct.cpp in Sources */, - A926B92527AC718900144157 /* ext_inst.cpp in Sources */, - A926B94627AC718900144157 /* combine_access_chains.cpp in Sources */, - A926BA2127AC718A00144157 /* constants.cpp in Sources */, - A926B7BD27AC718900144157 /* lint_divergent_derivatives.cpp in Sources */, - A926B87427AC718900144157 /* remove_struct_member_reduction_opportunity.cpp in Sources */, - A926B9B227AC718900144157 /* const_folding_rules.cpp in Sources */, - A926BAF627AC718A00144157 /* private_to_local_pass.cpp in Sources */, - A926BB9B27AC718A00144157 /* loop_fusion.cpp in Sources */, - A926C07E27AC718C00144157 /* validate_annotation.cpp in Sources */, - A926B91C27AC718900144157 /* software_version.cpp in Sources */, - A926BA6927AC718A00144157 /* ir_context.cpp in Sources */, - A926B99127AC718900144157 /* feature_manager.cpp in Sources */, - A926B83227AC718900144157 /* remove_function_reduction_opportunity_finder.cpp in Sources */, - A926B85027AC718900144157 /* merge_blocks_reduction_opportunity.cpp in Sources */, - A926B8B927AC718900144157 /* remove_block_reduction_opportunity.cpp in Sources */, - A926BADE27AC718A00144157 /* convert_to_sampled_image_pass.cpp in Sources */, - A926B7B427AC718900144157 /* spirv_target_env.cpp in Sources */, - A926BBAA27AC718A00144157 /* scalar_analysis_simplification.cpp in Sources */, - A926B99A27AC718900144157 /* dominator_tree.cpp in Sources */, - A926C0DE27AC718C00144157 /* validate_logicals.cpp in Sources */, - A926BAB427AC718A00144157 /* pass_manager.cpp in Sources */, - A926B8A727AC718900144157 /* remove_block_reduction_opportunity_finder.cpp in Sources */, - A926B98527AC718900144157 /* local_redundancy_elimination.cpp in Sources */, - A926B84427AC718900144157 /* remove_selection_reduction_opportunity_finder.cpp in Sources */, - A926BA4527AC718A00144157 /* pch_source_opt.cpp in Sources */, - A926B93427AC718900144157 /* loop_utils.cpp in Sources */, - A926BB1127AC718A00144157 /* scalar_replacement_pass.cpp in Sources */, - A926B9BE27AC718900144157 /* loop_dependence.cpp in Sources */, - A926BB1D27AC718A00144157 /* redundancy_elimination.cpp in Sources */, - A926BB0527AC718A00144157 /* set_spec_constant_default_value_pass.cpp in Sources */, - A926B85327AC718900144157 /* change_operand_reduction_opportunity.cpp in Sources */, - A926C09027AC718C00144157 /* validate_non_uniform.cpp in Sources */, - A926BA3027AC718A00144157 /* def_use_manager.cpp in Sources */, - A926BAAB27AC718A00144157 /* block_merge_util.cpp in Sources */, - A926B91F27AC718900144157 /* opcode.cpp in Sources */, - A926BA7B27AC718A00144157 /* instruction_list.cpp in Sources */, - A926BA5727AC718A00144157 /* simplification_pass.cpp in Sources */, - A926C09F27AC718C00144157 /* validate_decorations.cpp in Sources */, - A926C09327AC718C00144157 /* validate_scopes.cpp in Sources */, - A926BBB927AC718A00144157 /* compact_ids_pass.cpp in Sources */, - A926B91327AC718900144157 /* name_mapper.cpp in Sources */, - A926B9AF27AC718900144157 /* wrap_opkill.cpp in Sources */, - A926BBBC27AC718A00144157 /* loop_peeling.cpp in Sources */, - A926C10827AC718C00144157 /* validation_state.cpp in Sources */, - A926B97027AC718900144157 /* cfg.cpp in Sources */, - A926BA4E27AC718A00144157 /* aggressive_dead_code_elim_pass.cpp in Sources */, - A926B99427AC718900144157 /* pass.cpp in Sources */, - A926B7F327AC718900144157 /* string_utils.cpp in Sources */, - A926C08D27AC718C00144157 /* validate_barriers.cpp in Sources */, - A926B7DB27AC718900144157 /* pch_source.cpp in Sources */, - A926B9D627AC718A00144157 /* remove_duplicates_pass.cpp in Sources */, - A926C0E127AC718C00144157 /* validate_derivatives.cpp in Sources */, - A926C0D527AC718C00144157 /* validate_arithmetics.cpp in Sources */, - A926B9E527AC718A00144157 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */, - A926C0E427AC718C00144157 /* validate_memory.cpp in Sources */, - A926B90727AC718900144157 /* spirv_reducer_options.cpp in Sources */, - A926C10B27AC718C00144157 /* validate_primitives.cpp in Sources */, - A926BB9527AC718A00144157 /* graphics_robust_access_pass.cpp in Sources */, - A926B8E327AC718900144157 /* print.cpp in Sources */, - A926B8B027AC718900144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */, - A926C0AB27AC718C00144157 /* validate.cpp in Sources */, - A926B7C027AC718900144157 /* linter.cpp in Sources */, - A926BA8127AC718A00144157 /* composite.cpp in Sources */, - A926B83B27AC718900144157 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */, - A926BB7127AC718A00144157 /* struct_cfg_analysis.cpp in Sources */, - A926BA5D27AC718A00144157 /* flatten_decoration_pass.cpp in Sources */, - A926BB8627AC718A00144157 /* basic_block.cpp in Sources */, - A926C07527AC718C00144157 /* disassemble.cpp in Sources */, - A926B96427AC718900144157 /* types.cpp in Sources */, - A926B8FB27AC718900144157 /* enum_string_mapping.cpp in Sources */, - A926C0FC27AC718C00144157 /* basic_block.cpp in Sources */, - A926B97927AC718900144157 /* freeze_spec_constant_value_pass.cpp in Sources */, - A926B9BB27AC718900144157 /* ssa_rewrite_pass.cpp in Sources */, - A926B8CB27AC718900144157 /* spirv_optimizer_options.cpp in Sources */, - A926BB3E27AC718A00144157 /* fix_storage_class.cpp in Sources */, - A926B87127AC718900144157 /* pch_source_reduce.cpp in Sources */, - A926B84727AC718900144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */, - A926BB4427AC718A00144157 /* remove_unused_interface_variables_pass.cpp in Sources */, - A926B89B27AC718900144157 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */, - A926C05A27AC718C00144157 /* diagnostic.cpp in Sources */, - A926B9A027AC718900144157 /* merge_return_pass.cpp in Sources */, - A926B94927AC718900144157 /* build_module.cpp in Sources */, - A926BB9E27AC718A00144157 /* upgrade_memory_model.cpp in Sources */, - A926C0BD27AC718C00144157 /* function.cpp in Sources */, - A926BA2D27AC718A00144157 /* inst_buff_addr_check_pass.cpp in Sources */, - A926B82627AC718900144157 /* reduction_util.cpp in Sources */, - A926C0DB27AC718C00144157 /* validate_memory_semantics.cpp in Sources */, - A926BB2927AC718A00144157 /* relax_float_ops_pass.cpp in Sources */, - A926C0F027AC718C00144157 /* validate_type.cpp in Sources */, - A926C0C327AC718C00144157 /* validate_adjacency.cpp in Sources */, - A926BA5A27AC718A00144157 /* dead_branch_elim_pass.cpp in Sources */, - A926B81127AC718900144157 /* remove_selection_reduction_opportunity.cpp in Sources */, - A926C08127AC718C00144157 /* validate_misc.cpp in Sources */, - A926C0E727AC718C00144157 /* validate_image.cpp in Sources */, - A926BA0027AC718A00144157 /* ir_loader.cpp in Sources */, - A926BA9027AC718A00144157 /* strip_nonsemantic_info_pass.cpp in Sources */, - A926BAB127AC718A00144157 /* copy_prop_arrays.cpp in Sources */, - A926B99727AC718900144157 /* loop_fission.cpp in Sources */, - A926BAD827AC718A00144157 /* block_merge_pass.cpp in Sources */, - A926B8C227AC718900144157 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */, - A926B8BF27AC718900144157 /* reduction_opportunity_finder.cpp in Sources */, - A926B9D927AC718A00144157 /* dead_variable_elimination.cpp in Sources */, - A926C0C627AC718C00144157 /* validate_conversion.cpp in Sources */, - A926B90A27AC718900144157 /* parsed_operand.cpp in Sources */, - A926B9AC27AC718900144157 /* cfg_cleanup_pass.cpp in Sources */, - A926B97627AC718900144157 /* local_single_block_elim_pass.cpp in Sources */, - A926C06C27AC718C00144157 /* operand.cpp in Sources */, - A926BB4727AC718A00144157 /* inline_opaque_pass.cpp in Sources */, - A926C0EA27AC718C00144157 /* validate_literals.cpp in Sources */, - A926BA0927AC718A00144157 /* licm_pass.cpp in Sources */, - A926BA8427AC718A00144157 /* convert_to_half_pass.cpp in Sources */, - A926C0D827AC718C00144157 /* validate_mode_setting.cpp in Sources */, - A926B7CF27AC718900144157 /* text.cpp in Sources */, - A926BB3227AC718A00144157 /* instruction.cpp in Sources */, - A926B9A627AC718900144157 /* eliminate_dead_constant_pass.cpp in Sources */, - A926B87A27AC718900144157 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */, - A926BAF027AC718A00144157 /* local_single_store_elim_pass.cpp in Sources */, - A926C0FF27AC718C00144157 /* validate_function.cpp in Sources */, - A926BACC27AC718A00144157 /* dead_insert_elim_pass.cpp in Sources */, - A926C0B427AC718C00144157 /* validate_bitwise.cpp in Sources */, - A926B81A27AC718900144157 /* reduction_pass.cpp in Sources */, - A926BB8327AC718A00144157 /* interp_fixup_pass.cpp in Sources */, - A926B96127AC718900144157 /* code_sink.cpp in Sources */, - A926C0A227AC718C00144157 /* validate_debug.cpp in Sources */, - A926BAA227AC718A00144157 /* eliminate_dead_members_pass.cpp in Sources */, - A926B92B27AC718900144157 /* optimizer.cpp in Sources */, - A926C07B27AC718C00144157 /* text_handler.cpp in Sources */, - A926BA7227AC718A00144157 /* loop_descriptor.cpp in Sources */, - A926C0F627AC718C00144157 /* validate_execution_limitations.cpp in Sources */, - A926BA2A27AC718A00144157 /* desc_sroa_util.cpp in Sources */, - A926B9EE27AC718A00144157 /* type_manager.cpp in Sources */, - A926BA0C27AC718A00144157 /* eliminate_dead_functions_pass.cpp in Sources */, - A926B8B327AC718900144157 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */, - A926C09C27AC718C00144157 /* validate_instruction.cpp in Sources */, - A926B9C727AC718900144157 /* inst_debug_printf_pass.cpp in Sources */, - A926C0F927AC718C00144157 /* validate_layout.cpp in Sources */, - A926C0B727AC718C00144157 /* validate_extensions.cpp in Sources */, - A926B8DD27AC718900144157 /* spirv_validator_options.cpp in Sources */, - A926C0A827AC718C00144157 /* validate_interfaces.cpp in Sources */, - A926B98227AC718900144157 /* inst_bindless_check_pass.cpp in Sources */, - A926B7C327AC718900144157 /* divergence_analysis.cpp in Sources */, - A926B9D027AC718A00144157 /* mem_pass.cpp in Sources */, - A926BAD227AC718A00144157 /* scalar_analysis.cpp in Sources */, - A926B88927AC718900144157 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */, - A926B7D227AC718900144157 /* assembly_grammar.cpp in Sources */, - A926B7D827AC718900144157 /* extensions.cpp in Sources */, - A926B88C27AC718900144157 /* reduction_opportunity.cpp in Sources */, - A926BA1B27AC718A00144157 /* loop_unroller.cpp in Sources */, - A926B8BC27AC718900144157 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */, - A926BB0227AC718A00144157 /* loop_dependence_helpers.cpp in Sources */, - A926B93127AC718900144157 /* register_pressure.cpp in Sources */, - A926B9FA27AC718A00144157 /* inline_pass.cpp in Sources */, - A926C0ED27AC718C00144157 /* instruction.cpp in Sources */, - A926C08727AC718C00144157 /* validate_capability.cpp in Sources */, - A926B9DF27AC718A00144157 /* module.cpp in Sources */, - A926B7ED27AC718900144157 /* timer.cpp in Sources */, - A926BAA527AC718A00144157 /* strength_reduction_pass.cpp in Sources */, - A926BB8027AC718A00144157 /* local_access_chain_convert_pass.cpp in Sources */, - A926C0C927AC718C00144157 /* validate_small_type_uses.cpp in Sources */, - A926BB6527AC718A00144157 /* dataflow.cpp in Sources */, - A926BB2327AC718A00144157 /* workaround1209.cpp in Sources */, - A926B8EC27AC718900144157 /* spirv_endian.cpp in Sources */, - A926B9E827AC718A00144157 /* loop_unswitch_pass.cpp in Sources */, - A926B9EB27AC718A00144157 /* unify_const_pass.cpp in Sources */, - A926BB3827AC718A00144157 /* reduce_load_size.cpp in Sources */, - A926BB5327AC718A00144157 /* dominator_analysis.cpp in Sources */, - A926BAB727AC718A00144157 /* inline_exhaustive_pass.cpp in Sources */, - A926B88027AC718900144157 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */, - A926C0A527AC718C00144157 /* validate_builtins.cpp in Sources */, - A926BB0B27AC718A00144157 /* fold.cpp in Sources */, - A926B97327AC718900144157 /* decoration_manager.cpp in Sources */, - A926B8B627AC718900144157 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */, - A926BAFC27AC718A00144157 /* propagator.cpp in Sources */, - A926B84127AC718900144157 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */, - A926B86827AC718900144157 /* remove_instruction_reduction_opportunity.cpp in Sources */, - A926BB4A27AC718A00144157 /* replace_invalid_opc.cpp in Sources */, - A926BA6327AC718A00144157 /* folding_rules.cpp in Sources */, + A9EE0DD528FDD2560013FF99 /* inst_bindless_check_pass.cpp in Sources */, + A9EE153728FDD2590013FF99 /* validate_small_type_uses.cpp in Sources */, + A9EE0EB328FDD2570013FF99 /* dead_branch_elim_pass.cpp in Sources */, + A9EE0F5828FDD2570013FF99 /* propagator.cpp in Sources */, + A9EE0E5628FDD2570013FF99 /* ir_loader.cpp in Sources */, + A9EE151F28FDD2590013FF99 /* validate_constants.cpp in Sources */, + A9EE0D5728FDD2560013FF99 /* spirv_reducer_options.cpp in Sources */, + A9EE0DE728FDD2560013FF99 /* pass.cpp in Sources */, + A9EE151628FDD2590013FF99 /* validate_interfaces.cpp in Sources */, + A9EE0D8128FDD2560013FF99 /* register_pressure.cpp in Sources */, + A9EE0E2C28FDD2560013FF99 /* dead_variable_elimination.cpp in Sources */, + A9EE0D6F28FDD2560013FF99 /* opcode.cpp in Sources */, + A9EE0FA628FDD2570013FF99 /* inline_opaque_pass.cpp in Sources */, + A9EE157028FDD2590013FF99 /* validate_function.cpp in Sources */, + A9EE152528FDD2590013FF99 /* validate_extensions.cpp in Sources */, + A9EE0C5228FDD2560013FF99 /* table.cpp in Sources */, + A9EE155528FDD2590013FF99 /* validate_image.cpp in Sources */, + A9EE102428FDD2570013FF99 /* loop_peeling.cpp in Sources */, + A9EE102128FDD2570013FF99 /* compact_ids_pass.cpp in Sources */, + A9EE0CD928FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */, + A9EE0FE228FDD2570013FF99 /* local_access_chain_convert_pass.cpp in Sources */, + A9EE0DC628FDD2560013FF99 /* decoration_manager.cpp in Sources */, + A9EE0C4928FDD2560013FF99 /* bit_vector.cpp in Sources */, + A9EE0F4C28FDD2570013FF99 /* local_single_store_elim_pass.cpp in Sources */, + A9EE0C7328FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */, + A9EE0F3428FDD2570013FF99 /* block_merge_pass.cpp in Sources */, + A9EE0F6128FDD2570013FF99 /* set_spec_constant_default_value_pass.cpp in Sources */, + A9EE0F3A28FDD2570013FF99 /* convert_to_sampled_image_pass.cpp in Sources */, + A9EE0EB628FDD2570013FF99 /* flatten_decoration_pass.cpp in Sources */, + A9EE0E2328FDD2560013FF99 /* mem_pass.cpp in Sources */, + A9EE0FF728FDD2570013FF99 /* graphics_robust_access_pass.cpp in Sources */, + A9EE0EE928FDD2570013FF99 /* strip_nonsemantic_info_pass.cpp in Sources */, + A9EE0CC428FDD2560013FF99 /* reducer.cpp in Sources */, + A9EE0DF328FDD2560013FF99 /* merge_return_pass.cpp in Sources */, + A9EE0EDA28FDD2570013FF99 /* composite.cpp in Sources */, + A9EE0C8528FDD2560013FF99 /* remove_function_reduction_opportunity.cpp in Sources */, + A9EE0C6728FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */, + A9EE0D4B28FDD2560013FF99 /* enum_string_mapping.cpp in Sources */, + A9EE0EB028FDD2570013FF99 /* simplification_pass.cpp in Sources */, + A9EE0D3C28FDD2560013FF99 /* binary.cpp in Sources */, + A9EE0D9928FDD2560013FF99 /* build_module.cpp in Sources */, + A9EE14FB28FDD2590013FF99 /* validate_ray_query.cpp in Sources */, + A9EE0F9D28FDD2570013FF99 /* fix_storage_class.cpp in Sources */, + A9EE153428FDD2590013FF99 /* validate_conversion.cpp in Sources */, + A9EE0E5028FDD2570013FF99 /* inline_pass.cpp in Sources */, + A9EE150D28FDD2590013FF99 /* validate_decorations.cpp in Sources */, + A9EE152828FDD2590013FF99 /* construct.cpp in Sources */, + A9EE0D1E28FDD2560013FF99 /* spirv_fuzzer_options.cpp in Sources */, + A9EE0E1128FDD2560013FF99 /* loop_dependence.cpp in Sources */, + A9EE0E0B28FDD2560013FF99 /* strip_debug_info_pass.cpp in Sources */, + A9EE0F6728FDD2570013FF99 /* fold.cpp in Sources */, + A9EE151928FDD2590013FF99 /* validate.cpp in Sources */, + A9EE154628FDD2590013FF99 /* validate_mode_setting.cpp in Sources */, + A9EE0FA028FDD2570013FF99 /* value_number_table.cpp in Sources */, + A9EE0C4628FDD2560013FF99 /* parse_number.cpp in Sources */, + A9EE100628FDD2570013FF99 /* upgrade_memory_model.cpp in Sources */, + A9EE14E328FDD2590013FF99 /* text_handler.cpp in Sources */, + A9EE0C0128FDD2560013FF99 /* lint_divergent_derivatives.cpp in Sources */, + A9EE0DE428FDD2560013FF99 /* feature_manager.cpp in Sources */, + A9EE0ED428FDD2570013FF99 /* instruction_list.cpp in Sources */, + A9EE0E6228FDD2570013FF99 /* eliminate_dead_functions_pass.cpp in Sources */, + A9EE0E1A28FDD2560013FF99 /* inst_debug_printf_pass.cpp in Sources */, + A9EE0CBB28FDD2560013FF99 /* remove_struct_member_reduction_opportunity.cpp in Sources */, + A9EE150128FDD2590013FF99 /* validate_scopes.cpp in Sources */, + A9EE0E9528FDD2570013FF99 /* ccp_pass.cpp in Sources */, + A9EE0F1C28FDD2570013FF99 /* loop_fusion_pass.cpp in Sources */, + A9EE0DED28FDD2560013FF99 /* dominator_tree.cpp in Sources */, + A9EE0C7928FDD2560013FF99 /* remove_function_reduction_opportunity_finder.cpp in Sources */, + A9EE0FC428FDD2570013FF99 /* dataflow.cpp in Sources */, + A9EE0E2928FDD2560013FF99 /* remove_duplicates_pass.cpp in Sources */, + A9EE0F8228FDD2570013FF99 /* workaround1209.cpp in Sources */, + A9EE0C9728FDD2560013FF99 /* merge_blocks_reduction_opportunity.cpp in Sources */, + A9EE0F2E28FDD2570013FF99 /* scalar_analysis.cpp in Sources */, + A9EE0F1328FDD2570013FF99 /* inline_exhaustive_pass.cpp in Sources */, + A9EE0E6B28FDD2570013FF99 /* vector_dce.cpp in Sources */, + A9EE0DB728FDD2560013FF99 /* types.cpp in Sources */, + A9EE0D0028FDD2560013FF99 /* remove_block_reduction_opportunity.cpp in Sources */, + A9EE14EC28FDD2590013FF99 /* validate_cfg.cpp in Sources */, + A9EE100328FDD2570013FF99 /* eliminate_dead_input_components_pass.cpp in Sources */, + A9EE0ED128FDD2570013FF99 /* function.cpp in Sources */, + A9EE0BF828FDD2560013FF99 /* spirv_target_env.cpp in Sources */, + A9EE152B28FDD2590013FF99 /* function.cpp in Sources */, + A9EE0F9728FDD2570013FF99 /* reduce_load_size.cpp in Sources */, + A9EE0EF228FDD2570013FF99 /* fix_func_call_arguments.cpp in Sources */, + A9EE14FE28FDD2590013FF99 /* validate_ray_tracing.cpp in Sources */, + A9EE0CEE28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.cpp in Sources */, + A9EE0C8B28FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.cpp in Sources */, + A9EE156D28FDD2590013FF99 /* basic_block.cpp in Sources */, + A9EE0F0428FDD2570013FF99 /* desc_sroa.cpp in Sources */, + A9EE0DD828FDD2560013FF99 /* local_redundancy_elimination.cpp in Sources */, + A9EE0F0D28FDD2570013FF99 /* copy_prop_arrays.cpp in Sources */, + A9EE0D5A28FDD2560013FF99 /* parsed_operand.cpp in Sources */, + A9EE0D6328FDD2560013FF99 /* name_mapper.cpp in Sources */, + A9EE151328FDD2590013FF99 /* validate_builtins.cpp in Sources */, + A9EE14C228FDD2590013FF99 /* diagnostic.cpp in Sources */, + A9EE0EC228FDD2570013FF99 /* ir_context.cpp in Sources */, + A9EE101228FDD2570013FF99 /* scalar_analysis_simplification.cpp in Sources */, + A9EE0E3828FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */, + A9EE0F2828FDD2570013FF99 /* dead_insert_elim_pass.cpp in Sources */, + A9EE154C28FDD2590013FF99 /* validate_logicals.cpp in Sources */, + A9EE0F0128FDD2570013FF99 /* strength_reduction_pass.cpp in Sources */, + A9EE0C9A28FDD2560013FF99 /* change_operand_reduction_opportunity.cpp in Sources */, + A9EE154328FDD2590013FF99 /* validate_arithmetics.cpp in Sources */, + A9EE0D6628FDD2560013FF99 /* linker.cpp in Sources */, + A9EE0C3A28FDD2560013FF99 /* string_utils.cpp in Sources */, + A9EE0C1F28FDD2560013FF99 /* pch_source.cpp in Sources */, + A9EE157C28FDD2590013FF99 /* validate_primitives.cpp in Sources */, + A9EE0E8628FDD2570013FF99 /* def_use_manager.cpp in Sources */, + A9EE0EF528FDD2570013FF99 /* debug_info_manager.cpp in Sources */, + A9EE0FA928FDD2570013FF99 /* replace_invalid_opc.cpp in Sources */, + A9EE0D2A28FDD2560013FF99 /* print.cpp in Sources */, + A9EE0F6A28FDD2570013FF99 /* amd_ext_to_khr.cpp in Sources */, + A9EE0E3228FDD2560013FF99 /* module.cpp in Sources */, + A9EE154F28FDD2590013FF99 /* validate_derivatives.cpp in Sources */, + A9EE0F9128FDD2570013FF99 /* instruction.cpp in Sources */, + A9EE0CF728FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */, + A9EE0DC328FDD2560013FF99 /* cfg.cpp in Sources */, + A9EE0FE828FDD2570013FF99 /* basic_block.cpp in Sources */, + A9EE0DF928FDD2560013FF99 /* eliminate_dead_constant_pass.cpp in Sources */, + A9EE0FD328FDD2570013FF99 /* remove_dontinline_pass.cpp in Sources */, + A9EE0C0428FDD2560013FF99 /* linter.cpp in Sources */, + A9EE14F828FDD2590013FF99 /* validate_non_uniform.cpp in Sources */, + A9EE0E7728FDD2570013FF99 /* constants.cpp in Sources */, + A9EE0DDB28FDD2560013FF99 /* instrument_pass.cpp in Sources */, + A9EE0DEA28FDD2560013FF99 /* loop_fission.cpp in Sources */, + A9EE0FB828FDD2570013FF99 /* replace_desc_array_access_using_var_index.cpp in Sources */, + A9EE0C8228FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */, + A9EE0D1228FDD2560013FF99 /* spirv_optimizer_options.cpp in Sources */, + A9EE0FE528FDD2570013FF99 /* interp_fixup_pass.cpp in Sources */, + A9EE0CB828FDD2560013FF99 /* pch_source_reduce.cpp in Sources */, + A9EE0C8E28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */, + A9EE14E628FDD2590013FF99 /* validate_annotation.cpp in Sources */, + A9EE155828FDD2590013FF99 /* validate_literals.cpp in Sources */, + A9EE0F5E28FDD2570013FF99 /* loop_dependence_helpers.cpp in Sources */, + A9EE0D7528FDD2560013FF99 /* ext_inst.cpp in Sources */, + A9EE0EA728FDD2570013FF99 /* aggressive_dead_code_elim_pass.cpp in Sources */, + A9EE157928FDD2590013FF99 /* validation_state.cpp in Sources */, + A9EE0CE228FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */, + A9EE14E928FDD2590013FF99 /* validate_misc.cpp in Sources */, + A9EE0DCC28FDD2560013FF99 /* freeze_spec_constant_value_pass.cpp in Sources */, + A9EE157628FDD2590013FF99 /* validate_composites.cpp in Sources */, + A9EE0D4528FDD2560013FF99 /* diff.cpp in Sources */, + A9EE155228FDD2590013FF99 /* validate_memory.cpp in Sources */, + A9EE0EEF28FDD2570013FF99 /* if_conversion.cpp in Sources */, + A9EE0EDD28FDD2570013FF99 /* convert_to_half_pass.cpp in Sources */, + A9EE0D9628FDD2560013FF99 /* combine_access_chains.cpp in Sources */, + A9EE0C6D28FDD2560013FF99 /* reduction_util.cpp in Sources */, + A9EE0E8328FDD2570013FF99 /* inst_buff_addr_check_pass.cpp in Sources */, + A9EE0ED728FDD2570013FF99 /* control_dependence.cpp in Sources */, + A9EE0F6D28FDD2570013FF99 /* scalar_replacement_pass.cpp in Sources */, + A9EE0E5F28FDD2570013FF99 /* licm_pass.cpp in Sources */, + A9EE14C828FDD2590013FF99 /* libspirv.cpp in Sources */, + A9EE0E9E28FDD2570013FF99 /* pch_source_opt.cpp in Sources */, + A9EE0C5828FDD2560013FF99 /* remove_selection_reduction_opportunity.cpp in Sources */, + A9EE14D428FDD2590013FF99 /* operand.cpp in Sources */, + A9EE0D0928FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */, + A9EE0E3B28FDD2560013FF99 /* loop_unswitch_pass.cpp in Sources */, + A9EE0D0628FDD2560013FF99 /* reduction_opportunity_finder.cpp in Sources */, + A9EE0C1328FDD2560013FF99 /* text.cpp in Sources */, + A9EE0CC128FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */, + A9EE0DFF28FDD2560013FF99 /* cfg_cleanup_pass.cpp in Sources */, + A9EE0C6128FDD2560013FF99 /* reduction_pass.cpp in Sources */, + A9EE154928FDD2590013FF99 /* validate_memory_semantics.cpp in Sources */, + A9EE14F528FDD2590013FF99 /* validate_barriers.cpp in Sources */, + A9EE156428FDD2590013FF99 /* validate_mesh_shading.cpp in Sources */, + A9EE0F8828FDD2570013FF99 /* relax_float_ops_pass.cpp in Sources */, + A9EE0CFA28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */, + A9EE0E0528FDD2560013FF99 /* const_folding_rules.cpp in Sources */, + A9EE0EFE28FDD2570013FF99 /* eliminate_dead_members_pass.cpp in Sources */, + A9EE0ECB28FDD2570013FF99 /* loop_descriptor.cpp in Sources */, + A9EE0D2428FDD2560013FF99 /* spirv_validator_options.cpp in Sources */, + A9EE0C0728FDD2560013FF99 /* divergence_analysis.cpp in Sources */, + A9EE0FD028FDD2570013FF99 /* struct_cfg_analysis.cpp in Sources */, + A9EE14DD28FDD2590013FF99 /* disassemble.cpp in Sources */, + A9EE0EAA28FDD2570013FF99 /* eliminate_dead_functions_util.cpp in Sources */, + A9EE0D8428FDD2560013FF99 /* loop_utils.cpp in Sources */, + A9EE152228FDD2590013FF99 /* validate_bitwise.cpp in Sources */, + A9EE0D8A28FDD2560013FF99 /* spread_volatile_semantics.cpp in Sources */, + A9EE14EF28FDD2590013FF99 /* validate_capability.cpp in Sources */, + A9EE0E8028FDD2570013FF99 /* desc_sroa_util.cpp in Sources */, + A9EE0F1028FDD2570013FF99 /* pass_manager.cpp in Sources */, + A9EE0CD028FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */, + A9EE0DC928FDD2560013FF99 /* local_single_block_elim_pass.cpp in Sources */, + A9EE0F7328FDD2570013FF99 /* interface_var_sroa.cpp in Sources */, + A9EE0F5228FDD2570013FF99 /* private_to_local_pass.cpp in Sources */, + A9EE0D6C28FDD2560013FF99 /* software_version.cpp in Sources */, + A9EE153128FDD2590013FF99 /* validate_adjacency.cpp in Sources */, + A9EE155E28FDD2590013FF99 /* validate_type.cpp in Sources */, + A9EE0C1628FDD2560013FF99 /* assembly_grammar.cpp in Sources */, + A9EE0D7B28FDD2560013FF99 /* optimizer.cpp in Sources */, + A9EE0E0228FDD2560013FF99 /* wrap_opkill.cpp in Sources */, + A9EE0F0728FDD2570013FF99 /* block_merge_util.cpp in Sources */, + A9EE0EBC28FDD2570013FF99 /* folding_rules.cpp in Sources */, + A9EE0C1C28FDD2560013FF99 /* extensions.cpp in Sources */, + A9EE151028FDD2590013FF99 /* validate_debug.cpp in Sources */, + A9EE150A28FDD2590013FF99 /* validate_instruction.cpp in Sources */, + A9EE156728FDD2590013FF99 /* validate_execution_limitations.cpp in Sources */, + A9EE150428FDD2590013FF99 /* validate_atomics.cpp in Sources */, + A9EE0CD328FDD2560013FF99 /* reduction_opportunity.cpp in Sources */, + A9EE0E3E28FDD2560013FF99 /* unify_const_pass.cpp in Sources */, + A9EE100028FDD2570013FF99 /* loop_fusion.cpp in Sources */, + A9EE0FB228FDD2570013FF99 /* dominator_analysis.cpp in Sources */, + A9EE0E0E28FDD2560013FF99 /* ssa_rewrite_pass.cpp in Sources */, + A9EE0DB428FDD2560013FF99 /* code_sink.cpp in Sources */, + A9EE0D0328FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */, + A9EE0F7C28FDD2570013FF99 /* redundancy_elimination.cpp in Sources */, + A9EE0C3428FDD2560013FF99 /* timer.cpp in Sources */, + A9EE0D3328FDD2560013FF99 /* spirv_endian.cpp in Sources */, + A9EE0E7128FDD2570013FF99 /* loop_unroller.cpp in Sources */, + A9EE153D28FDD2590013FF99 /* validate_id.cpp in Sources */, + A9EE0CC728FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */, + A9EE0CFD28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */, + A9EE0E4128FDD2560013FF99 /* type_manager.cpp in Sources */, + A9EE0C8828FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */, + A9EE0FA328FDD2570013FF99 /* remove_unused_interface_variables_pass.cpp in Sources */, + A9EE0CAF28FDD2560013FF99 /* remove_instruction_reduction_opportunity.cpp in Sources */, + A9EE155B28FDD2590013FF99 /* instruction.cpp in Sources */, + A9EE156A28FDD2590013FF99 /* validate_layout.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4643,216 +4757,224 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A926B80A27AC718900144157 /* table.cpp in Sources */, - A926B89127AC718900144157 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */, - A926BA7D27AC718A00144157 /* control_dependence.cpp in Sources */, - A926B80127AC718900144157 /* bit_vector.cpp in Sources */, - A926BA7727AC718A00144157 /* function.cpp in Sources */, - A926BA3B27AC718A00144157 /* ccp_pass.cpp in Sources */, - A926BA9527AC718A00144157 /* if_conversion.cpp in Sources */, - A926B82B27AC718900144157 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */, - A926BA5027AC718A00144157 /* eliminate_dead_functions_util.cpp in Sources */, - A926B87C27AC718900144157 /* reducer.cpp in Sources */, - A926B83D27AC718900144157 /* remove_function_reduction_opportunity.cpp in Sources */, - A926B81F27AC718900144157 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */, - A926C05F27AC718C00144157 /* libspirv.cpp in Sources */, - A926C09527AC718C00144157 /* validate_atomics.cpp in Sources */, - A926C08327AC718C00144157 /* validate_cfg.cpp in Sources */, - A926B9B727AC718900144157 /* strip_debug_info_pass.cpp in Sources */, - A926B8F427AC718900144157 /* binary.cpp in Sources */, - A926BABF27AC718A00144157 /* loop_fusion_pass.cpp in Sources */, - A926BB5827AC718A00144157 /* replace_desc_array_access_using_var_index.cpp in Sources */, - A926B93927AC718900144157 /* spread_volatile_semantics.cpp in Sources */, - A926C10427AC718C00144157 /* validate_composites.cpp in Sources */, - A926C0CE27AC718C00144157 /* validate_id.cpp in Sources */, - A926B98727AC718900144157 /* instrument_pass.cpp in Sources */, - A926B91527AC718900144157 /* linker.cpp in Sources */, - A926B8D627AC718900144157 /* spirv_fuzzer_options.cpp in Sources */, - A926BA1427AC718A00144157 /* vector_dce.cpp in Sources */, - A926BAA727AC718A00144157 /* desc_sroa.cpp in Sources */, - A926BB4027AC718A00144157 /* value_number_table.cpp in Sources */, - A926BB0D27AC718A00144157 /* amd_ext_to_khr.cpp in Sources */, - A926C0B027AC718C00144157 /* validate_constants.cpp in Sources */, - A926B7FE27AC718900144157 /* parse_number.cpp in Sources */, - A926BA9827AC718A00144157 /* debug_info_manager.cpp in Sources */, - A926C0B927AC718C00144157 /* construct.cpp in Sources */, - A926B92427AC718900144157 /* ext_inst.cpp in Sources */, - A926B94527AC718900144157 /* combine_access_chains.cpp in Sources */, - A926BA2027AC718A00144157 /* constants.cpp in Sources */, - A926B7BC27AC718900144157 /* lint_divergent_derivatives.cpp in Sources */, - A926B87327AC718900144157 /* remove_struct_member_reduction_opportunity.cpp in Sources */, - A926B9B127AC718900144157 /* const_folding_rules.cpp in Sources */, - A926BAF527AC718A00144157 /* private_to_local_pass.cpp in Sources */, - A926BB9A27AC718A00144157 /* loop_fusion.cpp in Sources */, - A926C07D27AC718C00144157 /* validate_annotation.cpp in Sources */, - A926B91B27AC718900144157 /* software_version.cpp in Sources */, - A926BA6827AC718A00144157 /* ir_context.cpp in Sources */, - A926B99027AC718900144157 /* feature_manager.cpp in Sources */, - A926B83127AC718900144157 /* remove_function_reduction_opportunity_finder.cpp in Sources */, - A926B84F27AC718900144157 /* merge_blocks_reduction_opportunity.cpp in Sources */, - A926B8B827AC718900144157 /* remove_block_reduction_opportunity.cpp in Sources */, - A926BADD27AC718A00144157 /* convert_to_sampled_image_pass.cpp in Sources */, - A926B7B327AC718900144157 /* spirv_target_env.cpp in Sources */, - A926BBA927AC718A00144157 /* scalar_analysis_simplification.cpp in Sources */, - A926B99927AC718900144157 /* dominator_tree.cpp in Sources */, - A926C0DD27AC718C00144157 /* validate_logicals.cpp in Sources */, - A926BAB327AC718A00144157 /* pass_manager.cpp in Sources */, - A926B8A627AC718900144157 /* remove_block_reduction_opportunity_finder.cpp in Sources */, - A926B98427AC718900144157 /* local_redundancy_elimination.cpp in Sources */, - A926B84327AC718900144157 /* remove_selection_reduction_opportunity_finder.cpp in Sources */, - A926BA4427AC718A00144157 /* pch_source_opt.cpp in Sources */, - A926B93327AC718900144157 /* loop_utils.cpp in Sources */, - A926BB1027AC718A00144157 /* scalar_replacement_pass.cpp in Sources */, - A926B9BD27AC718900144157 /* loop_dependence.cpp in Sources */, - A926BB1C27AC718A00144157 /* redundancy_elimination.cpp in Sources */, - A926BB0427AC718A00144157 /* set_spec_constant_default_value_pass.cpp in Sources */, - A926B85227AC718900144157 /* change_operand_reduction_opportunity.cpp in Sources */, - A926C08F27AC718C00144157 /* validate_non_uniform.cpp in Sources */, - A926BA2F27AC718A00144157 /* def_use_manager.cpp in Sources */, - A926BAAA27AC718A00144157 /* block_merge_util.cpp in Sources */, - A926B91E27AC718900144157 /* opcode.cpp in Sources */, - A926BA7A27AC718A00144157 /* instruction_list.cpp in Sources */, - A926BA5627AC718A00144157 /* simplification_pass.cpp in Sources */, - A926C09E27AC718C00144157 /* validate_decorations.cpp in Sources */, - A926C09227AC718C00144157 /* validate_scopes.cpp in Sources */, - A926BBB827AC718A00144157 /* compact_ids_pass.cpp in Sources */, - A926B91227AC718900144157 /* name_mapper.cpp in Sources */, - A926B9AE27AC718900144157 /* wrap_opkill.cpp in Sources */, - A926BBBB27AC718A00144157 /* loop_peeling.cpp in Sources */, - A926C10727AC718C00144157 /* validation_state.cpp in Sources */, - A926B96F27AC718900144157 /* cfg.cpp in Sources */, - A926BA4D27AC718A00144157 /* aggressive_dead_code_elim_pass.cpp in Sources */, - A926B99327AC718900144157 /* pass.cpp in Sources */, - A926B7F227AC718900144157 /* string_utils.cpp in Sources */, - A926C08C27AC718C00144157 /* validate_barriers.cpp in Sources */, - A926B7DA27AC718900144157 /* pch_source.cpp in Sources */, - A926B9D527AC718A00144157 /* remove_duplicates_pass.cpp in Sources */, - A926C0E027AC718C00144157 /* validate_derivatives.cpp in Sources */, - A926C0D427AC718C00144157 /* validate_arithmetics.cpp in Sources */, - A926B9E427AC718A00144157 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */, - A926C0E327AC718C00144157 /* validate_memory.cpp in Sources */, - A926B90627AC718900144157 /* spirv_reducer_options.cpp in Sources */, - A926C10A27AC718C00144157 /* validate_primitives.cpp in Sources */, - A926BB9427AC718A00144157 /* graphics_robust_access_pass.cpp in Sources */, - A926B8E227AC718900144157 /* print.cpp in Sources */, - A926B8AF27AC718900144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */, - A926C0AA27AC718C00144157 /* validate.cpp in Sources */, - A926B7BF27AC718900144157 /* linter.cpp in Sources */, - A926BA8027AC718A00144157 /* composite.cpp in Sources */, - A926B83A27AC718900144157 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */, - A926BB7027AC718A00144157 /* struct_cfg_analysis.cpp in Sources */, - A926BA5C27AC718A00144157 /* flatten_decoration_pass.cpp in Sources */, - A926BB8527AC718A00144157 /* basic_block.cpp in Sources */, - A926C07427AC718C00144157 /* disassemble.cpp in Sources */, - A926B96327AC718900144157 /* types.cpp in Sources */, - A926B8FA27AC718900144157 /* enum_string_mapping.cpp in Sources */, - A926C0FB27AC718C00144157 /* basic_block.cpp in Sources */, - A926B97827AC718900144157 /* freeze_spec_constant_value_pass.cpp in Sources */, - A926B9BA27AC718900144157 /* ssa_rewrite_pass.cpp in Sources */, - A926B8CA27AC718900144157 /* spirv_optimizer_options.cpp in Sources */, - A926BB3D27AC718A00144157 /* fix_storage_class.cpp in Sources */, - A926B87027AC718900144157 /* pch_source_reduce.cpp in Sources */, - A926B84627AC718900144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */, - A926BB4327AC718A00144157 /* remove_unused_interface_variables_pass.cpp in Sources */, - A926B89A27AC718900144157 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */, - A926C05927AC718C00144157 /* diagnostic.cpp in Sources */, - A926B99F27AC718900144157 /* merge_return_pass.cpp in Sources */, - A926B94827AC718900144157 /* build_module.cpp in Sources */, - A926BB9D27AC718A00144157 /* upgrade_memory_model.cpp in Sources */, - A926C0BC27AC718C00144157 /* function.cpp in Sources */, - A926BA2C27AC718A00144157 /* inst_buff_addr_check_pass.cpp in Sources */, - A926B82527AC718900144157 /* reduction_util.cpp in Sources */, - A926C0DA27AC718C00144157 /* validate_memory_semantics.cpp in Sources */, - A926BB2827AC718A00144157 /* relax_float_ops_pass.cpp in Sources */, - A926C0EF27AC718C00144157 /* validate_type.cpp in Sources */, - A926C0C227AC718C00144157 /* validate_adjacency.cpp in Sources */, - A926BA5927AC718A00144157 /* dead_branch_elim_pass.cpp in Sources */, - A926B81027AC718900144157 /* remove_selection_reduction_opportunity.cpp in Sources */, - A926C08027AC718C00144157 /* validate_misc.cpp in Sources */, - A926C0E627AC718C00144157 /* validate_image.cpp in Sources */, - A926B9FF27AC718A00144157 /* ir_loader.cpp in Sources */, - A926BA8F27AC718A00144157 /* strip_nonsemantic_info_pass.cpp in Sources */, - A926BAB027AC718A00144157 /* copy_prop_arrays.cpp in Sources */, - A926B99627AC718900144157 /* loop_fission.cpp in Sources */, - A926BAD727AC718A00144157 /* block_merge_pass.cpp in Sources */, - A926B8C127AC718900144157 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */, - A926B8BE27AC718900144157 /* reduction_opportunity_finder.cpp in Sources */, - A926B9D827AC718A00144157 /* dead_variable_elimination.cpp in Sources */, - A926C0C527AC718C00144157 /* validate_conversion.cpp in Sources */, - A926B90927AC718900144157 /* parsed_operand.cpp in Sources */, - A926B9AB27AC718900144157 /* cfg_cleanup_pass.cpp in Sources */, - A926B97527AC718900144157 /* local_single_block_elim_pass.cpp in Sources */, - A926C06B27AC718C00144157 /* operand.cpp in Sources */, - A926BB4627AC718A00144157 /* inline_opaque_pass.cpp in Sources */, - A926C0E927AC718C00144157 /* validate_literals.cpp in Sources */, - A926BA0827AC718A00144157 /* licm_pass.cpp in Sources */, - A926BA8327AC718A00144157 /* convert_to_half_pass.cpp in Sources */, - A926C0D727AC718C00144157 /* validate_mode_setting.cpp in Sources */, - A926B7CE27AC718900144157 /* text.cpp in Sources */, - A926BB3127AC718A00144157 /* instruction.cpp in Sources */, - A926B9A527AC718900144157 /* eliminate_dead_constant_pass.cpp in Sources */, - A926B87927AC718900144157 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */, - A926BAEF27AC718A00144157 /* local_single_store_elim_pass.cpp in Sources */, - A926C0FE27AC718C00144157 /* validate_function.cpp in Sources */, - A926BACB27AC718A00144157 /* dead_insert_elim_pass.cpp in Sources */, - A926C0B327AC718C00144157 /* validate_bitwise.cpp in Sources */, - A926B81927AC718900144157 /* reduction_pass.cpp in Sources */, - A926BB8227AC718A00144157 /* interp_fixup_pass.cpp in Sources */, - A926B96027AC718900144157 /* code_sink.cpp in Sources */, - A926C0A127AC718C00144157 /* validate_debug.cpp in Sources */, - A926BAA127AC718A00144157 /* eliminate_dead_members_pass.cpp in Sources */, - A926B92A27AC718900144157 /* optimizer.cpp in Sources */, - A926C07A27AC718C00144157 /* text_handler.cpp in Sources */, - A926BA7127AC718A00144157 /* loop_descriptor.cpp in Sources */, - A926C0F527AC718C00144157 /* validate_execution_limitations.cpp in Sources */, - A926BA2927AC718A00144157 /* desc_sroa_util.cpp in Sources */, - A926B9ED27AC718A00144157 /* type_manager.cpp in Sources */, - A926BA0B27AC718A00144157 /* eliminate_dead_functions_pass.cpp in Sources */, - A926B8B227AC718900144157 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */, - A926C09B27AC718C00144157 /* validate_instruction.cpp in Sources */, - A926B9C627AC718900144157 /* inst_debug_printf_pass.cpp in Sources */, - A926C0F827AC718C00144157 /* validate_layout.cpp in Sources */, - A926C0B627AC718C00144157 /* validate_extensions.cpp in Sources */, - A926B8DC27AC718900144157 /* spirv_validator_options.cpp in Sources */, - A926C0A727AC718C00144157 /* validate_interfaces.cpp in Sources */, - A926B98127AC718900144157 /* inst_bindless_check_pass.cpp in Sources */, - A926B7C227AC718900144157 /* divergence_analysis.cpp in Sources */, - A926B9CF27AC718A00144157 /* mem_pass.cpp in Sources */, - A926BAD127AC718A00144157 /* scalar_analysis.cpp in Sources */, - A926B88827AC718900144157 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */, - A926B7D127AC718900144157 /* assembly_grammar.cpp in Sources */, - A926B7D727AC718900144157 /* extensions.cpp in Sources */, - A926B88B27AC718900144157 /* reduction_opportunity.cpp in Sources */, - A926BA1A27AC718A00144157 /* loop_unroller.cpp in Sources */, - A926B8BB27AC718900144157 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */, - A926BB0127AC718A00144157 /* loop_dependence_helpers.cpp in Sources */, - A926B93027AC718900144157 /* register_pressure.cpp in Sources */, - A926B9F927AC718A00144157 /* inline_pass.cpp in Sources */, - A926C0EC27AC718C00144157 /* instruction.cpp in Sources */, - A926C08627AC718C00144157 /* validate_capability.cpp in Sources */, - A926B9DE27AC718A00144157 /* module.cpp in Sources */, - A926B7EC27AC718900144157 /* timer.cpp in Sources */, - A926BAA427AC718A00144157 /* strength_reduction_pass.cpp in Sources */, - A926BB7F27AC718A00144157 /* local_access_chain_convert_pass.cpp in Sources */, - A926C0C827AC718C00144157 /* validate_small_type_uses.cpp in Sources */, - A926BB6427AC718A00144157 /* dataflow.cpp in Sources */, - A926BB2227AC718A00144157 /* workaround1209.cpp in Sources */, - A926B8EB27AC718900144157 /* spirv_endian.cpp in Sources */, - A926B9E727AC718A00144157 /* loop_unswitch_pass.cpp in Sources */, - A926B9EA27AC718A00144157 /* unify_const_pass.cpp in Sources */, - A926BB3727AC718A00144157 /* reduce_load_size.cpp in Sources */, - A926BB5227AC718A00144157 /* dominator_analysis.cpp in Sources */, - A926BAB627AC718A00144157 /* inline_exhaustive_pass.cpp in Sources */, - A926B87F27AC718900144157 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */, - A926C0A427AC718C00144157 /* validate_builtins.cpp in Sources */, - A926BB0A27AC718A00144157 /* fold.cpp in Sources */, - A926B97227AC718900144157 /* decoration_manager.cpp in Sources */, - A926B8B527AC718900144157 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */, - A926BAFB27AC718A00144157 /* propagator.cpp in Sources */, - A926B84027AC718900144157 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */, - A926B86727AC718900144157 /* remove_instruction_reduction_opportunity.cpp in Sources */, - A926BB4927AC718A00144157 /* replace_invalid_opc.cpp in Sources */, - A926BA6227AC718A00144157 /* folding_rules.cpp in Sources */, + A9EE0DD428FDD2560013FF99 /* inst_bindless_check_pass.cpp in Sources */, + A9EE153628FDD2590013FF99 /* validate_small_type_uses.cpp in Sources */, + A9EE0EB228FDD2570013FF99 /* dead_branch_elim_pass.cpp in Sources */, + A9EE0F5728FDD2570013FF99 /* propagator.cpp in Sources */, + A9EE0E5528FDD2570013FF99 /* ir_loader.cpp in Sources */, + A9EE151E28FDD2590013FF99 /* validate_constants.cpp in Sources */, + A9EE0D5628FDD2560013FF99 /* spirv_reducer_options.cpp in Sources */, + A9EE0DE628FDD2560013FF99 /* pass.cpp in Sources */, + A9EE151528FDD2590013FF99 /* validate_interfaces.cpp in Sources */, + A9EE0D8028FDD2560013FF99 /* register_pressure.cpp in Sources */, + A9EE0E2B28FDD2560013FF99 /* dead_variable_elimination.cpp in Sources */, + A9EE0D6E28FDD2560013FF99 /* opcode.cpp in Sources */, + A9EE0FA528FDD2570013FF99 /* inline_opaque_pass.cpp in Sources */, + A9EE156F28FDD2590013FF99 /* validate_function.cpp in Sources */, + A9EE152428FDD2590013FF99 /* validate_extensions.cpp in Sources */, + A9EE0C5128FDD2560013FF99 /* table.cpp in Sources */, + A9EE155428FDD2590013FF99 /* validate_image.cpp in Sources */, + A9EE102328FDD2570013FF99 /* loop_peeling.cpp in Sources */, + A9EE102028FDD2570013FF99 /* compact_ids_pass.cpp in Sources */, + A9EE0CD828FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */, + A9EE0FE128FDD2570013FF99 /* local_access_chain_convert_pass.cpp in Sources */, + A9EE0DC528FDD2560013FF99 /* decoration_manager.cpp in Sources */, + A9EE0C4828FDD2560013FF99 /* bit_vector.cpp in Sources */, + A9EE0F4B28FDD2570013FF99 /* local_single_store_elim_pass.cpp in Sources */, + A9EE0C7228FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */, + A9EE0F3328FDD2570013FF99 /* block_merge_pass.cpp in Sources */, + A9EE0F6028FDD2570013FF99 /* set_spec_constant_default_value_pass.cpp in Sources */, + A9EE0F3928FDD2570013FF99 /* convert_to_sampled_image_pass.cpp in Sources */, + A9EE0EB528FDD2570013FF99 /* flatten_decoration_pass.cpp in Sources */, + A9EE0E2228FDD2560013FF99 /* mem_pass.cpp in Sources */, + A9EE0FF628FDD2570013FF99 /* graphics_robust_access_pass.cpp in Sources */, + A9EE0EE828FDD2570013FF99 /* strip_nonsemantic_info_pass.cpp in Sources */, + A9EE0CC328FDD2560013FF99 /* reducer.cpp in Sources */, + A9EE0DF228FDD2560013FF99 /* merge_return_pass.cpp in Sources */, + A9EE0ED928FDD2570013FF99 /* composite.cpp in Sources */, + A9EE0C8428FDD2560013FF99 /* remove_function_reduction_opportunity.cpp in Sources */, + A9EE0C6628FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */, + A9EE0D4A28FDD2560013FF99 /* enum_string_mapping.cpp in Sources */, + A9EE0EAF28FDD2570013FF99 /* simplification_pass.cpp in Sources */, + A9EE0D3B28FDD2560013FF99 /* binary.cpp in Sources */, + A9EE0D9828FDD2560013FF99 /* build_module.cpp in Sources */, + A9EE14FA28FDD2590013FF99 /* validate_ray_query.cpp in Sources */, + A9EE0F9C28FDD2570013FF99 /* fix_storage_class.cpp in Sources */, + A9EE153328FDD2590013FF99 /* validate_conversion.cpp in Sources */, + A9EE0E4F28FDD2570013FF99 /* inline_pass.cpp in Sources */, + A9EE150C28FDD2590013FF99 /* validate_decorations.cpp in Sources */, + A9EE152728FDD2590013FF99 /* construct.cpp in Sources */, + A9EE0D1D28FDD2560013FF99 /* spirv_fuzzer_options.cpp in Sources */, + A9EE0E1028FDD2560013FF99 /* loop_dependence.cpp in Sources */, + A9EE0E0A28FDD2560013FF99 /* strip_debug_info_pass.cpp in Sources */, + A9EE0F6628FDD2570013FF99 /* fold.cpp in Sources */, + A9EE151828FDD2590013FF99 /* validate.cpp in Sources */, + A9EE154528FDD2590013FF99 /* validate_mode_setting.cpp in Sources */, + A9EE0F9F28FDD2570013FF99 /* value_number_table.cpp in Sources */, + A9EE0C4528FDD2560013FF99 /* parse_number.cpp in Sources */, + A9EE100528FDD2570013FF99 /* upgrade_memory_model.cpp in Sources */, + A9EE14E228FDD2590013FF99 /* text_handler.cpp in Sources */, + A9EE0C0028FDD2560013FF99 /* lint_divergent_derivatives.cpp in Sources */, + A9EE0DE328FDD2560013FF99 /* feature_manager.cpp in Sources */, + A9EE0ED328FDD2570013FF99 /* instruction_list.cpp in Sources */, + A9EE0E6128FDD2570013FF99 /* eliminate_dead_functions_pass.cpp in Sources */, + A9EE0E1928FDD2560013FF99 /* inst_debug_printf_pass.cpp in Sources */, + A9EE0CBA28FDD2560013FF99 /* remove_struct_member_reduction_opportunity.cpp in Sources */, + A9EE150028FDD2590013FF99 /* validate_scopes.cpp in Sources */, + A9EE0E9428FDD2570013FF99 /* ccp_pass.cpp in Sources */, + A9EE0F1B28FDD2570013FF99 /* loop_fusion_pass.cpp in Sources */, + A9EE0DEC28FDD2560013FF99 /* dominator_tree.cpp in Sources */, + A9EE0C7828FDD2560013FF99 /* remove_function_reduction_opportunity_finder.cpp in Sources */, + A9EE0FC328FDD2570013FF99 /* dataflow.cpp in Sources */, + A9EE0E2828FDD2560013FF99 /* remove_duplicates_pass.cpp in Sources */, + A9EE0F8128FDD2570013FF99 /* workaround1209.cpp in Sources */, + A9EE0C9628FDD2560013FF99 /* merge_blocks_reduction_opportunity.cpp in Sources */, + A9EE0F2D28FDD2570013FF99 /* scalar_analysis.cpp in Sources */, + A9EE0F1228FDD2570013FF99 /* inline_exhaustive_pass.cpp in Sources */, + A9EE0E6A28FDD2570013FF99 /* vector_dce.cpp in Sources */, + A9EE0DB628FDD2560013FF99 /* types.cpp in Sources */, + A9EE0CFF28FDD2560013FF99 /* remove_block_reduction_opportunity.cpp in Sources */, + A9EE14EB28FDD2590013FF99 /* validate_cfg.cpp in Sources */, + A9EE100228FDD2570013FF99 /* eliminate_dead_input_components_pass.cpp in Sources */, + A9EE0ED028FDD2570013FF99 /* function.cpp in Sources */, + A9EE0BF728FDD2560013FF99 /* spirv_target_env.cpp in Sources */, + A9EE152A28FDD2590013FF99 /* function.cpp in Sources */, + A9EE0F9628FDD2570013FF99 /* reduce_load_size.cpp in Sources */, + A9EE0EF128FDD2570013FF99 /* fix_func_call_arguments.cpp in Sources */, + A9EE14FD28FDD2590013FF99 /* validate_ray_tracing.cpp in Sources */, + A9EE0CED28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.cpp in Sources */, + A9EE0C8A28FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.cpp in Sources */, + A9EE156C28FDD2590013FF99 /* basic_block.cpp in Sources */, + A9EE0F0328FDD2570013FF99 /* desc_sroa.cpp in Sources */, + A9EE0DD728FDD2560013FF99 /* local_redundancy_elimination.cpp in Sources */, + A9EE0F0C28FDD2570013FF99 /* copy_prop_arrays.cpp in Sources */, + A9EE0D5928FDD2560013FF99 /* parsed_operand.cpp in Sources */, + A9EE0D6228FDD2560013FF99 /* name_mapper.cpp in Sources */, + A9EE151228FDD2590013FF99 /* validate_builtins.cpp in Sources */, + A9EE14C128FDD2590013FF99 /* diagnostic.cpp in Sources */, + A9EE0EC128FDD2570013FF99 /* ir_context.cpp in Sources */, + A9EE101128FDD2570013FF99 /* scalar_analysis_simplification.cpp in Sources */, + A9EE0E3728FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */, + A9EE0F2728FDD2570013FF99 /* dead_insert_elim_pass.cpp in Sources */, + A9EE154B28FDD2590013FF99 /* validate_logicals.cpp in Sources */, + A9EE0F0028FDD2570013FF99 /* strength_reduction_pass.cpp in Sources */, + A9EE0C9928FDD2560013FF99 /* change_operand_reduction_opportunity.cpp in Sources */, + A9EE154228FDD2590013FF99 /* validate_arithmetics.cpp in Sources */, + A9EE0D6528FDD2560013FF99 /* linker.cpp in Sources */, + A9EE0C3928FDD2560013FF99 /* string_utils.cpp in Sources */, + A9EE0C1E28FDD2560013FF99 /* pch_source.cpp in Sources */, + A9EE157B28FDD2590013FF99 /* validate_primitives.cpp in Sources */, + A9EE0E8528FDD2570013FF99 /* def_use_manager.cpp in Sources */, + A9EE0EF428FDD2570013FF99 /* debug_info_manager.cpp in Sources */, + A9EE0FA828FDD2570013FF99 /* replace_invalid_opc.cpp in Sources */, + A9EE0D2928FDD2560013FF99 /* print.cpp in Sources */, + A9EE0F6928FDD2570013FF99 /* amd_ext_to_khr.cpp in Sources */, + A9EE0E3128FDD2560013FF99 /* module.cpp in Sources */, + A9EE154E28FDD2590013FF99 /* validate_derivatives.cpp in Sources */, + A9EE0F9028FDD2570013FF99 /* instruction.cpp in Sources */, + A9EE0CF628FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */, + A9EE0DC228FDD2560013FF99 /* cfg.cpp in Sources */, + A9EE0FE728FDD2570013FF99 /* basic_block.cpp in Sources */, + A9EE0DF828FDD2560013FF99 /* eliminate_dead_constant_pass.cpp in Sources */, + A9EE0FD228FDD2570013FF99 /* remove_dontinline_pass.cpp in Sources */, + A9EE0C0328FDD2560013FF99 /* linter.cpp in Sources */, + A9EE14F728FDD2590013FF99 /* validate_non_uniform.cpp in Sources */, + A9EE0E7628FDD2570013FF99 /* constants.cpp in Sources */, + A9EE0DDA28FDD2560013FF99 /* instrument_pass.cpp in Sources */, + A9EE0DE928FDD2560013FF99 /* loop_fission.cpp in Sources */, + A9EE0FB728FDD2570013FF99 /* replace_desc_array_access_using_var_index.cpp in Sources */, + A9EE0C8128FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */, + A9EE0D1128FDD2560013FF99 /* spirv_optimizer_options.cpp in Sources */, + A9EE0FE428FDD2570013FF99 /* interp_fixup_pass.cpp in Sources */, + A9EE0CB728FDD2560013FF99 /* pch_source_reduce.cpp in Sources */, + A9EE0C8D28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */, + A9EE14E528FDD2590013FF99 /* validate_annotation.cpp in Sources */, + A9EE155728FDD2590013FF99 /* validate_literals.cpp in Sources */, + A9EE0F5D28FDD2570013FF99 /* loop_dependence_helpers.cpp in Sources */, + A9EE0D7428FDD2560013FF99 /* ext_inst.cpp in Sources */, + A9EE0EA628FDD2570013FF99 /* aggressive_dead_code_elim_pass.cpp in Sources */, + A9EE157828FDD2590013FF99 /* validation_state.cpp in Sources */, + A9EE0CE128FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */, + A9EE14E828FDD2590013FF99 /* validate_misc.cpp in Sources */, + A9EE0DCB28FDD2560013FF99 /* freeze_spec_constant_value_pass.cpp in Sources */, + A9EE157528FDD2590013FF99 /* validate_composites.cpp in Sources */, + A9EE0D4428FDD2560013FF99 /* diff.cpp in Sources */, + A9EE155128FDD2590013FF99 /* validate_memory.cpp in Sources */, + A9EE0EEE28FDD2570013FF99 /* if_conversion.cpp in Sources */, + A9EE0EDC28FDD2570013FF99 /* convert_to_half_pass.cpp in Sources */, + A9EE0D9528FDD2560013FF99 /* combine_access_chains.cpp in Sources */, + A9EE0C6C28FDD2560013FF99 /* reduction_util.cpp in Sources */, + A9EE0E8228FDD2570013FF99 /* inst_buff_addr_check_pass.cpp in Sources */, + A9EE0ED628FDD2570013FF99 /* control_dependence.cpp in Sources */, + A9EE0F6C28FDD2570013FF99 /* scalar_replacement_pass.cpp in Sources */, + A9EE0E5E28FDD2570013FF99 /* licm_pass.cpp in Sources */, + A9EE14C728FDD2590013FF99 /* libspirv.cpp in Sources */, + A9EE0E9D28FDD2570013FF99 /* pch_source_opt.cpp in Sources */, + A9EE0C5728FDD2560013FF99 /* remove_selection_reduction_opportunity.cpp in Sources */, + A9EE14D328FDD2590013FF99 /* operand.cpp in Sources */, + A9EE0D0828FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */, + A9EE0E3A28FDD2560013FF99 /* loop_unswitch_pass.cpp in Sources */, + A9EE0D0528FDD2560013FF99 /* reduction_opportunity_finder.cpp in Sources */, + A9EE0C1228FDD2560013FF99 /* text.cpp in Sources */, + A9EE0CC028FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */, + A9EE0DFE28FDD2560013FF99 /* cfg_cleanup_pass.cpp in Sources */, + A9EE0C6028FDD2560013FF99 /* reduction_pass.cpp in Sources */, + A9EE154828FDD2590013FF99 /* validate_memory_semantics.cpp in Sources */, + A9EE14F428FDD2590013FF99 /* validate_barriers.cpp in Sources */, + A9EE156328FDD2590013FF99 /* validate_mesh_shading.cpp in Sources */, + A9EE0F8728FDD2570013FF99 /* relax_float_ops_pass.cpp in Sources */, + A9EE0CF928FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */, + A9EE0E0428FDD2560013FF99 /* const_folding_rules.cpp in Sources */, + A9EE0EFD28FDD2570013FF99 /* eliminate_dead_members_pass.cpp in Sources */, + A9EE0ECA28FDD2570013FF99 /* loop_descriptor.cpp in Sources */, + A9EE0D2328FDD2560013FF99 /* spirv_validator_options.cpp in Sources */, + A9EE0C0628FDD2560013FF99 /* divergence_analysis.cpp in Sources */, + A9EE0FCF28FDD2570013FF99 /* struct_cfg_analysis.cpp in Sources */, + A9EE14DC28FDD2590013FF99 /* disassemble.cpp in Sources */, + A9EE0EA928FDD2570013FF99 /* eliminate_dead_functions_util.cpp in Sources */, + A9EE0D8328FDD2560013FF99 /* loop_utils.cpp in Sources */, + A9EE152128FDD2590013FF99 /* validate_bitwise.cpp in Sources */, + A9EE0D8928FDD2560013FF99 /* spread_volatile_semantics.cpp in Sources */, + A9EE14EE28FDD2590013FF99 /* validate_capability.cpp in Sources */, + A9EE0E7F28FDD2570013FF99 /* desc_sroa_util.cpp in Sources */, + A9EE0F0F28FDD2570013FF99 /* pass_manager.cpp in Sources */, + A9EE0CCF28FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */, + A9EE0DC828FDD2560013FF99 /* local_single_block_elim_pass.cpp in Sources */, + A9EE0F7228FDD2570013FF99 /* interface_var_sroa.cpp in Sources */, + A9EE0F5128FDD2570013FF99 /* private_to_local_pass.cpp in Sources */, + A9EE0D6B28FDD2560013FF99 /* software_version.cpp in Sources */, + A9EE153028FDD2590013FF99 /* validate_adjacency.cpp in Sources */, + A9EE155D28FDD2590013FF99 /* validate_type.cpp in Sources */, + A9EE0C1528FDD2560013FF99 /* assembly_grammar.cpp in Sources */, + A9EE0D7A28FDD2560013FF99 /* optimizer.cpp in Sources */, + A9EE0E0128FDD2560013FF99 /* wrap_opkill.cpp in Sources */, + A9EE0F0628FDD2570013FF99 /* block_merge_util.cpp in Sources */, + A9EE0EBB28FDD2570013FF99 /* folding_rules.cpp in Sources */, + A9EE0C1B28FDD2560013FF99 /* extensions.cpp in Sources */, + A9EE150F28FDD2590013FF99 /* validate_debug.cpp in Sources */, + A9EE150928FDD2590013FF99 /* validate_instruction.cpp in Sources */, + A9EE156628FDD2590013FF99 /* validate_execution_limitations.cpp in Sources */, + A9EE150328FDD2590013FF99 /* validate_atomics.cpp in Sources */, + A9EE0CD228FDD2560013FF99 /* reduction_opportunity.cpp in Sources */, + A9EE0E3D28FDD2560013FF99 /* unify_const_pass.cpp in Sources */, + A9EE0FFF28FDD2570013FF99 /* loop_fusion.cpp in Sources */, + A9EE0FB128FDD2570013FF99 /* dominator_analysis.cpp in Sources */, + A9EE0E0D28FDD2560013FF99 /* ssa_rewrite_pass.cpp in Sources */, + A9EE0DB328FDD2560013FF99 /* code_sink.cpp in Sources */, + A9EE0D0228FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */, + A9EE0F7B28FDD2570013FF99 /* redundancy_elimination.cpp in Sources */, + A9EE0C3328FDD2560013FF99 /* timer.cpp in Sources */, + A9EE0D3228FDD2560013FF99 /* spirv_endian.cpp in Sources */, + A9EE0E7028FDD2570013FF99 /* loop_unroller.cpp in Sources */, + A9EE153C28FDD2590013FF99 /* validate_id.cpp in Sources */, + A9EE0CC628FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */, + A9EE0CFC28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */, + A9EE0E4028FDD2560013FF99 /* type_manager.cpp in Sources */, + A9EE0C8728FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */, + A9EE0FA228FDD2570013FF99 /* remove_unused_interface_variables_pass.cpp in Sources */, + A9EE0CAE28FDD2560013FF99 /* remove_instruction_reduction_opportunity.cpp in Sources */, + A9EE155A28FDD2590013FF99 /* instruction.cpp in Sources */, + A9EE156928FDD2590013FF99 /* validate_layout.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4860,216 +4982,224 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A926B80C27AC718900144157 /* table.cpp in Sources */, - A926B89327AC718900144157 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */, - A926BA7F27AC718A00144157 /* control_dependence.cpp in Sources */, - A926B80327AC718900144157 /* bit_vector.cpp in Sources */, - A926BA7927AC718A00144157 /* function.cpp in Sources */, - A926BA3D27AC718A00144157 /* ccp_pass.cpp in Sources */, - A926BA9727AC718A00144157 /* if_conversion.cpp in Sources */, - A926B82D27AC718900144157 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */, - A926BA5227AC718A00144157 /* eliminate_dead_functions_util.cpp in Sources */, - A926B87E27AC718900144157 /* reducer.cpp in Sources */, - A926B83F27AC718900144157 /* remove_function_reduction_opportunity.cpp in Sources */, - A926B82127AC718900144157 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */, - A926C06127AC718C00144157 /* libspirv.cpp in Sources */, - A926C09727AC718C00144157 /* validate_atomics.cpp in Sources */, - A926C08527AC718C00144157 /* validate_cfg.cpp in Sources */, - A926B9B927AC718900144157 /* strip_debug_info_pass.cpp in Sources */, - A926B8F627AC718900144157 /* binary.cpp in Sources */, - A926BAC127AC718A00144157 /* loop_fusion_pass.cpp in Sources */, - A926BB5A27AC718A00144157 /* replace_desc_array_access_using_var_index.cpp in Sources */, - A926B93B27AC718900144157 /* spread_volatile_semantics.cpp in Sources */, - A926C10627AC718C00144157 /* validate_composites.cpp in Sources */, - A926C0D027AC718C00144157 /* validate_id.cpp in Sources */, - A926B98927AC718900144157 /* instrument_pass.cpp in Sources */, - A926B91727AC718900144157 /* linker.cpp in Sources */, - A926B8D827AC718900144157 /* spirv_fuzzer_options.cpp in Sources */, - A926BA1627AC718A00144157 /* vector_dce.cpp in Sources */, - A926BAA927AC718A00144157 /* desc_sroa.cpp in Sources */, - A926BB4227AC718A00144157 /* value_number_table.cpp in Sources */, - A926BB0F27AC718A00144157 /* amd_ext_to_khr.cpp in Sources */, - A926C0B227AC718C00144157 /* validate_constants.cpp in Sources */, - A926B80027AC718900144157 /* parse_number.cpp in Sources */, - A926BA9A27AC718A00144157 /* debug_info_manager.cpp in Sources */, - A926C0BB27AC718C00144157 /* construct.cpp in Sources */, - A926B92627AC718900144157 /* ext_inst.cpp in Sources */, - A926B94727AC718900144157 /* combine_access_chains.cpp in Sources */, - A926BA2227AC718A00144157 /* constants.cpp in Sources */, - A926B7BE27AC718900144157 /* lint_divergent_derivatives.cpp in Sources */, - A926B87527AC718900144157 /* remove_struct_member_reduction_opportunity.cpp in Sources */, - A926B9B327AC718900144157 /* const_folding_rules.cpp in Sources */, - A926BAF727AC718A00144157 /* private_to_local_pass.cpp in Sources */, - A926BB9C27AC718A00144157 /* loop_fusion.cpp in Sources */, - A926C07F27AC718C00144157 /* validate_annotation.cpp in Sources */, - A926B91D27AC718900144157 /* software_version.cpp in Sources */, - A926BA6A27AC718A00144157 /* ir_context.cpp in Sources */, - A926B99227AC718900144157 /* feature_manager.cpp in Sources */, - A926B83327AC718900144157 /* remove_function_reduction_opportunity_finder.cpp in Sources */, - A926B85127AC718900144157 /* merge_blocks_reduction_opportunity.cpp in Sources */, - A926B8BA27AC718900144157 /* remove_block_reduction_opportunity.cpp in Sources */, - A926BADF27AC718A00144157 /* convert_to_sampled_image_pass.cpp in Sources */, - A926B7B527AC718900144157 /* spirv_target_env.cpp in Sources */, - A926BBAB27AC718A00144157 /* scalar_analysis_simplification.cpp in Sources */, - A926B99B27AC718900144157 /* dominator_tree.cpp in Sources */, - A926C0DF27AC718C00144157 /* validate_logicals.cpp in Sources */, - A926BAB527AC718A00144157 /* pass_manager.cpp in Sources */, - A926B8A827AC718900144157 /* remove_block_reduction_opportunity_finder.cpp in Sources */, - A926B98627AC718900144157 /* local_redundancy_elimination.cpp in Sources */, - A926B84527AC718900144157 /* remove_selection_reduction_opportunity_finder.cpp in Sources */, - A926BA4627AC718A00144157 /* pch_source_opt.cpp in Sources */, - A926B93527AC718900144157 /* loop_utils.cpp in Sources */, - A926BB1227AC718A00144157 /* scalar_replacement_pass.cpp in Sources */, - A926B9BF27AC718900144157 /* loop_dependence.cpp in Sources */, - A926BB1E27AC718A00144157 /* redundancy_elimination.cpp in Sources */, - A926BB0627AC718A00144157 /* set_spec_constant_default_value_pass.cpp in Sources */, - A926B85427AC718900144157 /* change_operand_reduction_opportunity.cpp in Sources */, - A926C09127AC718C00144157 /* validate_non_uniform.cpp in Sources */, - A926BA3127AC718A00144157 /* def_use_manager.cpp in Sources */, - A926BAAC27AC718A00144157 /* block_merge_util.cpp in Sources */, - A926B92027AC718900144157 /* opcode.cpp in Sources */, - A926BA7C27AC718A00144157 /* instruction_list.cpp in Sources */, - A926BA5827AC718A00144157 /* simplification_pass.cpp in Sources */, - A926C0A027AC718C00144157 /* validate_decorations.cpp in Sources */, - A926C09427AC718C00144157 /* validate_scopes.cpp in Sources */, - A926BBBA27AC718A00144157 /* compact_ids_pass.cpp in Sources */, - A926B91427AC718900144157 /* name_mapper.cpp in Sources */, - A926B9B027AC718900144157 /* wrap_opkill.cpp in Sources */, - A926BBBD27AC718A00144157 /* loop_peeling.cpp in Sources */, - A926C10927AC718C00144157 /* validation_state.cpp in Sources */, - A926B97127AC718900144157 /* cfg.cpp in Sources */, - A926BA4F27AC718A00144157 /* aggressive_dead_code_elim_pass.cpp in Sources */, - A926B99527AC718900144157 /* pass.cpp in Sources */, - A926B7F427AC718900144157 /* string_utils.cpp in Sources */, - A926C08E27AC718C00144157 /* validate_barriers.cpp in Sources */, - A926B7DC27AC718900144157 /* pch_source.cpp in Sources */, - A926B9D727AC718A00144157 /* remove_duplicates_pass.cpp in Sources */, - A926C0E227AC718C00144157 /* validate_derivatives.cpp in Sources */, - A926C0D627AC718C00144157 /* validate_arithmetics.cpp in Sources */, - A926B9E627AC718A00144157 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */, - A926C0E527AC718C00144157 /* validate_memory.cpp in Sources */, - A926B90827AC718900144157 /* spirv_reducer_options.cpp in Sources */, - A926C10C27AC718C00144157 /* validate_primitives.cpp in Sources */, - A926BB9627AC718A00144157 /* graphics_robust_access_pass.cpp in Sources */, - A926B8E427AC718900144157 /* print.cpp in Sources */, - A926B8B127AC718900144157 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */, - A926C0AC27AC718C00144157 /* validate.cpp in Sources */, - A926B7C127AC718900144157 /* linter.cpp in Sources */, - A926BA8227AC718A00144157 /* composite.cpp in Sources */, - A926B83C27AC718900144157 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */, - A926BB7227AC718A00144157 /* struct_cfg_analysis.cpp in Sources */, - A926BA5E27AC718A00144157 /* flatten_decoration_pass.cpp in Sources */, - A926BB8727AC718A00144157 /* basic_block.cpp in Sources */, - A926C07627AC718C00144157 /* disassemble.cpp in Sources */, - A926B96527AC718900144157 /* types.cpp in Sources */, - A926B8FC27AC718900144157 /* enum_string_mapping.cpp in Sources */, - A926C0FD27AC718C00144157 /* basic_block.cpp in Sources */, - A926B97A27AC718900144157 /* freeze_spec_constant_value_pass.cpp in Sources */, - A926B9BC27AC718900144157 /* ssa_rewrite_pass.cpp in Sources */, - A926B8CC27AC718900144157 /* spirv_optimizer_options.cpp in Sources */, - A926BB3F27AC718A00144157 /* fix_storage_class.cpp in Sources */, - A926B87227AC718900144157 /* pch_source_reduce.cpp in Sources */, - A926B84827AC718900144157 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */, - A926BB4527AC718A00144157 /* remove_unused_interface_variables_pass.cpp in Sources */, - A926B89C27AC718900144157 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */, - A926C05B27AC718C00144157 /* diagnostic.cpp in Sources */, - A926B9A127AC718900144157 /* merge_return_pass.cpp in Sources */, - A926B94A27AC718900144157 /* build_module.cpp in Sources */, - A926BB9F27AC718A00144157 /* upgrade_memory_model.cpp in Sources */, - A926C0BE27AC718C00144157 /* function.cpp in Sources */, - A926BA2E27AC718A00144157 /* inst_buff_addr_check_pass.cpp in Sources */, - A926B82727AC718900144157 /* reduction_util.cpp in Sources */, - A926C0DC27AC718C00144157 /* validate_memory_semantics.cpp in Sources */, - A926BB2A27AC718A00144157 /* relax_float_ops_pass.cpp in Sources */, - A926C0F127AC718C00144157 /* validate_type.cpp in Sources */, - A926C0C427AC718C00144157 /* validate_adjacency.cpp in Sources */, - A926BA5B27AC718A00144157 /* dead_branch_elim_pass.cpp in Sources */, - A926B81227AC718900144157 /* remove_selection_reduction_opportunity.cpp in Sources */, - A926C08227AC718C00144157 /* validate_misc.cpp in Sources */, - A926C0E827AC718C00144157 /* validate_image.cpp in Sources */, - A926BA0127AC718A00144157 /* ir_loader.cpp in Sources */, - A926BA9127AC718A00144157 /* strip_nonsemantic_info_pass.cpp in Sources */, - A926BAB227AC718A00144157 /* copy_prop_arrays.cpp in Sources */, - A926B99827AC718900144157 /* loop_fission.cpp in Sources */, - A926BAD927AC718A00144157 /* block_merge_pass.cpp in Sources */, - A926B8C327AC718900144157 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */, - A926B8C027AC718900144157 /* reduction_opportunity_finder.cpp in Sources */, - A926B9DA27AC718A00144157 /* dead_variable_elimination.cpp in Sources */, - A926C0C727AC718C00144157 /* validate_conversion.cpp in Sources */, - A926B90B27AC718900144157 /* parsed_operand.cpp in Sources */, - A926B9AD27AC718900144157 /* cfg_cleanup_pass.cpp in Sources */, - A926B97727AC718900144157 /* local_single_block_elim_pass.cpp in Sources */, - A926C06D27AC718C00144157 /* operand.cpp in Sources */, - A926BB4827AC718A00144157 /* inline_opaque_pass.cpp in Sources */, - A926C0EB27AC718C00144157 /* validate_literals.cpp in Sources */, - A926BA0A27AC718A00144157 /* licm_pass.cpp in Sources */, - A926BA8527AC718A00144157 /* convert_to_half_pass.cpp in Sources */, - A926C0D927AC718C00144157 /* validate_mode_setting.cpp in Sources */, - A926B7D027AC718900144157 /* text.cpp in Sources */, - A926BB3327AC718A00144157 /* instruction.cpp in Sources */, - A926B9A727AC718900144157 /* eliminate_dead_constant_pass.cpp in Sources */, - A926B87B27AC718900144157 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */, - A926BAF127AC718A00144157 /* local_single_store_elim_pass.cpp in Sources */, - A926C10027AC718C00144157 /* validate_function.cpp in Sources */, - A926BACD27AC718A00144157 /* dead_insert_elim_pass.cpp in Sources */, - A926C0B527AC718C00144157 /* validate_bitwise.cpp in Sources */, - A926B81B27AC718900144157 /* reduction_pass.cpp in Sources */, - A926BB8427AC718A00144157 /* interp_fixup_pass.cpp in Sources */, - A926B96227AC718900144157 /* code_sink.cpp in Sources */, - A926C0A327AC718C00144157 /* validate_debug.cpp in Sources */, - A926BAA327AC718A00144157 /* eliminate_dead_members_pass.cpp in Sources */, - A926B92C27AC718900144157 /* optimizer.cpp in Sources */, - A926C07C27AC718C00144157 /* text_handler.cpp in Sources */, - A926BA7327AC718A00144157 /* loop_descriptor.cpp in Sources */, - A926C0F727AC718C00144157 /* validate_execution_limitations.cpp in Sources */, - A926BA2B27AC718A00144157 /* desc_sroa_util.cpp in Sources */, - A926B9EF27AC718A00144157 /* type_manager.cpp in Sources */, - A926BA0D27AC718A00144157 /* eliminate_dead_functions_pass.cpp in Sources */, - A926B8B427AC718900144157 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */, - A926C09D27AC718C00144157 /* validate_instruction.cpp in Sources */, - A926B9C827AC718900144157 /* inst_debug_printf_pass.cpp in Sources */, - A926C0FA27AC718C00144157 /* validate_layout.cpp in Sources */, - A926C0B827AC718C00144157 /* validate_extensions.cpp in Sources */, - A926B8DE27AC718900144157 /* spirv_validator_options.cpp in Sources */, - A926C0A927AC718C00144157 /* validate_interfaces.cpp in Sources */, - A926B98327AC718900144157 /* inst_bindless_check_pass.cpp in Sources */, - A926B7C427AC718900144157 /* divergence_analysis.cpp in Sources */, - A926B9D127AC718A00144157 /* mem_pass.cpp in Sources */, - A926BAD327AC718A00144157 /* scalar_analysis.cpp in Sources */, - A926B88A27AC718900144157 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */, - A926B7D327AC718900144157 /* assembly_grammar.cpp in Sources */, - A926B7D927AC718900144157 /* extensions.cpp in Sources */, - A926B88D27AC718900144157 /* reduction_opportunity.cpp in Sources */, - A926BA1C27AC718A00144157 /* loop_unroller.cpp in Sources */, - A926B8BD27AC718900144157 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */, - A926BB0327AC718A00144157 /* loop_dependence_helpers.cpp in Sources */, - A926B93227AC718900144157 /* register_pressure.cpp in Sources */, - A926B9FB27AC718A00144157 /* inline_pass.cpp in Sources */, - A926C0EE27AC718C00144157 /* instruction.cpp in Sources */, - A926C08827AC718C00144157 /* validate_capability.cpp in Sources */, - A926B9E027AC718A00144157 /* module.cpp in Sources */, - A926B7EE27AC718900144157 /* timer.cpp in Sources */, - A926BAA627AC718A00144157 /* strength_reduction_pass.cpp in Sources */, - A926BB8127AC718A00144157 /* local_access_chain_convert_pass.cpp in Sources */, - A926C0CA27AC718C00144157 /* validate_small_type_uses.cpp in Sources */, - A926BB6627AC718A00144157 /* dataflow.cpp in Sources */, - A926BB2427AC718A00144157 /* workaround1209.cpp in Sources */, - A926B8ED27AC718900144157 /* spirv_endian.cpp in Sources */, - A926B9E927AC718A00144157 /* loop_unswitch_pass.cpp in Sources */, - A926B9EC27AC718A00144157 /* unify_const_pass.cpp in Sources */, - A926BB3927AC718A00144157 /* reduce_load_size.cpp in Sources */, - A926BB5427AC718A00144157 /* dominator_analysis.cpp in Sources */, - A926BAB827AC718A00144157 /* inline_exhaustive_pass.cpp in Sources */, - A926B88127AC718900144157 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */, - A926C0A627AC718C00144157 /* validate_builtins.cpp in Sources */, - A926BB0C27AC718A00144157 /* fold.cpp in Sources */, - A926B97427AC718900144157 /* decoration_manager.cpp in Sources */, - A926B8B727AC718900144157 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */, - A926BAFD27AC718A00144157 /* propagator.cpp in Sources */, - A926B84227AC718900144157 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */, - A926B86927AC718900144157 /* remove_instruction_reduction_opportunity.cpp in Sources */, - A926BB4B27AC718A00144157 /* replace_invalid_opc.cpp in Sources */, - A926BA6427AC718A00144157 /* folding_rules.cpp in Sources */, + A9EE0DD628FDD2560013FF99 /* inst_bindless_check_pass.cpp in Sources */, + A9EE153828FDD2590013FF99 /* validate_small_type_uses.cpp in Sources */, + A9EE0EB428FDD2570013FF99 /* dead_branch_elim_pass.cpp in Sources */, + A9EE0F5928FDD2570013FF99 /* propagator.cpp in Sources */, + A9EE0E5728FDD2570013FF99 /* ir_loader.cpp in Sources */, + A9EE152028FDD2590013FF99 /* validate_constants.cpp in Sources */, + A9EE0D5828FDD2560013FF99 /* spirv_reducer_options.cpp in Sources */, + A9EE0DE828FDD2560013FF99 /* pass.cpp in Sources */, + A9EE151728FDD2590013FF99 /* validate_interfaces.cpp in Sources */, + A9EE0D8228FDD2560013FF99 /* register_pressure.cpp in Sources */, + A9EE0E2D28FDD2560013FF99 /* dead_variable_elimination.cpp in Sources */, + A9EE0D7028FDD2560013FF99 /* opcode.cpp in Sources */, + A9EE0FA728FDD2570013FF99 /* inline_opaque_pass.cpp in Sources */, + A9EE157128FDD2590013FF99 /* validate_function.cpp in Sources */, + A9EE152628FDD2590013FF99 /* validate_extensions.cpp in Sources */, + A9EE0C5328FDD2560013FF99 /* table.cpp in Sources */, + A9EE155628FDD2590013FF99 /* validate_image.cpp in Sources */, + A9EE102528FDD2570013FF99 /* loop_peeling.cpp in Sources */, + A9EE102228FDD2570013FF99 /* compact_ids_pass.cpp in Sources */, + A9EE0CDA28FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */, + A9EE0FE328FDD2570013FF99 /* local_access_chain_convert_pass.cpp in Sources */, + A9EE0DC728FDD2560013FF99 /* decoration_manager.cpp in Sources */, + A9EE0C4A28FDD2560013FF99 /* bit_vector.cpp in Sources */, + A9EE0F4D28FDD2570013FF99 /* local_single_store_elim_pass.cpp in Sources */, + A9EE0C7428FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */, + A9EE0F3528FDD2570013FF99 /* block_merge_pass.cpp in Sources */, + A9EE0F6228FDD2570013FF99 /* set_spec_constant_default_value_pass.cpp in Sources */, + A9EE0F3B28FDD2570013FF99 /* convert_to_sampled_image_pass.cpp in Sources */, + A9EE0EB728FDD2570013FF99 /* flatten_decoration_pass.cpp in Sources */, + A9EE0E2428FDD2560013FF99 /* mem_pass.cpp in Sources */, + A9EE0FF828FDD2570013FF99 /* graphics_robust_access_pass.cpp in Sources */, + A9EE0EEA28FDD2570013FF99 /* strip_nonsemantic_info_pass.cpp in Sources */, + A9EE0CC528FDD2560013FF99 /* reducer.cpp in Sources */, + A9EE0DF428FDD2560013FF99 /* merge_return_pass.cpp in Sources */, + A9EE0EDB28FDD2570013FF99 /* composite.cpp in Sources */, + A9EE0C8628FDD2560013FF99 /* remove_function_reduction_opportunity.cpp in Sources */, + A9EE0C6828FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */, + A9EE0D4C28FDD2560013FF99 /* enum_string_mapping.cpp in Sources */, + A9EE0EB128FDD2570013FF99 /* simplification_pass.cpp in Sources */, + A9EE0D3D28FDD2560013FF99 /* binary.cpp in Sources */, + A9EE0D9A28FDD2560013FF99 /* build_module.cpp in Sources */, + A9EE14FC28FDD2590013FF99 /* validate_ray_query.cpp in Sources */, + A9EE0F9E28FDD2570013FF99 /* fix_storage_class.cpp in Sources */, + A9EE153528FDD2590013FF99 /* validate_conversion.cpp in Sources */, + A9EE0E5128FDD2570013FF99 /* inline_pass.cpp in Sources */, + A9EE150E28FDD2590013FF99 /* validate_decorations.cpp in Sources */, + A9EE152928FDD2590013FF99 /* construct.cpp in Sources */, + A9EE0D1F28FDD2560013FF99 /* spirv_fuzzer_options.cpp in Sources */, + A9EE0E1228FDD2560013FF99 /* loop_dependence.cpp in Sources */, + A9EE0E0C28FDD2560013FF99 /* strip_debug_info_pass.cpp in Sources */, + A9EE0F6828FDD2570013FF99 /* fold.cpp in Sources */, + A9EE151A28FDD2590013FF99 /* validate.cpp in Sources */, + A9EE154728FDD2590013FF99 /* validate_mode_setting.cpp in Sources */, + A9EE0FA128FDD2570013FF99 /* value_number_table.cpp in Sources */, + A9EE0C4728FDD2560013FF99 /* parse_number.cpp in Sources */, + A9EE100728FDD2570013FF99 /* upgrade_memory_model.cpp in Sources */, + A9EE14E428FDD2590013FF99 /* text_handler.cpp in Sources */, + A9EE0C0228FDD2560013FF99 /* lint_divergent_derivatives.cpp in Sources */, + A9EE0DE528FDD2560013FF99 /* feature_manager.cpp in Sources */, + A9EE0ED528FDD2570013FF99 /* instruction_list.cpp in Sources */, + A9EE0E6328FDD2570013FF99 /* eliminate_dead_functions_pass.cpp in Sources */, + A9EE0E1B28FDD2560013FF99 /* inst_debug_printf_pass.cpp in Sources */, + A9EE0CBC28FDD2560013FF99 /* remove_struct_member_reduction_opportunity.cpp in Sources */, + A9EE150228FDD2590013FF99 /* validate_scopes.cpp in Sources */, + A9EE0E9628FDD2570013FF99 /* ccp_pass.cpp in Sources */, + A9EE0F1D28FDD2570013FF99 /* loop_fusion_pass.cpp in Sources */, + A9EE0DEE28FDD2560013FF99 /* dominator_tree.cpp in Sources */, + A9EE0C7A28FDD2560013FF99 /* remove_function_reduction_opportunity_finder.cpp in Sources */, + A9EE0FC528FDD2570013FF99 /* dataflow.cpp in Sources */, + A9EE0E2A28FDD2560013FF99 /* remove_duplicates_pass.cpp in Sources */, + A9EE0F8328FDD2570013FF99 /* workaround1209.cpp in Sources */, + A9EE0C9828FDD2560013FF99 /* merge_blocks_reduction_opportunity.cpp in Sources */, + A9EE0F2F28FDD2570013FF99 /* scalar_analysis.cpp in Sources */, + A9EE0F1428FDD2570013FF99 /* inline_exhaustive_pass.cpp in Sources */, + A9EE0E6C28FDD2570013FF99 /* vector_dce.cpp in Sources */, + A9EE0DB828FDD2560013FF99 /* types.cpp in Sources */, + A9EE0D0128FDD2560013FF99 /* remove_block_reduction_opportunity.cpp in Sources */, + A9EE14ED28FDD2590013FF99 /* validate_cfg.cpp in Sources */, + A9EE100428FDD2570013FF99 /* eliminate_dead_input_components_pass.cpp in Sources */, + A9EE0ED228FDD2570013FF99 /* function.cpp in Sources */, + A9EE0BF928FDD2560013FF99 /* spirv_target_env.cpp in Sources */, + A9EE152C28FDD2590013FF99 /* function.cpp in Sources */, + A9EE0F9828FDD2570013FF99 /* reduce_load_size.cpp in Sources */, + A9EE0EF328FDD2570013FF99 /* fix_func_call_arguments.cpp in Sources */, + A9EE14FF28FDD2590013FF99 /* validate_ray_tracing.cpp in Sources */, + A9EE0CEF28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.cpp in Sources */, + A9EE0C8C28FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.cpp in Sources */, + A9EE156E28FDD2590013FF99 /* basic_block.cpp in Sources */, + A9EE0F0528FDD2570013FF99 /* desc_sroa.cpp in Sources */, + A9EE0DD928FDD2560013FF99 /* local_redundancy_elimination.cpp in Sources */, + A9EE0F0E28FDD2570013FF99 /* copy_prop_arrays.cpp in Sources */, + A9EE0D5B28FDD2560013FF99 /* parsed_operand.cpp in Sources */, + A9EE0D6428FDD2560013FF99 /* name_mapper.cpp in Sources */, + A9EE151428FDD2590013FF99 /* validate_builtins.cpp in Sources */, + A9EE14C328FDD2590013FF99 /* diagnostic.cpp in Sources */, + A9EE0EC328FDD2570013FF99 /* ir_context.cpp in Sources */, + A9EE101328FDD2570013FF99 /* scalar_analysis_simplification.cpp in Sources */, + A9EE0E3928FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */, + A9EE0F2928FDD2570013FF99 /* dead_insert_elim_pass.cpp in Sources */, + A9EE154D28FDD2590013FF99 /* validate_logicals.cpp in Sources */, + A9EE0F0228FDD2570013FF99 /* strength_reduction_pass.cpp in Sources */, + A9EE0C9B28FDD2560013FF99 /* change_operand_reduction_opportunity.cpp in Sources */, + A9EE154428FDD2590013FF99 /* validate_arithmetics.cpp in Sources */, + A9EE0D6728FDD2560013FF99 /* linker.cpp in Sources */, + A9EE0C3B28FDD2560013FF99 /* string_utils.cpp in Sources */, + A9EE0C2028FDD2560013FF99 /* pch_source.cpp in Sources */, + A9EE157D28FDD2590013FF99 /* validate_primitives.cpp in Sources */, + A9EE0E8728FDD2570013FF99 /* def_use_manager.cpp in Sources */, + A9EE0EF628FDD2570013FF99 /* debug_info_manager.cpp in Sources */, + A9EE0FAA28FDD2570013FF99 /* replace_invalid_opc.cpp in Sources */, + A9EE0D2B28FDD2560013FF99 /* print.cpp in Sources */, + A9EE0F6B28FDD2570013FF99 /* amd_ext_to_khr.cpp in Sources */, + A9EE0E3328FDD2560013FF99 /* module.cpp in Sources */, + A9EE155028FDD2590013FF99 /* validate_derivatives.cpp in Sources */, + A9EE0F9228FDD2570013FF99 /* instruction.cpp in Sources */, + A9EE0CF828FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */, + A9EE0DC428FDD2560013FF99 /* cfg.cpp in Sources */, + A9EE0FE928FDD2570013FF99 /* basic_block.cpp in Sources */, + A9EE0DFA28FDD2560013FF99 /* eliminate_dead_constant_pass.cpp in Sources */, + A9EE0FD428FDD2570013FF99 /* remove_dontinline_pass.cpp in Sources */, + A9EE0C0528FDD2560013FF99 /* linter.cpp in Sources */, + A9EE14F928FDD2590013FF99 /* validate_non_uniform.cpp in Sources */, + A9EE0E7828FDD2570013FF99 /* constants.cpp in Sources */, + A9EE0DDC28FDD2560013FF99 /* instrument_pass.cpp in Sources */, + A9EE0DEB28FDD2560013FF99 /* loop_fission.cpp in Sources */, + A9EE0FB928FDD2570013FF99 /* replace_desc_array_access_using_var_index.cpp in Sources */, + A9EE0C8328FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */, + A9EE0D1328FDD2560013FF99 /* spirv_optimizer_options.cpp in Sources */, + A9EE0FE628FDD2570013FF99 /* interp_fixup_pass.cpp in Sources */, + A9EE0CB928FDD2560013FF99 /* pch_source_reduce.cpp in Sources */, + A9EE0C8F28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */, + A9EE14E728FDD2590013FF99 /* validate_annotation.cpp in Sources */, + A9EE155928FDD2590013FF99 /* validate_literals.cpp in Sources */, + A9EE0F5F28FDD2570013FF99 /* loop_dependence_helpers.cpp in Sources */, + A9EE0D7628FDD2560013FF99 /* ext_inst.cpp in Sources */, + A9EE0EA828FDD2570013FF99 /* aggressive_dead_code_elim_pass.cpp in Sources */, + A9EE157A28FDD2590013FF99 /* validation_state.cpp in Sources */, + A9EE0CE328FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */, + A9EE14EA28FDD2590013FF99 /* validate_misc.cpp in Sources */, + A9EE0DCD28FDD2560013FF99 /* freeze_spec_constant_value_pass.cpp in Sources */, + A9EE157728FDD2590013FF99 /* validate_composites.cpp in Sources */, + A9EE0D4628FDD2560013FF99 /* diff.cpp in Sources */, + A9EE155328FDD2590013FF99 /* validate_memory.cpp in Sources */, + A9EE0EF028FDD2570013FF99 /* if_conversion.cpp in Sources */, + A9EE0EDE28FDD2570013FF99 /* convert_to_half_pass.cpp in Sources */, + A9EE0D9728FDD2560013FF99 /* combine_access_chains.cpp in Sources */, + A9EE0C6E28FDD2560013FF99 /* reduction_util.cpp in Sources */, + A9EE0E8428FDD2570013FF99 /* inst_buff_addr_check_pass.cpp in Sources */, + A9EE0ED828FDD2570013FF99 /* control_dependence.cpp in Sources */, + A9EE0F6E28FDD2570013FF99 /* scalar_replacement_pass.cpp in Sources */, + A9EE0E6028FDD2570013FF99 /* licm_pass.cpp in Sources */, + A9EE14C928FDD2590013FF99 /* libspirv.cpp in Sources */, + A9EE0E9F28FDD2570013FF99 /* pch_source_opt.cpp in Sources */, + A9EE0C5928FDD2560013FF99 /* remove_selection_reduction_opportunity.cpp in Sources */, + A9EE14D528FDD2590013FF99 /* operand.cpp in Sources */, + A9EE0D0A28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */, + A9EE0E3C28FDD2560013FF99 /* loop_unswitch_pass.cpp in Sources */, + A9EE0D0728FDD2560013FF99 /* reduction_opportunity_finder.cpp in Sources */, + A9EE0C1428FDD2560013FF99 /* text.cpp in Sources */, + A9EE0CC228FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */, + A9EE0E0028FDD2560013FF99 /* cfg_cleanup_pass.cpp in Sources */, + A9EE0C6228FDD2560013FF99 /* reduction_pass.cpp in Sources */, + A9EE154A28FDD2590013FF99 /* validate_memory_semantics.cpp in Sources */, + A9EE14F628FDD2590013FF99 /* validate_barriers.cpp in Sources */, + A9EE156528FDD2590013FF99 /* validate_mesh_shading.cpp in Sources */, + A9EE0F8928FDD2570013FF99 /* relax_float_ops_pass.cpp in Sources */, + A9EE0CFB28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */, + A9EE0E0628FDD2560013FF99 /* const_folding_rules.cpp in Sources */, + A9EE0EFF28FDD2570013FF99 /* eliminate_dead_members_pass.cpp in Sources */, + A9EE0ECC28FDD2570013FF99 /* loop_descriptor.cpp in Sources */, + A9EE0D2528FDD2560013FF99 /* spirv_validator_options.cpp in Sources */, + A9EE0C0828FDD2560013FF99 /* divergence_analysis.cpp in Sources */, + A9EE0FD128FDD2570013FF99 /* struct_cfg_analysis.cpp in Sources */, + A9EE14DE28FDD2590013FF99 /* disassemble.cpp in Sources */, + A9EE0EAB28FDD2570013FF99 /* eliminate_dead_functions_util.cpp in Sources */, + A9EE0D8528FDD2560013FF99 /* loop_utils.cpp in Sources */, + A9EE152328FDD2590013FF99 /* validate_bitwise.cpp in Sources */, + A9EE0D8B28FDD2560013FF99 /* spread_volatile_semantics.cpp in Sources */, + A9EE14F028FDD2590013FF99 /* validate_capability.cpp in Sources */, + A9EE0E8128FDD2570013FF99 /* desc_sroa_util.cpp in Sources */, + A9EE0F1128FDD2570013FF99 /* pass_manager.cpp in Sources */, + A9EE0CD128FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */, + A9EE0DCA28FDD2560013FF99 /* local_single_block_elim_pass.cpp in Sources */, + A9EE0F7428FDD2570013FF99 /* interface_var_sroa.cpp in Sources */, + A9EE0F5328FDD2570013FF99 /* private_to_local_pass.cpp in Sources */, + A9EE0D6D28FDD2560013FF99 /* software_version.cpp in Sources */, + A9EE153228FDD2590013FF99 /* validate_adjacency.cpp in Sources */, + A9EE155F28FDD2590013FF99 /* validate_type.cpp in Sources */, + A9EE0C1728FDD2560013FF99 /* assembly_grammar.cpp in Sources */, + A9EE0D7C28FDD2560013FF99 /* optimizer.cpp in Sources */, + A9EE0E0328FDD2560013FF99 /* wrap_opkill.cpp in Sources */, + A9EE0F0828FDD2570013FF99 /* block_merge_util.cpp in Sources */, + A9EE0EBD28FDD2570013FF99 /* folding_rules.cpp in Sources */, + A9EE0C1D28FDD2560013FF99 /* extensions.cpp in Sources */, + A9EE151128FDD2590013FF99 /* validate_debug.cpp in Sources */, + A9EE150B28FDD2590013FF99 /* validate_instruction.cpp in Sources */, + A9EE156828FDD2590013FF99 /* validate_execution_limitations.cpp in Sources */, + A9EE150528FDD2590013FF99 /* validate_atomics.cpp in Sources */, + A9EE0CD428FDD2560013FF99 /* reduction_opportunity.cpp in Sources */, + A9EE0E3F28FDD2560013FF99 /* unify_const_pass.cpp in Sources */, + A9EE100128FDD2570013FF99 /* loop_fusion.cpp in Sources */, + A9EE0FB328FDD2570013FF99 /* dominator_analysis.cpp in Sources */, + A9EE0E0F28FDD2560013FF99 /* ssa_rewrite_pass.cpp in Sources */, + A9EE0DB528FDD2560013FF99 /* code_sink.cpp in Sources */, + A9EE0D0428FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */, + A9EE0F7D28FDD2570013FF99 /* redundancy_elimination.cpp in Sources */, + A9EE0C3528FDD2560013FF99 /* timer.cpp in Sources */, + A9EE0D3428FDD2560013FF99 /* spirv_endian.cpp in Sources */, + A9EE0E7228FDD2570013FF99 /* loop_unroller.cpp in Sources */, + A9EE153E28FDD2590013FF99 /* validate_id.cpp in Sources */, + A9EE0CC828FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */, + A9EE0CFE28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */, + A9EE0E4228FDD2560013FF99 /* type_manager.cpp in Sources */, + A9EE0C8928FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */, + A9EE0FA428FDD2570013FF99 /* remove_unused_interface_variables_pass.cpp in Sources */, + A9EE0CB028FDD2560013FF99 /* remove_instruction_reduction_opportunity.cpp in Sources */, + A9EE155C28FDD2590013FF99 /* instruction.cpp in Sources */, + A9EE156B28FDD2590013FF99 /* validate_layout.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -5334,6 +5464,7 @@ 2FEA0CD62490322100EEF3AD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; GCC_WARN_CHECK_SWITCH_STATEMENTS = NO; HEADER_SEARCH_PATHS = ( @@ -5351,6 +5482,7 @@ 2FEA0CD72490322100EEF3AD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; GCC_WARN_CHECK_SWITCH_STATEMENTS = NO; HEADER_SEARCH_PATHS = ( @@ -5490,6 +5622,7 @@ A972A80D21CECBBF0013AB25 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; GCC_WARN_CHECK_SWITCH_STATEMENTS = NO; HEADER_SEARCH_PATHS = ( @@ -5507,6 +5640,7 @@ A972A80E21CECBBF0013AB25 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; GCC_WARN_CHECK_SWITCH_STATEMENTS = NO; HEADER_SEARCH_PATHS = ( @@ -5524,6 +5658,7 @@ A972A82121CECBE90013AB25 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; GCC_WARN_CHECK_SWITCH_STATEMENTS = NO; HEADER_SEARCH_PATHS = ( @@ -5541,6 +5676,7 @@ A972A82221CECBE90013AB25 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; GCC_WARN_CHECK_SWITCH_STATEMENTS = NO; HEADER_SEARCH_PATHS = ( diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision index cc526767b..3bf775def 100644 --- a/ExternalRevisions/SPIRV-Cross_repo_revision +++ b/ExternalRevisions/SPIRV-Cross_repo_revision @@ -1 +1 @@ -81ba8f78f6646e5635129bd738f25bb3f43bbdb9 +f09ba2777714871bddb70d049878af34b94fa54d diff --git a/ExternalRevisions/Vulkan-Headers_repo_revision b/ExternalRevisions/Vulkan-Headers_repo_revision index d39cdbed4..ad9c875b0 100644 --- a/ExternalRevisions/Vulkan-Headers_repo_revision +++ b/ExternalRevisions/Vulkan-Headers_repo_revision @@ -1 +1 @@ -c896e2f920273bfee852da9cca2a356bc1c2031e +98f440ce6868c94f5ec6e198cc1adda4760e8849 diff --git a/ExternalRevisions/Vulkan-Tools_repo_revision b/ExternalRevisions/Vulkan-Tools_repo_revision index a22e4e3b0..ac6d358f2 100644 --- a/ExternalRevisions/Vulkan-Tools_repo_revision +++ b/ExternalRevisions/Vulkan-Tools_repo_revision @@ -1 +1 @@ -497f232680b046db34ba9e9da065e6303a125851 +e52fa1cf2d95503d28f9d020800cbab15aaa304b diff --git a/ExternalRevisions/glslang_repo_revision b/ExternalRevisions/glslang_repo_revision index d7b7521d0..e2bc9b2c5 100644 --- a/ExternalRevisions/glslang_repo_revision +++ b/ExternalRevisions/glslang_repo_revision @@ -1 +1 @@ -73c9630da979017b2f7e19c6549e2bdb93d9b238 +5755de46b07e4374c05fb1081f65f7ae1f8cca81 diff --git a/Templates/spirv-tools/build.zip b/Templates/spirv-tools/build.zip index 7faf95cc02577527eb543f3d224c92ab7b1d2a2b..3934e8d52ab44fbf40325fb48d20bcf931d23564 100644 GIT binary patch delta 38174 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 Date: Tue, 18 Oct 2022 12:41:13 -0400 Subject: [PATCH 13/72] Update documentation for prefilling Metal command buffers options. --- MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 2 +- README.md | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index 2502c02f2..fa4d957f4 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -118,7 +118,7 @@ typedef enum MVKPrefillMetalCommandBuffersStyle { MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_PREFILL = 0, /**< During Vulkan command buffer filling, do not prefill a Metal command buffer for each Vulkan command buffer. A single Metal command buffer is created and encoded for all the Vulkan command buffers included when vkQueueSubmit() is called. MoltenVK automatically creates and drains a single Metal object autorelease pool when vkQueueSubmit() is called. This is the fastest option, but potentially has the largest memory footprint. */ MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_DEFERRED_ENCODING = 1, /**< During Vulkan command buffer filling, encode to the Metal command buffer when vkEndCommandBuffer() is called. MoltenVK automatically creates and drains a single Metal object autorelease pool when vkEndCommandBuffer() is called. This option has the fastest performance, and the largest memory footprint, of the prefilling options using autorelease pools. */ MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_IMMEDIATE_ENCODING = 2, /**< During Vulkan command buffer filling, immediately encode to the Metal command buffer, as each command is submitted to the Vulkan command buffer, and do not retain any command content in the Vulkan command buffer. MoltenVK automatically creates and drains a Metal object autorelease pool for each and every command added to the Vulkan command buffer. This option has the smallest memory footprint, and the slowest performance, of the prefilling options using autorelease pools. */ - MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_IMMEDIATE_ENCODING_NO_AUTORELEASE = 3, /**< During Vulkan command buffer filling, immediately encode to the Metal command buffer, as each command is submitted to the Vulkan command buffer, do not retain any command content in the Vulkan command buffer, and assume the app will ensure that each thread that fills commands into a Vulkan command buffer has a Metal autorelease pool. MoltenVK will not create and drain any autorelease pools during encoding. This is the fastest prefilling option, and has the smallest memory footprint of any option. */ + MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_IMMEDIATE_ENCODING_NO_AUTORELEASE = 3, /**< During Vulkan command buffer filling, immediately encode to the Metal command buffer, as each command is submitted to the Vulkan command buffer, do not retain any command content in the Vulkan command buffer, and assume the app will ensure that each thread that fills commands into a Vulkan command buffer has a Metal autorelease pool. MoltenVK will not create and drain any autorelease pools during encoding. This is the fastest prefilling option, and generally has a small memory footprint, depending on when the app-provided autorelease pool drains. */ MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_MAX_ENUM = 0x7FFFFFFF } MVKPrefillMetalCommandBuffersStyle; diff --git a/README.md b/README.md index 46cc9d4ff..6b2e2006e 100644 --- a/README.md +++ b/README.md @@ -419,14 +419,14 @@ behavior from the *Vulkan* specification. ### Memory Management *Metal*, and other *Objective-C* objects in *Apple's SDK* frameworks, use reference counting for memory management. -When instantiating *Objective-C* objects, it is important that you do not rely on implied *autorelease pools* to do -memory management for you. Because many *Vulkan* games and apps may be ported from other platforms, they will -typically not include autorelease pools in their threading models. - -Avoid the use of the `autorelease` method, or any object creation methods that imply use of `autorelease`, -(eg- `[NSString stringWithFormat: ]`, etc). Instead, favour object creation methods that return a retained object -(eg- `[[NSString alloc] initWithFormat: ]`, etc), and manually track and release those objects. If you need to use -autoreleased objects, wrap code blocks in an `@autoreleasepool {...}` block. +As a contributor to **MoltenVK**, when instantiating *Objective-C* objects, it is important that you do not rely on +the app providing *autorelease pools* to do memory management for you. Because many *Vulkan* games and apps may be +ported from other platforms, they will often not automatically include autorelease pools in their threading models. + +As a contributor to **MoltenVK**, avoid the use of the *Metal* `autorelease` method, or any object *Metal* creation +methods that imply internal use of `autorelease`, (eg- `[NSString stringWithFormat: ]`, etc). Instead, favor object +creation methods that return a retained object (eg- `[[NSString alloc] initWithFormat: ]`, etc), and manually track +and release those objects. If you need to use autoreleased objects, wrap your code in an `@autoreleasepool {...}` block. ### Code Formatting From 9987bca0d2ddde8886ffc624647949dfbfe50b1a Mon Sep 17 00:00:00 2001 From: "Richard S. Wright Jr" Date: Thu, 20 Oct 2022 15:29:24 -0400 Subject: [PATCH 14/72] fix for wrong version number in icd json --- MoltenVK/icd/MoltenVK_icd.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MoltenVK/icd/MoltenVK_icd.json b/MoltenVK/icd/MoltenVK_icd.json index 9c9c182cb..9b753d8b5 100644 --- a/MoltenVK/icd/MoltenVK_icd.json +++ b/MoltenVK/icd/MoltenVK_icd.json @@ -2,7 +2,7 @@ "file_format_version" : "1.0.0", "ICD": { "library_path": "./libMoltenVK.dylib", - "api_version" : "1.1.0", + "api_version" : "1.2.0", "is_portability_driver" : true } } From 0287a3242c60f111d9742f91900547011eac89e9 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 31 Oct 2022 14:41:08 -0400 Subject: [PATCH 15/72] Fix crash on descriptor update with out-of-bounds descriptor count data. Update MoltenVK version to 1.2.1. --- Docs/Whats_New.md | 9 +++++++++ MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index b7b0a5f2e..34d755600 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -13,6 +13,15 @@ Copyright (c) 2015-2022 [The Brenwill Workshop Ltd.](http://www.brenwill.com) +MoltenVK 1.2.1 +-------------- + +Released TBD + +- Fix crash on descriptor update with out-of-bounds descriptor count data. + + + MoltenVK 1.2.0 -------------- diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index fa4d957f4..50b3bc611 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -51,7 +51,7 @@ typedef unsigned long MTLArgumentBuffersTier; */ #define MVK_VERSION_MAJOR 1 #define MVK_VERSION_MINOR 2 -#define MVK_VERSION_PATCH 0 +#define MVK_VERSION_PATCH 1 #define MVK_MAKE_VERSION(major, minor, patch) (((major) * 10000) + ((minor) * 100) + (patch)) #define MVK_VERSION MVK_MAKE_VERSION(MVK_VERSION_MAJOR, MVK_VERSION_MINOR, MVK_VERSION_PATCH) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm index 77ae6ff73..5ea4d29b9 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm @@ -305,7 +305,7 @@ writeDescriptorAt(pDescriptorAction->dstArrayElement); } else { uint32_t descStartIdx = _layout->getDescriptorIndex(pDescriptorAction->dstBinding, pDescriptorAction->dstArrayElement); - uint32_t elemCnt = pDescriptorAction->descriptorCount; + uint32_t elemCnt = std::min(pDescriptorAction->descriptorCount, (uint32_t)_descriptors.size() - descStartIdx); for (uint32_t elemIdx = 0; elemIdx < elemCnt; elemIdx++) { uint32_t descIdx = descStartIdx + elemIdx; writeDescriptorAt(elemIdx); @@ -321,7 +321,6 @@ MVKDescriptorSetLayoutBinding* mvkDSLBind = _layout->getBinding(pDescriptorCopy->srcBinding); VkDescriptorType descType = mvkDSLBind->getDescriptorType(); - uint32_t descCnt = pDescriptorCopy->descriptorCount; if (descType == VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT) { // For inline buffers srcArrayElement is a byte offset MVKDescriptor* mvkDesc = getDescriptor(pDescriptorCopy->srcBinding); @@ -330,6 +329,7 @@ } } else { uint32_t srcStartIdx = _layout->getDescriptorIndex(pDescriptorCopy->srcBinding, pDescriptorCopy->srcArrayElement); + uint32_t descCnt = std::min(pDescriptorCopy->descriptorCount, (uint32_t)_descriptors.size() - srcStartIdx); for (uint32_t descIdx = 0; descIdx < descCnt; descIdx++) { MVKDescriptor* mvkDesc = _descriptors[srcStartIdx + descIdx]; if (mvkDesc->getDescriptorType() == descType) { From 270a0198e0cfbc243498a3fd0b747f59c33a215f Mon Sep 17 00:00:00 2001 From: sean Date: Sat, 5 Nov 2022 23:54:20 +0100 Subject: [PATCH 16/72] Add: KHR_copy_commands2 --- MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h | 30 ++- MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm | 208 +++++++++++++++++-- MoltenVK/MoltenVK/Layers/MVKExtensions.def | 1 + MoltenVK/MoltenVK/Vulkan/vulkan.mm | 72 ++++++- 4 files changed, 281 insertions(+), 30 deletions(-) diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h index 99ead0d42..4b6b39965 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h +++ b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h @@ -48,6 +48,8 @@ class MVKCmdCopyImage : public MVKCommand { VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions); + VkResult setContent(MVKCommandBuffer* cmdBuff, + const VkCopyImageInfo2* pImageInfo); void encode(MVKCommandEncoder* cmdEncoder) override { encode(cmdEncoder, kMVKCommandUseCopyImage); } @@ -56,7 +58,7 @@ class MVKCmdCopyImage : public MVKCommand { protected: MVKCommandTypePool* getTypePool(MVKCommandPool* cmdPool) override; - MVKSmallVector _vkImageCopies; + MVKSmallVector _vkImageCopies; MVKImage* _srcImage; MVKImage* _dstImage; VkImageLayout _srcLayout; @@ -76,7 +78,7 @@ typedef MVKCmdCopyImage<4> MVKCmdCopyImageMulti; /** Combines a VkImageBlit with vertices to render it. */ typedef struct { - VkImageBlit region; + VkImageBlit2 region; MVKVertexPosTex vertices[kMVKBlitVertexCount]; } MVKImageBlitRender; @@ -96,6 +98,8 @@ class MVKCmdBlitImage : public MVKCommand { uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter); + VkResult setContent(MVKCommandBuffer* cmdBuff, + const VkBlitImageInfo2* pBlitImageInfo); void encode(MVKCommandEncoder* cmdEncoder) override { encode(cmdEncoder, kMVKCommandUseBlitImage); } @@ -103,11 +107,11 @@ class MVKCmdBlitImage : public MVKCommand { protected: MVKCommandTypePool* getTypePool(MVKCommandPool* cmdPool) override; - bool canCopyFormats(const VkImageBlit& region); - bool canCopy(const VkImageBlit& region); - void populateVertices(MVKVertexPosTex* vertices, const VkImageBlit& region); + bool canCopyFormats(const VkImageBlit2& region); + bool canCopy(const VkImageBlit2& region); + void populateVertices(MVKVertexPosTex* vertices, const VkImageBlit2& region); - MVKSmallVector _vkImageBlits; + MVKSmallVector _vkImageBlits; MVKImage* _srcImage; MVKImage* _dstImage; VkImageLayout _srcLayout; @@ -144,13 +148,15 @@ class MVKCmdResolveImage : public MVKCommand { VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions); + VkResult setContent(MVKCommandBuffer* cmdBuff, + const VkResolveImageInfo2* pResolveImageInfo); void encode(MVKCommandEncoder* cmdEncoder) override; protected: MVKCommandTypePool* getTypePool(MVKCommandPool* cmdPool) override; - MVKSmallVector _vkImageResolves; + MVKSmallVector _vkImageResolves; MVKImage* _srcImage; MVKImage* _dstImage; VkImageLayout _srcLayout; @@ -178,13 +184,15 @@ class MVKCmdCopyBuffer : public MVKCommand { VkBuffer destBuffer, uint32_t regionCount, const VkBufferCopy* pRegions); + VkResult setContent(MVKCommandBuffer* cmdBuff, + const VkCopyBufferInfo2* pCopyBufferInfo); void encode(MVKCommandEncoder* cmdEncoder) override; protected: MVKCommandTypePool* getTypePool(MVKCommandPool* cmdPool) override; - MVKSmallVector _bufferCopyRegions; + MVKSmallVector _bufferCopyRegions; MVKBuffer* _srcBuffer; MVKBuffer* _dstBuffer; }; @@ -212,6 +220,10 @@ class MVKCmdBufferImageCopy : public MVKCommand { uint32_t regionCount, const VkBufferImageCopy* pRegions, bool toImage); + VkResult setContent(MVKCommandBuffer* cmdBuff, + const VkCopyBufferToImageInfo2* pBufferToImageInfo); + VkResult setContent(MVKCommandBuffer* cmdBuff, + const VkCopyImageToBufferInfo2* pImageToBufferInfo); void encode(MVKCommandEncoder* cmdEncoder) override; @@ -219,7 +231,7 @@ class MVKCmdBufferImageCopy : public MVKCommand { MVKCommandTypePool* getTypePool(MVKCommandPool* cmdPool) override; bool isArrayTexture(); - MVKSmallVector _bufferImageCopyRegions; + MVKSmallVector _bufferImageCopyRegions; MVKBuffer* _buffer; MVKImage* _image; bool _toImage = false; diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm index 3253aa902..ea2471c97 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm @@ -64,8 +64,14 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma _vkImageCopies.clear(); // Clear for reuse for (uint32_t regionIdx = 0; regionIdx < regionCount; regionIdx++) { auto& vkIR = pRegions[regionIdx]; - uint8_t srcPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR.srcSubresource.aspectMask); - uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR.dstSubresource.aspectMask); + VkImageCopy2 vkIR2 = { + VK_STRUCTURE_TYPE_IMAGE_COPY_2, nullptr, + vkIR.srcSubresource, vkIR.srcOffset, + vkIR.dstSubresource, vkIR.dstOffset, + vkIR.extent + }; + uint8_t srcPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR2.srcSubresource.aspectMask); + uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR2.dstSubresource.aspectMask); // Validate MVKPixelFormats* pixFmts = cmdBuff->getPixelFormats(); @@ -74,12 +80,42 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdCopyImage(): Cannot copy between incompatible formats, such as formats of different pixel sizes, or between images with different sample counts."); } - _vkImageCopies.push_back(vkIR); + _vkImageCopies.emplace_back(std::move(vkIR2)); } return VK_SUCCESS; } +template +VkResult MVKCmdCopyImage::setContent(MVKCommandBuffer* cmdBuff, + const VkCopyImageInfo2* pCopyImageInfo) { + _srcImage = (MVKImage*)pCopyImageInfo->srcImage; + _srcLayout = pCopyImageInfo->srcImageLayout; + + _dstImage = (MVKImage*)pCopyImageInfo->dstImage; + _dstLayout = pCopyImageInfo->dstImageLayout; + + _vkImageCopies.clear(); // Clear for reuse + _vkImageCopies.reserve(pCopyImageInfo->regionCount); + for (uint32_t regionIdx = 0; regionIdx < pCopyImageInfo->regionCount; regionIdx++) { + auto& vkIR = pCopyImageInfo->pRegions[regionIdx]; + uint8_t srcPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR.srcSubresource.aspectMask); + uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR.dstSubresource.aspectMask); + + // Validate + MVKPixelFormats* pixFmts = cmdBuff->getPixelFormats(); + if ((_dstImage->getSampleCount() != _srcImage->getSampleCount()) || + (pixFmts->getBytesPerBlock(_dstImage->getMTLPixelFormat(dstPlaneIndex)) != pixFmts->getBytesPerBlock(_srcImage->getMTLPixelFormat(srcPlaneIndex)))) { + return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdCopyImage(): Cannot copy between incompatible formats, such as formats of different pixel sizes, or between images with different sample counts."); + } + + _vkImageCopies.push_back(vkIR); + } + + return VK_SUCCESS; +} + + template void MVKCmdCopyImage::encode(MVKCommandEncoder* cmdEncoder, MVKCommandUse commandUse) { MVKPixelFormats* pixFmts = cmdEncoder->getPixelFormats(); @@ -281,20 +317,54 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma _vkImageBlits.clear(); // Clear for reuse for (uint32_t rIdx = 0; rIdx < regionCount; rIdx++) { auto& vkIB = pRegions[rIdx]; + VkImageBlit2 vkIB2 = { + VK_STRUCTURE_TYPE_IMAGE_BLIT_2, nullptr, + vkIB.srcSubresource, vkIB.srcOffsets[0], vkIB.srcOffsets[1], + vkIB.dstSubresource, vkIB.dstOffsets[0], vkIB.srcOffsets[1], + }; // Validate - macOS linear images cannot be a scaling or inversion destination - if (isDestUnwritableLinear && !(canCopyFormats(vkIB) && canCopy(vkIB)) ) { + if (isDestUnwritableLinear && !(canCopyFormats(vkIB2) && canCopy(vkIB2)) ) { return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdBlitImage(): Scaling or inverting to a linear destination image is not supported."); } - _vkImageBlits.push_back(vkIB); + _vkImageBlits.push_back(vkIB2); } return VK_SUCCESS; } template -bool MVKCmdBlitImage::canCopyFormats(const VkImageBlit& region) { +VkResult MVKCmdBlitImage::setContent(MVKCommandBuffer* cmdBuff, + const VkBlitImageInfo2* pBlitImageInfo) { + + _srcImage = (MVKImage*)pBlitImageInfo->srcImage; + _srcLayout = pBlitImageInfo->srcImageLayout; + _dstImage = (MVKImage*)pBlitImageInfo->dstImage; + _dstLayout = pBlitImageInfo->dstImageLayout; + + _filter = pBlitImageInfo->filter; + + bool isDestUnwritableLinear = MVK_MACOS && !cmdBuff->getDevice()->_pMetalFeatures->renderLinearTextures && _dstImage->getIsLinear(); + + _vkImageBlits.clear(); // Clear for reuse + _vkImageBlits.reserve(pBlitImageInfo->regionCount); + for (uint32_t rIdx = 0; rIdx < pBlitImageInfo->regionCount; rIdx++) { + auto& vkIB = pBlitImageInfo->pRegions[rIdx]; + + // Validate - macOS linear images cannot be a scaling or inversion destination + if (isDestUnwritableLinear && !(canCopyFormats(vkIB) && canCopy(vkIB)) ) { + return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdBlitImage(): Scaling or inverting to a linear destination image is not supported."); + } + + _vkImageBlits.emplace_back(vkIB); + } + + return VK_SUCCESS; +} + +template +bool MVKCmdBlitImage::canCopyFormats(const VkImageBlit2& region) { uint8_t srcPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(region.srcSubresource.aspectMask); uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(region.dstSubresource.aspectMask); return ((_srcImage->getMTLPixelFormat(srcPlaneIndex) == _dstImage->getMTLPixelFormat(dstPlaneIndex)) && @@ -303,7 +373,7 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma // The source and destination sizes must be equal and not be negative in any direction template -bool MVKCmdBlitImage::canCopy(const VkImageBlit& region) { +bool MVKCmdBlitImage::canCopy(const VkImageBlit2& region) { VkOffset3D srcSize = mvkVkOffset3DDifference(region.srcOffsets[1], region.srcOffsets[0]); VkOffset3D dstSize = mvkVkOffset3DDifference(region.dstOffsets[1], region.dstOffsets[0]); return (mvkVkOffset3DsAreEqual(srcSize, dstSize) && @@ -311,7 +381,7 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma } template -void MVKCmdBlitImage::populateVertices(MVKVertexPosTex* vertices, const VkImageBlit& region) { +void MVKCmdBlitImage::populateVertices(MVKVertexPosTex* vertices, const VkImageBlit2& region) { const VkOffset3D& so0 = region.srcOffsets[0]; const VkOffset3D& so1 = region.srcOffsets[1]; const VkOffset3D& do0 = region.dstOffsets[0]; @@ -611,7 +681,13 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma _vkImageResolves.reserve(regionCount); for (uint32_t regionIdx = 0; regionIdx < regionCount; regionIdx++) { auto& vkIR = pRegions[regionIdx]; - uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR.dstSubresource.aspectMask); + VkImageResolve2 vkIR2 = { + VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2, nullptr, + vkIR.srcSubresource, vkIR.srcOffset, + vkIR.dstSubresource, vkIR.dstOffset, + vkIR.extent, + }; + uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR2.dstSubresource.aspectMask); // Validate MVKPixelFormats* pixFmts = cmdBuff->getPixelFormats(); @@ -619,12 +695,38 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdResolveImage(): %s cannot be used as a resolve destination on this device.", pixFmts->getName(_dstImage->getVkFormat())); } - _vkImageResolves.push_back(vkIR); + _vkImageResolves.emplace_back(std::move(vkIR2)); } return VK_SUCCESS; } +template +VkResult MVKCmdResolveImage::setContent(MVKCommandBuffer* cmdBuff, + const VkResolveImageInfo2* pResolveImageInfo) { + _srcImage = (MVKImage*)pResolveImageInfo->srcImage; + _srcLayout = pResolveImageInfo->srcImageLayout; + _dstImage = (MVKImage*)pResolveImageInfo->dstImage; + _dstLayout = pResolveImageInfo->dstImageLayout; + + _vkImageResolves.clear(); // Clear for reuse + _vkImageResolves.reserve(pResolveImageInfo->regionCount); + for (uint32_t regionIdx = 0; regionIdx < pResolveImageInfo->regionCount; regionIdx++) { + auto& vkIR = pResolveImageInfo->pRegions[regionIdx]; + uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR.dstSubresource.aspectMask); + + // Validate + MVKPixelFormats* pixFmts = cmdBuff->getPixelFormats(); + if ( !mvkAreAllFlagsEnabled(pixFmts->getCapabilities(_dstImage->getMTLPixelFormat(dstPlaneIndex)), kMVKMTLFmtCapsResolve) ) { + return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdResolveImage(): %s cannot be used as a resolve destination on this device.", pixFmts->getName(_dstImage->getVkFormat())); + } + + _vkImageResolves.push_back(vkIR); + } + + return VK_SUCCESS; +} + template void MVKCmdResolveImage::encode(MVKCommandEncoder* cmdEncoder) { @@ -637,7 +739,7 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma if (cmdEncoder->getDevice()->_pMetalFeatures->multisampleLayeredRendering) { layerCnt = (uint32_t)_vkImageResolves.size(); } else { - for (VkImageResolve& vkIR : _vkImageResolves) { layerCnt += vkIR.dstSubresource.layerCount; } + for (VkImageResolve2& vkIR : _vkImageResolves) { layerCnt += vkIR.dstSubresource.layerCount; } } MVKMetalResolveSlice mtlResolveSlices[layerCnt]; @@ -645,7 +747,7 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma uint32_t copyCnt = 0; uint32_t sliceCnt = 0; - for (VkImageResolve& vkIR : _vkImageResolves) { + for (const auto& vkIR : _vkImageResolves) { uint8_t srcPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR.srcSubresource.aspectMask); uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR.dstSubresource.aspectMask); @@ -793,12 +895,33 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma _bufferCopyRegions.clear(); // Clear for reuse _bufferCopyRegions.reserve(regionCount); for (uint32_t i = 0; i < regionCount; i++) { - _bufferCopyRegions.push_back(pRegions[i]); + auto& region = pRegions[i]; + VkBufferCopy2 region2 = { + VK_STRUCTURE_TYPE_BUFFER_COPY_2, nullptr, + region.srcOffset, region.dstOffset, region.size, + }; + _bufferCopyRegions.emplace_back(std::move(region2)); } return VK_SUCCESS; } +template +VkResult MVKCmdCopyBuffer::setContent(MVKCommandBuffer* cmdBuff, + const VkCopyBufferInfo2* pCopyBufferInfo) { + _srcBuffer = (MVKBuffer*)pCopyBufferInfo->srcBuffer; + _dstBuffer = (MVKBuffer*)pCopyBufferInfo->dstBuffer; + + // Add buffer regions + _bufferCopyRegions.clear(); // Clear for reuse + _bufferCopyRegions.reserve(pCopyBufferInfo->regionCount); + for (uint32_t i = 0; i < pCopyBufferInfo->regionCount; i++) { + _bufferCopyRegions.push_back(pCopyBufferInfo->pRegions[i]); + } + + return VK_SUCCESS; +} + template void MVKCmdCopyBuffer::encode(MVKCommandEncoder* cmdEncoder) { id srcMTLBuff = _srcBuffer->getMTLBuffer(); @@ -809,7 +932,7 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma VkDeviceSize buffAlign = cmdEncoder->getDevice()->_pMetalFeatures->mtlCopyBufferAlignment; - for (auto& cpyRgn : _bufferCopyRegions) { + for (const auto& cpyRgn : _bufferCopyRegions) { const bool useComputeCopy = buffAlign > 1 && (cpyRgn.srcOffset % buffAlign != 0 || cpyRgn.dstOffset % buffAlign != 0 || cpyRgn.size % buffAlign != 0); @@ -879,7 +1002,13 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma _bufferImageCopyRegions.clear(); // Clear for reuse _bufferImageCopyRegions.reserve(regionCount); for (uint32_t i = 0; i < regionCount; i++) { - _bufferImageCopyRegions.push_back(pRegions[i]); + const auto& region = pRegions[i]; + VkBufferImageCopy2 region2 = { + VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2, nullptr, + region.bufferOffset, region.bufferRowLength, region.bufferImageHeight, + region.imageSubresource, region.imageOffset, region.imageExtent, + }; + _bufferImageCopyRegions.push_back(region2); // Validate if ( !_image->hasExpectedTexelSize() ) { @@ -892,6 +1021,55 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma return VK_SUCCESS; } +template +VkResult MVKCmdBufferImageCopy::setContent(MVKCommandBuffer* cmdBuff, + const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) { + _buffer = (MVKBuffer*)pCopyBufferToImageInfo->srcBuffer; + _image = (MVKImage*)pCopyBufferToImageInfo->dstImage; + _toImage = true; + + // Add buffer regions + _bufferImageCopyRegions.clear(); // Clear for reuse + _bufferImageCopyRegions.reserve(pCopyBufferToImageInfo->regionCount); + for (uint32_t i = 0; i < pCopyBufferToImageInfo->regionCount; i++) { + _bufferImageCopyRegions.emplace_back(pCopyBufferToImageInfo->pRegions[i]); + + // Validate + if ( !_image->hasExpectedTexelSize() ) { + MTLPixelFormat mtlPixFmt = _image->getMTLPixelFormat(MVKImage::getPlaneFromVkImageAspectFlags(pCopyBufferToImageInfo->pRegions[i].imageSubresource.aspectMask)); + const char* cmdName = _toImage ? "vkCmdCopyBufferToImage" : "vkCmdCopyImageToBuffer"; + return cmdBuff->reportError(VK_ERROR_FORMAT_NOT_SUPPORTED, "%s(): The image is using Metal format %s as a substitute for Vulkan format %s. Since the pixel size is different, content for the image cannot be copied to or from a buffer.", cmdName, cmdBuff->getPixelFormats()->getName(mtlPixFmt), cmdBuff->getPixelFormats()->getName(_image->getVkFormat())); + } + } + + return VK_SUCCESS; +} + +template +VkResult MVKCmdBufferImageCopy::setContent(MVKCommandBuffer* cmdBuff, + const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) { + _buffer = (MVKBuffer*)pCopyImageToBufferInfo->dstBuffer; + _image = (MVKImage*)pCopyImageToBufferInfo->srcImage; + _toImage = false; + + // Add buffer regions + _bufferImageCopyRegions.clear(); // Clear for reuse + _bufferImageCopyRegions.reserve(pCopyImageToBufferInfo->regionCount); + for (uint32_t i = 0; i < pCopyImageToBufferInfo->regionCount; i++) { + _bufferImageCopyRegions.emplace_back(pCopyImageToBufferInfo->pRegions[i]); + + // Validate + if ( !_image->hasExpectedTexelSize() ) { + MTLPixelFormat mtlPixFmt = _image->getMTLPixelFormat(MVKImage::getPlaneFromVkImageAspectFlags(pCopyImageToBufferInfo->pRegions[i].imageSubresource.aspectMask)); + const char* cmdName = _toImage ? "vkCmdCopyBufferToImage" : "vkCmdCopyImageToBuffer"; + return cmdBuff->reportError(VK_ERROR_FORMAT_NOT_SUPPORTED, "%s(): The image is using Metal format %s as a substitute for Vulkan format %s. Since the pixel size is different, content for the image cannot be copied to or from a buffer.", cmdName, cmdBuff->getPixelFormats()->getName(mtlPixFmt), cmdBuff->getPixelFormats()->getName(_image->getVkFormat())); + } + } + + return VK_SUCCESS; +} + + template void MVKCmdBufferImageCopy::encode(MVKCommandEncoder* cmdEncoder) { id mtlBuffer = _buffer->getMTLBuffer(); diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.def b/MoltenVK/MoltenVK/Layers/MVKExtensions.def index d31653f98..fb0f17072 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.def +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.def @@ -45,6 +45,7 @@ MVK_EXTENSION(KHR_16bit_storage, KHR_16BIT_STORAGE, MVK_EXTENSION(KHR_8bit_storage, KHR_8BIT_STORAGE, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_bind_memory2, KHR_BIND_MEMORY_2, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_buffer_device_address, KHR_BUFFER_DEVICE_ADDRESS, DEVICE, 12.05, 16.0) +MVK_EXTENSION(KHR_copy_commands2, KHR_COPY_COMMANDS_2, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_create_renderpass2, KHR_CREATE_RENDERPASS_2, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_dedicated_allocation, KHR_DEDICATED_ALLOCATION, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_depth_stencil_resolve, KHR_DEPTH_STENCIL_RESOLVE, DEVICE, 10.11, 8.0) diff --git a/MoltenVK/MoltenVK/Vulkan/vulkan.mm b/MoltenVK/MoltenVK/Vulkan/vulkan.mm index 736f73609..24c75a1e4 100644 --- a/MoltenVK/MoltenVK/Vulkan/vulkan.mm +++ b/MoltenVK/MoltenVK/Vulkan/vulkan.mm @@ -2497,14 +2497,63 @@ MVK_PUBLIC_VULKAN_SYMBOL void vkCmdEndRendering( } MVK_PUBLIC_VULKAN_STUB(vkCmdBindVertexBuffers2, void, VkCommandBuffer, uint32_t, uint32_t, const VkBuffer*, const VkDeviceSize*, const VkDeviceSize*, const VkDeviceSize*) -MVK_PUBLIC_VULKAN_STUB(vkCmdBlitImage2, void, VkCommandBuffer, const VkBlitImageInfo2*) -MVK_PUBLIC_VULKAN_STUB(vkCmdCopyBuffer2, void, VkCommandBuffer, const VkCopyBufferInfo2*) -MVK_PUBLIC_VULKAN_STUB(vkCmdCopyBufferToImage2, void, VkCommandBuffer, const VkCopyBufferToImageInfo2*) -MVK_PUBLIC_VULKAN_STUB(vkCmdCopyImage2, void, VkCommandBuffer, const VkCopyImageInfo2*) -MVK_PUBLIC_VULKAN_STUB(vkCmdCopyImageToBuffer2, void, VkCommandBuffer, const VkCopyImageToBufferInfo2*) + +MVK_PUBLIC_VULKAN_SYMBOL void vkCmdBlitImage2( + VkCommandBuffer commandBuffer, + const VkBlitImageInfo2* pBlitImageInfo) { + MVKTraceVulkanCallStart(); + MVKAddCmdFromThreshold(BlitImage, pBlitImageInfo->regionCount, 1, commandBuffer, + pBlitImageInfo); + MVKTraceVulkanCallEnd(); +} + +MVK_PUBLIC_VULKAN_SYMBOL void vkCmdCopyBuffer2( + VkCommandBuffer commandBuffer, + const VkCopyBufferInfo2* pCopyBufferInfo) { + MVKTraceVulkanCallStart(); + MVKAddCmdFromThreshold(CopyBuffer, pCopyBufferInfo->regionCount, 1, commandBuffer, pCopyBufferInfo); + MVKTraceVulkanCallEnd(); +} + +MVK_PUBLIC_VULKAN_SYMBOL void vkCmdCopyBufferToImage2( + VkCommandBuffer commandBuffer, + const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) { + MVKTraceVulkanCallStart(); + MVKAddCmdFrom3Thresholds(BufferImageCopy, pCopyBufferToImageInfo->regionCount, 1, 4, 8, commandBuffer, + pCopyBufferToImageInfo); + MVKTraceVulkanCallEnd(); +} + +MVK_PUBLIC_VULKAN_SYMBOL void vkCmdCopyImage2( + VkCommandBuffer commandBuffer, + const VkCopyImageInfo2* pCopyImageInfo) { + MVKTraceVulkanCallStart(); + MVKAddCmdFromThreshold(CopyImage, pCopyImageInfo->regionCount, 1, commandBuffer, + pCopyImageInfo); + MVKTraceVulkanCallEnd(); +} + +MVK_PUBLIC_VULKAN_SYMBOL void vkCmdCopyImageToBuffer2( + VkCommandBuffer commandBuffer, + const VkCopyImageToBufferInfo2* pCopyImageInfo) { + MVKTraceVulkanCallStart(); + MVKAddCmdFrom3Thresholds(BufferImageCopy, pCopyImageInfo->regionCount, 1, 4, 8, commandBuffer, + pCopyImageInfo); + MVKTraceVulkanCallEnd(); +} + MVK_PUBLIC_VULKAN_STUB(vkCmdPipelineBarrier2, void, VkCommandBuffer, const VkDependencyInfo*) MVK_PUBLIC_VULKAN_STUB(vkCmdResetEvent2, void, VkCommandBuffer, VkEvent, VkPipelineStageFlags2 stageMask) -MVK_PUBLIC_VULKAN_STUB(vkCmdResolveImage2, void, VkCommandBuffer, const VkResolveImageInfo2*) + +MVK_PUBLIC_VULKAN_SYMBOL void vkCmdResolveImage2( + VkCommandBuffer commandBuffer, + const VkResolveImageInfo2* pResolveImageInfo) { + MVKTraceVulkanCallStart(); + MVKAddCmdFromThreshold(ResolveImage, pResolveImageInfo->regionCount, 1, commandBuffer, + pResolveImageInfo); + MVKTraceVulkanCallEnd(); +} + MVK_PUBLIC_VULKAN_STUB(vkCmdSetCullMode, void, VkCommandBuffer, VkCullModeFlags) MVK_PUBLIC_VULKAN_STUB(vkCmdSetDepthBiasEnable, void, VkCommandBuffer, VkBool32) MVK_PUBLIC_VULKAN_STUB(vkCmdSetDepthBoundsTestEnable, void, VkCommandBuffer, VkBool32) @@ -2547,6 +2596,17 @@ MVK_PUBLIC_VULKAN_SYMBOL void vkCmdEndRendering( MVK_PUBLIC_VULKAN_CORE_ALIAS(vkGetDeviceMemoryOpaqueCaptureAddress, KHR); +#pragma mark - +#pragma mark VK_KHR_copy_commands2 extension + +MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdBlitImage2, KHR); +MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdCopyBuffer2, KHR); +MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdCopyBufferToImage2, KHR); +MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdCopyImage2, KHR); +MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdCopyImageToBuffer2, KHR); +MVK_PUBLIC_VULKAN_CORE_ALIAS(vkCmdResolveImage2, KHR); + + #pragma mark - #pragma mark VK_KHR_create_renderpass2 extension From 331d8e1d0bd425383302bd4d5cbc9a7b2a48390b Mon Sep 17 00:00:00 2001 From: sean Date: Wed, 9 Nov 2022 16:11:02 +0100 Subject: [PATCH 17/72] Deduplicate code --- MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h | 5 + MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm | 154 ++++++++++--------- 2 files changed, 86 insertions(+), 73 deletions(-) diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h index 4b6b39965..9958a9060 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h +++ b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h @@ -57,6 +57,7 @@ class MVKCmdCopyImage : public MVKCommand { protected: MVKCommandTypePool* getTypePool(MVKCommandPool* cmdPool) override; + VkResult validate(MVKCommandBuffer* cmdBuff, const VkImageCopy2* region); MVKSmallVector _vkImageCopies; MVKImage* _srcImage; @@ -110,6 +111,7 @@ class MVKCmdBlitImage : public MVKCommand { bool canCopyFormats(const VkImageBlit2& region); bool canCopy(const VkImageBlit2& region); void populateVertices(MVKVertexPosTex* vertices, const VkImageBlit2& region); + VkResult validate(MVKCommandBuffer* cmdBuff, const VkImageBlit2* region, bool isDestUnwritableLinear); MVKSmallVector _vkImageBlits; MVKImage* _srcImage; @@ -155,6 +157,7 @@ class MVKCmdResolveImage : public MVKCommand { protected: MVKCommandTypePool* getTypePool(MVKCommandPool* cmdPool) override; + VkResult validate(MVKCommandBuffer* cmdBuff, const VkImageResolve2* region); MVKSmallVector _vkImageResolves; MVKImage* _srcImage; @@ -230,6 +233,8 @@ class MVKCmdBufferImageCopy : public MVKCommand { protected: MVKCommandTypePool* getTypePool(MVKCommandPool* cmdPool) override; bool isArrayTexture(); + VkResult setContent(MVKCommandBuffer* cmdBuff, uint32_t regionCount, const VkBufferImageCopy2* regions); + VkResult validate(MVKCommandBuffer* cmdBuff, const VkBufferImageCopy2* region); MVKSmallVector _bufferImageCopyRegions; MVKBuffer* _buffer; diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm index ea2471c97..2f6045555 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm @@ -70,15 +70,9 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma vkIR.dstSubresource, vkIR.dstOffset, vkIR.extent }; - uint8_t srcPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR2.srcSubresource.aspectMask); - uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR2.dstSubresource.aspectMask); - - // Validate - MVKPixelFormats* pixFmts = cmdBuff->getPixelFormats(); - if ((_dstImage->getSampleCount() != _srcImage->getSampleCount()) || - (pixFmts->getBytesPerBlock(_dstImage->getMTLPixelFormat(dstPlaneIndex)) != pixFmts->getBytesPerBlock(_srcImage->getMTLPixelFormat(srcPlaneIndex)))) { - return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdCopyImage(): Cannot copy between incompatible formats, such as formats of different pixel sizes, or between images with different sample counts."); - } + + if (auto validation = validate(cmdBuff, &vkIR2); validation != VK_SUCCESS) + return validation; _vkImageCopies.emplace_back(std::move(vkIR2)); } @@ -99,15 +93,9 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma _vkImageCopies.reserve(pCopyImageInfo->regionCount); for (uint32_t regionIdx = 0; regionIdx < pCopyImageInfo->regionCount; regionIdx++) { auto& vkIR = pCopyImageInfo->pRegions[regionIdx]; - uint8_t srcPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR.srcSubresource.aspectMask); - uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR.dstSubresource.aspectMask); - - // Validate - MVKPixelFormats* pixFmts = cmdBuff->getPixelFormats(); - if ((_dstImage->getSampleCount() != _srcImage->getSampleCount()) || - (pixFmts->getBytesPerBlock(_dstImage->getMTLPixelFormat(dstPlaneIndex)) != pixFmts->getBytesPerBlock(_srcImage->getMTLPixelFormat(srcPlaneIndex)))) { - return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdCopyImage(): Cannot copy between incompatible formats, such as formats of different pixel sizes, or between images with different sample counts."); - } + + if (auto validation = validate(cmdBuff, &vkIR); validation != VK_SUCCESS) + return validation; _vkImageCopies.push_back(vkIR); } @@ -115,6 +103,20 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma return VK_SUCCESS; } +template +inline VkResult MVKCmdCopyImage::validate(MVKCommandBuffer* cmdBuff, const VkImageCopy2* region) { + uint8_t srcPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(region->srcSubresource.aspectMask); + uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(region->dstSubresource.aspectMask); + + // Validate + MVKPixelFormats* pixFmts = cmdBuff->getPixelFormats(); + if ((_dstImage->getSampleCount() != _srcImage->getSampleCount()) || + (pixFmts->getBytesPerBlock(_dstImage->getMTLPixelFormat(dstPlaneIndex)) != pixFmts->getBytesPerBlock(_srcImage->getMTLPixelFormat(srcPlaneIndex)))) { + return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdCopyImage(): Cannot copy between incompatible formats, such as formats of different pixel sizes, or between images with different sample counts."); + } + return VK_SUCCESS; +} + template void MVKCmdCopyImage::encode(MVKCommandEncoder* cmdEncoder, MVKCommandUse commandUse) { @@ -322,12 +324,10 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma vkIB.srcSubresource, vkIB.srcOffsets[0], vkIB.srcOffsets[1], vkIB.dstSubresource, vkIB.dstOffsets[0], vkIB.srcOffsets[1], }; - - // Validate - macOS linear images cannot be a scaling or inversion destination - if (isDestUnwritableLinear && !(canCopyFormats(vkIB2) && canCopy(vkIB2)) ) { - return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdBlitImage(): Scaling or inverting to a linear destination image is not supported."); - } - + + if (auto validation = validate(cmdBuff, &vkIB2, isDestUnwritableLinear); validation != VK_SUCCESS) + return validation; + _vkImageBlits.push_back(vkIB2); } @@ -351,18 +351,25 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma _vkImageBlits.reserve(pBlitImageInfo->regionCount); for (uint32_t rIdx = 0; rIdx < pBlitImageInfo->regionCount; rIdx++) { auto& vkIB = pBlitImageInfo->pRegions[rIdx]; - - // Validate - macOS linear images cannot be a scaling or inversion destination - if (isDestUnwritableLinear && !(canCopyFormats(vkIB) && canCopy(vkIB)) ) { - return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdBlitImage(): Scaling or inverting to a linear destination image is not supported."); - } - + + if (auto validation = validate(cmdBuff, &vkIB, isDestUnwritableLinear); validation != VK_SUCCESS) + return validation; + _vkImageBlits.emplace_back(vkIB); } return VK_SUCCESS; } +template +inline VkResult MVKCmdBlitImage::validate(MVKCommandBuffer *cmdBuff, const VkImageBlit2 *region, bool isDestUnwritableLinear) { + // Validate - macOS linear images cannot be a scaling or inversion destination + if (isDestUnwritableLinear && !(canCopyFormats(*region) && canCopy(*region)) ) { + return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdBlitImage(): Scaling or inverting to a linear destination image is not supported."); + } + return VK_SUCCESS; +} + template bool MVKCmdBlitImage::canCopyFormats(const VkImageBlit2& region) { uint8_t srcPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(region.srcSubresource.aspectMask); @@ -687,13 +694,9 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma vkIR.dstSubresource, vkIR.dstOffset, vkIR.extent, }; - uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR2.dstSubresource.aspectMask); - - // Validate - MVKPixelFormats* pixFmts = cmdBuff->getPixelFormats(); - if ( !mvkAreAllFlagsEnabled(pixFmts->getCapabilities(_dstImage->getMTLPixelFormat(dstPlaneIndex)), kMVKMTLFmtCapsResolve) ) { - return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdResolveImage(): %s cannot be used as a resolve destination on this device.", pixFmts->getName(_dstImage->getVkFormat())); - } + + if (auto validation = validate(cmdBuff, &vkIR2); validation != VK_SUCCESS) + return validation; _vkImageResolves.emplace_back(std::move(vkIR2)); } @@ -713,20 +716,28 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma _vkImageResolves.reserve(pResolveImageInfo->regionCount); for (uint32_t regionIdx = 0; regionIdx < pResolveImageInfo->regionCount; regionIdx++) { auto& vkIR = pResolveImageInfo->pRegions[regionIdx]; - uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(vkIR.dstSubresource.aspectMask); - - // Validate - MVKPixelFormats* pixFmts = cmdBuff->getPixelFormats(); - if ( !mvkAreAllFlagsEnabled(pixFmts->getCapabilities(_dstImage->getMTLPixelFormat(dstPlaneIndex)), kMVKMTLFmtCapsResolve) ) { - return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdResolveImage(): %s cannot be used as a resolve destination on this device.", pixFmts->getName(_dstImage->getVkFormat())); - } - + + if (auto validation = validate(cmdBuff, &vkIR); validation != VK_SUCCESS) + return validation; + _vkImageResolves.push_back(vkIR); } return VK_SUCCESS; } +template +inline VkResult MVKCmdResolveImage::validate(MVKCommandBuffer* cmdBuff, const VkImageResolve2* region) { + uint8_t dstPlaneIndex = MVKImage::getPlaneFromVkImageAspectFlags(region->dstSubresource.aspectMask); + + // Validate + MVKPixelFormats* pixFmts = cmdBuff->getPixelFormats(); + if ( !mvkAreAllFlagsEnabled(pixFmts->getCapabilities(_dstImage->getMTLPixelFormat(dstPlaneIndex)), kMVKMTLFmtCapsResolve) ) { + return cmdBuff->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkCmdResolveImage(): %s cannot be used as a resolve destination on this device.", pixFmts->getName(_dstImage->getVkFormat())); + } + return VK_SUCCESS; +} + template void MVKCmdResolveImage::encode(MVKCommandEncoder* cmdEncoder) { @@ -1008,13 +1019,13 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma region.bufferOffset, region.bufferRowLength, region.bufferImageHeight, region.imageSubresource, region.imageOffset, region.imageExtent, }; - _bufferImageCopyRegions.push_back(region2); + auto& vRegion =_bufferImageCopyRegions.emplace_back(std::move(region2)); // Validate - if ( !_image->hasExpectedTexelSize() ) { - MTLPixelFormat mtlPixFmt = _image->getMTLPixelFormat(MVKImage::getPlaneFromVkImageAspectFlags(pRegions[i].imageSubresource.aspectMask)); - const char* cmdName = _toImage ? "vkCmdCopyBufferToImage" : "vkCmdCopyImageToBuffer"; - return cmdBuff->reportError(VK_ERROR_FORMAT_NOT_SUPPORTED, "%s(): The image is using Metal format %s as a substitute for Vulkan format %s. Since the pixel size is different, content for the image cannot be copied to or from a buffer.", cmdName, cmdBuff->getPixelFormats()->getName(mtlPixFmt), cmdBuff->getPixelFormats()->getName(_image->getVkFormat())); + if (!_image->hasExpectedTexelSize()) { + if (auto validation = validate(cmdBuff, &vRegion); validation != VK_SUCCESS) { + return validation; + } } } @@ -1027,22 +1038,7 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma _buffer = (MVKBuffer*)pCopyBufferToImageInfo->srcBuffer; _image = (MVKImage*)pCopyBufferToImageInfo->dstImage; _toImage = true; - - // Add buffer regions - _bufferImageCopyRegions.clear(); // Clear for reuse - _bufferImageCopyRegions.reserve(pCopyBufferToImageInfo->regionCount); - for (uint32_t i = 0; i < pCopyBufferToImageInfo->regionCount; i++) { - _bufferImageCopyRegions.emplace_back(pCopyBufferToImageInfo->pRegions[i]); - - // Validate - if ( !_image->hasExpectedTexelSize() ) { - MTLPixelFormat mtlPixFmt = _image->getMTLPixelFormat(MVKImage::getPlaneFromVkImageAspectFlags(pCopyBufferToImageInfo->pRegions[i].imageSubresource.aspectMask)); - const char* cmdName = _toImage ? "vkCmdCopyBufferToImage" : "vkCmdCopyImageToBuffer"; - return cmdBuff->reportError(VK_ERROR_FORMAT_NOT_SUPPORTED, "%s(): The image is using Metal format %s as a substitute for Vulkan format %s. Since the pixel size is different, content for the image cannot be copied to or from a buffer.", cmdName, cmdBuff->getPixelFormats()->getName(mtlPixFmt), cmdBuff->getPixelFormats()->getName(_image->getVkFormat())); - } - } - - return VK_SUCCESS; + return setContent(cmdBuff, pCopyBufferToImageInfo->regionCount, pCopyBufferToImageInfo->pRegions); } template @@ -1051,24 +1047,36 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma _buffer = (MVKBuffer*)pCopyImageToBufferInfo->dstBuffer; _image = (MVKImage*)pCopyImageToBufferInfo->srcImage; _toImage = false; + return setContent(cmdBuff, pCopyImageToBufferInfo->regionCount, pCopyImageToBufferInfo->pRegions); +} +template +inline VkResult MVKCmdBufferImageCopy::setContent(MVKCommandBuffer* cmdBuff, + uint32_t regionCount, + const VkBufferImageCopy2* regions) { // Add buffer regions _bufferImageCopyRegions.clear(); // Clear for reuse - _bufferImageCopyRegions.reserve(pCopyImageToBufferInfo->regionCount); - for (uint32_t i = 0; i < pCopyImageToBufferInfo->regionCount; i++) { - _bufferImageCopyRegions.emplace_back(pCopyImageToBufferInfo->pRegions[i]); + _bufferImageCopyRegions.reserve(regionCount); + for (uint32_t i = 0; i < regionCount; i++) { + auto& region = _bufferImageCopyRegions.emplace_back(regions[i]); // Validate - if ( !_image->hasExpectedTexelSize() ) { - MTLPixelFormat mtlPixFmt = _image->getMTLPixelFormat(MVKImage::getPlaneFromVkImageAspectFlags(pCopyImageToBufferInfo->pRegions[i].imageSubresource.aspectMask)); - const char* cmdName = _toImage ? "vkCmdCopyBufferToImage" : "vkCmdCopyImageToBuffer"; - return cmdBuff->reportError(VK_ERROR_FORMAT_NOT_SUPPORTED, "%s(): The image is using Metal format %s as a substitute for Vulkan format %s. Since the pixel size is different, content for the image cannot be copied to or from a buffer.", cmdName, cmdBuff->getPixelFormats()->getName(mtlPixFmt), cmdBuff->getPixelFormats()->getName(_image->getVkFormat())); + if (!_image->hasExpectedTexelSize()) { + if (auto validation = validate(cmdBuff, ®ion); validation != VK_SUCCESS) { + return validation; + } } } return VK_SUCCESS; } +template +inline VkResult MVKCmdBufferImageCopy::validate(MVKCommandBuffer *cmdBuff, const VkBufferImageCopy2 *region) { + MTLPixelFormat mtlPixFmt = _image->getMTLPixelFormat(MVKImage::getPlaneFromVkImageAspectFlags(region->imageSubresource.aspectMask)); + const char* cmdName = _toImage ? "vkCmdCopyBufferToImage" : "vkCmdCopyImageToBuffer"; + return cmdBuff->reportError(VK_ERROR_FORMAT_NOT_SUPPORTED, "%s(): The image is using Metal format %s as a substitute for Vulkan format %s. Since the pixel size is different, content for the image cannot be copied to or from a buffer.", cmdName, cmdBuff->getPixelFormats()->getName(mtlPixFmt), cmdBuff->getPixelFormats()->getName(_image->getVkFormat())); +} template void MVKCmdBufferImageCopy::encode(MVKCommandEncoder* cmdEncoder) { From 8a7979d3d0579e9e017f8b27c7c2a942dfcddec5 Mon Sep 17 00:00:00 2001 From: sean Date: Wed, 9 Nov 2022 16:33:08 +0100 Subject: [PATCH 18/72] Cleanup MVKCmdBufferImageCopy::setContent --- MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h | 3 +- MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm | 51 +++++++------------- 2 files changed, 19 insertions(+), 35 deletions(-) diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h index 9958a9060..c0abdc094 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h +++ b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h @@ -233,8 +233,7 @@ class MVKCmdBufferImageCopy : public MVKCommand { protected: MVKCommandTypePool* getTypePool(MVKCommandPool* cmdPool) override; bool isArrayTexture(); - VkResult setContent(MVKCommandBuffer* cmdBuff, uint32_t regionCount, const VkBufferImageCopy2* regions); - VkResult validate(MVKCommandBuffer* cmdBuff, const VkBufferImageCopy2* region); + VkResult validate(MVKCommandBuffer* cmdBuff); MVKSmallVector _bufferImageCopyRegions; MVKBuffer* _buffer; diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm index 2f6045555..873c3913e 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm @@ -1019,17 +1019,10 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma region.bufferOffset, region.bufferRowLength, region.bufferImageHeight, region.imageSubresource, region.imageOffset, region.imageExtent, }; - auto& vRegion =_bufferImageCopyRegions.emplace_back(std::move(region2)); - - // Validate - if (!_image->hasExpectedTexelSize()) { - if (auto validation = validate(cmdBuff, &vRegion); validation != VK_SUCCESS) { - return validation; - } - } + _bufferImageCopyRegions.emplace_back(std::move(region2)); } - return VK_SUCCESS; + return validate(cmdBuff); } template @@ -1038,7 +1031,11 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma _buffer = (MVKBuffer*)pCopyBufferToImageInfo->srcBuffer; _image = (MVKImage*)pCopyBufferToImageInfo->dstImage; _toImage = true; - return setContent(cmdBuff, pCopyBufferToImageInfo->regionCount, pCopyBufferToImageInfo->pRegions); + + _bufferImageCopyRegions.clear(); // Clear for reuse + _bufferImageCopyRegions.resize(pCopyBufferToImageInfo->regionCount); + std::memcpy(_bufferImageCopyRegions.data(), pCopyBufferToImageInfo->pRegions, pCopyBufferToImageInfo->regionCount * sizeof(VkBufferImageCopy2)); + return validate(cmdBuff); } template @@ -1047,37 +1044,25 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma _buffer = (MVKBuffer*)pCopyImageToBufferInfo->dstBuffer; _image = (MVKImage*)pCopyImageToBufferInfo->srcImage; _toImage = false; - return setContent(cmdBuff, pCopyImageToBufferInfo->regionCount, pCopyImageToBufferInfo->pRegions); + + _bufferImageCopyRegions.clear(); // Clear for reuse + _bufferImageCopyRegions.resize(pCopyImageToBufferInfo->regionCount); + std::memcpy(_bufferImageCopyRegions.data(), pCopyImageToBufferInfo->pRegions, pCopyImageToBufferInfo->regionCount * sizeof(VkBufferImageCopy2)); + return validate(cmdBuff); } template -inline VkResult MVKCmdBufferImageCopy::setContent(MVKCommandBuffer* cmdBuff, - uint32_t regionCount, - const VkBufferImageCopy2* regions) { - // Add buffer regions - _bufferImageCopyRegions.clear(); // Clear for reuse - _bufferImageCopyRegions.reserve(regionCount); - for (uint32_t i = 0; i < regionCount; i++) { - auto& region = _bufferImageCopyRegions.emplace_back(regions[i]); - - // Validate +inline VkResult MVKCmdBufferImageCopy::validate(MVKCommandBuffer *cmdBuff) { + for (auto& region : _bufferImageCopyRegions) { if (!_image->hasExpectedTexelSize()) { - if (auto validation = validate(cmdBuff, ®ion); validation != VK_SUCCESS) { - return validation; - } + MTLPixelFormat mtlPixFmt = _image->getMTLPixelFormat(MVKImage::getPlaneFromVkImageAspectFlags(region.imageSubresource.aspectMask)); + const char* cmdName = _toImage ? "vkCmdCopyBufferToImage" : "vkCmdCopyImageToBuffer"; + return cmdBuff->reportError(VK_ERROR_FORMAT_NOT_SUPPORTED, "%s(): The image is using Metal format %s as a substitute for Vulkan format %s. Since the pixel size is different, content for the image cannot be copied to or from a buffer.", cmdName, cmdBuff->getPixelFormats()->getName(mtlPixFmt), cmdBuff->getPixelFormats()->getName(_image->getVkFormat())); } } - return VK_SUCCESS; } - -template -inline VkResult MVKCmdBufferImageCopy::validate(MVKCommandBuffer *cmdBuff, const VkBufferImageCopy2 *region) { - MTLPixelFormat mtlPixFmt = _image->getMTLPixelFormat(MVKImage::getPlaneFromVkImageAspectFlags(region->imageSubresource.aspectMask)); - const char* cmdName = _toImage ? "vkCmdCopyBufferToImage" : "vkCmdCopyImageToBuffer"; - return cmdBuff->reportError(VK_ERROR_FORMAT_NOT_SUPPORTED, "%s(): The image is using Metal format %s as a substitute for Vulkan format %s. Since the pixel size is different, content for the image cannot be copied to or from a buffer.", cmdName, cmdBuff->getPixelFormats()->getName(mtlPixFmt), cmdBuff->getPixelFormats()->getName(_image->getVkFormat())); -} - + template void MVKCmdBufferImageCopy::encode(MVKCommandEncoder* cmdEncoder) { id mtlBuffer = _buffer->getMTLBuffer(); From 237e538bd0e4bd8bb2a02aa1dd3d8d803b6b32d2 Mon Sep 17 00:00:00 2001 From: sean Date: Wed, 9 Nov 2022 17:01:04 +0100 Subject: [PATCH 19/72] Fix: Proper requirements for enabling BDA extensions --- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 12 ++++++++++-- MoltenVK/MoltenVK/Layers/MVKExtensions.def | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 32319529b..550594761 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -3077,11 +3077,19 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope pWritableExtns->vk_KHR_fragment_shader_barycentric.enabled = false; pWritableExtns->vk_NV_fragment_shader_barycentric.enabled = false; } - // gpuAddress requires Tier2 argument buffer support (per feedback from Apple engineers). - if (_metalFeatures.argumentBuffersTier < MTLArgumentBuffersTier2) { + + // The relevant functions are not available if not built with Xcode 14. +#if MVK_XCODE_14 + // gpuAddress requires Tier2 argument buffer support (per feedback from Apple engineers). + if (_metalFeatures.argumentBuffersTier < MTLArgumentBuffersTier2) { pWritableExtns->vk_KHR_buffer_device_address.enabled = false; pWritableExtns->vk_EXT_buffer_device_address.enabled = false; } +#else + pWritableExtns->vk_KHR_buffer_device_address.enabled = false; + pWritableExtns->vk_EXT_buffer_device_address.enabled = false; +#endif + #if MVK_MACOS if (!supportsMTLGPUFamily(Apple5)) { pWritableExtns->vk_AMD_shader_image_load_store_lod.enabled = false; diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.def b/MoltenVK/MoltenVK/Layers/MVKExtensions.def index fb0f17072..894744649 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.def +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.def @@ -44,7 +44,7 @@ MVK_EXTENSION(KHR_16bit_storage, KHR_16BIT_STORAGE, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_8bit_storage, KHR_8BIT_STORAGE, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_bind_memory2, KHR_BIND_MEMORY_2, DEVICE, 10.11, 8.0) -MVK_EXTENSION(KHR_buffer_device_address, KHR_BUFFER_DEVICE_ADDRESS, DEVICE, 12.05, 16.0) +MVK_EXTENSION(KHR_buffer_device_address, KHR_BUFFER_DEVICE_ADDRESS, DEVICE, 13.0, 16.0) MVK_EXTENSION(KHR_copy_commands2, KHR_COPY_COMMANDS_2, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_create_renderpass2, KHR_CREATE_RENDERPASS_2, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_dedicated_allocation, KHR_DEDICATED_ALLOCATION, DEVICE, 10.11, 8.0) @@ -91,7 +91,7 @@ MVK_EXTENSION(KHR_timeline_semaphore, KHR_TIMELINE_SEMAPHORE, MVK_EXTENSION(KHR_uniform_buffer_standard_layout, KHR_UNIFORM_BUFFER_STANDARD_LAYOUT, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_variable_pointers, KHR_VARIABLE_POINTERS, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_vulkan_memory_model, KHR_VULKAN_MEMORY_MODEL, DEVICE, MVK_NA, MVK_NA) -MVK_EXTENSION(EXT_buffer_device_address, EXT_BUFFER_DEVICE_ADDRESS, DEVICE, 12.05, 16.0) +MVK_EXTENSION(EXT_buffer_device_address, EXT_BUFFER_DEVICE_ADDRESS, DEVICE, 13.0, 16.0) MVK_EXTENSION(EXT_debug_marker, EXT_DEBUG_MARKER, DEVICE, 10.11, 8.0) MVK_EXTENSION(EXT_debug_report, EXT_DEBUG_REPORT, INSTANCE, 10.11, 8.0) MVK_EXTENSION(EXT_debug_utils, EXT_DEBUG_UTILS, INSTANCE, 10.11, 8.0) From 2cb33c09b6dafb7986348c4bda43e1818fbf14a7 Mon Sep 17 00:00:00 2001 From: Chip Davis Date: Tue, 11 Oct 2022 01:32:59 -0700 Subject: [PATCH 20/72] MVKPipeline: Stop using vertex-style input for tessellation evaluation shaders. This has caused us nothing but trouble. The code to build up the vertex descriptor is fragile; we can rip that out now. Also, make sure to positively identify per-patch blocks as per-patch. For those, the individual members have the `Patch` decoration. Update SPIRV-Cross to pull in the changes needed for this. Fixes 66 tests in the CTS. --- ExternalRevisions/SPIRV-Cross_repo_revision | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm | 123 ++---------------- .../MoltenVKShaderConverter/SPIRVReflection.h | 6 + 3 files changed, 18 insertions(+), 113 deletions(-) diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision index 3bf775def..11efbbb3a 100644 --- a/ExternalRevisions/SPIRV-Cross_repo_revision +++ b/ExternalRevisions/SPIRV-Cross_repo_revision @@ -1 +1 @@ -f09ba2777714871bddb70d049878af34b94fa54d +57639196694a8b5c572c9358f5d9cb443dd341e5 diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm index 2048687e8..035ccdc08 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm @@ -852,10 +852,6 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 setConfigurationResult(reportError(VK_ERROR_INITIALIZATION_FAILED, "Failed to get tessellation control outputs: %s", errorLog.c_str())); return nil; } - if (!getShaderInputs(((MVKShaderModule*)_pTessEvalSS->module)->getSPIRV(), spv::ExecutionModelTessellationEvaluation, _pTessEvalSS->pName, teInputs, errorLog) ) { - setConfigurationResult(reportError(VK_ERROR_INITIALIZATION_FAILED, "Failed to get tessellation evaluation inputs: %s", errorLog.c_str())); - return nil; - } if (!getShaderOutputs(((MVKShaderModule*)_pTessEvalSS->module)->getSPIRV(), spv::ExecutionModelTessellationEvaluation, _pTessEvalSS->pName, teOutputs, errorLog) ) { setConfigurationResult(reportError(VK_ERROR_INITIALIZATION_FAILED, "Failed to get tessellation evaluation outputs: %s", errorLog.c_str())); return nil; @@ -867,112 +863,6 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 return nil; } - // Tessellation evaluation stage input - // This needs to happen before compiling the fragment shader, or we'll lose information on shader inputs. - // First, add extra builtins that are in teInputs but not tcOutputs. They can be read - // even if not written. - teInputs.erase(std::remove_if(teInputs.begin(), teInputs.end(), [&tcOutputs](const SPIRVShaderInterfaceVariable& var) { - return var.builtin != spv::BuiltInPosition && var.builtin != spv::BuiltInPointSize && var.builtin != spv::BuiltInClipDistance && var.builtin != spv::BuiltInCullDistance; - }), teInputs.end()); - std::remove_copy_if(teInputs.begin(), teInputs.end(), std::back_inserter(tcOutputs), [&tcOutputs](const SPIRVShaderInterfaceVariable& input) { - auto iter = std::find_if(tcOutputs.begin(), tcOutputs.end(), [input](const SPIRVShaderInterfaceVariable& oldVar) { - return oldVar.builtin == input.builtin; - }); - if (iter != tcOutputs.end()) { - iter->isUsed = input.isUsed; - } - return iter != tcOutputs.end(); - }); - - auto isBuiltInRead = [&teInputs](spv::BuiltIn builtin) { - for (const auto& input : teInputs) { - if (input.builtin == builtin) { - return input.isUsed; - } - } - return false; - }; - - plDesc.vertexDescriptor = [MTLVertexDescriptor vertexDescriptor]; - uint32_t offset = 0, patchOffset = 0, outerLoc = -1, innerLoc = -1; - bool usedPerVertex = false, usedPerPatch = false; - const SPIRVShaderOutput* firstVertex = nullptr, * firstPatch = nullptr; - for (const SPIRVShaderOutput& output : tcOutputs) { - if (output.builtin == spv::BuiltInPointSize && !reflectData.pointMode) { continue; } - if ((output.builtin != spv::BuiltInMax && !isBuiltInRead(output.builtin)) && - !shaderConfig.isShaderInputLocationUsed(output.location)) { - if (output.perPatch && !(output.builtin == spv::BuiltInTessLevelOuter || output.builtin == spv::BuiltInTessLevelInner) ) { - if (!firstPatch) { firstPatch = &output; } - patchOffset += getShaderOutputSize(output); - } else if (!output.perPatch) { - if (!firstVertex) { firstVertex = &output; } - offset += getShaderOutputSize(output); - } - continue; - } - if (output.perPatch && (output.builtin == spv::BuiltInTessLevelOuter || output.builtin == spv::BuiltInTessLevelInner) ) { - uint32_t location = output.location; - if (output.builtin == spv::BuiltInTessLevelOuter) { - if (outerLoc != (uint32_t)(-1)) { continue; } - if (innerLoc != (uint32_t)(-1)) { - // For triangle tessellation, we use a single attribute. Don't add it more than once. - if (reflectData.patchKind == spv::ExecutionModeTriangles) { continue; } - // getShaderOutputs() assigned individual elements their own locations. Try to reduce the gap. - location = innerLoc + 1; - } - outerLoc = location; - } else { - if (innerLoc != (uint32_t)(-1)) { continue; } - if (outerLoc != (uint32_t)(-1)) { - if (reflectData.patchKind == spv::ExecutionModeTriangles) { continue; } - location = outerLoc + 1; - } - innerLoc = location; - } - plDesc.vertexDescriptor.attributes[location].bufferIndex = getMetalBufferIndexForVertexAttributeBinding(kMVKTessEvalLevelBufferBinding); - if (reflectData.patchKind == spv::ExecutionModeTriangles || output.builtin == spv::BuiltInTessLevelOuter) { - plDesc.vertexDescriptor.attributes[location].offset = 0; - plDesc.vertexDescriptor.attributes[location].format = MTLVertexFormatHalf4; // FIXME Should use Float4 - } else { - plDesc.vertexDescriptor.attributes[location].offset = 8; - plDesc.vertexDescriptor.attributes[location].format = MTLVertexFormatHalf2; // FIXME Should use Float2 - } - } else if (output.perPatch) { - patchOffset = (uint32_t)mvkAlignByteCount(patchOffset, getShaderOutputAlignment(output)); - plDesc.vertexDescriptor.attributes[output.location].bufferIndex = getMetalBufferIndexForVertexAttributeBinding(kMVKTessEvalPatchInputBufferBinding); - plDesc.vertexDescriptor.attributes[output.location].format = getPixelFormats()->getMTLVertexFormat(mvkFormatFromOutput(output)); - plDesc.vertexDescriptor.attributes[output.location].offset = patchOffset; - patchOffset += getShaderOutputSize(output); - if (!firstPatch) { firstPatch = &output; } - usedPerPatch = true; - } else { - offset = (uint32_t)mvkAlignByteCount(offset, getShaderOutputAlignment(output)); - plDesc.vertexDescriptor.attributes[output.location].bufferIndex = getMetalBufferIndexForVertexAttributeBinding(kMVKTessEvalInputBufferBinding); - plDesc.vertexDescriptor.attributes[output.location].format = getPixelFormats()->getMTLVertexFormat(mvkFormatFromOutput(output)); - plDesc.vertexDescriptor.attributes[output.location].offset = offset; - offset += getShaderOutputSize(output); - if (!firstVertex) { firstVertex = &output; } - usedPerVertex = true; - } - } - if (usedPerVertex) { - uint32_t mtlVBIdx = getMetalBufferIndexForVertexAttributeBinding(kMVKTessEvalInputBufferBinding); - plDesc.vertexDescriptor.layouts[mtlVBIdx].stepFunction = MTLVertexStepFunctionPerPatchControlPoint; - plDesc.vertexDescriptor.layouts[mtlVBIdx].stride = mvkAlignByteCount(offset, getShaderOutputAlignment(*firstVertex)); - } - if (usedPerPatch) { - uint32_t mtlVBIdx = getMetalBufferIndexForVertexAttributeBinding(kMVKTessEvalPatchInputBufferBinding); - plDesc.vertexDescriptor.layouts[mtlVBIdx].stepFunction = MTLVertexStepFunctionPerPatch; - plDesc.vertexDescriptor.layouts[mtlVBIdx].stride = mvkAlignByteCount(patchOffset, getShaderOutputAlignment(*firstPatch)); - } - if (outerLoc != (uint32_t)(-1) || innerLoc != (uint32_t)(-1)) { - uint32_t mtlVBIdx = getMetalBufferIndexForVertexAttributeBinding(kMVKTessEvalLevelBufferBinding); - plDesc.vertexDescriptor.layouts[mtlVBIdx].stepFunction = MTLVertexStepFunctionPerPatch; - plDesc.vertexDescriptor.layouts[mtlVBIdx].stride = - reflectData.patchKind == spv::ExecutionModeTriangles ? sizeof(MTLTriangleTessellationFactorsHalf) : - sizeof(MTLQuadTessellationFactorsHalf); - } - // Fragment shader - only add if rasterization is enabled if (!addFragmentShaderToPipeline(plDesc, pCreateInfo, shaderConfig, teOutputs)) { [plDesc release]; @@ -1203,9 +1093,13 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 shaderConfig.options.entryPointStage = spv::ExecutionModelTessellationEvaluation; shaderConfig.options.entryPointName = _pTessEvalSS->pName; shaderConfig.options.mslOptions.swizzle_buffer_index = _swizzleBufferIndex.stages[kMVKShaderStageTessEval]; + shaderConfig.options.mslOptions.shader_input_buffer_index = getMetalBufferIndexForVertexAttributeBinding(kMVKTessEvalInputBufferBinding); + shaderConfig.options.mslOptions.shader_patch_input_buffer_index = getMetalBufferIndexForVertexAttributeBinding(kMVKTessEvalPatchInputBufferBinding); + shaderConfig.options.mslOptions.shader_tess_factor_buffer_index = getMetalBufferIndexForVertexAttributeBinding(kMVKTessEvalLevelBufferBinding); shaderConfig.options.mslOptions.buffer_size_buffer_index = _bufferSizeBufferIndex.stages[kMVKShaderStageTessEval]; shaderConfig.options.mslOptions.dynamic_offsets_buffer_index = _dynamicOffsetBufferIndex.stages[kMVKShaderStageTessEval]; shaderConfig.options.mslOptions.capture_output_to_buffer = false; + shaderConfig.options.mslOptions.raw_buffer_tese_input = true; shaderConfig.options.mslOptions.disable_rasterization = !_isRasterizing; addPrevStageOutputToShaderConversionConfig(shaderConfig, tcOutputs); @@ -1808,6 +1702,7 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 so.shaderVar.component = shaderInputs[soIdx].component; so.shaderVar.builtin = shaderInputs[soIdx].builtin; so.shaderVar.vecsize = shaderInputs[soIdx].vecWidth; + so.shaderVar.rate = shaderInputs[soIdx].perPatch ? MSL_SHADER_VARIABLE_RATE_PER_PATCH : MSL_SHADER_VARIABLE_RATE_PER_VERTEX; switch (getPixelFormats()->getFormatType(mvkFormatFromOutput(shaderInputs[soIdx]) ) ) { case kMVKFormatColorUInt8: @@ -1851,6 +1746,7 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 si.shaderVar.component = shaderOutputs[siIdx].component; si.shaderVar.builtin = shaderOutputs[siIdx].builtin; si.shaderVar.vecsize = shaderOutputs[siIdx].vecWidth; + si.shaderVar.rate = shaderOutputs[siIdx].perPatch ? MSL_SHADER_VARIABLE_RATE_PER_PATCH : MSL_SHADER_VARIABLE_RATE_PER_VERTEX; switch (getPixelFormats()->getFormatType(mvkFormatFromOutput(shaderOutputs[siIdx]) ) ) { case kMVKFormatColorUInt8: @@ -2312,6 +2208,7 @@ void serialize(Archive & archive, CompilerMSL::Options& opt) { opt.dynamic_offsets_buffer_index, opt.shader_input_buffer_index, opt.shader_index_buffer_index, + opt.shader_patch_input_buffer_index, opt.shader_input_wg_index, opt.device_index, opt.enable_frag_output_mask, @@ -2348,7 +2245,8 @@ void serialize(Archive & archive, CompilerMSL::Options& opt) { opt.ios_use_simdgroup_functions, opt.emulate_subgroups, opt.vertex_index_type, - opt.force_sample_rate_shading); + opt.force_sample_rate_shading, + opt.raw_buffer_tese_input); } template @@ -2357,7 +2255,8 @@ void serialize(Archive & archive, MSLShaderInterfaceVariable& si) { si.component, si.format, si.builtin, - si.vecsize); + si.vecsize, + si.rate); } template diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVReflection.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVReflection.h index b9e1e4a16..8987c227f 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVReflection.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVReflection.h @@ -313,6 +313,12 @@ namespace mvk { bool isUsed = true; const auto* type = &reflect.get_type(reflect.get_type_from_variable(varID).parent_type); bool patch = reflect.has_decoration(varID, spv::DecorationPatch); + if (reflect.has_decoration(type->self, spv::DecorationBlock)) { + // In this case, the Patch decoration is on the members. + // FIXME It is theoretically possible for some members of a block to have + // the decoration and some not. What then? + patch = reflect.has_member_decoration(type->self, 0, spv::DecorationPatch); + } auto biType = spv::BuiltInMax; if (reflect.has_decoration(varID, spv::DecorationBuiltIn)) { biType = (spv::BuiltIn)reflect.get_decoration(varID, spv::DecorationBuiltIn); From 05c757c8b721eb3aee1642f5f53b94d4944754ea Mon Sep 17 00:00:00 2001 From: Menno Vink Date: Fri, 11 Nov 2022 14:10:32 +0100 Subject: [PATCH 21/72] Only wait on emulated semaphores once to prevent freezing when using prefilled command buffers. --- MoltenVK/MoltenVK/GPUObjects/MVKQueue.h | 1 + MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h index dbda5e679..699557e09 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h @@ -220,6 +220,7 @@ class MVKQueueCommandBufferSubmission : public MVKQueueSubmission { MVKFence* _fence; id _activeMTLCommandBuffer; MVKCommandUse _commandUse; + bool _emulatedWaitDone; //Used to track if we've already waited for emulated semaphores. }; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm index 4db74af8a..735829a2b 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm @@ -359,7 +359,17 @@ void MVKQueueCommandBufferSubmission::commitActiveMTLCommandBuffer(bool signalCompletion) { // If using inline semaphore waiting, do so now. - for (auto& ws : _waitSemaphores) { ws.first->encodeWait(nil, ws.second); } + // When prefilled command buffers are used, multiple commits will happen because native semaphore + // waits need to be committed before the prefilled command buffer is committed. Since semaphores + // will reset their internal signal flag on wait, we need to make sure that we only wait once, otherwise we will freeze. + // Another option to wait on emulated semaphores once is to do it in the execute function, but doing it here + // should be more performant when prefilled command buffers aren't used, because we spend time encoding commands + // first, thus giving the command buffer signalling these semaphores more time to complete. + if (!_emulatedWaitDone) + { + for (auto& ws : _waitSemaphores) { ws.first->encodeWait(nil, ws.second); } + _emulatedWaitDone = true; + } // If we need to signal completion, use getActiveMTLCommandBuffer() to ensure at least // one MTLCommandBuffer is used, otherwise if this instance has no content, it will not @@ -463,7 +473,8 @@ MVKQueueSubmission(queue, (pSubmit ? pSubmit->waitSemaphoreCount : 0), (pSubmit ? pSubmit->pWaitSemaphores : nullptr)), - _commandUse(cmdUse) { + _commandUse(cmdUse), + _emulatedWaitDone(false) { // pSubmit can be null if just tracking the fence alone if (pSubmit) { From 0b62f647d51337524860ac1a44f3002cfc55bbb6 Mon Sep 17 00:00:00 2001 From: sean Date: Fri, 11 Nov 2022 18:33:54 +0100 Subject: [PATCH 22/72] Fix: Invalid blit offsets --- MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm index 873c3913e..e5e1384c9 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm @@ -322,7 +322,7 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma VkImageBlit2 vkIB2 = { VK_STRUCTURE_TYPE_IMAGE_BLIT_2, nullptr, vkIB.srcSubresource, vkIB.srcOffsets[0], vkIB.srcOffsets[1], - vkIB.dstSubresource, vkIB.dstOffsets[0], vkIB.srcOffsets[1], + vkIB.dstSubresource, vkIB.dstOffsets[0], vkIB.dstOffsets[1], }; if (auto validation = validate(cmdBuff, &vkIB2, isDestUnwritableLinear); validation != VK_SUCCESS) From 94b1ea3c95dc47d24b4cf18674ea702f37adfef0 Mon Sep 17 00:00:00 2001 From: Chip Davis Date: Wed, 9 Nov 2022 19:11:58 -0800 Subject: [PATCH 23/72] MVKImage: Always use a texel buffer for atomic storage images. Do this even if `OPTIMAL` tiling were requested. Vulkan mandates support for image atomics on `OPTIMAL`-tiled `R32_UINT` and `R32_SINT` images. In a way, this is "optimal"; image atomics won't work without this. Advertise support for atomics on `OPTIMAL` tiled images now. Fixes at least two CTS tests under `dEQP-VK.compute.basic.image_atomic_op_*`. --- MoltenVK/MoltenVK/GPUObjects/MVKImage.mm | 10 +++++----- MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm | 4 +--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm index 33042358d..2cbb20357 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm @@ -144,7 +144,7 @@ VkDeviceSize offset = 0; if (_planeIndex > 0 && _image->_memoryBindings.size() == 1) { - if (!_image->_isLinear && _image->getDevice()->_pMetalFeatures->placementHeaps) { + if (!_image->_isLinear && !_image->_isLinearForAtomics && _image->getDevice()->_pMetalFeatures->placementHeaps) { // For textures allocated directly on the heap, we need to obey the size and alignment // requirements reported by the device. MTLTextureDescriptor* mtlTexDesc = _image->_planes[_planeIndex-1]->newMTLTextureDescriptor(); // temp retain @@ -856,7 +856,7 @@ needsReinterpretation = needsReinterpretation || !pixFmts->compatibleAsLinearOrSRGB(mtlPixFmt, viewFmt); } - MTLTextureUsage mtlUsage = pixFmts->getMTLTextureUsage(getCombinedUsage(), mtlPixFmt, _samples, _isLinear, needsReinterpretation, _hasExtendedUsage); + MTLTextureUsage mtlUsage = pixFmts->getMTLTextureUsage(getCombinedUsage(), mtlPixFmt, _samples, _isLinear || _isLinearForAtomics, needsReinterpretation, _hasExtendedUsage); // Metal before 3.0 doesn't support 3D compressed textures, so we'll // decompress the texture ourselves, and we need to be able to write to it. @@ -930,7 +930,7 @@ // If this is a storage image of format R32_UINT or R32_SINT, or MUTABLE_FORMAT is set // and R32_UINT is in the set of possible view formats, then we must use a texel buffer, // or image atomics won't work. - _isLinearForAtomics = (_isLinear && mvkIsAnyFlagEnabled(getCombinedUsage(), VK_IMAGE_USAGE_STORAGE_BIT) && + _isLinearForAtomics = (_arrayLayers == 1 && _mipLevels == 1 && getImageType() == VK_IMAGE_TYPE_2D && mvkIsAnyFlagEnabled(getCombinedUsage(), VK_IMAGE_USAGE_STORAGE_BIT) && ((_vkFormat == VK_FORMAT_R32_UINT || _vkFormat == VK_FORMAT_R32_SINT) || (_hasMutableFormat && pixFmts->getViewClass(_vkFormat) == MVKMTLViewClass::Color32 && (getIsValidViewFormat(VK_FORMAT_R32_UINT) || getIsValidViewFormat(VK_FORMAT_R32_SINT))))); @@ -939,7 +939,7 @@ _isDepthStencilAttachment = (mvkAreAllFlagsEnabled(pCreateInfo->usage, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) || mvkAreAllFlagsEnabled(pixFmts->getVkFormatProperties(pCreateInfo->format).optimalTilingFeatures, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT)); _canSupportMTLTextureView = !_isDepthStencilAttachment || _device->_pMetalFeatures->stencilViews; - _rowByteAlignment = _isLinear ? _device->getVkFormatTexelBufferAlignment(pCreateInfo->format, this) : mvkEnsurePowerOfTwo(pixFmts->getBytesPerBlock(pCreateInfo->format)); + _rowByteAlignment = _isLinear || _isLinearForAtomics ? _device->getVkFormatTexelBufferAlignment(pCreateInfo->format, this) : mvkEnsurePowerOfTwo(pixFmts->getBytesPerBlock(pCreateInfo->format)); VkExtent2D blockTexelSizeOfPlane[3]; uint32_t bytesPerBlockOfPlane[3]; @@ -964,7 +964,7 @@ } _planes[planeIndex]->initSubresources(pCreateInfo); MVKImageMemoryBinding* memoryBinding = _planes[planeIndex]->getMemoryBinding(); - if (!_isLinear && _device->_pMetalFeatures->placementHeaps) { + if (!_isLinear && !_isLinearForAtomics && _device->_pMetalFeatures->placementHeaps) { MTLTextureDescriptor* mtlTexDesc = _planes[planeIndex]->newMTLTextureDescriptor(); // temp retain MTLSizeAndAlign sizeAndAlign = [_device->getMTLDevice() heapTextureSizeAndAlignWithDescriptor: mtlTexDesc]; [mtlTexDesc release]; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm index 688d82495..a89416a8c 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm @@ -2051,6 +2051,7 @@ enableFormatFeatures(Read, Tex, mtlPixFmtCaps, vkProps.optimalTilingFeatures); enableFormatFeatures(Filter, Tex, mtlPixFmtCaps, vkProps.optimalTilingFeatures); enableFormatFeatures(Write, Tex, mtlPixFmtCaps, vkProps.optimalTilingFeatures); + enableFormatFeatures(Atomic, Tex, mtlPixFmtCaps, vkProps.optimalTilingFeatures); enableFormatFeatures(ColorAtt, Tex, mtlPixFmtCaps, vkProps.optimalTilingFeatures); enableFormatFeatures(DSAtt, Tex, mtlPixFmtCaps, vkProps.optimalTilingFeatures); enableFormatFeatures(Blend, Tex, mtlPixFmtCaps, vkProps.optimalTilingFeatures); @@ -2084,9 +2085,6 @@ // Start with optimal tiling features, and modify. vkProps.linearTilingFeatures = vkProps.optimalTilingFeatures; - // Linear tiling can support atomic writing for some formats, even though optimal tiling does not. - enableFormatFeatures(Atomic, Tex, mtlPixFmtCaps, vkProps.linearTilingFeatures); - #if !MVK_APPLE_SILICON // On macOS IMR GPUs, linear textures cannot be used as attachments, so disable those features. mvkDisableFlags(vkProps.linearTilingFeatures, (kMVKVkFormatFeatureFlagsTexColorAtt | From b871d8f6036d71cb2bea81f9d48c1ac1c8c3eef2 Mon Sep 17 00:00:00 2001 From: Chip Davis Date: Fri, 11 Nov 2022 11:30:54 -0800 Subject: [PATCH 24/72] MVKDevice: Fix backwards attribution of storage/uniform texel buffer alignments. A drive-by fix for something I noticed while investigating a problem with linear-for-atomics textures. --- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 550594761..92261bc43 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -2305,13 +2305,13 @@ } } if (mvkAreAllFlagsEnabled(props.bufferFeatures, VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT)) { - maxStorage = max(maxStorage, uint32_t(alignment)); - if (alignment > texelSize) { singleTexelStorage = false; } - } - if (mvkAreAllFlagsEnabled(props.bufferFeatures, VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT)) { maxUniform = max(maxUniform, uint32_t(alignment)); if (alignment > texelSize) { singleTexelUniform = false; } } + if (mvkAreAllFlagsEnabled(props.bufferFeatures, VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT)) { + maxStorage = max(maxStorage, uint32_t(alignment)); + if (alignment > texelSize) { singleTexelStorage = false; } + } return true; }); _texelBuffAlignProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT; From 6d7f4330c7318b45807271c14b9fa986a8f902e1 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Tue, 15 Nov 2022 17:44:55 -0500 Subject: [PATCH 25/72] Work around MTLCounterSet crash on additional Intel Iris Plus Graphics devices. Add 0x8a5a and 0x8a5c to list of Intel Iris Plus Graphics device IDs requiring workaround. --- Docs/Whats_New.md | 1 + MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 2 ++ 2 files changed, 3 insertions(+) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 34d755600..e4d0a00df 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -19,6 +19,7 @@ MoltenVK 1.2.1 Released TBD - Fix crash on descriptor update with out-of-bounds descriptor count data. +- Work around `MTLCounterSet` crash on additional Intel Iris Plus Graphics devices. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 92261bc43..24ab7e897 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -3168,6 +3168,8 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope case 0x8a51: case 0x8a52: case 0x8a53: + case 0x8a5a: + case 0x8a5c: return true; default: return false; From 4d003bf2562fd4fff64c0c7918f6f570cd821c50 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Tue, 15 Nov 2022 18:48:36 -0500 Subject: [PATCH 26/72] Document new linkage model used by Xcode 14 and later, and how to link MoltenVK to an app or game using Xcode 13 or earlier. --- Docs/MoltenVK_Runtime_UserGuide.md | 14 ++++++++++++++ Docs/Whats_New.md | 3 ++- README.md | 14 ++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index 6582dbcff..0d5fce4d0 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -87,6 +87,20 @@ as an `XCFramework`, as it is the simpler option, and encompasses the largest se ### Install *MoltenVK* as a Universal `XCFramework` +> ***Note:*** *Xcode 14* introduced a new static linkage model that is not compatible with previous +versions of *Xcode*. If you link to a `MoltenVK.xcframework` that was built with *Xcode 14* or later, +also use *Xcode 14* or later to link it to your app or game. +> +> If you need to use *Xcode 13* or earlier to link `MoltenVK.xcframework` to your app or game, +first [build](../README.md#building) **MoltenVK** with *Xcode 13* or earlier. +> +> Or, if you want to use *Xcode 14* or later to [build](../README.md#building) **MoltenVK**, in order to be able to use the latest +*Metal* capabilities, but need to use *Xcode 13* or earlier to link `MoltenVK.xcframework` to your +app or game, first add the value `-fno-objc-msgsend-selector-stubs` to the `OTHER_CFLAGS` +*Xcode* build setting in the `MoltenVK.xcodeproj` and `MoltenVKShaderConverter.xcodeproj` *Xcode* +projects, [build](../README.md#building) **MoltenVK** with *Xcode 14* or later, and then link `MoltenVK.xcframework` +to your app or game using *Xcode 13* or earlier. + To link **MoltenVK** to your application as an `XCFramework`, follow these steps: 1. Open your application in *Xcode* and select your application's target in the diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index e4d0a00df..3bf5cebde 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -20,7 +20,8 @@ Released TBD - Fix crash on descriptor update with out-of-bounds descriptor count data. - Work around `MTLCounterSet` crash on additional Intel Iris Plus Graphics devices. - +- Document new linkage model used by *Xcode 14* and later, and how to link **MoltenVK** + to an app or game using *Xcode 13* or earlier. MoltenVK 1.2.0 diff --git a/README.md b/README.md index 6b2e2006e..0a73715eb 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,20 @@ Building **MoltenVK** During building, **MoltenVK** references the latest *Apple SDK* frameworks. To access these frameworks, and to avoid build errors, be sure to use the latest publicly available version of *Xcode*. +> ***Note:*** *Xcode 14* introduced a new static linkage model that is not compatible with previous +versions of *Xcode*. If you link to a `MoltenVK.xcframework` that was built with *Xcode 14* or later, +also use *Xcode 14* or later to link it to your app or game. +> +> If you need to use *Xcode 13* or earlier to link `MoltenVK.xcframework` to your app or game, +first build **MoltenVK** with *Xcode 13* or earlier. +> +> Or, if you want to use *Xcode 14* or later to build **MoltenVK**, in order to be able to use the +latest *Metal* capabilities, but need to use *Xcode 13* or earlier to link `MoltenVK.xcframework` +to your app or game, first add the value `-fno-objc-msgsend-selector-stubs` to the `OTHER_CFLAGS` +*Xcode* build setting in the `MoltenVK.xcodeproj` and `MoltenVKShaderConverter.xcodeproj` *Xcode* +projects, build **MoltenVK** with *Xcode 14* or later, and then link `MoltenVK.xcframework` +to your app or game using *Xcode 13* or earlier. + **MoltenVK** can be built to support at least *macOS 10.11*, *iOS 9*, or *tvOS 9*, but the default _Xcode_ build settings in the included _Xcode_ projects are set to a minimum deployment target of *macOS 10.13*, *iOS 11*, and *tvOS 11*, which are the oldest OS versions supported by the current From 7c0143c37badacf325418b460ff4f565a8e80ee3 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Tue, 15 Nov 2022 20:49:17 -0500 Subject: [PATCH 27/72] Support Xcode 14.1 build settings. --- Demos/Cube/Cube.xcodeproj/project.pbxproj | 2 +- .../Cube.xcodeproj/xcshareddata/xcschemes/Cube-iOS.xcscheme | 2 +- .../Cube.xcodeproj/xcshareddata/xcschemes/Cube-macOS.xcscheme | 2 +- .../Cube.xcodeproj/xcshareddata/xcschemes/Cube-tvOS.xcscheme | 2 +- Docs/Whats_New.md | 1 + ExternalDependencies.xcodeproj/project.pbxproj | 2 +- .../xcschemes/ExternalDependencies (Debug).xcscheme | 2 +- .../xcshareddata/xcschemes/ExternalDependencies-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/ExternalDependencies-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/ExternalDependencies-tvOS.xcscheme | 2 +- .../xcshareddata/xcschemes/ExternalDependencies.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Cross-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Cross-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Cross-tvOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Tools-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Tools-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Tools-tvOS.xcscheme | 2 +- .../xcshareddata/xcschemes/glslang-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/glslang-macOS.xcscheme | 2 +- MoltenVK/MoltenVK.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/MoltenVK-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK-tvOS.xcscheme | 2 +- .../xcschemes/MVKShaderConverterTool Package.xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK Package (Debug).xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK Package (iOS only).xcscheme | 2 +- .../xcschemes/MoltenVK Package (macOS only).xcscheme | 2 +- .../xcschemes/MoltenVK Package (tvOS only).xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK Package.xcscheme | 2 +- .../MoltenVKShaderConverter.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/MoltenVKShaderConverter-iOS.xcscheme | 2 +- .../xcschemes/MoltenVKShaderConverter-macOS.xcscheme | 2 +- .../xcschemes/MoltenVKShaderConverter-tvOS.xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVKShaderConverter.xcscheme | 2 +- 34 files changed, 34 insertions(+), 33 deletions(-) diff --git a/Demos/Cube/Cube.xcodeproj/project.pbxproj b/Demos/Cube/Cube.xcodeproj/project.pbxproj index 9d8812b09..44654e514 100644 --- a/Demos/Cube/Cube.xcodeproj/project.pbxproj +++ b/Demos/Cube/Cube.xcodeproj/project.pbxproj @@ -246,7 +246,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1400; + LastUpgradeCheck = 1410; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Cube" */; compatibilityVersion = "Xcode 8.0"; diff --git a/Demos/Cube/Cube.xcodeproj/xcshareddata/xcschemes/Cube-iOS.xcscheme b/Demos/Cube/Cube.xcodeproj/xcshareddata/xcschemes/Cube-iOS.xcscheme index a24f509ba..194e4c08b 100644 --- a/Demos/Cube/Cube.xcodeproj/xcshareddata/xcschemes/Cube-iOS.xcscheme +++ b/Demos/Cube/Cube.xcodeproj/xcshareddata/xcschemes/Cube-iOS.xcscheme @@ -1,6 +1,6 @@ Date: Wed, 16 Nov 2022 13:58:52 -0500 Subject: [PATCH 28/72] Upgrade GitHub CI to use Xcode 14.1 on macOS 12. --- .github/workflows/CI.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index c67b01bb1..e7d9de8a7 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -15,9 +15,9 @@ jobs: build: strategy: matrix: - xcode: [ "13.2.1" ] + xcode: [ "14.1" ] platform: [ "macos", "maccat", "ios", "tvos" ] - os: [ "macos-latest" ] + os: [ "macos-12" ] upload_artifacts: [ true ] # additional specific configurations include: From bd497fe713c21a421d8eb4ba0f2f49149401c613 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Fri, 18 Nov 2022 23:35:46 -0500 Subject: [PATCH 29/72] Fix mistaken YCBCR format support indication. MVKVkFormatDesc::chromaSubsamplingPlaneCount must be > 1 to be considered supported. --- Docs/Whats_New.md | 1 + MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 865ef0445..4c2364c82 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -20,6 +20,7 @@ Released TBD - Fix crash on descriptor update with out-of-bounds descriptor count data. - Work around `MTLCounterSet` crash on additional Intel Iris Plus Graphics devices. +- Fix mistaken YCBCR format support indication. - Document new linkage model used by *Xcode 14* and later, and how to link **MoltenVK** to an app or game using *Xcode 13* or earlier. - Support *Xcode 14.1* build settings. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.h b/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.h index 9737b009f..66c762965 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.h @@ -154,7 +154,7 @@ typedef struct MVKVkFormatDesc { inline double bytesPerTexel() const { return (double)bytesPerBlock / (double)(blockTexelSize.width * blockTexelSize.height); }; - inline bool isSupported() const { return (mtlPixelFormat != MTLPixelFormatInvalid || chromaSubsamplingPlaneCount > 0); }; + inline bool isSupported() const { return (mtlPixelFormat != MTLPixelFormatInvalid || chromaSubsamplingPlaneCount > 1); }; inline bool isSupportedOrSubstitutable() const { return isSupported() || (mtlPixelFormatSubstitute != MTLPixelFormatInvalid); }; inline bool vertexIsSupported() const { return (mtlVertexFormat != MTLVertexFormatInvalid); }; From 03ce25da20c78496e2ada15230cebc5471de282c Mon Sep 17 00:00:00 2001 From: Chip Davis Date: Sun, 20 Nov 2022 14:33:19 -0800 Subject: [PATCH 30/72] MVKPipeline: Force extra checks for stores after fragment discard. Update SPIRV-Cross to pull in multiple CTS fixes. Handle the new `check_discarded_frag_stores` and `manual_helper_invocation_updates` options. --- ExternalRevisions/SPIRV-Cross_repo_revision | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision index 11efbbb3a..4cff295df 100644 --- a/ExternalRevisions/SPIRV-Cross_repo_revision +++ b/ExternalRevisions/SPIRV-Cross_repo_revision @@ -1 +1 @@ -57639196694a8b5c572c9358f5d9cb443dd341e5 +c77b09b57c27837dc2d41aa371ed3d236ce9ce47 diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm index 035ccdc08..44f7e3d9e 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm @@ -1149,6 +1149,7 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 shaderConfig.options.entryPointName = _pFragmentSS->pName; shaderConfig.options.mslOptions.capture_output_to_buffer = false; shaderConfig.options.mslOptions.fixed_subgroup_size = mvkIsAnyFlagEnabled(_pFragmentSS->flags, VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT) ? 0 : _device->_pMetalFeatures->maxSubgroupSize; + shaderConfig.options.mslOptions.check_discarded_frag_stores = true; if (_isRasterizing && pCreateInfo->pMultisampleState) { // Must ignore allowed bad pMultisampleState pointer if rasterization disabled if (pCreateInfo->pMultisampleState->pSampleMask && pCreateInfo->pMultisampleState->pSampleMask[0] != 0xffffffff) { shaderConfig.options.mslOptions.additional_fixed_sample_mask = pCreateInfo->pMultisampleState->pSampleMask[0]; @@ -2240,13 +2241,15 @@ void serialize(Archive & archive, CompilerMSL::Options& opt) { opt.force_native_arrays, opt.enable_clip_distance_user_varying, opt.multi_patch_workgroup, + opt.raw_buffer_tese_input, opt.vertex_for_tessellation, opt.arrayed_subpass_input, opt.ios_use_simdgroup_functions, opt.emulate_subgroups, opt.vertex_index_type, opt.force_sample_rate_shading, - opt.raw_buffer_tese_input); + opt.manual_helper_invocation_updates, + opt.check_discarded_frag_stores); } template From 8e45217fbde95851b34e2780f3ce85bfe36dd802 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Wed, 30 Nov 2022 00:01:07 -0500 Subject: [PATCH 31/72] Fix Metal buffer index binding overrides for push constants and attachment clearing. Push constants and attachment clearing can temporarily override Metal buffer bindings for descriptor sets and vertex attributes. Mark the overridden buffer bindings and ensure they are reinstated when the pipeline is updated. - Add MVKMTLBufferBinding::isOverridden to track if buffer binding is temporarily overridden. - Rename MVKResourcesCommandEncoderState::markIndexDirty() to markBufferIndexOverridden() to mark buffer bindings as overridden. - Rename MVKGraphicsResourcesCommandEncoderState::markBufferIndexDirty() to markBufferIndexOverridden(). - Rename MVKComputeResourcesCommandEncoderState::markBufferIndexDirty() to markBufferIndexOverridden(). - Add MVKResourcesCommandEncoderState::markOverriddenBufferIndexesDirty() to mark overridden buffer bindings as dirty. - Add MVKGraphicsResourcesCommandEncoderState::markOverriddenBufferIndexesDirty() and call when render pipeline change is encoded - Add MVKComputeResourcesCommandEncoderState::markOverriddenBufferIndexesDirty() and call when compute pipeline change is encoded. --- Docs/Whats_New.md | 1 + .../MoltenVK/Commands/MVKCommandBuffer.mm | 10 ++--- .../Commands/MVKCommandEncoderState.h | 40 ++++++++++++++----- .../Commands/MVKCommandEncoderState.mm | 18 +++++++-- .../Commands/MVKMTLResourceBindings.h | 9 +++-- MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm | 4 ++ 6 files changed, 61 insertions(+), 21 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 4c2364c82..5432abf8c 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -19,6 +19,7 @@ MoltenVK 1.2.1 Released TBD - Fix crash on descriptor update with out-of-bounds descriptor count data. +- Fix Metal buffer index binding overrides for push constants and attachment clearing. - Work around `MTLCounterSet` crash on additional Intel Iris Plus Graphics devices. - Fix mistaken YCBCR format support indication. - Document new linkage model used by *Xcode 14* and later, and how to link **MoltenVK** diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm index 32bb36506..2c014c779 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm @@ -697,7 +697,7 @@ encodeStoreActions(true); } _graphicsPipelineState.encode(stage); // Must do first..it sets others - _graphicsResourcesState.encode(stage); + _graphicsResourcesState.encode(stage); // Before push constants, to allow them to override. _viewportState.encode(stage); _scissorState.encode(stage); _depthBiasState.encode(stage); @@ -763,7 +763,7 @@ void MVKCommandEncoder::finalizeDispatchState() { _computePipelineState.encode(); // Must do first..it sets others - _computeResourcesState.encode(); + _computeResourcesState.encode(); // Before push constants, to allow them to override. _computePushConstants.encode(); } @@ -882,7 +882,7 @@ } if (descOverride) { - _graphicsResourcesState.markBufferIndexDirty(kMVKShaderStageVertex, mtlBuffIndex); + _graphicsResourcesState.markBufferIndexOverridden(kMVKShaderStageVertex, mtlBuffIndex); } } @@ -899,7 +899,7 @@ } if (descOverride) { - _graphicsResourcesState.markBufferIndexDirty(kMVKShaderStageFragment, mtlBuffIndex); + _graphicsResourcesState.markBufferIndexOverridden(kMVKShaderStageFragment, mtlBuffIndex); } } @@ -916,7 +916,7 @@ } if (descOverride) { - _computeResourcesState.markBufferIndexDirty(mtlBuffIndex); + _computeResourcesState.markBufferIndexOverridden(mtlBuffIndex); } } diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h index 166ae74d8..16c84e77c 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h +++ b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h @@ -377,15 +377,25 @@ class MVKResourcesCommandEncoderState : public MVKCommandEncoderState { bindingsDirtyFlag = true; } - // Template function to find and mark dirty the binding that uses the index. + // Template function to find and mark as overridden the binding that uses the index. template - void markIndexDirty(T& bindings, bool& bindingsDirtyFlag, uint32_t index) { - for (auto& b : bindings) { + void markBufferIndexOverridden(T& bufferBindings, uint32_t index) { + for (auto& b : bufferBindings) { if (b.index == index) { + b.isOverridden = true; + return; + } + } + } + + // Template function to mark any overridden bindings as dirty. + template + void markOverriddenBufferIndexesDirty(T& bufferBindings, bool& bindingsDirtyFlag) { + for (auto& b : bufferBindings) { + if (b.isOverridden) { b.markDirty(); bindingsDirtyFlag = true; MVKCommandEncoderState::markDirty(); - return; } } } @@ -548,8 +558,14 @@ class MVKGraphicsResourcesCommandEncoderState : public MVKResourcesCommandEncode /** Offset all buffers for vertex attribute bindings with zero divisors by the given number of strides. */ void offsetZeroDivisorVertexBuffers(MVKGraphicsStage stage, MVKGraphicsPipeline* pipeline, uint32_t firstInstance); - /** Marks dirty the buffer binding using the index. */ - void markBufferIndexDirty(MVKShaderStage stage, uint32_t mtlBufferIndex); + /** + * Marks the buffer binding using the index as having been overridden, + * such as by push constants or internal rendering in some transfers. + * */ + void markBufferIndexOverridden(MVKShaderStage stage, uint32_t mtlBufferIndex); + + /** Marks any overridden buffer indexes as dirty. */ + void markOverriddenBufferIndexesDirty(); void markDirty() override; @@ -562,7 +578,7 @@ class MVKGraphicsResourcesCommandEncoderState : public MVKResourcesCommandEncode void encodeImpl(uint32_t stage) override; void bindMetalArgumentBuffer(MVKShaderStage stage, MVKMTLBufferBinding& buffBind) override; - ResourceBindings<8> _shaderStageResourceBindings[4]; + ResourceBindings<8> _shaderStageResourceBindings[kMVKShaderStageFragment + 1]; }; @@ -600,8 +616,14 @@ class MVKComputeResourcesCommandEncoderState : public MVKResourcesCommandEncoder MTLResourceUsage mtlUsage, MTLRenderStages mtlStages) override; - /** Marks dirty the buffer binding using the index. */ - void markBufferIndexDirty(uint32_t mtlBufferIndex); + /** + * Marks the buffer binding using the index as having been overridden, + * such as by push constants or internal rendering in some transfers. + * */ + void markBufferIndexOverridden(uint32_t mtlBufferIndex); + + /** Marks any overridden buffer indexes as dirty. */ + void markOverriddenBufferIndexesDirty(); void markDirty() override; diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm index 8cf763a56..e03a64be1 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm @@ -982,9 +982,15 @@ } } -void MVKGraphicsResourcesCommandEncoderState::markBufferIndexDirty(MVKShaderStage stage, uint32_t mtlBufferIndex) { +void MVKGraphicsResourcesCommandEncoderState::markBufferIndexOverridden(MVKShaderStage stage, uint32_t mtlBufferIndex) { auto& stageRezBinds = _shaderStageResourceBindings[stage]; - markIndexDirty(stageRezBinds.bufferBindings, stageRezBinds.areBufferBindingsDirty, mtlBufferIndex); + MVKResourcesCommandEncoderState::markBufferIndexOverridden(stageRezBinds.bufferBindings, mtlBufferIndex); +} + +void MVKGraphicsResourcesCommandEncoderState::markOverriddenBufferIndexesDirty() { + for (auto& stageRezBinds : _shaderStageResourceBindings) { + MVKResourcesCommandEncoderState::markOverriddenBufferIndexesDirty(stageRezBinds.bufferBindings, stageRezBinds.areBufferBindingsDirty); + } } @@ -1120,8 +1126,12 @@ } } -void MVKComputeResourcesCommandEncoderState::markBufferIndexDirty(uint32_t mtlBufferIndex) { - markIndexDirty(_resourceBindings.bufferBindings, _resourceBindings.areBufferBindingsDirty, mtlBufferIndex); +void MVKComputeResourcesCommandEncoderState::markBufferIndexOverridden(uint32_t mtlBufferIndex) { + MVKResourcesCommandEncoderState::markBufferIndexOverridden(_resourceBindings.bufferBindings, mtlBufferIndex); +} + +void MVKComputeResourcesCommandEncoderState::markOverriddenBufferIndexesDirty() { + MVKResourcesCommandEncoderState::markOverriddenBufferIndexesDirty(_resourceBindings.bufferBindings, _resourceBindings.areBufferBindingsDirty); } diff --git a/MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h b/MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h index f25023096..1af1b184e 100644 --- a/MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h +++ b/MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h @@ -71,20 +71,23 @@ typedef struct MVKMTLBufferBinding { bool justOffset = false; bool isDirty = true; bool isInline = false; + bool isOverridden = false; - inline void markDirty() { justOffset = false; isDirty = true; } + void markDirty() { justOffset = false; isOverridden = false; isDirty = true; } - inline void update(const MVKMTLBufferBinding &other) { + void update(const MVKMTLBufferBinding &other) { if (mtlBuffer != other.mtlBuffer || size != other.size || other.isInline) { mtlBuffer = other.mtlBuffer; size = other.size; isInline = other.isInline; offset = other.offset; justOffset = false; - isDirty = true; + isOverridden = false; + isDirty = true; } else if (offset != other.offset) { offset = other.offset; justOffset = !isDirty || justOffset; + isOverridden = false; isDirty = true; } } diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm index 44f7e3d9e..d5105d485 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm @@ -309,6 +309,8 @@ break; } + + cmdEncoder->_graphicsResourcesState.markOverriddenBufferIndexesDirty(); cmdEncoder->_graphicsResourcesState.bindSwizzleBuffer(_swizzleBufferIndex, _needsVertexSwizzleBuffer, _needsTessCtlSwizzleBuffer, _needsTessEvalSwizzleBuffer, _needsFragmentSwizzleBuffer); cmdEncoder->_graphicsResourcesState.bindBufferSizeBuffer(_bufferSizeBufferIndex, _needsVertexBufferSizeBuffer, _needsTessCtlBufferSizeBuffer, _needsTessEvalBufferSizeBuffer, _needsFragmentBufferSizeBuffer); cmdEncoder->_graphicsResourcesState.bindDynamicOffsetBuffer(_dynamicOffsetBufferIndex, _needsVertexDynamicOffsetBuffer, _needsTessCtlDynamicOffsetBuffer, _needsTessEvalDynamicOffsetBuffer, _needsFragmentDynamicOffsetBuffer); @@ -1814,6 +1816,8 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 [cmdEncoder->getMTLComputeEncoder(kMVKCommandUseDispatch) setComputePipelineState: _mtlPipelineState]; cmdEncoder->_mtlThreadgroupSize = _mtlThreadgroupSize; + + cmdEncoder->_computeResourcesState.markOverriddenBufferIndexesDirty(); cmdEncoder->_computeResourcesState.bindSwizzleBuffer(_swizzleBufferIndex, _needsSwizzleBuffer); cmdEncoder->_computeResourcesState.bindBufferSizeBuffer(_bufferSizeBufferIndex, _needsBufferSizeBuffer); cmdEncoder->_computeResourcesState.bindDynamicOffsetBuffer(_dynamicOffsetBufferIndex, _needsDynamicOffsetBuffer); From 985ec998320b01f873ba7112cf3aa787d98140bd Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Wed, 7 Dec 2022 12:40:50 -0500 Subject: [PATCH 32/72] Fix app performance regression triggered by the previous introduction of VK_KHR_shader_float_controls. The introduction of shaderSignedZeroInfNanPreserveFloat32 was causing Metal fast math to be aggressively disabled by the use of SignedZeroInfNanPreserve in shaders in some apps, causing a regression in shader performance in those apps. - Change MVKConfiguration::fastMathEnabled from bool to enumeration to distinguish between always using fast math or allowing shaders to selectively disable it. - Default value to fast math always. --- Docs/Whats_New.md | 1 + MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 32 ++++++++++++++++---- MoltenVK/MoltenVK/GPUObjects/MVKDevice.h | 4 +-- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 5 +-- MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp | 2 +- MoltenVK/MoltenVK/Utility/MVKEnvironment.h | 4 +-- 6 files changed, 35 insertions(+), 13 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 5432abf8c..482f82c28 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -20,6 +20,7 @@ Released TBD - Fix crash on descriptor update with out-of-bounds descriptor count data. - Fix Metal buffer index binding overrides for push constants and attachment clearing. +- Fix app performance regression triggered by the previous introduction of `VK_KHR_shader_float_controls`. - Work around `MTLCounterSet` crash on additional Intel Iris Plus Graphics devices. - Fix mistaken YCBCR format support indication. - Document new linkage model used by *Xcode 14* and later, and how to link **MoltenVK** diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index 50b3bc611..51a605fcb 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -122,6 +122,14 @@ typedef enum MVKPrefillMetalCommandBuffersStyle { MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_MAX_ENUM = 0x7FFFFFFF } MVKPrefillMetalCommandBuffersStyle; +/** Identifies when Metal shaders will be compiled with the fast math option. */ +typedef enum MVKConfigFastMath { + MVK_CONFIG_FAST_MATH_NEVER = 0, /**< Metal shaders will never be compiled with the fast math option. */ + MVK_CONFIG_FAST_MATH_ALWAYS = 1, /**< Metal shaders will always be compiled with the fast math option. */ + MVK_CONFIG_FAST_MATH_ON_DEMAND = 2, /**< Metal shaders will be compiled with the fast math option, unless the shader includes execution modes that require it to be compiled without fast math. */ + MVK_CONFIG_FAST_MATH_MAX_ENUM = 0x7FFFFFFF +} MVKConfigFastMath; + /** * MoltenVK configuration settings. * @@ -540,18 +548,30 @@ typedef struct { uint32_t defaultGPUCaptureScopeQueueIndex; /** - * Corresponds to the fastMathEnabled property of MTLCompileOptions. - * Setting it may cause the Metal Compiler to optimize floating point operations - * in ways that may violate the IEEE 754 standard. + * Identifies when Metal shaders will be compiled with the Metal fastMathEnabled property + * enabled. For shaders compiled with the Metal fastMathEnabled property enabled, shader + * floating point math is significantly faster, but it may cause the Metal Compiler to + * optimize floating point operations in ways that may violate the IEEE 754 standard. + * + * Enabling Metal fast math can dramatically improve shader performance, and has little + * practical effect on the numerical accuracy of most shaders. As such, disabling fast + * math should be done carefully and deliberately. For most applications, always enabling + * fast math, by setting the value of this property to MVK_CONFIG_FAST_MATH_ALWAYS, + * is the preferred choice. * - * Must be changed before creating a VkDevice, for the change to take effect. + * Apps that have specific accuracy and handling needs for particular shaders, may elect to + * set the value of this property to MVK_CONFIG_FAST_MATH_ON_DEMAND, so that fast math will + * be disabled when compiling shaders that request capabilities such as SignedZeroInfNanPreserve. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will be applied to future Metal shader compilations. * * The initial value or this parameter is set by the * MVK_CONFIG_FAST_MATH_ENABLED * runtime environment variable or MoltenVK compile-time build setting. - * If neither is set, the value of this parameter defaults to true. + * If neither is set, the value of this parameter defaults to MVK_CONFIG_FAST_MATH_ALWAYS. */ - VkBool32 fastMathEnabled; + MVKConfigFastMath fastMathEnabled; /** * Controls the level of logging performned by MoltenVK. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h index 54ca3a6e8..5a657cb4e 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h @@ -715,12 +715,12 @@ class MVKDevice : public MVKDispatchableVulkanAPIObject { /** * Returns an autoreleased options object to be used when compiling MSL shaders. - * The useFastMath parameter is and-combined with MVKConfiguration::fastMathEnabled + * The requestFastMath parameter is combined with the value of MVKConfiguration::fastMathEnabled * to determine whether to enable fast math optimizations in the compiled shader. * The preserveInvariance parameter indicates that the shader requires the position * output invariance across invocations (typically for the position output). */ - MTLCompileOptions* getMTLCompileOptions(bool useFastMath = true, bool preserveInvariance = false); + MTLCompileOptions* getMTLCompileOptions(bool requestFastMath = true, bool preserveInvariance = false); /** Returns the Metal vertex buffer index to use for the specified vertex attribute binding number. */ uint32_t getMetalBufferIndexForVertexAttributeBinding(uint32_t binding); diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 24ab7e897..ed61f91c5 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -4255,10 +4255,11 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope return _dummyBlitMTLBuffer; } -MTLCompileOptions* MVKDevice::getMTLCompileOptions(bool useFastMath, bool preserveInvariance) { +MTLCompileOptions* MVKDevice::getMTLCompileOptions(bool requestFastMath, bool preserveInvariance) { MTLCompileOptions* mtlCompOpt = [MTLCompileOptions new]; mtlCompOpt.languageVersion = _pMetalFeatures->mslVersionEnum; - mtlCompOpt.fastMathEnabled = useFastMath && mvkConfig().fastMathEnabled; + mtlCompOpt.fastMathEnabled = (mvkConfig().fastMathEnabled == MVK_CONFIG_FAST_MATH_ALWAYS || + (mvkConfig().fastMathEnabled == MVK_CONFIG_FAST_MATH_ON_DEMAND && requestFastMath)); #if MVK_XCODE_12 if ([mtlCompOpt respondsToSelector: @selector(setPreserveInvariance:)]) { [mtlCompOpt setPreserveInvariance: preserveInvariance]; diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp b/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp index 255fb0543..6e6ac8ad1 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp @@ -45,7 +45,7 @@ static void mvkInitConfigFromEnvVars() { MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.fullImageViewSwizzle, MVK_CONFIG_FULL_IMAGE_VIEW_SWIZZLE); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.defaultGPUCaptureScopeQueueFamilyIndex, MVK_CONFIG_DEFAULT_GPU_CAPTURE_SCOPE_QUEUE_FAMILY_INDEX); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.defaultGPUCaptureScopeQueueIndex, MVK_CONFIG_DEFAULT_GPU_CAPTURE_SCOPE_QUEUE_INDEX); - MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.fastMathEnabled, MVK_CONFIG_FAST_MATH_ENABLED); + MVK_SET_FROM_ENV_OR_BUILD_INT32 (evCfg.fastMathEnabled, MVK_CONFIG_FAST_MATH_ENABLED); MVK_SET_FROM_ENV_OR_BUILD_INT32 (evCfg.logLevel, MVK_CONFIG_LOG_LEVEL); MVK_SET_FROM_ENV_OR_BUILD_INT32 (evCfg.traceVulkanCalls, MVK_CONFIG_TRACE_VULKAN_CALLS); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.forceLowPowerGPU, MVK_CONFIG_FORCE_LOW_POWER_GPU); diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h index f7b36ff5f..b2b2b0b7b 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h @@ -173,9 +173,9 @@ void mvkSetConfig(const MVKConfiguration& mvkConfig); # define MVK_CONFIG_FULL_IMAGE_VIEW_SWIZZLE 0 #endif -/** Set the fastMathEnabled Metal Compiler option. Enabled by default. */ +/** Set the fastMathEnabled Metal Compiler option. Set to always use fast math by default. */ #ifndef MVK_CONFIG_FAST_MATH_ENABLED -# define MVK_CONFIG_FAST_MATH_ENABLED 1 +# define MVK_CONFIG_FAST_MATH_ENABLED MVK_CONFIG_FAST_MATH_ALWAYS #endif /** Set the logging level: */ From f5f6515dce03444b7bea071945872aaee517f6f6 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Thu, 8 Dec 2022 14:10:58 -0500 Subject: [PATCH 33/72] Update dependency libraries to match Vulkan SDK 1.3.236. Update Whats New document. --- Docs/MoltenVK_Runtime_UserGuide.md | 1 + Docs/Whats_New.md | 26 +- .../project.pbxproj | 6886 +++++++++-------- .../Vulkan-Headers_repo_revision | 2 +- ExternalRevisions/Vulkan-Tools_repo_revision | 2 +- ExternalRevisions/glslang_repo_revision | 2 +- Templates/spirv-tools/build.zip | Bin 51272 -> 52471 bytes 7 files changed, 3500 insertions(+), 3419 deletions(-) diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index 0d5fce4d0..d78f05b88 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -278,6 +278,7 @@ In addition to core *Vulkan* functionality, **MoltenVK** also supports the foll - `VK_KHR_8bit_storage` - `VK_KHR_bind_memory2` - `VK_KHR_buffer_device_address` *(requires GPU Tier 2 argument buffers support)* +- `VK_KHR_copy_commands2` - `VK_KHR_create_renderpass2` - `VK_KHR_dedicated_allocation` - `VK_KHR_depth_stencil_resolve` diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 482f82c28..985dba7d6 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -16,16 +16,40 @@ Copyright (c) 2015-2022 [The Brenwill Workshop Ltd.](http://www.brenwill.com) MoltenVK 1.2.1 -------------- -Released TBD +Released 2022/12/08 +- Add support for extensions: + - `VK_KHR_copy_commands2` - Fix crash on descriptor update with out-of-bounds descriptor count data. - Fix Metal buffer index binding overrides for push constants and attachment clearing. - Fix app performance regression triggered by the previous introduction of `VK_KHR_shader_float_controls`. - Work around `MTLCounterSet` crash on additional Intel Iris Plus Graphics devices. - Fix mistaken YCBCR format support indication. +- Fix invalid blit offsets. +- Wait on emulated semaphores only once to prevent freezing when using prefilled command buffers. +- `MVKPipeline`: Stop using vertex-style input for tessellation evaluation shaders. +- `MVKPipeline`: Force extra checks for stores after fragment discard. +- `MVKImage`: Always use a texel buffer for atomic storage images. +- `MVKDevice`: Fix backwards attribution of storage/uniform texel buffer alignments. - Document new linkage model used by *Xcode 14* and later, and how to link **MoltenVK** to an app or game using *Xcode 13* or earlier. - Support *Xcode 14.1* build settings. +- Upgrade GitHub CI to use *Xcode 14.1* on *macOS 12*. +- Update dependency libraries to match _Vulkan SDK 1.3.236_. +- Update to latest SPIRV-Cross: + - MSL: Implement `CompositeInsert` `OpSpecConstantOp`. + - MSL: Support "raw" buffer input in tessellation evaluation shaders. + - MSL: Don't flatten arrayed per-patch output blocks in tessellation shaders. + - MSL: Account for composite types when assigning locations. + - MSL: Handle partial access chains with array-of-UBO/SSBO. + - MSL: Fix restrict vs __restrict incompatibility. + - MSL: Handle implicit integer promotion rules. + - MSL: Manually update `BuiltInHelperInvocation` when a fragment is discarded. + - MSL: Add missing casts to `Op?MulExtended`. + - MSL: Prevent stores to storage resources in discarded fragments. + - MSL: Don't dereference forwarded copies of `OpVariable` pointers. + - MSL: Refactor member reference in terms of one boolean. + - Fix MSL Access Chain. MoltenVK 1.2.0 diff --git a/ExternalDependencies.xcodeproj/project.pbxproj b/ExternalDependencies.xcodeproj/project.pbxproj index 1e7aca277..b450046ef 100644 --- a/ExternalDependencies.xcodeproj/project.pbxproj +++ b/ExternalDependencies.xcodeproj/project.pbxproj @@ -411,1272 +411,1293 @@ A997FB2726865A560006F71B /* Link.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A997F9CD26865A550006F71B /* Link.cpp */; }; A997FB2826865A560006F71B /* Link.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A997F9CD26865A550006F71B /* Link.cpp */; }; A997FB2926865A560006F71B /* Link.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A997F9CD26865A550006F71B /* Link.cpp */; }; - A9EE0BF728FDD2560013FF99 /* spirv_target_env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B228FDD2550013FF99 /* spirv_target_env.cpp */; }; - A9EE0BF828FDD2560013FF99 /* spirv_target_env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B228FDD2550013FF99 /* spirv_target_env.cpp */; }; - A9EE0BF928FDD2560013FF99 /* spirv_target_env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B228FDD2550013FF99 /* spirv_target_env.cpp */; }; - A9EE0BFA28FDD2560013FF99 /* spirv_fuzzer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08B328FDD2550013FF99 /* spirv_fuzzer_options.h */; }; - A9EE0BFB28FDD2560013FF99 /* spirv_fuzzer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08B328FDD2550013FF99 /* spirv_fuzzer_options.h */; }; - A9EE0BFC28FDD2560013FF99 /* spirv_fuzzer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08B328FDD2550013FF99 /* spirv_fuzzer_options.h */; }; - A9EE0BFD28FDD2560013FF99 /* assembly_grammar.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08B428FDD2550013FF99 /* assembly_grammar.h */; }; - A9EE0BFE28FDD2560013FF99 /* assembly_grammar.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08B428FDD2550013FF99 /* assembly_grammar.h */; }; - A9EE0BFF28FDD2560013FF99 /* assembly_grammar.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08B428FDD2550013FF99 /* assembly_grammar.h */; }; - A9EE0C0028FDD2560013FF99 /* lint_divergent_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B728FDD2550013FF99 /* lint_divergent_derivatives.cpp */; }; - A9EE0C0128FDD2560013FF99 /* lint_divergent_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B728FDD2550013FF99 /* lint_divergent_derivatives.cpp */; }; - A9EE0C0228FDD2560013FF99 /* lint_divergent_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B728FDD2550013FF99 /* lint_divergent_derivatives.cpp */; }; - A9EE0C0328FDD2560013FF99 /* linter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B828FDD2550013FF99 /* linter.cpp */; }; - A9EE0C0428FDD2560013FF99 /* linter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B828FDD2550013FF99 /* linter.cpp */; }; - A9EE0C0528FDD2560013FF99 /* linter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B828FDD2550013FF99 /* linter.cpp */; }; - A9EE0C0628FDD2560013FF99 /* divergence_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B928FDD2550013FF99 /* divergence_analysis.cpp */; }; - A9EE0C0728FDD2560013FF99 /* divergence_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B928FDD2550013FF99 /* divergence_analysis.cpp */; }; - A9EE0C0828FDD2560013FF99 /* divergence_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08B928FDD2550013FF99 /* divergence_analysis.cpp */; }; - A9EE0C0928FDD2560013FF99 /* lints.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BA28FDD2550013FF99 /* lints.h */; }; - A9EE0C0A28FDD2560013FF99 /* lints.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BA28FDD2550013FF99 /* lints.h */; }; - A9EE0C0B28FDD2560013FF99 /* lints.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BA28FDD2550013FF99 /* lints.h */; }; - A9EE0C0C28FDD2560013FF99 /* divergence_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BB28FDD2550013FF99 /* divergence_analysis.h */; }; - A9EE0C0D28FDD2560013FF99 /* divergence_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BB28FDD2550013FF99 /* divergence_analysis.h */; }; - A9EE0C0E28FDD2560013FF99 /* divergence_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BB28FDD2550013FF99 /* divergence_analysis.h */; }; - A9EE0C0F28FDD2560013FF99 /* enum_set.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BC28FDD2550013FF99 /* enum_set.h */; }; - A9EE0C1028FDD2560013FF99 /* enum_set.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BC28FDD2550013FF99 /* enum_set.h */; }; - A9EE0C1128FDD2560013FF99 /* enum_set.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08BC28FDD2550013FF99 /* enum_set.h */; }; - A9EE0C1228FDD2560013FF99 /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08BE28FDD2550013FF99 /* text.cpp */; }; - A9EE0C1328FDD2560013FF99 /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08BE28FDD2550013FF99 /* text.cpp */; }; - A9EE0C1428FDD2560013FF99 /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08BE28FDD2550013FF99 /* text.cpp */; }; - A9EE0C1528FDD2560013FF99 /* assembly_grammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08BF28FDD2550013FF99 /* assembly_grammar.cpp */; }; - A9EE0C1628FDD2560013FF99 /* assembly_grammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08BF28FDD2550013FF99 /* assembly_grammar.cpp */; }; - A9EE0C1728FDD2560013FF99 /* assembly_grammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08BF28FDD2550013FF99 /* assembly_grammar.cpp */; }; - A9EE0C1828FDD2560013FF99 /* text.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C028FDD2550013FF99 /* text.h */; }; - A9EE0C1928FDD2560013FF99 /* text.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C028FDD2550013FF99 /* text.h */; }; - A9EE0C1A28FDD2560013FF99 /* text.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C028FDD2550013FF99 /* text.h */; }; - A9EE0C1B28FDD2560013FF99 /* extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08C128FDD2550013FF99 /* extensions.cpp */; }; - A9EE0C1C28FDD2560013FF99 /* extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08C128FDD2550013FF99 /* extensions.cpp */; }; - A9EE0C1D28FDD2560013FF99 /* extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08C128FDD2550013FF99 /* extensions.cpp */; }; - A9EE0C1E28FDD2560013FF99 /* pch_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08C228FDD2550013FF99 /* pch_source.cpp */; }; - A9EE0C1F28FDD2560013FF99 /* pch_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08C228FDD2550013FF99 /* pch_source.cpp */; }; - A9EE0C2028FDD2560013FF99 /* pch_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08C228FDD2550013FF99 /* pch_source.cpp */; }; - A9EE0C2128FDD2560013FF99 /* parse_number.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C428FDD2550013FF99 /* parse_number.h */; }; - A9EE0C2228FDD2560013FF99 /* parse_number.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C428FDD2550013FF99 /* parse_number.h */; }; - A9EE0C2328FDD2560013FF99 /* parse_number.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C428FDD2550013FF99 /* parse_number.h */; }; - A9EE0C2428FDD2560013FF99 /* ilist_node.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C528FDD2550013FF99 /* ilist_node.h */; }; - A9EE0C2528FDD2560013FF99 /* ilist_node.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C528FDD2550013FF99 /* ilist_node.h */; }; - A9EE0C2628FDD2560013FF99 /* ilist_node.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C528FDD2550013FF99 /* ilist_node.h */; }; - A9EE0C2728FDD2560013FF99 /* make_unique.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C628FDD2550013FF99 /* make_unique.h */; }; - A9EE0C2828FDD2560013FF99 /* make_unique.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C628FDD2550013FF99 /* make_unique.h */; }; - A9EE0C2928FDD2560013FF99 /* make_unique.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C628FDD2550013FF99 /* make_unique.h */; }; - A9EE0C2A28FDD2560013FF99 /* string_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C728FDD2550013FF99 /* string_utils.h */; }; - A9EE0C2B28FDD2560013FF99 /* string_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C728FDD2550013FF99 /* string_utils.h */; }; - A9EE0C2C28FDD2560013FF99 /* string_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C728FDD2550013FF99 /* string_utils.h */; }; - A9EE0C2D28FDD2560013FF99 /* small_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C828FDD2550013FF99 /* small_vector.h */; }; - A9EE0C2E28FDD2560013FF99 /* small_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C828FDD2550013FF99 /* small_vector.h */; }; - A9EE0C2F28FDD2560013FF99 /* small_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C828FDD2550013FF99 /* small_vector.h */; }; - A9EE0C3028FDD2560013FF99 /* hash_combine.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C928FDD2550013FF99 /* hash_combine.h */; }; - A9EE0C3128FDD2560013FF99 /* hash_combine.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C928FDD2550013FF99 /* hash_combine.h */; }; - A9EE0C3228FDD2560013FF99 /* hash_combine.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08C928FDD2550013FF99 /* hash_combine.h */; }; - A9EE0C3328FDD2560013FF99 /* timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08CA28FDD2550013FF99 /* timer.cpp */; }; - A9EE0C3428FDD2560013FF99 /* timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08CA28FDD2550013FF99 /* timer.cpp */; }; - A9EE0C3528FDD2560013FF99 /* timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08CA28FDD2550013FF99 /* timer.cpp */; }; - A9EE0C3628FDD2560013FF99 /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CB28FDD2550013FF99 /* timer.h */; }; - A9EE0C3728FDD2560013FF99 /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CB28FDD2550013FF99 /* timer.h */; }; - A9EE0C3828FDD2560013FF99 /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CB28FDD2550013FF99 /* timer.h */; }; - A9EE0C3928FDD2560013FF99 /* string_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08CC28FDD2550013FF99 /* string_utils.cpp */; }; - A9EE0C3A28FDD2560013FF99 /* string_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08CC28FDD2550013FF99 /* string_utils.cpp */; }; - A9EE0C3B28FDD2560013FF99 /* string_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08CC28FDD2550013FF99 /* string_utils.cpp */; }; - A9EE0C3C28FDD2560013FF99 /* bit_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CD28FDD2550013FF99 /* bit_vector.h */; }; - A9EE0C3D28FDD2560013FF99 /* bit_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CD28FDD2550013FF99 /* bit_vector.h */; }; - A9EE0C3E28FDD2560013FF99 /* bit_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CD28FDD2550013FF99 /* bit_vector.h */; }; - A9EE0C3F28FDD2560013FF99 /* bitutils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CE28FDD2550013FF99 /* bitutils.h */; }; - A9EE0C4028FDD2560013FF99 /* bitutils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CE28FDD2550013FF99 /* bitutils.h */; }; - A9EE0C4128FDD2560013FF99 /* bitutils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CE28FDD2550013FF99 /* bitutils.h */; }; - A9EE0C4228FDD2560013FF99 /* hex_float.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CF28FDD2550013FF99 /* hex_float.h */; }; - A9EE0C4328FDD2560013FF99 /* hex_float.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CF28FDD2550013FF99 /* hex_float.h */; }; - A9EE0C4428FDD2560013FF99 /* hex_float.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08CF28FDD2550013FF99 /* hex_float.h */; }; - A9EE0C4528FDD2560013FF99 /* parse_number.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D028FDD2550013FF99 /* parse_number.cpp */; }; - A9EE0C4628FDD2560013FF99 /* parse_number.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D028FDD2550013FF99 /* parse_number.cpp */; }; - A9EE0C4728FDD2560013FF99 /* parse_number.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D028FDD2550013FF99 /* parse_number.cpp */; }; - A9EE0C4828FDD2560013FF99 /* bit_vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D128FDD2550013FF99 /* bit_vector.cpp */; }; - A9EE0C4928FDD2560013FF99 /* bit_vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D128FDD2550013FF99 /* bit_vector.cpp */; }; - A9EE0C4A28FDD2560013FF99 /* bit_vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D128FDD2550013FF99 /* bit_vector.cpp */; }; - A9EE0C4B28FDD2560013FF99 /* ilist.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D228FDD2550013FF99 /* ilist.h */; }; - A9EE0C4C28FDD2560013FF99 /* ilist.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D228FDD2550013FF99 /* ilist.h */; }; - A9EE0C4D28FDD2560013FF99 /* ilist.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D228FDD2550013FF99 /* ilist.h */; }; - A9EE0C4E28FDD2560013FF99 /* spirv_target_env.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D328FDD2550013FF99 /* spirv_target_env.h */; }; - A9EE0C4F28FDD2560013FF99 /* spirv_target_env.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D328FDD2550013FF99 /* spirv_target_env.h */; }; - A9EE0C5028FDD2560013FF99 /* spirv_target_env.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D328FDD2550013FF99 /* spirv_target_env.h */; }; - A9EE0C5128FDD2560013FF99 /* table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D428FDD2550013FF99 /* table.cpp */; }; - A9EE0C5228FDD2560013FF99 /* table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D428FDD2550013FF99 /* table.cpp */; }; - A9EE0C5328FDD2560013FF99 /* table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D428FDD2550013FF99 /* table.cpp */; }; - A9EE0C5428FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D628FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.h */; }; - A9EE0C5528FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D628FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.h */; }; - A9EE0C5628FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D628FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.h */; }; - A9EE0C5728FDD2560013FF99 /* remove_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D728FDD2550013FF99 /* remove_selection_reduction_opportunity.cpp */; }; - A9EE0C5828FDD2560013FF99 /* remove_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D728FDD2550013FF99 /* remove_selection_reduction_opportunity.cpp */; }; - A9EE0C5928FDD2560013FF99 /* remove_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08D728FDD2550013FF99 /* remove_selection_reduction_opportunity.cpp */; }; - A9EE0C5A28FDD2560013FF99 /* remove_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D828FDD2550013FF99 /* remove_block_reduction_opportunity.h */; }; - A9EE0C5B28FDD2560013FF99 /* remove_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D828FDD2550013FF99 /* remove_block_reduction_opportunity.h */; }; - A9EE0C5C28FDD2560013FF99 /* remove_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D828FDD2550013FF99 /* remove_block_reduction_opportunity.h */; }; - A9EE0C5D28FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D928FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h */; }; - A9EE0C5E28FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D928FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h */; }; - A9EE0C5F28FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08D928FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h */; }; - A9EE0C6028FDD2560013FF99 /* reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DA28FDD2550013FF99 /* reduction_pass.cpp */; }; - A9EE0C6128FDD2560013FF99 /* reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DA28FDD2550013FF99 /* reduction_pass.cpp */; }; - A9EE0C6228FDD2560013FF99 /* reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DA28FDD2550013FF99 /* reduction_pass.cpp */; }; - A9EE0C6328FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08DB28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.h */; }; - A9EE0C6428FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08DB28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.h */; }; - A9EE0C6528FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08DB28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.h */; }; - A9EE0C6628FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DC28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.cpp */; }; - A9EE0C6728FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DC28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.cpp */; }; - A9EE0C6828FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DC28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.cpp */; }; - A9EE0C6928FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08DD28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.h */; }; - A9EE0C6A28FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08DD28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.h */; }; - A9EE0C6B28FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08DD28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.h */; }; - A9EE0C6C28FDD2560013FF99 /* reduction_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DF28FDD2550013FF99 /* reduction_util.cpp */; }; - A9EE0C6D28FDD2560013FF99 /* reduction_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DF28FDD2550013FF99 /* reduction_util.cpp */; }; - A9EE0C6E28FDD2560013FF99 /* reduction_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08DF28FDD2550013FF99 /* reduction_util.cpp */; }; - A9EE0C6F28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E028FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h */; }; - A9EE0C7028FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E028FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h */; }; - A9EE0C7128FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E028FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h */; }; - A9EE0C7228FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E128FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */; }; - A9EE0C7328FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E128FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */; }; - A9EE0C7428FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E128FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */; }; - A9EE0C7528FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E228FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h */; }; - A9EE0C7628FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E228FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h */; }; - A9EE0C7728FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E228FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h */; }; - A9EE0C7828FDD2560013FF99 /* remove_function_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E328FDD2550013FF99 /* remove_function_reduction_opportunity_finder.cpp */; }; - A9EE0C7928FDD2560013FF99 /* remove_function_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E328FDD2550013FF99 /* remove_function_reduction_opportunity_finder.cpp */; }; - A9EE0C7A28FDD2560013FF99 /* remove_function_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E328FDD2550013FF99 /* remove_function_reduction_opportunity_finder.cpp */; }; - A9EE0C7B28FDD2560013FF99 /* remove_instruction_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E428FDD2550013FF99 /* remove_instruction_reduction_opportunity.h */; }; - A9EE0C7C28FDD2560013FF99 /* remove_instruction_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E428FDD2550013FF99 /* remove_instruction_reduction_opportunity.h */; }; - A9EE0C7D28FDD2560013FF99 /* remove_instruction_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E428FDD2550013FF99 /* remove_instruction_reduction_opportunity.h */; }; - A9EE0C7E28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */; }; - A9EE0C7F28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */; }; - A9EE0C8028FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08E528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */; }; - A9EE0C8128FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E628FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */; }; - A9EE0C8228FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E628FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */; }; - A9EE0C8328FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E628FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */; }; - A9EE0C8428FDD2560013FF99 /* remove_function_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E728FDD2550013FF99 /* remove_function_reduction_opportunity.cpp */; }; - A9EE0C8528FDD2560013FF99 /* remove_function_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E728FDD2550013FF99 /* remove_function_reduction_opportunity.cpp */; }; - A9EE0C8628FDD2560013FF99 /* remove_function_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E728FDD2550013FF99 /* remove_function_reduction_opportunity.cpp */; }; - A9EE0C8728FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E828FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */; }; - A9EE0C8828FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E828FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */; }; - A9EE0C8928FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E828FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */; }; - A9EE0C8A28FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E928FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.cpp */; }; - A9EE0C8B28FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E928FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.cpp */; }; - A9EE0C8C28FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08E928FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.cpp */; }; - A9EE0C8D28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08EA28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */; }; - A9EE0C8E28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08EA28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */; }; - A9EE0C8F28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08EA28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */; }; - A9EE0C9028FDD2560013FF99 /* remove_struct_member_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EB28FDD2550013FF99 /* remove_struct_member_reduction_opportunity.h */; }; - A9EE0C9128FDD2560013FF99 /* remove_struct_member_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EB28FDD2550013FF99 /* remove_struct_member_reduction_opportunity.h */; }; - A9EE0C9228FDD2560013FF99 /* remove_struct_member_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EB28FDD2550013FF99 /* remove_struct_member_reduction_opportunity.h */; }; - A9EE0C9328FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EC28FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h */; }; - A9EE0C9428FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EC28FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h */; }; - A9EE0C9528FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EC28FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h */; }; - A9EE0C9628FDD2560013FF99 /* merge_blocks_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08ED28FDD2550013FF99 /* merge_blocks_reduction_opportunity.cpp */; }; - A9EE0C9728FDD2560013FF99 /* merge_blocks_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08ED28FDD2550013FF99 /* merge_blocks_reduction_opportunity.cpp */; }; - A9EE0C9828FDD2560013FF99 /* merge_blocks_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08ED28FDD2550013FF99 /* merge_blocks_reduction_opportunity.cpp */; }; - A9EE0C9928FDD2560013FF99 /* change_operand_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08EE28FDD2550013FF99 /* change_operand_reduction_opportunity.cpp */; }; - A9EE0C9A28FDD2560013FF99 /* change_operand_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08EE28FDD2550013FF99 /* change_operand_reduction_opportunity.cpp */; }; - A9EE0C9B28FDD2560013FF99 /* change_operand_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08EE28FDD2550013FF99 /* change_operand_reduction_opportunity.cpp */; }; - A9EE0C9C28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EF28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.h */; }; - A9EE0C9D28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EF28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.h */; }; - A9EE0C9E28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08EF28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.h */; }; - A9EE0C9F28FDD2560013FF99 /* remove_function_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F028FDD2550013FF99 /* remove_function_reduction_opportunity.h */; }; - A9EE0CA028FDD2560013FF99 /* remove_function_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F028FDD2550013FF99 /* remove_function_reduction_opportunity.h */; }; - A9EE0CA128FDD2560013FF99 /* remove_function_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F028FDD2550013FF99 /* remove_function_reduction_opportunity.h */; }; - A9EE0CA228FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F128FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h */; }; - A9EE0CA328FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F128FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h */; }; - A9EE0CA428FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F128FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h */; }; - A9EE0CA528FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F228FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.h */; }; - A9EE0CA628FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F228FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.h */; }; - A9EE0CA728FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F228FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.h */; }; - A9EE0CA828FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F328FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h */; }; - A9EE0CA928FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F328FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h */; }; - A9EE0CAA28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F328FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h */; }; - A9EE0CAB28FDD2560013FF99 /* remove_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F428FDD2550013FF99 /* remove_selection_reduction_opportunity.h */; }; - A9EE0CAC28FDD2560013FF99 /* remove_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F428FDD2550013FF99 /* remove_selection_reduction_opportunity.h */; }; - A9EE0CAD28FDD2560013FF99 /* remove_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F428FDD2550013FF99 /* remove_selection_reduction_opportunity.h */; }; - A9EE0CAE28FDD2560013FF99 /* remove_instruction_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F528FDD2550013FF99 /* remove_instruction_reduction_opportunity.cpp */; }; - A9EE0CAF28FDD2560013FF99 /* remove_instruction_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F528FDD2550013FF99 /* remove_instruction_reduction_opportunity.cpp */; }; - A9EE0CB028FDD2560013FF99 /* remove_instruction_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F528FDD2550013FF99 /* remove_instruction_reduction_opportunity.cpp */; }; - A9EE0CB128FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F628FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.h */; }; - A9EE0CB228FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F628FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.h */; }; - A9EE0CB328FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F628FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.h */; }; - A9EE0CB428FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F728FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.h */; }; - A9EE0CB528FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F728FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.h */; }; - A9EE0CB628FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08F728FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.h */; }; - A9EE0CB728FDD2560013FF99 /* pch_source_reduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F828FDD2550013FF99 /* pch_source_reduce.cpp */; }; - A9EE0CB828FDD2560013FF99 /* pch_source_reduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F828FDD2550013FF99 /* pch_source_reduce.cpp */; }; - A9EE0CB928FDD2560013FF99 /* pch_source_reduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F828FDD2550013FF99 /* pch_source_reduce.cpp */; }; - A9EE0CBA28FDD2560013FF99 /* remove_struct_member_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F928FDD2550013FF99 /* remove_struct_member_reduction_opportunity.cpp */; }; - A9EE0CBB28FDD2560013FF99 /* remove_struct_member_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F928FDD2550013FF99 /* remove_struct_member_reduction_opportunity.cpp */; }; - A9EE0CBC28FDD2560013FF99 /* remove_struct_member_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08F928FDD2550013FF99 /* remove_struct_member_reduction_opportunity.cpp */; }; - A9EE0CBD28FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FA28FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h */; }; - A9EE0CBE28FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FA28FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h */; }; - A9EE0CBF28FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FA28FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h */; }; - A9EE0CC028FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FB28FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp */; }; - A9EE0CC128FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FB28FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp */; }; - A9EE0CC228FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FB28FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp */; }; - A9EE0CC328FDD2560013FF99 /* reducer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FC28FDD2550013FF99 /* reducer.cpp */; }; - A9EE0CC428FDD2560013FF99 /* reducer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FC28FDD2550013FF99 /* reducer.cpp */; }; - A9EE0CC528FDD2560013FF99 /* reducer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FC28FDD2550013FF99 /* reducer.cpp */; }; - A9EE0CC628FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FD28FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp */; }; - A9EE0CC728FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FD28FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp */; }; - A9EE0CC828FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE08FD28FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp */; }; - A9EE0CC928FDD2560013FF99 /* remove_function_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FE28FDD2550013FF99 /* remove_function_reduction_opportunity_finder.h */; }; - A9EE0CCA28FDD2560013FF99 /* remove_function_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FE28FDD2550013FF99 /* remove_function_reduction_opportunity_finder.h */; }; - A9EE0CCB28FDD2560013FF99 /* remove_function_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FE28FDD2550013FF99 /* remove_function_reduction_opportunity_finder.h */; }; - A9EE0CCC28FDD2560013FF99 /* pch_source_reduce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FF28FDD2550013FF99 /* pch_source_reduce.h */; }; - A9EE0CCD28FDD2560013FF99 /* pch_source_reduce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FF28FDD2550013FF99 /* pch_source_reduce.h */; }; - A9EE0CCE28FDD2560013FF99 /* pch_source_reduce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE08FF28FDD2550013FF99 /* pch_source_reduce.h */; }; - A9EE0CCF28FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090028FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.cpp */; }; - A9EE0CD028FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090028FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.cpp */; }; - A9EE0CD128FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090028FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.cpp */; }; - A9EE0CD228FDD2560013FF99 /* reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090128FDD2550013FF99 /* reduction_opportunity.cpp */; }; - A9EE0CD328FDD2560013FF99 /* reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090128FDD2550013FF99 /* reduction_opportunity.cpp */; }; - A9EE0CD428FDD2560013FF99 /* reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090128FDD2550013FF99 /* reduction_opportunity.cpp */; }; - A9EE0CD528FDD2560013FF99 /* reducer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090228FDD2550013FF99 /* reducer.h */; }; - A9EE0CD628FDD2560013FF99 /* reducer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090228FDD2550013FF99 /* reducer.h */; }; - A9EE0CD728FDD2560013FF99 /* reducer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090228FDD2550013FF99 /* reducer.h */; }; - A9EE0CD828FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090328FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.cpp */; }; - A9EE0CD928FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090328FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.cpp */; }; - A9EE0CDA28FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090328FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.cpp */; }; - A9EE0CDB28FDD2560013FF99 /* reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090428FDD2550013FF99 /* reduction_opportunity.h */; }; - A9EE0CDC28FDD2560013FF99 /* reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090428FDD2550013FF99 /* reduction_opportunity.h */; }; - A9EE0CDD28FDD2560013FF99 /* reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090428FDD2550013FF99 /* reduction_opportunity.h */; }; - A9EE0CDE28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */; }; - A9EE0CDF28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */; }; - A9EE0CE028FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */; }; - A9EE0CE128FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090628FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */; }; - A9EE0CE228FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090628FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */; }; - A9EE0CE328FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090628FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */; }; - A9EE0CE428FDD2560013FF99 /* reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090728FDD2550013FF99 /* reduction_opportunity_finder.h */; }; - A9EE0CE528FDD2560013FF99 /* reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090728FDD2550013FF99 /* reduction_opportunity_finder.h */; }; - A9EE0CE628FDD2560013FF99 /* reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090728FDD2550013FF99 /* reduction_opportunity_finder.h */; }; - A9EE0CE728FDD2560013FF99 /* change_operand_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090828FDD2550013FF99 /* change_operand_reduction_opportunity.h */; }; - A9EE0CE828FDD2560013FF99 /* change_operand_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090828FDD2550013FF99 /* change_operand_reduction_opportunity.h */; }; - A9EE0CE928FDD2560013FF99 /* change_operand_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090828FDD2550013FF99 /* change_operand_reduction_opportunity.h */; }; - A9EE0CEA28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090928FDD2550013FF99 /* remove_block_reduction_opportunity_finder.h */; }; - A9EE0CEB28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090928FDD2550013FF99 /* remove_block_reduction_opportunity_finder.h */; }; - A9EE0CEC28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090928FDD2550013FF99 /* remove_block_reduction_opportunity_finder.h */; }; - A9EE0CED28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090A28FDD2550013FF99 /* remove_block_reduction_opportunity_finder.cpp */; }; - A9EE0CEE28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090A28FDD2550013FF99 /* remove_block_reduction_opportunity_finder.cpp */; }; - A9EE0CEF28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090A28FDD2550013FF99 /* remove_block_reduction_opportunity_finder.cpp */; }; - A9EE0CF028FDD2560013FF99 /* reduction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090B28FDD2550013FF99 /* reduction_util.h */; }; - A9EE0CF128FDD2560013FF99 /* reduction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090B28FDD2550013FF99 /* reduction_util.h */; }; - A9EE0CF228FDD2560013FF99 /* reduction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090B28FDD2550013FF99 /* reduction_util.h */; }; - A9EE0CF328FDD2560013FF99 /* merge_blocks_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090C28FDD2550013FF99 /* merge_blocks_reduction_opportunity.h */; }; - A9EE0CF428FDD2560013FF99 /* merge_blocks_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090C28FDD2550013FF99 /* merge_blocks_reduction_opportunity.h */; }; - A9EE0CF528FDD2560013FF99 /* merge_blocks_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE090C28FDD2550013FF99 /* merge_blocks_reduction_opportunity.h */; }; - A9EE0CF628FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090D28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */; }; - A9EE0CF728FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090D28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */; }; - A9EE0CF828FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090D28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */; }; - A9EE0CF928FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090E28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp */; }; - A9EE0CFA28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090E28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp */; }; - A9EE0CFB28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090E28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp */; }; - A9EE0CFC28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090F28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.cpp */; }; - A9EE0CFD28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090F28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.cpp */; }; - A9EE0CFE28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE090F28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.cpp */; }; - A9EE0CFF28FDD2560013FF99 /* remove_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091028FDD2550013FF99 /* remove_block_reduction_opportunity.cpp */; }; - A9EE0D0028FDD2560013FF99 /* remove_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091028FDD2550013FF99 /* remove_block_reduction_opportunity.cpp */; }; - A9EE0D0128FDD2560013FF99 /* remove_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091028FDD2550013FF99 /* remove_block_reduction_opportunity.cpp */; }; - A9EE0D0228FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091128FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */; }; - A9EE0D0328FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091128FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */; }; - A9EE0D0428FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091128FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */; }; - A9EE0D0528FDD2560013FF99 /* reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091228FDD2550013FF99 /* reduction_opportunity_finder.cpp */; }; - A9EE0D0628FDD2560013FF99 /* reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091228FDD2550013FF99 /* reduction_opportunity_finder.cpp */; }; - A9EE0D0728FDD2560013FF99 /* reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091228FDD2550013FF99 /* reduction_opportunity_finder.cpp */; }; - A9EE0D0828FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091328FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp */; }; - A9EE0D0928FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091328FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp */; }; - A9EE0D0A28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091328FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp */; }; - A9EE0D0B28FDD2560013FF99 /* reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091428FDD2550013FF99 /* reduction_pass.h */; }; - A9EE0D0C28FDD2560013FF99 /* reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091428FDD2550013FF99 /* reduction_pass.h */; }; - A9EE0D0D28FDD2560013FF99 /* reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091428FDD2550013FF99 /* reduction_pass.h */; }; - A9EE0D0E28FDD2560013FF99 /* latest_version_opencl_std_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091528FDD2550013FF99 /* latest_version_opencl_std_header.h */; }; - A9EE0D0F28FDD2560013FF99 /* latest_version_opencl_std_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091528FDD2550013FF99 /* latest_version_opencl_std_header.h */; }; - A9EE0D1028FDD2560013FF99 /* latest_version_opencl_std_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091528FDD2550013FF99 /* latest_version_opencl_std_header.h */; }; - A9EE0D1128FDD2560013FF99 /* spirv_optimizer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091628FDD2550013FF99 /* spirv_optimizer_options.cpp */; }; - A9EE0D1228FDD2560013FF99 /* spirv_optimizer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091628FDD2550013FF99 /* spirv_optimizer_options.cpp */; }; - A9EE0D1328FDD2560013FF99 /* spirv_optimizer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091628FDD2550013FF99 /* spirv_optimizer_options.cpp */; }; - A9EE0D1428FDD2560013FF99 /* cfa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091728FDD2550013FF99 /* cfa.h */; }; - A9EE0D1528FDD2560013FF99 /* cfa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091728FDD2550013FF99 /* cfa.h */; }; - A9EE0D1628FDD2560013FF99 /* cfa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091728FDD2550013FF99 /* cfa.h */; }; - A9EE0D1728FDD2560013FF99 /* pch_source.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091828FDD2550013FF99 /* pch_source.h */; }; - A9EE0D1828FDD2560013FF99 /* pch_source.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091828FDD2550013FF99 /* pch_source.h */; }; - A9EE0D1928FDD2560013FF99 /* pch_source.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091828FDD2550013FF99 /* pch_source.h */; }; - A9EE0D1A28FDD2560013FF99 /* enum_string_mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091928FDD2550013FF99 /* enum_string_mapping.h */; }; - A9EE0D1B28FDD2560013FF99 /* enum_string_mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091928FDD2550013FF99 /* enum_string_mapping.h */; }; - A9EE0D1C28FDD2560013FF99 /* enum_string_mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091928FDD2550013FF99 /* enum_string_mapping.h */; }; - A9EE0D1D28FDD2560013FF99 /* spirv_fuzzer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091A28FDD2550013FF99 /* spirv_fuzzer_options.cpp */; }; - A9EE0D1E28FDD2560013FF99 /* spirv_fuzzer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091A28FDD2550013FF99 /* spirv_fuzzer_options.cpp */; }; - A9EE0D1F28FDD2560013FF99 /* spirv_fuzzer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091A28FDD2550013FF99 /* spirv_fuzzer_options.cpp */; }; - A9EE0D2028FDD2560013FF99 /* spirv_reducer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091B28FDD2550013FF99 /* spirv_reducer_options.h */; }; - A9EE0D2128FDD2560013FF99 /* spirv_reducer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091B28FDD2550013FF99 /* spirv_reducer_options.h */; }; - A9EE0D2228FDD2560013FF99 /* spirv_reducer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE091B28FDD2550013FF99 /* spirv_reducer_options.h */; }; - A9EE0D2328FDD2560013FF99 /* spirv_validator_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091C28FDD2550013FF99 /* spirv_validator_options.cpp */; }; - A9EE0D2428FDD2560013FF99 /* spirv_validator_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091C28FDD2550013FF99 /* spirv_validator_options.cpp */; }; - A9EE0D2528FDD2560013FF99 /* spirv_validator_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE091C28FDD2550013FF99 /* spirv_validator_options.cpp */; }; - A9EE0D2928FDD2560013FF99 /* print.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092328FDD2550013FF99 /* print.cpp */; }; - A9EE0D2A28FDD2560013FF99 /* print.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092328FDD2550013FF99 /* print.cpp */; }; - A9EE0D2B28FDD2560013FF99 /* print.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092328FDD2550013FF99 /* print.cpp */; }; - A9EE0D2C28FDD2560013FF99 /* spirv_definition.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092428FDD2550013FF99 /* spirv_definition.h */; }; - A9EE0D2D28FDD2560013FF99 /* spirv_definition.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092428FDD2550013FF99 /* spirv_definition.h */; }; - A9EE0D2E28FDD2560013FF99 /* spirv_definition.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092428FDD2550013FF99 /* spirv_definition.h */; }; - A9EE0D2F28FDD2560013FF99 /* operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092528FDD2550013FF99 /* operand.h */; }; - A9EE0D3028FDD2560013FF99 /* operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092528FDD2550013FF99 /* operand.h */; }; - A9EE0D3128FDD2560013FF99 /* operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092528FDD2550013FF99 /* operand.h */; }; - A9EE0D3228FDD2560013FF99 /* spirv_endian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092628FDD2550013FF99 /* spirv_endian.cpp */; }; - A9EE0D3328FDD2560013FF99 /* spirv_endian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092628FDD2550013FF99 /* spirv_endian.cpp */; }; - A9EE0D3428FDD2560013FF99 /* spirv_endian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092628FDD2550013FF99 /* spirv_endian.cpp */; }; - A9EE0D3528FDD2560013FF99 /* macro.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092728FDD2550013FF99 /* macro.h */; }; - A9EE0D3628FDD2560013FF99 /* macro.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092728FDD2550013FF99 /* macro.h */; }; - A9EE0D3728FDD2560013FF99 /* macro.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092728FDD2550013FF99 /* macro.h */; }; - A9EE0D3828FDD2560013FF99 /* spirv_constant.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092828FDD2550013FF99 /* spirv_constant.h */; }; - A9EE0D3928FDD2560013FF99 /* spirv_constant.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092828FDD2550013FF99 /* spirv_constant.h */; }; - A9EE0D3A28FDD2560013FF99 /* spirv_constant.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092828FDD2550013FF99 /* spirv_constant.h */; }; - A9EE0D3B28FDD2560013FF99 /* binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092928FDD2550013FF99 /* binary.cpp */; }; - A9EE0D3C28FDD2560013FF99 /* binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092928FDD2550013FF99 /* binary.cpp */; }; - A9EE0D3D28FDD2560013FF99 /* binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092928FDD2550013FF99 /* binary.cpp */; }; - A9EE0D3E28FDD2560013FF99 /* diff.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092C28FDD2550013FF99 /* diff.h */; }; - A9EE0D3F28FDD2560013FF99 /* diff.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092C28FDD2550013FF99 /* diff.h */; }; - A9EE0D4028FDD2560013FF99 /* diff.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092C28FDD2550013FF99 /* diff.h */; }; - A9EE0D4128FDD2560013FF99 /* lcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092D28FDD2550013FF99 /* lcs.h */; }; - A9EE0D4228FDD2560013FF99 /* lcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092D28FDD2550013FF99 /* lcs.h */; }; - A9EE0D4328FDD2560013FF99 /* lcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092D28FDD2550013FF99 /* lcs.h */; }; - A9EE0D4428FDD2560013FF99 /* diff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092E28FDD2550013FF99 /* diff.cpp */; }; - A9EE0D4528FDD2560013FF99 /* diff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092E28FDD2550013FF99 /* diff.cpp */; }; - A9EE0D4628FDD2560013FF99 /* diff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE092E28FDD2550013FF99 /* diff.cpp */; }; - A9EE0D4728FDD2560013FF99 /* spirv_validator_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092F28FDD2550013FF99 /* spirv_validator_options.h */; }; - A9EE0D4828FDD2560013FF99 /* spirv_validator_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092F28FDD2550013FF99 /* spirv_validator_options.h */; }; - A9EE0D4928FDD2560013FF99 /* spirv_validator_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE092F28FDD2550013FF99 /* spirv_validator_options.h */; }; - A9EE0D4A28FDD2560013FF99 /* enum_string_mapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093028FDD2550013FF99 /* enum_string_mapping.cpp */; }; - A9EE0D4B28FDD2560013FF99 /* enum_string_mapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093028FDD2550013FF99 /* enum_string_mapping.cpp */; }; - A9EE0D4C28FDD2560013FF99 /* enum_string_mapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093028FDD2550013FF99 /* enum_string_mapping.cpp */; }; - A9EE0D4D28FDD2560013FF99 /* text_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093128FDD2550013FF99 /* text_handler.h */; }; - A9EE0D4E28FDD2560013FF99 /* text_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093128FDD2550013FF99 /* text_handler.h */; }; - A9EE0D4F28FDD2560013FF99 /* text_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093128FDD2550013FF99 /* text_handler.h */; }; - A9EE0D5028FDD2560013FF99 /* parsed_operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093228FDD2550013FF99 /* parsed_operand.h */; }; - A9EE0D5128FDD2560013FF99 /* parsed_operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093228FDD2550013FF99 /* parsed_operand.h */; }; - A9EE0D5228FDD2560013FF99 /* parsed_operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093228FDD2550013FF99 /* parsed_operand.h */; }; - A9EE0D5328FDD2560013FF99 /* name_mapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093328FDD2550013FF99 /* name_mapper.h */; }; - A9EE0D5428FDD2560013FF99 /* name_mapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093328FDD2550013FF99 /* name_mapper.h */; }; - A9EE0D5528FDD2560013FF99 /* name_mapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093328FDD2550013FF99 /* name_mapper.h */; }; - A9EE0D5628FDD2560013FF99 /* spirv_reducer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093428FDD2550013FF99 /* spirv_reducer_options.cpp */; }; - A9EE0D5728FDD2560013FF99 /* spirv_reducer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093428FDD2550013FF99 /* spirv_reducer_options.cpp */; }; - A9EE0D5828FDD2560013FF99 /* spirv_reducer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093428FDD2550013FF99 /* spirv_reducer_options.cpp */; }; - A9EE0D5928FDD2560013FF99 /* parsed_operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093528FDD2550013FF99 /* parsed_operand.cpp */; }; - A9EE0D5A28FDD2560013FF99 /* parsed_operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093528FDD2550013FF99 /* parsed_operand.cpp */; }; - A9EE0D5B28FDD2560013FF99 /* parsed_operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093528FDD2550013FF99 /* parsed_operand.cpp */; }; - A9EE0D5C28FDD2560013FF99 /* diagnostic.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093628FDD2550013FF99 /* diagnostic.h */; }; - A9EE0D5D28FDD2560013FF99 /* diagnostic.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093628FDD2550013FF99 /* diagnostic.h */; }; - A9EE0D5E28FDD2560013FF99 /* diagnostic.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093628FDD2550013FF99 /* diagnostic.h */; }; - A9EE0D5F28FDD2560013FF99 /* spirv_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093728FDD2550013FF99 /* spirv_endian.h */; }; - A9EE0D6028FDD2560013FF99 /* spirv_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093728FDD2550013FF99 /* spirv_endian.h */; }; - A9EE0D6128FDD2560013FF99 /* spirv_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093728FDD2550013FF99 /* spirv_endian.h */; }; - A9EE0D6228FDD2560013FF99 /* name_mapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093828FDD2550013FF99 /* name_mapper.cpp */; }; - A9EE0D6328FDD2560013FF99 /* name_mapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093828FDD2550013FF99 /* name_mapper.cpp */; }; - A9EE0D6428FDD2560013FF99 /* name_mapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093828FDD2550013FF99 /* name_mapper.cpp */; }; - A9EE0D6528FDD2560013FF99 /* linker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093B28FDD2550013FF99 /* linker.cpp */; }; - A9EE0D6628FDD2560013FF99 /* linker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093B28FDD2550013FF99 /* linker.cpp */; }; - A9EE0D6728FDD2560013FF99 /* linker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093B28FDD2550013FF99 /* linker.cpp */; }; - A9EE0D6828FDD2560013FF99 /* common_debug_info.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093C28FDD2550013FF99 /* common_debug_info.h */; }; - A9EE0D6928FDD2560013FF99 /* common_debug_info.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093C28FDD2550013FF99 /* common_debug_info.h */; }; - A9EE0D6A28FDD2560013FF99 /* common_debug_info.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093C28FDD2550013FF99 /* common_debug_info.h */; }; - A9EE0D6B28FDD2560013FF99 /* software_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093D28FDD2550013FF99 /* software_version.cpp */; }; - A9EE0D6C28FDD2560013FF99 /* software_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093D28FDD2550013FF99 /* software_version.cpp */; }; - A9EE0D6D28FDD2560013FF99 /* software_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093D28FDD2550013FF99 /* software_version.cpp */; }; - A9EE0D6E28FDD2560013FF99 /* opcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093E28FDD2550013FF99 /* opcode.cpp */; }; - A9EE0D6F28FDD2560013FF99 /* opcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093E28FDD2550013FF99 /* opcode.cpp */; }; - A9EE0D7028FDD2560013FF99 /* opcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE093E28FDD2550013FF99 /* opcode.cpp */; }; - A9EE0D7128FDD2560013FF99 /* print.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093F28FDD2550013FF99 /* print.h */; }; - A9EE0D7228FDD2560013FF99 /* print.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093F28FDD2550013FF99 /* print.h */; }; - A9EE0D7328FDD2560013FF99 /* print.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE093F28FDD2550013FF99 /* print.h */; }; - A9EE0D7428FDD2560013FF99 /* ext_inst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094028FDD2550013FF99 /* ext_inst.cpp */; }; - A9EE0D7528FDD2560013FF99 /* ext_inst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094028FDD2550013FF99 /* ext_inst.cpp */; }; - A9EE0D7628FDD2560013FF99 /* ext_inst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094028FDD2550013FF99 /* ext_inst.cpp */; }; - A9EE0D7728FDD2560013FF99 /* disassemble.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094128FDD2550013FF99 /* disassemble.h */; }; - A9EE0D7828FDD2560013FF99 /* disassemble.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094128FDD2550013FF99 /* disassemble.h */; }; - A9EE0D7928FDD2560013FF99 /* disassemble.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094128FDD2550013FF99 /* disassemble.h */; }; - A9EE0D7A28FDD2560013FF99 /* optimizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094328FDD2550013FF99 /* optimizer.cpp */; }; - A9EE0D7B28FDD2560013FF99 /* optimizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094328FDD2550013FF99 /* optimizer.cpp */; }; - A9EE0D7C28FDD2560013FF99 /* optimizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094328FDD2550013FF99 /* optimizer.cpp */; }; - A9EE0D7D28FDD2560013FF99 /* if_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094428FDD2550013FF99 /* if_conversion.h */; }; - A9EE0D7E28FDD2560013FF99 /* if_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094428FDD2550013FF99 /* if_conversion.h */; }; - A9EE0D7F28FDD2560013FF99 /* if_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094428FDD2550013FF99 /* if_conversion.h */; }; - A9EE0D8028FDD2560013FF99 /* register_pressure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094528FDD2550013FF99 /* register_pressure.cpp */; }; - A9EE0D8128FDD2560013FF99 /* register_pressure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094528FDD2550013FF99 /* register_pressure.cpp */; }; - A9EE0D8228FDD2560013FF99 /* register_pressure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094528FDD2550013FF99 /* register_pressure.cpp */; }; - A9EE0D8328FDD2560013FF99 /* loop_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094628FDD2550013FF99 /* loop_utils.cpp */; }; - A9EE0D8428FDD2560013FF99 /* loop_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094628FDD2550013FF99 /* loop_utils.cpp */; }; - A9EE0D8528FDD2560013FF99 /* loop_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094628FDD2550013FF99 /* loop_utils.cpp */; }; - A9EE0D8628FDD2560013FF99 /* strip_nonsemantic_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094728FDD2550013FF99 /* strip_nonsemantic_info_pass.h */; }; - A9EE0D8728FDD2560013FF99 /* strip_nonsemantic_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094728FDD2550013FF99 /* strip_nonsemantic_info_pass.h */; }; - A9EE0D8828FDD2560013FF99 /* strip_nonsemantic_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094728FDD2550013FF99 /* strip_nonsemantic_info_pass.h */; }; - A9EE0D8928FDD2560013FF99 /* spread_volatile_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094828FDD2550013FF99 /* spread_volatile_semantics.cpp */; }; - A9EE0D8A28FDD2560013FF99 /* spread_volatile_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094828FDD2550013FF99 /* spread_volatile_semantics.cpp */; }; - A9EE0D8B28FDD2560013FF99 /* spread_volatile_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094828FDD2550013FF99 /* spread_volatile_semantics.cpp */; }; - A9EE0D8C28FDD2560013FF99 /* merge_return_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094928FDD2550013FF99 /* merge_return_pass.h */; }; - A9EE0D8D28FDD2560013FF99 /* merge_return_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094928FDD2550013FF99 /* merge_return_pass.h */; }; - A9EE0D8E28FDD2560013FF99 /* merge_return_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094928FDD2550013FF99 /* merge_return_pass.h */; }; - A9EE0D8F28FDD2560013FF99 /* inline_opaque_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094A28FDD2550013FF99 /* inline_opaque_pass.h */; }; - A9EE0D9028FDD2560013FF99 /* inline_opaque_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094A28FDD2550013FF99 /* inline_opaque_pass.h */; }; - A9EE0D9128FDD2560013FF99 /* inline_opaque_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094A28FDD2550013FF99 /* inline_opaque_pass.h */; }; - A9EE0D9228FDD2560013FF99 /* loop_fusion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094B28FDD2550013FF99 /* loop_fusion.h */; }; - A9EE0D9328FDD2560013FF99 /* loop_fusion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094B28FDD2550013FF99 /* loop_fusion.h */; }; - A9EE0D9428FDD2560013FF99 /* loop_fusion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094B28FDD2550013FF99 /* loop_fusion.h */; }; - A9EE0D9528FDD2560013FF99 /* combine_access_chains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094C28FDD2550013FF99 /* combine_access_chains.cpp */; }; - A9EE0D9628FDD2560013FF99 /* combine_access_chains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094C28FDD2550013FF99 /* combine_access_chains.cpp */; }; - A9EE0D9728FDD2560013FF99 /* combine_access_chains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094C28FDD2550013FF99 /* combine_access_chains.cpp */; }; - A9EE0D9828FDD2560013FF99 /* build_module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094D28FDD2550013FF99 /* build_module.cpp */; }; - A9EE0D9928FDD2560013FF99 /* build_module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094D28FDD2550013FF99 /* build_module.cpp */; }; - A9EE0D9A28FDD2560013FF99 /* build_module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE094D28FDD2550013FF99 /* build_module.cpp */; }; - A9EE0D9B28FDD2560013FF99 /* composite.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094E28FDD2550013FF99 /* composite.h */; }; - A9EE0D9C28FDD2560013FF99 /* composite.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094E28FDD2550013FF99 /* composite.h */; }; - A9EE0D9D28FDD2560013FF99 /* composite.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094E28FDD2550013FF99 /* composite.h */; }; - A9EE0D9E28FDD2560013FF99 /* compact_ids_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094F28FDD2550013FF99 /* compact_ids_pass.h */; }; - A9EE0D9F28FDD2560013FF99 /* compact_ids_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094F28FDD2550013FF99 /* compact_ids_pass.h */; }; - A9EE0DA028FDD2560013FF99 /* compact_ids_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE094F28FDD2550013FF99 /* compact_ids_pass.h */; }; - A9EE0DA128FDD2560013FF99 /* register_pressure.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095028FDD2550013FF99 /* register_pressure.h */; }; - A9EE0DA228FDD2560013FF99 /* register_pressure.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095028FDD2550013FF99 /* register_pressure.h */; }; - A9EE0DA328FDD2560013FF99 /* register_pressure.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095028FDD2550013FF99 /* register_pressure.h */; }; - A9EE0DA428FDD2560013FF99 /* tree_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095128FDD2550013FF99 /* tree_iterator.h */; }; - A9EE0DA528FDD2560013FF99 /* tree_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095128FDD2550013FF99 /* tree_iterator.h */; }; - A9EE0DA628FDD2560013FF99 /* tree_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095128FDD2550013FF99 /* tree_iterator.h */; }; - A9EE0DA728FDD2560013FF99 /* interface_var_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095228FDD2550013FF99 /* interface_var_sroa.h */; }; - A9EE0DA828FDD2560013FF99 /* interface_var_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095228FDD2550013FF99 /* interface_var_sroa.h */; }; - A9EE0DA928FDD2560013FF99 /* interface_var_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095228FDD2550013FF99 /* interface_var_sroa.h */; }; - A9EE0DAA28FDD2560013FF99 /* graphics_robust_access_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095328FDD2550013FF99 /* graphics_robust_access_pass.h */; }; - A9EE0DAB28FDD2560013FF99 /* graphics_robust_access_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095328FDD2550013FF99 /* graphics_robust_access_pass.h */; }; - A9EE0DAC28FDD2560013FF99 /* graphics_robust_access_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095328FDD2550013FF99 /* graphics_robust_access_pass.h */; }; - A9EE0DAD28FDD2560013FF99 /* local_single_store_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095428FDD2550013FF99 /* local_single_store_elim_pass.h */; }; - A9EE0DAE28FDD2560013FF99 /* local_single_store_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095428FDD2550013FF99 /* local_single_store_elim_pass.h */; }; - A9EE0DAF28FDD2560013FF99 /* local_single_store_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095428FDD2550013FF99 /* local_single_store_elim_pass.h */; }; - A9EE0DB028FDD2560013FF99 /* reduce_load_size.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095528FDD2550013FF99 /* reduce_load_size.h */; }; - A9EE0DB128FDD2560013FF99 /* reduce_load_size.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095528FDD2550013FF99 /* reduce_load_size.h */; }; - A9EE0DB228FDD2560013FF99 /* reduce_load_size.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095528FDD2550013FF99 /* reduce_load_size.h */; }; - A9EE0DB328FDD2560013FF99 /* code_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095628FDD2550013FF99 /* code_sink.cpp */; }; - A9EE0DB428FDD2560013FF99 /* code_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095628FDD2550013FF99 /* code_sink.cpp */; }; - A9EE0DB528FDD2560013FF99 /* code_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095628FDD2550013FF99 /* code_sink.cpp */; }; - A9EE0DB628FDD2560013FF99 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095728FDD2550013FF99 /* types.cpp */; }; - A9EE0DB728FDD2560013FF99 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095728FDD2550013FF99 /* types.cpp */; }; - A9EE0DB828FDD2560013FF99 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095728FDD2550013FF99 /* types.cpp */; }; - A9EE0DB928FDD2560013FF99 /* scalar_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095828FDD2550013FF99 /* scalar_analysis.h */; }; - A9EE0DBA28FDD2560013FF99 /* scalar_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095828FDD2550013FF99 /* scalar_analysis.h */; }; - A9EE0DBB28FDD2560013FF99 /* scalar_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095828FDD2550013FF99 /* scalar_analysis.h */; }; - A9EE0DBC28FDD2560013FF99 /* strip_debug_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095928FDD2550013FF99 /* strip_debug_info_pass.h */; }; - A9EE0DBD28FDD2560013FF99 /* strip_debug_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095928FDD2550013FF99 /* strip_debug_info_pass.h */; }; - A9EE0DBE28FDD2560013FF99 /* strip_debug_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095928FDD2550013FF99 /* strip_debug_info_pass.h */; }; - A9EE0DBF28FDD2560013FF99 /* replace_desc_array_access_using_var_index.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095A28FDD2550013FF99 /* replace_desc_array_access_using_var_index.h */; }; - A9EE0DC028FDD2560013FF99 /* replace_desc_array_access_using_var_index.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095A28FDD2550013FF99 /* replace_desc_array_access_using_var_index.h */; }; - A9EE0DC128FDD2560013FF99 /* replace_desc_array_access_using_var_index.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095A28FDD2550013FF99 /* replace_desc_array_access_using_var_index.h */; }; - A9EE0DC228FDD2560013FF99 /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095B28FDD2550013FF99 /* cfg.cpp */; }; - A9EE0DC328FDD2560013FF99 /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095B28FDD2550013FF99 /* cfg.cpp */; }; - A9EE0DC428FDD2560013FF99 /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095B28FDD2550013FF99 /* cfg.cpp */; }; - A9EE0DC528FDD2560013FF99 /* decoration_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095C28FDD2550013FF99 /* decoration_manager.cpp */; }; - A9EE0DC628FDD2560013FF99 /* decoration_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095C28FDD2550013FF99 /* decoration_manager.cpp */; }; - A9EE0DC728FDD2560013FF99 /* decoration_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095C28FDD2550013FF99 /* decoration_manager.cpp */; }; - A9EE0DC828FDD2560013FF99 /* local_single_block_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095D28FDD2550013FF99 /* local_single_block_elim_pass.cpp */; }; - A9EE0DC928FDD2560013FF99 /* local_single_block_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095D28FDD2550013FF99 /* local_single_block_elim_pass.cpp */; }; - A9EE0DCA28FDD2560013FF99 /* local_single_block_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095D28FDD2550013FF99 /* local_single_block_elim_pass.cpp */; }; - A9EE0DCB28FDD2560013FF99 /* freeze_spec_constant_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095E28FDD2550013FF99 /* freeze_spec_constant_value_pass.cpp */; }; - A9EE0DCC28FDD2560013FF99 /* freeze_spec_constant_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095E28FDD2550013FF99 /* freeze_spec_constant_value_pass.cpp */; }; - A9EE0DCD28FDD2560013FF99 /* freeze_spec_constant_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE095E28FDD2550013FF99 /* freeze_spec_constant_value_pass.cpp */; }; - A9EE0DCE28FDD2560013FF99 /* replace_invalid_opc.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095F28FDD2550013FF99 /* replace_invalid_opc.h */; }; - A9EE0DCF28FDD2560013FF99 /* replace_invalid_opc.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095F28FDD2550013FF99 /* replace_invalid_opc.h */; }; - A9EE0DD028FDD2560013FF99 /* replace_invalid_opc.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE095F28FDD2550013FF99 /* replace_invalid_opc.h */; }; - A9EE0DD128FDD2560013FF99 /* local_access_chain_convert_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096028FDD2550013FF99 /* local_access_chain_convert_pass.h */; }; - A9EE0DD228FDD2560013FF99 /* local_access_chain_convert_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096028FDD2550013FF99 /* local_access_chain_convert_pass.h */; }; - A9EE0DD328FDD2560013FF99 /* local_access_chain_convert_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096028FDD2550013FF99 /* local_access_chain_convert_pass.h */; }; - A9EE0DD428FDD2560013FF99 /* inst_bindless_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096128FDD2550013FF99 /* inst_bindless_check_pass.cpp */; }; - A9EE0DD528FDD2560013FF99 /* inst_bindless_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096128FDD2550013FF99 /* inst_bindless_check_pass.cpp */; }; - A9EE0DD628FDD2560013FF99 /* inst_bindless_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096128FDD2550013FF99 /* inst_bindless_check_pass.cpp */; }; - A9EE0DD728FDD2560013FF99 /* local_redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096228FDD2550013FF99 /* local_redundancy_elimination.cpp */; }; - A9EE0DD828FDD2560013FF99 /* local_redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096228FDD2550013FF99 /* local_redundancy_elimination.cpp */; }; - A9EE0DD928FDD2560013FF99 /* local_redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096228FDD2550013FF99 /* local_redundancy_elimination.cpp */; }; - A9EE0DDA28FDD2560013FF99 /* instrument_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096428FDD2550013FF99 /* instrument_pass.cpp */; }; - A9EE0DDB28FDD2560013FF99 /* instrument_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096428FDD2550013FF99 /* instrument_pass.cpp */; }; - A9EE0DDC28FDD2560013FF99 /* instrument_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096428FDD2550013FF99 /* instrument_pass.cpp */; }; - A9EE0DDD28FDD2560013FF99 /* propagator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096528FDD2550013FF99 /* propagator.h */; }; - A9EE0DDE28FDD2560013FF99 /* propagator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096528FDD2550013FF99 /* propagator.h */; }; - A9EE0DDF28FDD2560013FF99 /* propagator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096528FDD2550013FF99 /* propagator.h */; }; - A9EE0DE028FDD2560013FF99 /* instruction_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096628FDD2550013FF99 /* instruction_list.h */; }; - A9EE0DE128FDD2560013FF99 /* instruction_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096628FDD2550013FF99 /* instruction_list.h */; }; - A9EE0DE228FDD2560013FF99 /* instruction_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096628FDD2550013FF99 /* instruction_list.h */; }; - A9EE0DE328FDD2560013FF99 /* feature_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096728FDD2550013FF99 /* feature_manager.cpp */; }; - A9EE0DE428FDD2560013FF99 /* feature_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096728FDD2550013FF99 /* feature_manager.cpp */; }; - A9EE0DE528FDD2560013FF99 /* feature_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096728FDD2550013FF99 /* feature_manager.cpp */; }; - A9EE0DE628FDD2560013FF99 /* pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096828FDD2550013FF99 /* pass.cpp */; }; - A9EE0DE728FDD2560013FF99 /* pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096828FDD2550013FF99 /* pass.cpp */; }; - A9EE0DE828FDD2560013FF99 /* pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096828FDD2550013FF99 /* pass.cpp */; }; - A9EE0DE928FDD2560013FF99 /* loop_fission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096928FDD2550013FF99 /* loop_fission.cpp */; }; - A9EE0DEA28FDD2560013FF99 /* loop_fission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096928FDD2550013FF99 /* loop_fission.cpp */; }; - A9EE0DEB28FDD2560013FF99 /* loop_fission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096928FDD2550013FF99 /* loop_fission.cpp */; }; - A9EE0DEC28FDD2560013FF99 /* dominator_tree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096A28FDD2550013FF99 /* dominator_tree.cpp */; }; - A9EE0DED28FDD2560013FF99 /* dominator_tree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096A28FDD2550013FF99 /* dominator_tree.cpp */; }; - A9EE0DEE28FDD2560013FF99 /* dominator_tree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096A28FDD2550013FF99 /* dominator_tree.cpp */; }; - A9EE0DEF28FDD2560013FF99 /* amd_ext_to_khr.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096B28FDD2550013FF99 /* amd_ext_to_khr.h */; }; - A9EE0DF028FDD2560013FF99 /* amd_ext_to_khr.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096B28FDD2550013FF99 /* amd_ext_to_khr.h */; }; - A9EE0DF128FDD2560013FF99 /* amd_ext_to_khr.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096B28FDD2550013FF99 /* amd_ext_to_khr.h */; }; - A9EE0DF228FDD2560013FF99 /* merge_return_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096C28FDD2550013FF99 /* merge_return_pass.cpp */; }; - A9EE0DF328FDD2560013FF99 /* merge_return_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096C28FDD2550013FF99 /* merge_return_pass.cpp */; }; - A9EE0DF428FDD2560013FF99 /* merge_return_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096C28FDD2550013FF99 /* merge_return_pass.cpp */; }; - A9EE0DF528FDD2560013FF99 /* ir_context.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096D28FDD2550013FF99 /* ir_context.h */; }; - A9EE0DF628FDD2560013FF99 /* ir_context.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096D28FDD2550013FF99 /* ir_context.h */; }; - A9EE0DF728FDD2560013FF99 /* ir_context.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096D28FDD2550013FF99 /* ir_context.h */; }; - A9EE0DF828FDD2560013FF99 /* eliminate_dead_constant_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096E28FDD2550013FF99 /* eliminate_dead_constant_pass.cpp */; }; - A9EE0DF928FDD2560013FF99 /* eliminate_dead_constant_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096E28FDD2550013FF99 /* eliminate_dead_constant_pass.cpp */; }; - A9EE0DFA28FDD2560013FF99 /* eliminate_dead_constant_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE096E28FDD2550013FF99 /* eliminate_dead_constant_pass.cpp */; }; - A9EE0DFB28FDD2560013FF99 /* control_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096F28FDD2550013FF99 /* control_dependence.h */; }; - A9EE0DFC28FDD2560013FF99 /* control_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096F28FDD2550013FF99 /* control_dependence.h */; }; - A9EE0DFD28FDD2560013FF99 /* control_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE096F28FDD2550013FF99 /* control_dependence.h */; }; - A9EE0DFE28FDD2560013FF99 /* cfg_cleanup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097028FDD2550013FF99 /* cfg_cleanup_pass.cpp */; }; - A9EE0DFF28FDD2560013FF99 /* cfg_cleanup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097028FDD2550013FF99 /* cfg_cleanup_pass.cpp */; }; - A9EE0E0028FDD2560013FF99 /* cfg_cleanup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097028FDD2550013FF99 /* cfg_cleanup_pass.cpp */; }; - A9EE0E0128FDD2560013FF99 /* wrap_opkill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097128FDD2550013FF99 /* wrap_opkill.cpp */; }; - A9EE0E0228FDD2560013FF99 /* wrap_opkill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097128FDD2550013FF99 /* wrap_opkill.cpp */; }; - A9EE0E0328FDD2560013FF99 /* wrap_opkill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097128FDD2550013FF99 /* wrap_opkill.cpp */; }; - A9EE0E0428FDD2560013FF99 /* const_folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097228FDD2550013FF99 /* const_folding_rules.cpp */; }; - A9EE0E0528FDD2560013FF99 /* const_folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097228FDD2550013FF99 /* const_folding_rules.cpp */; }; - A9EE0E0628FDD2560013FF99 /* const_folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097228FDD2550013FF99 /* const_folding_rules.cpp */; }; - A9EE0E0728FDD2560013FF99 /* loop_unroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097328FDD2550013FF99 /* loop_unroller.h */; }; - A9EE0E0828FDD2560013FF99 /* loop_unroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097328FDD2550013FF99 /* loop_unroller.h */; }; - A9EE0E0928FDD2560013FF99 /* loop_unroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097328FDD2550013FF99 /* loop_unroller.h */; }; - A9EE0E0A28FDD2560013FF99 /* strip_debug_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097428FDD2550013FF99 /* strip_debug_info_pass.cpp */; }; - A9EE0E0B28FDD2560013FF99 /* strip_debug_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097428FDD2550013FF99 /* strip_debug_info_pass.cpp */; }; - A9EE0E0C28FDD2560013FF99 /* strip_debug_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097428FDD2550013FF99 /* strip_debug_info_pass.cpp */; }; - A9EE0E0D28FDD2560013FF99 /* ssa_rewrite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097528FDD2550013FF99 /* ssa_rewrite_pass.cpp */; }; - A9EE0E0E28FDD2560013FF99 /* ssa_rewrite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097528FDD2550013FF99 /* ssa_rewrite_pass.cpp */; }; - A9EE0E0F28FDD2560013FF99 /* ssa_rewrite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097528FDD2550013FF99 /* ssa_rewrite_pass.cpp */; }; - A9EE0E1028FDD2560013FF99 /* loop_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097628FDD2550013FF99 /* loop_dependence.cpp */; }; - A9EE0E1128FDD2560013FF99 /* loop_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097628FDD2550013FF99 /* loop_dependence.cpp */; }; - A9EE0E1228FDD2560013FF99 /* loop_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097628FDD2550013FF99 /* loop_dependence.cpp */; }; - A9EE0E1328FDD2560013FF99 /* unify_const_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097728FDD2550013FF99 /* unify_const_pass.h */; }; - A9EE0E1428FDD2560013FF99 /* unify_const_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097728FDD2550013FF99 /* unify_const_pass.h */; }; - A9EE0E1528FDD2560013FF99 /* unify_const_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097728FDD2550013FF99 /* unify_const_pass.h */; }; - A9EE0E1628FDD2560013FF99 /* ir_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097828FDD2550013FF99 /* ir_loader.h */; }; - A9EE0E1728FDD2560013FF99 /* ir_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097828FDD2550013FF99 /* ir_loader.h */; }; - A9EE0E1828FDD2560013FF99 /* ir_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097828FDD2550013FF99 /* ir_loader.h */; }; - A9EE0E1928FDD2560013FF99 /* inst_debug_printf_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097928FDD2550013FF99 /* inst_debug_printf_pass.cpp */; }; - A9EE0E1A28FDD2560013FF99 /* inst_debug_printf_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097928FDD2550013FF99 /* inst_debug_printf_pass.cpp */; }; - A9EE0E1B28FDD2560013FF99 /* inst_debug_printf_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097928FDD2550013FF99 /* inst_debug_printf_pass.cpp */; }; - A9EE0E1C28FDD2560013FF99 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097A28FDD2550013FF99 /* types.h */; }; - A9EE0E1D28FDD2560013FF99 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097A28FDD2550013FF99 /* types.h */; }; - A9EE0E1E28FDD2560013FF99 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097A28FDD2550013FF99 /* types.h */; }; - A9EE0E1F28FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097B28FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.h */; }; - A9EE0E2028FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097B28FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.h */; }; - A9EE0E2128FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097B28FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.h */; }; - A9EE0E2228FDD2560013FF99 /* mem_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097C28FDD2550013FF99 /* mem_pass.cpp */; }; - A9EE0E2328FDD2560013FF99 /* mem_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097C28FDD2550013FF99 /* mem_pass.cpp */; }; - A9EE0E2428FDD2560013FF99 /* mem_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097C28FDD2550013FF99 /* mem_pass.cpp */; }; - A9EE0E2528FDD2560013FF99 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097D28FDD2550013FF99 /* basic_block.h */; }; - A9EE0E2628FDD2560013FF99 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097D28FDD2550013FF99 /* basic_block.h */; }; - A9EE0E2728FDD2560013FF99 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE097D28FDD2550013FF99 /* basic_block.h */; }; - A9EE0E2828FDD2560013FF99 /* remove_duplicates_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097E28FDD2550013FF99 /* remove_duplicates_pass.cpp */; }; - A9EE0E2928FDD2560013FF99 /* remove_duplicates_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097E28FDD2550013FF99 /* remove_duplicates_pass.cpp */; }; - A9EE0E2A28FDD2560013FF99 /* remove_duplicates_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097E28FDD2550013FF99 /* remove_duplicates_pass.cpp */; }; - A9EE0E2B28FDD2560013FF99 /* dead_variable_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097F28FDD2550013FF99 /* dead_variable_elimination.cpp */; }; - A9EE0E2C28FDD2560013FF99 /* dead_variable_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097F28FDD2550013FF99 /* dead_variable_elimination.cpp */; }; - A9EE0E2D28FDD2560013FF99 /* dead_variable_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE097F28FDD2550013FF99 /* dead_variable_elimination.cpp */; }; - A9EE0E2E28FDD2560013FF99 /* block_merge_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098028FDD2550013FF99 /* block_merge_pass.h */; }; - A9EE0E2F28FDD2560013FF99 /* block_merge_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098028FDD2550013FF99 /* block_merge_pass.h */; }; - A9EE0E3028FDD2560013FF99 /* block_merge_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098028FDD2550013FF99 /* block_merge_pass.h */; }; - A9EE0E3128FDD2560013FF99 /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098128FDD2550013FF99 /* module.cpp */; }; - A9EE0E3228FDD2560013FF99 /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098128FDD2550013FF99 /* module.cpp */; }; - A9EE0E3328FDD2560013FF99 /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098128FDD2550013FF99 /* module.cpp */; }; - A9EE0E3428FDD2560013FF99 /* debug_info_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098228FDD2550013FF99 /* debug_info_manager.h */; }; - A9EE0E3528FDD2560013FF99 /* debug_info_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098228FDD2550013FF99 /* debug_info_manager.h */; }; - A9EE0E3628FDD2560013FF99 /* debug_info_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098228FDD2550013FF99 /* debug_info_manager.h */; }; - A9EE0E3728FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098328FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.cpp */; }; - A9EE0E3828FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098328FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.cpp */; }; - A9EE0E3928FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098328FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.cpp */; }; - A9EE0E3A28FDD2560013FF99 /* loop_unswitch_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098428FDD2550013FF99 /* loop_unswitch_pass.cpp */; }; - A9EE0E3B28FDD2560013FF99 /* loop_unswitch_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098428FDD2550013FF99 /* loop_unswitch_pass.cpp */; }; - A9EE0E3C28FDD2560013FF99 /* loop_unswitch_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098428FDD2550013FF99 /* loop_unswitch_pass.cpp */; }; - A9EE0E3D28FDD2560013FF99 /* unify_const_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098528FDD2550013FF99 /* unify_const_pass.cpp */; }; - A9EE0E3E28FDD2560013FF99 /* unify_const_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098528FDD2550013FF99 /* unify_const_pass.cpp */; }; - A9EE0E3F28FDD2560013FF99 /* unify_const_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098528FDD2550013FF99 /* unify_const_pass.cpp */; }; - A9EE0E4028FDD2560013FF99 /* type_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098628FDD2550013FF99 /* type_manager.cpp */; }; - A9EE0E4128FDD2560013FF99 /* type_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098628FDD2550013FF99 /* type_manager.cpp */; }; - A9EE0E4228FDD2560013FF99 /* type_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098628FDD2550013FF99 /* type_manager.cpp */; }; - A9EE0E4328FDD2560013FF99 /* private_to_local_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098728FDD2550013FF99 /* private_to_local_pass.h */; }; - A9EE0E4428FDD2560013FF99 /* private_to_local_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098728FDD2550013FF99 /* private_to_local_pass.h */; }; - A9EE0E4528FDD2560013FF99 /* private_to_local_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098728FDD2550013FF99 /* private_to_local_pass.h */; }; - A9EE0E4628FDD2560013FF99 /* convert_to_half_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098828FDD2550013FF99 /* convert_to_half_pass.h */; }; - A9EE0E4728FDD2560013FF99 /* convert_to_half_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098828FDD2550013FF99 /* convert_to_half_pass.h */; }; - A9EE0E4828FDD2560013FF99 /* convert_to_half_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098828FDD2550013FF99 /* convert_to_half_pass.h */; }; - A9EE0E4928FDD2560013FF99 /* remove_dontinline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098928FDD2550013FF99 /* remove_dontinline_pass.h */; }; - A9EE0E4A28FDD2560013FF99 /* remove_dontinline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098928FDD2550013FF99 /* remove_dontinline_pass.h */; }; - A9EE0E4B28FDD2560013FF99 /* remove_dontinline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098928FDD2550013FF99 /* remove_dontinline_pass.h */; }; - A9EE0E4C28FDD2560013FF99 /* relax_float_ops_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098A28FDD2550013FF99 /* relax_float_ops_pass.h */; }; - A9EE0E4D28FDD2560013FF99 /* relax_float_ops_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098A28FDD2550013FF99 /* relax_float_ops_pass.h */; }; - A9EE0E4E28FDD2560013FF99 /* relax_float_ops_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098A28FDD2550013FF99 /* relax_float_ops_pass.h */; }; - A9EE0E4F28FDD2570013FF99 /* inline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098B28FDD2550013FF99 /* inline_pass.cpp */; }; - A9EE0E5028FDD2570013FF99 /* inline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098B28FDD2550013FF99 /* inline_pass.cpp */; }; - A9EE0E5128FDD2570013FF99 /* inline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098B28FDD2550013FF99 /* inline_pass.cpp */; }; - A9EE0E5228FDD2570013FF99 /* def_use_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098C28FDD2550013FF99 /* def_use_manager.h */; }; - A9EE0E5328FDD2570013FF99 /* def_use_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098C28FDD2550013FF99 /* def_use_manager.h */; }; - A9EE0E5428FDD2570013FF99 /* def_use_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098C28FDD2550013FF99 /* def_use_manager.h */; }; - A9EE0E5528FDD2570013FF99 /* ir_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098D28FDD2550013FF99 /* ir_loader.cpp */; }; - A9EE0E5628FDD2570013FF99 /* ir_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098D28FDD2550013FF99 /* ir_loader.cpp */; }; - A9EE0E5728FDD2570013FF99 /* ir_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE098D28FDD2550013FF99 /* ir_loader.cpp */; }; - A9EE0E5828FDD2570013FF99 /* convert_to_sampled_image_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098E28FDD2550013FF99 /* convert_to_sampled_image_pass.h */; }; - A9EE0E5928FDD2570013FF99 /* convert_to_sampled_image_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098E28FDD2550013FF99 /* convert_to_sampled_image_pass.h */; }; - A9EE0E5A28FDD2570013FF99 /* convert_to_sampled_image_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098E28FDD2550013FF99 /* convert_to_sampled_image_pass.h */; }; - A9EE0E5B28FDD2570013FF99 /* cfg_cleanup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098F28FDD2550013FF99 /* cfg_cleanup_pass.h */; }; - A9EE0E5C28FDD2570013FF99 /* cfg_cleanup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098F28FDD2550013FF99 /* cfg_cleanup_pass.h */; }; - A9EE0E5D28FDD2570013FF99 /* cfg_cleanup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE098F28FDD2550013FF99 /* cfg_cleanup_pass.h */; }; - A9EE0E5E28FDD2570013FF99 /* licm_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099028FDD2550013FF99 /* licm_pass.cpp */; }; - A9EE0E5F28FDD2570013FF99 /* licm_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099028FDD2550013FF99 /* licm_pass.cpp */; }; - A9EE0E6028FDD2570013FF99 /* licm_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099028FDD2550013FF99 /* licm_pass.cpp */; }; - A9EE0E6128FDD2570013FF99 /* eliminate_dead_functions_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099128FDD2550013FF99 /* eliminate_dead_functions_pass.cpp */; }; - A9EE0E6228FDD2570013FF99 /* eliminate_dead_functions_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099128FDD2550013FF99 /* eliminate_dead_functions_pass.cpp */; }; - A9EE0E6328FDD2570013FF99 /* eliminate_dead_functions_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099128FDD2550013FF99 /* eliminate_dead_functions_pass.cpp */; }; - A9EE0E6428FDD2570013FF99 /* local_redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099228FDD2550013FF99 /* local_redundancy_elimination.h */; }; - A9EE0E6528FDD2570013FF99 /* local_redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099228FDD2550013FF99 /* local_redundancy_elimination.h */; }; - A9EE0E6628FDD2570013FF99 /* local_redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099228FDD2550013FF99 /* local_redundancy_elimination.h */; }; - A9EE0E6728FDD2570013FF99 /* loop_peeling.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099328FDD2550013FF99 /* loop_peeling.h */; }; - A9EE0E6828FDD2570013FF99 /* loop_peeling.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099328FDD2550013FF99 /* loop_peeling.h */; }; - A9EE0E6928FDD2570013FF99 /* loop_peeling.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099328FDD2550013FF99 /* loop_peeling.h */; }; - A9EE0E6A28FDD2570013FF99 /* vector_dce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099428FDD2550013FF99 /* vector_dce.cpp */; }; - A9EE0E6B28FDD2570013FF99 /* vector_dce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099428FDD2550013FF99 /* vector_dce.cpp */; }; - A9EE0E6C28FDD2570013FF99 /* vector_dce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099428FDD2550013FF99 /* vector_dce.cpp */; }; - A9EE0E6D28FDD2570013FF99 /* block_merge_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099528FDD2550013FF99 /* block_merge_util.h */; }; - A9EE0E6E28FDD2570013FF99 /* block_merge_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099528FDD2550013FF99 /* block_merge_util.h */; }; - A9EE0E6F28FDD2570013FF99 /* block_merge_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099528FDD2550013FF99 /* block_merge_util.h */; }; - A9EE0E7028FDD2570013FF99 /* loop_unroller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099628FDD2550013FF99 /* loop_unroller.cpp */; }; - A9EE0E7128FDD2570013FF99 /* loop_unroller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099628FDD2550013FF99 /* loop_unroller.cpp */; }; - A9EE0E7228FDD2570013FF99 /* loop_unroller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099628FDD2550013FF99 /* loop_unroller.cpp */; }; - A9EE0E7328FDD2570013FF99 /* desc_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099728FDD2550013FF99 /* desc_sroa.h */; }; - A9EE0E7428FDD2570013FF99 /* desc_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099728FDD2550013FF99 /* desc_sroa.h */; }; - A9EE0E7528FDD2570013FF99 /* desc_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099728FDD2550013FF99 /* desc_sroa.h */; }; - A9EE0E7628FDD2570013FF99 /* constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099828FDD2550013FF99 /* constants.cpp */; }; - A9EE0E7728FDD2570013FF99 /* constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099828FDD2550013FF99 /* constants.cpp */; }; - A9EE0E7828FDD2570013FF99 /* constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099828FDD2550013FF99 /* constants.cpp */; }; - A9EE0E7928FDD2570013FF99 /* loop_fusion_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099928FDD2550013FF99 /* loop_fusion_pass.h */; }; - A9EE0E7A28FDD2570013FF99 /* loop_fusion_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099928FDD2550013FF99 /* loop_fusion_pass.h */; }; - A9EE0E7B28FDD2570013FF99 /* loop_fusion_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099928FDD2550013FF99 /* loop_fusion_pass.h */; }; - A9EE0E7C28FDD2570013FF99 /* struct_cfg_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099A28FDD2550013FF99 /* struct_cfg_analysis.h */; }; - A9EE0E7D28FDD2570013FF99 /* struct_cfg_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099A28FDD2550013FF99 /* struct_cfg_analysis.h */; }; - A9EE0E7E28FDD2570013FF99 /* struct_cfg_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099A28FDD2550013FF99 /* struct_cfg_analysis.h */; }; - A9EE0E7F28FDD2570013FF99 /* desc_sroa_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099B28FDD2550013FF99 /* desc_sroa_util.cpp */; }; - A9EE0E8028FDD2570013FF99 /* desc_sroa_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099B28FDD2550013FF99 /* desc_sroa_util.cpp */; }; - A9EE0E8128FDD2570013FF99 /* desc_sroa_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099B28FDD2550013FF99 /* desc_sroa_util.cpp */; }; - A9EE0E8228FDD2570013FF99 /* inst_buff_addr_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099C28FDD2550013FF99 /* inst_buff_addr_check_pass.cpp */; }; - A9EE0E8328FDD2570013FF99 /* inst_buff_addr_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099C28FDD2550013FF99 /* inst_buff_addr_check_pass.cpp */; }; - A9EE0E8428FDD2570013FF99 /* inst_buff_addr_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099C28FDD2550013FF99 /* inst_buff_addr_check_pass.cpp */; }; - A9EE0E8528FDD2570013FF99 /* def_use_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099D28FDD2550013FF99 /* def_use_manager.cpp */; }; - A9EE0E8628FDD2570013FF99 /* def_use_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099D28FDD2550013FF99 /* def_use_manager.cpp */; }; - A9EE0E8728FDD2570013FF99 /* def_use_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE099D28FDD2550013FF99 /* def_use_manager.cpp */; }; - A9EE0E8828FDD2570013FF99 /* wrap_opkill.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099E28FDD2550013FF99 /* wrap_opkill.h */; }; - A9EE0E8928FDD2570013FF99 /* wrap_opkill.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099E28FDD2550013FF99 /* wrap_opkill.h */; }; - A9EE0E8A28FDD2570013FF99 /* wrap_opkill.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099E28FDD2550013FF99 /* wrap_opkill.h */; }; - A9EE0E8B28FDD2570013FF99 /* empty_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099F28FDD2550013FF99 /* empty_pass.h */; }; - A9EE0E8C28FDD2570013FF99 /* empty_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099F28FDD2550013FF99 /* empty_pass.h */; }; - A9EE0E8D28FDD2570013FF99 /* empty_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE099F28FDD2550013FF99 /* empty_pass.h */; }; - A9EE0E8E28FDD2570013FF99 /* eliminate_dead_input_components_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A028FDD2550013FF99 /* eliminate_dead_input_components_pass.h */; }; - A9EE0E8F28FDD2570013FF99 /* eliminate_dead_input_components_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A028FDD2550013FF99 /* eliminate_dead_input_components_pass.h */; }; - A9EE0E9028FDD2570013FF99 /* eliminate_dead_input_components_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A028FDD2550013FF99 /* eliminate_dead_input_components_pass.h */; }; - A9EE0E9128FDD2570013FF99 /* decoration_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A128FDD2550013FF99 /* decoration_manager.h */; }; - A9EE0E9228FDD2570013FF99 /* decoration_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A128FDD2550013FF99 /* decoration_manager.h */; }; - A9EE0E9328FDD2570013FF99 /* decoration_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A128FDD2550013FF99 /* decoration_manager.h */; }; - A9EE0E9428FDD2570013FF99 /* ccp_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A228FDD2550013FF99 /* ccp_pass.cpp */; }; - A9EE0E9528FDD2570013FF99 /* ccp_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A228FDD2550013FF99 /* ccp_pass.cpp */; }; - A9EE0E9628FDD2570013FF99 /* ccp_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A228FDD2550013FF99 /* ccp_pass.cpp */; }; - A9EE0E9728FDD2570013FF99 /* local_single_block_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A328FDD2550013FF99 /* local_single_block_elim_pass.h */; }; - A9EE0E9828FDD2570013FF99 /* local_single_block_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A328FDD2550013FF99 /* local_single_block_elim_pass.h */; }; - A9EE0E9928FDD2570013FF99 /* local_single_block_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A328FDD2550013FF99 /* local_single_block_elim_pass.h */; }; - A9EE0E9A28FDD2570013FF99 /* interp_fixup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A428FDD2550013FF99 /* interp_fixup_pass.h */; }; - A9EE0E9B28FDD2570013FF99 /* interp_fixup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A428FDD2550013FF99 /* interp_fixup_pass.h */; }; - A9EE0E9C28FDD2570013FF99 /* interp_fixup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A428FDD2550013FF99 /* interp_fixup_pass.h */; }; - A9EE0E9D28FDD2570013FF99 /* pch_source_opt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A528FDD2550013FF99 /* pch_source_opt.cpp */; }; - A9EE0E9E28FDD2570013FF99 /* pch_source_opt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A528FDD2550013FF99 /* pch_source_opt.cpp */; }; - A9EE0E9F28FDD2570013FF99 /* pch_source_opt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A528FDD2550013FF99 /* pch_source_opt.cpp */; }; - A9EE0EA028FDD2570013FF99 /* inst_buff_addr_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A628FDD2550013FF99 /* inst_buff_addr_check_pass.h */; }; - A9EE0EA128FDD2570013FF99 /* inst_buff_addr_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A628FDD2550013FF99 /* inst_buff_addr_check_pass.h */; }; - A9EE0EA228FDD2570013FF99 /* inst_buff_addr_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A628FDD2550013FF99 /* inst_buff_addr_check_pass.h */; }; - A9EE0EA328FDD2570013FF99 /* strength_reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A728FDD2550013FF99 /* strength_reduction_pass.h */; }; - A9EE0EA428FDD2570013FF99 /* strength_reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A728FDD2550013FF99 /* strength_reduction_pass.h */; }; - A9EE0EA528FDD2570013FF99 /* strength_reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09A728FDD2550013FF99 /* strength_reduction_pass.h */; }; - A9EE0EA628FDD2570013FF99 /* aggressive_dead_code_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A828FDD2550013FF99 /* aggressive_dead_code_elim_pass.cpp */; }; - A9EE0EA728FDD2570013FF99 /* aggressive_dead_code_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A828FDD2550013FF99 /* aggressive_dead_code_elim_pass.cpp */; }; - A9EE0EA828FDD2570013FF99 /* aggressive_dead_code_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A828FDD2550013FF99 /* aggressive_dead_code_elim_pass.cpp */; }; - A9EE0EA928FDD2570013FF99 /* eliminate_dead_functions_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A928FDD2550013FF99 /* eliminate_dead_functions_util.cpp */; }; - A9EE0EAA28FDD2570013FF99 /* eliminate_dead_functions_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A928FDD2550013FF99 /* eliminate_dead_functions_util.cpp */; }; - A9EE0EAB28FDD2570013FF99 /* eliminate_dead_functions_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09A928FDD2550013FF99 /* eliminate_dead_functions_util.cpp */; }; - A9EE0EAC28FDD2570013FF99 /* inst_debug_printf_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09AA28FDD2550013FF99 /* inst_debug_printf_pass.h */; }; - A9EE0EAD28FDD2570013FF99 /* inst_debug_printf_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09AA28FDD2550013FF99 /* inst_debug_printf_pass.h */; }; - A9EE0EAE28FDD2570013FF99 /* inst_debug_printf_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09AA28FDD2550013FF99 /* inst_debug_printf_pass.h */; }; - A9EE0EAF28FDD2570013FF99 /* simplification_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AB28FDD2550013FF99 /* simplification_pass.cpp */; }; - A9EE0EB028FDD2570013FF99 /* simplification_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AB28FDD2550013FF99 /* simplification_pass.cpp */; }; - A9EE0EB128FDD2570013FF99 /* simplification_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AB28FDD2550013FF99 /* simplification_pass.cpp */; }; - A9EE0EB228FDD2570013FF99 /* dead_branch_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AC28FDD2550013FF99 /* dead_branch_elim_pass.cpp */; }; - A9EE0EB328FDD2570013FF99 /* dead_branch_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AC28FDD2550013FF99 /* dead_branch_elim_pass.cpp */; }; - A9EE0EB428FDD2570013FF99 /* dead_branch_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AC28FDD2550013FF99 /* dead_branch_elim_pass.cpp */; }; - A9EE0EB528FDD2570013FF99 /* flatten_decoration_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AD28FDD2550013FF99 /* flatten_decoration_pass.cpp */; }; - A9EE0EB628FDD2570013FF99 /* flatten_decoration_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AD28FDD2550013FF99 /* flatten_decoration_pass.cpp */; }; - A9EE0EB728FDD2570013FF99 /* flatten_decoration_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AD28FDD2550013FF99 /* flatten_decoration_pass.cpp */; }; - A9EE0EB828FDD2570013FF99 /* dead_insert_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09AE28FDD2550013FF99 /* dead_insert_elim_pass.h */; }; - A9EE0EB928FDD2570013FF99 /* dead_insert_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09AE28FDD2550013FF99 /* dead_insert_elim_pass.h */; }; - A9EE0EBA28FDD2570013FF99 /* dead_insert_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09AE28FDD2550013FF99 /* dead_insert_elim_pass.h */; }; - A9EE0EBB28FDD2570013FF99 /* folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AF28FDD2550013FF99 /* folding_rules.cpp */; }; - A9EE0EBC28FDD2570013FF99 /* folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AF28FDD2550013FF99 /* folding_rules.cpp */; }; - A9EE0EBD28FDD2570013FF99 /* folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09AF28FDD2550013FF99 /* folding_rules.cpp */; }; - A9EE0EBE28FDD2570013FF99 /* freeze_spec_constant_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B028FDD2550013FF99 /* freeze_spec_constant_value_pass.h */; }; - A9EE0EBF28FDD2570013FF99 /* freeze_spec_constant_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B028FDD2550013FF99 /* freeze_spec_constant_value_pass.h */; }; - A9EE0EC028FDD2570013FF99 /* freeze_spec_constant_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B028FDD2550013FF99 /* freeze_spec_constant_value_pass.h */; }; - A9EE0EC128FDD2570013FF99 /* ir_context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B128FDD2550013FF99 /* ir_context.cpp */; }; - A9EE0EC228FDD2570013FF99 /* ir_context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B128FDD2550013FF99 /* ir_context.cpp */; }; - A9EE0EC328FDD2570013FF99 /* ir_context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B128FDD2550013FF99 /* ir_context.cpp */; }; - A9EE0EC428FDD2570013FF99 /* instrument_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B228FDD2550013FF99 /* instrument_pass.h */; }; - A9EE0EC528FDD2570013FF99 /* instrument_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B228FDD2550013FF99 /* instrument_pass.h */; }; - A9EE0EC628FDD2570013FF99 /* instrument_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B228FDD2550013FF99 /* instrument_pass.h */; }; - A9EE0EC728FDD2570013FF99 /* mem_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B328FDD2550013FF99 /* mem_pass.h */; }; - A9EE0EC828FDD2570013FF99 /* mem_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B328FDD2550013FF99 /* mem_pass.h */; }; - A9EE0EC928FDD2570013FF99 /* mem_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B328FDD2550013FF99 /* mem_pass.h */; }; - A9EE0ECA28FDD2570013FF99 /* loop_descriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B428FDD2550013FF99 /* loop_descriptor.cpp */; }; - A9EE0ECB28FDD2570013FF99 /* loop_descriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B428FDD2550013FF99 /* loop_descriptor.cpp */; }; - A9EE0ECC28FDD2570013FF99 /* loop_descriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B428FDD2550013FF99 /* loop_descriptor.cpp */; }; - A9EE0ECD28FDD2570013FF99 /* eliminate_dead_members_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B528FDD2550013FF99 /* eliminate_dead_members_pass.h */; }; - A9EE0ECE28FDD2570013FF99 /* eliminate_dead_members_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B528FDD2550013FF99 /* eliminate_dead_members_pass.h */; }; - A9EE0ECF28FDD2570013FF99 /* eliminate_dead_members_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09B528FDD2550013FF99 /* eliminate_dead_members_pass.h */; }; - A9EE0ED028FDD2570013FF99 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B628FDD2550013FF99 /* function.cpp */; }; - A9EE0ED128FDD2570013FF99 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B628FDD2550013FF99 /* function.cpp */; }; - A9EE0ED228FDD2570013FF99 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B628FDD2550013FF99 /* function.cpp */; }; - A9EE0ED328FDD2570013FF99 /* instruction_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B728FDD2550013FF99 /* instruction_list.cpp */; }; - A9EE0ED428FDD2570013FF99 /* instruction_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B728FDD2550013FF99 /* instruction_list.cpp */; }; - A9EE0ED528FDD2570013FF99 /* instruction_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B728FDD2550013FF99 /* instruction_list.cpp */; }; - A9EE0ED628FDD2570013FF99 /* control_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B828FDD2550013FF99 /* control_dependence.cpp */; }; - A9EE0ED728FDD2570013FF99 /* control_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B828FDD2550013FF99 /* control_dependence.cpp */; }; - A9EE0ED828FDD2570013FF99 /* control_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B828FDD2550013FF99 /* control_dependence.cpp */; }; - A9EE0ED928FDD2570013FF99 /* composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B928FDD2550013FF99 /* composite.cpp */; }; - A9EE0EDA28FDD2570013FF99 /* composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B928FDD2550013FF99 /* composite.cpp */; }; - A9EE0EDB28FDD2570013FF99 /* composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09B928FDD2550013FF99 /* composite.cpp */; }; - A9EE0EDC28FDD2570013FF99 /* convert_to_half_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09BA28FDD2550013FF99 /* convert_to_half_pass.cpp */; }; - A9EE0EDD28FDD2570013FF99 /* convert_to_half_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09BA28FDD2550013FF99 /* convert_to_half_pass.cpp */; }; - A9EE0EDE28FDD2570013FF99 /* convert_to_half_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09BA28FDD2550013FF99 /* convert_to_half_pass.cpp */; }; - A9EE0EDF28FDD2570013FF99 /* inline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BB28FDD2550013FF99 /* inline_pass.h */; }; - A9EE0EE028FDD2570013FF99 /* inline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BB28FDD2550013FF99 /* inline_pass.h */; }; - A9EE0EE128FDD2570013FF99 /* inline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BB28FDD2550013FF99 /* inline_pass.h */; }; - A9EE0EE228FDD2570013FF99 /* loop_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BC28FDD2550013FF99 /* loop_dependence.h */; }; - A9EE0EE328FDD2570013FF99 /* loop_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BC28FDD2550013FF99 /* loop_dependence.h */; }; - A9EE0EE428FDD2570013FF99 /* loop_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BC28FDD2550013FF99 /* loop_dependence.h */; }; - A9EE0EE528FDD2570013FF99 /* value_number_table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BD28FDD2550013FF99 /* value_number_table.h */; }; - A9EE0EE628FDD2570013FF99 /* value_number_table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BD28FDD2550013FF99 /* value_number_table.h */; }; - A9EE0EE728FDD2570013FF99 /* value_number_table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BD28FDD2550013FF99 /* value_number_table.h */; }; - A9EE0EE828FDD2570013FF99 /* strip_nonsemantic_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09BE28FDD2550013FF99 /* strip_nonsemantic_info_pass.cpp */; }; - A9EE0EE928FDD2570013FF99 /* strip_nonsemantic_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09BE28FDD2550013FF99 /* strip_nonsemantic_info_pass.cpp */; }; - A9EE0EEA28FDD2570013FF99 /* strip_nonsemantic_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09BE28FDD2550013FF99 /* strip_nonsemantic_info_pass.cpp */; }; - A9EE0EEB28FDD2570013FF99 /* flatten_decoration_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BF28FDD2550013FF99 /* flatten_decoration_pass.h */; }; - A9EE0EEC28FDD2570013FF99 /* flatten_decoration_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BF28FDD2550013FF99 /* flatten_decoration_pass.h */; }; - A9EE0EED28FDD2570013FF99 /* flatten_decoration_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09BF28FDD2550013FF99 /* flatten_decoration_pass.h */; }; - A9EE0EEE28FDD2570013FF99 /* if_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C028FDD2550013FF99 /* if_conversion.cpp */; }; - A9EE0EEF28FDD2570013FF99 /* if_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C028FDD2550013FF99 /* if_conversion.cpp */; }; - A9EE0EF028FDD2570013FF99 /* if_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C028FDD2550013FF99 /* if_conversion.cpp */; }; - A9EE0EF128FDD2570013FF99 /* fix_func_call_arguments.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C128FDD2550013FF99 /* fix_func_call_arguments.cpp */; }; - A9EE0EF228FDD2570013FF99 /* fix_func_call_arguments.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C128FDD2550013FF99 /* fix_func_call_arguments.cpp */; }; - A9EE0EF328FDD2570013FF99 /* fix_func_call_arguments.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C128FDD2550013FF99 /* fix_func_call_arguments.cpp */; }; - A9EE0EF428FDD2570013FF99 /* debug_info_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C228FDD2550013FF99 /* debug_info_manager.cpp */; }; - A9EE0EF528FDD2570013FF99 /* debug_info_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C228FDD2550013FF99 /* debug_info_manager.cpp */; }; - A9EE0EF628FDD2570013FF99 /* debug_info_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C228FDD2550013FF99 /* debug_info_manager.cpp */; }; - A9EE0EF728FDD2570013FF99 /* inline_exhaustive_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C328FDD2550013FF99 /* inline_exhaustive_pass.h */; }; - A9EE0EF828FDD2570013FF99 /* inline_exhaustive_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C328FDD2550013FF99 /* inline_exhaustive_pass.h */; }; - A9EE0EF928FDD2570013FF99 /* inline_exhaustive_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C328FDD2550013FF99 /* inline_exhaustive_pass.h */; }; - A9EE0EFA28FDD2570013FF99 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C428FDD2550013FF99 /* constants.h */; }; - A9EE0EFB28FDD2570013FF99 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C428FDD2550013FF99 /* constants.h */; }; - A9EE0EFC28FDD2570013FF99 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C428FDD2550013FF99 /* constants.h */; }; - A9EE0EFD28FDD2570013FF99 /* eliminate_dead_members_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C528FDD2550013FF99 /* eliminate_dead_members_pass.cpp */; }; - A9EE0EFE28FDD2570013FF99 /* eliminate_dead_members_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C528FDD2550013FF99 /* eliminate_dead_members_pass.cpp */; }; - A9EE0EFF28FDD2570013FF99 /* eliminate_dead_members_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C528FDD2550013FF99 /* eliminate_dead_members_pass.cpp */; }; - A9EE0F0028FDD2570013FF99 /* strength_reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C628FDD2550013FF99 /* strength_reduction_pass.cpp */; }; - A9EE0F0128FDD2570013FF99 /* strength_reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C628FDD2550013FF99 /* strength_reduction_pass.cpp */; }; - A9EE0F0228FDD2570013FF99 /* strength_reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C628FDD2550013FF99 /* strength_reduction_pass.cpp */; }; - A9EE0F0328FDD2570013FF99 /* desc_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C728FDD2550013FF99 /* desc_sroa.cpp */; }; - A9EE0F0428FDD2570013FF99 /* desc_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C728FDD2550013FF99 /* desc_sroa.cpp */; }; - A9EE0F0528FDD2570013FF99 /* desc_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C728FDD2550013FF99 /* desc_sroa.cpp */; }; - A9EE0F0628FDD2570013FF99 /* block_merge_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C828FDD2550013FF99 /* block_merge_util.cpp */; }; - A9EE0F0728FDD2570013FF99 /* block_merge_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C828FDD2550013FF99 /* block_merge_util.cpp */; }; - A9EE0F0828FDD2570013FF99 /* block_merge_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09C828FDD2550013FF99 /* block_merge_util.cpp */; }; - A9EE0F0928FDD2570013FF99 /* upgrade_memory_model.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C928FDD2550013FF99 /* upgrade_memory_model.h */; }; - A9EE0F0A28FDD2570013FF99 /* upgrade_memory_model.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C928FDD2550013FF99 /* upgrade_memory_model.h */; }; - A9EE0F0B28FDD2570013FF99 /* upgrade_memory_model.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09C928FDD2550013FF99 /* upgrade_memory_model.h */; }; - A9EE0F0C28FDD2570013FF99 /* copy_prop_arrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CA28FDD2550013FF99 /* copy_prop_arrays.cpp */; }; - A9EE0F0D28FDD2570013FF99 /* copy_prop_arrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CA28FDD2550013FF99 /* copy_prop_arrays.cpp */; }; - A9EE0F0E28FDD2570013FF99 /* copy_prop_arrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CA28FDD2550013FF99 /* copy_prop_arrays.cpp */; }; - A9EE0F0F28FDD2570013FF99 /* pass_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CB28FDD2550013FF99 /* pass_manager.cpp */; }; - A9EE0F1028FDD2570013FF99 /* pass_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CB28FDD2550013FF99 /* pass_manager.cpp */; }; - A9EE0F1128FDD2570013FF99 /* pass_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CB28FDD2550013FF99 /* pass_manager.cpp */; }; - A9EE0F1228FDD2570013FF99 /* inline_exhaustive_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CC28FDD2550013FF99 /* inline_exhaustive_pass.cpp */; }; - A9EE0F1328FDD2570013FF99 /* inline_exhaustive_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CC28FDD2550013FF99 /* inline_exhaustive_pass.cpp */; }; - A9EE0F1428FDD2570013FF99 /* inline_exhaustive_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CC28FDD2550013FF99 /* inline_exhaustive_pass.cpp */; }; - A9EE0F1528FDD2570013FF99 /* loop_fission.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09CD28FDD2550013FF99 /* loop_fission.h */; }; - A9EE0F1628FDD2570013FF99 /* loop_fission.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09CD28FDD2550013FF99 /* loop_fission.h */; }; - A9EE0F1728FDD2570013FF99 /* loop_fission.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09CD28FDD2550013FF99 /* loop_fission.h */; }; - A9EE0F1828FDD2570013FF99 /* workaround1209.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09CE28FDD2550013FF99 /* workaround1209.h */; }; - A9EE0F1928FDD2570013FF99 /* workaround1209.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09CE28FDD2550013FF99 /* workaround1209.h */; }; - A9EE0F1A28FDD2570013FF99 /* workaround1209.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09CE28FDD2550013FF99 /* workaround1209.h */; }; - A9EE0F1B28FDD2570013FF99 /* loop_fusion_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CF28FDD2550013FF99 /* loop_fusion_pass.cpp */; }; - A9EE0F1C28FDD2570013FF99 /* loop_fusion_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CF28FDD2550013FF99 /* loop_fusion_pass.cpp */; }; - A9EE0F1D28FDD2570013FF99 /* loop_fusion_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09CF28FDD2550013FF99 /* loop_fusion_pass.cpp */; }; - A9EE0F1E28FDD2570013FF99 /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D028FDD2550013FF99 /* log.h */; }; - A9EE0F1F28FDD2570013FF99 /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D028FDD2550013FF99 /* log.h */; }; - A9EE0F2028FDD2570013FF99 /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D028FDD2550013FF99 /* log.h */; }; - A9EE0F2128FDD2570013FF99 /* copy_prop_arrays.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D128FDD2550013FF99 /* copy_prop_arrays.h */; }; - A9EE0F2228FDD2570013FF99 /* copy_prop_arrays.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D128FDD2550013FF99 /* copy_prop_arrays.h */; }; - A9EE0F2328FDD2570013FF99 /* copy_prop_arrays.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D128FDD2550013FF99 /* copy_prop_arrays.h */; }; - A9EE0F2428FDD2570013FF99 /* eliminate_dead_constant_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D228FDD2550013FF99 /* eliminate_dead_constant_pass.h */; }; - A9EE0F2528FDD2570013FF99 /* eliminate_dead_constant_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D228FDD2550013FF99 /* eliminate_dead_constant_pass.h */; }; - A9EE0F2628FDD2570013FF99 /* eliminate_dead_constant_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D228FDD2550013FF99 /* eliminate_dead_constant_pass.h */; }; - A9EE0F2728FDD2570013FF99 /* dead_insert_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D328FDD2550013FF99 /* dead_insert_elim_pass.cpp */; }; - A9EE0F2828FDD2570013FF99 /* dead_insert_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D328FDD2550013FF99 /* dead_insert_elim_pass.cpp */; }; - A9EE0F2928FDD2570013FF99 /* dead_insert_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D328FDD2550013FF99 /* dead_insert_elim_pass.cpp */; }; - A9EE0F2A28FDD2570013FF99 /* ssa_rewrite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D428FDD2550013FF99 /* ssa_rewrite_pass.h */; }; - A9EE0F2B28FDD2570013FF99 /* ssa_rewrite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D428FDD2550013FF99 /* ssa_rewrite_pass.h */; }; - A9EE0F2C28FDD2570013FF99 /* ssa_rewrite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D428FDD2550013FF99 /* ssa_rewrite_pass.h */; }; - A9EE0F2D28FDD2570013FF99 /* scalar_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D528FDD2550013FF99 /* scalar_analysis.cpp */; }; - A9EE0F2E28FDD2570013FF99 /* scalar_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D528FDD2550013FF99 /* scalar_analysis.cpp */; }; - A9EE0F2F28FDD2570013FF99 /* scalar_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D528FDD2550013FF99 /* scalar_analysis.cpp */; }; - A9EE0F3028FDD2570013FF99 /* dead_variable_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D628FDD2550013FF99 /* dead_variable_elimination.h */; }; - A9EE0F3128FDD2570013FF99 /* dead_variable_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D628FDD2550013FF99 /* dead_variable_elimination.h */; }; - A9EE0F3228FDD2570013FF99 /* dead_variable_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D628FDD2550013FF99 /* dead_variable_elimination.h */; }; - A9EE0F3328FDD2570013FF99 /* block_merge_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D728FDD2550013FF99 /* block_merge_pass.cpp */; }; - A9EE0F3428FDD2570013FF99 /* block_merge_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D728FDD2550013FF99 /* block_merge_pass.cpp */; }; - A9EE0F3528FDD2570013FF99 /* block_merge_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D728FDD2550013FF99 /* block_merge_pass.cpp */; }; - A9EE0F3628FDD2570013FF99 /* dominator_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D828FDD2550013FF99 /* dominator_analysis.h */; }; - A9EE0F3728FDD2570013FF99 /* dominator_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D828FDD2550013FF99 /* dominator_analysis.h */; }; - A9EE0F3828FDD2570013FF99 /* dominator_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09D828FDD2550013FF99 /* dominator_analysis.h */; }; - A9EE0F3928FDD2570013FF99 /* convert_to_sampled_image_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D928FDD2550013FF99 /* convert_to_sampled_image_pass.cpp */; }; - A9EE0F3A28FDD2570013FF99 /* convert_to_sampled_image_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D928FDD2550013FF99 /* convert_to_sampled_image_pass.cpp */; }; - A9EE0F3B28FDD2570013FF99 /* convert_to_sampled_image_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09D928FDD2550013FF99 /* convert_to_sampled_image_pass.cpp */; }; - A9EE0F3C28FDD2570013FF99 /* pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DA28FDD2550013FF99 /* pass.h */; }; - A9EE0F3D28FDD2570013FF99 /* pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DA28FDD2550013FF99 /* pass.h */; }; - A9EE0F3E28FDD2570013FF99 /* pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DA28FDD2550013FF99 /* pass.h */; }; - A9EE0F3F28FDD2570013FF99 /* folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DB28FDD2550013FF99 /* folding_rules.h */; }; - A9EE0F4028FDD2570013FF99 /* folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DB28FDD2550013FF99 /* folding_rules.h */; }; - A9EE0F4128FDD2570013FF99 /* folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DB28FDD2550013FF99 /* folding_rules.h */; }; - A9EE0F4228FDD2570013FF99 /* eliminate_dead_functions_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DC28FDD2550013FF99 /* eliminate_dead_functions_pass.h */; }; - A9EE0F4328FDD2570013FF99 /* eliminate_dead_functions_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DC28FDD2550013FF99 /* eliminate_dead_functions_pass.h */; }; - A9EE0F4428FDD2570013FF99 /* eliminate_dead_functions_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DC28FDD2550013FF99 /* eliminate_dead_functions_pass.h */; }; - A9EE0F4528FDD2570013FF99 /* eliminate_dead_functions_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DD28FDD2550013FF99 /* eliminate_dead_functions_util.h */; }; - A9EE0F4628FDD2570013FF99 /* eliminate_dead_functions_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DD28FDD2550013FF99 /* eliminate_dead_functions_util.h */; }; - A9EE0F4728FDD2570013FF99 /* eliminate_dead_functions_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DD28FDD2550013FF99 /* eliminate_dead_functions_util.h */; }; - A9EE0F4828FDD2570013FF99 /* fold.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DE28FDD2550013FF99 /* fold.h */; }; - A9EE0F4928FDD2570013FF99 /* fold.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DE28FDD2550013FF99 /* fold.h */; }; - A9EE0F4A28FDD2570013FF99 /* fold.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09DE28FDD2550013FF99 /* fold.h */; }; - A9EE0F4B28FDD2570013FF99 /* local_single_store_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09DF28FDD2550013FF99 /* local_single_store_elim_pass.cpp */; }; - A9EE0F4C28FDD2570013FF99 /* local_single_store_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09DF28FDD2550013FF99 /* local_single_store_elim_pass.cpp */; }; - A9EE0F4D28FDD2570013FF99 /* local_single_store_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09DF28FDD2550013FF99 /* local_single_store_elim_pass.cpp */; }; - A9EE0F4E28FDD2570013FF99 /* dead_branch_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E028FDD2550013FF99 /* dead_branch_elim_pass.h */; }; - A9EE0F4F28FDD2570013FF99 /* dead_branch_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E028FDD2550013FF99 /* dead_branch_elim_pass.h */; }; - A9EE0F5028FDD2570013FF99 /* dead_branch_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E028FDD2550013FF99 /* dead_branch_elim_pass.h */; }; - A9EE0F5128FDD2570013FF99 /* private_to_local_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E128FDD2550013FF99 /* private_to_local_pass.cpp */; }; - A9EE0F5228FDD2570013FF99 /* private_to_local_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E128FDD2550013FF99 /* private_to_local_pass.cpp */; }; - A9EE0F5328FDD2570013FF99 /* private_to_local_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E128FDD2550013FF99 /* private_to_local_pass.cpp */; }; - A9EE0F5428FDD2570013FF99 /* scalar_analysis_nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E228FDD2550013FF99 /* scalar_analysis_nodes.h */; }; - A9EE0F5528FDD2570013FF99 /* scalar_analysis_nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E228FDD2550013FF99 /* scalar_analysis_nodes.h */; }; - A9EE0F5628FDD2570013FF99 /* scalar_analysis_nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E228FDD2550013FF99 /* scalar_analysis_nodes.h */; }; - A9EE0F5728FDD2570013FF99 /* propagator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E328FDD2550013FF99 /* propagator.cpp */; }; - A9EE0F5828FDD2570013FF99 /* propagator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E328FDD2550013FF99 /* propagator.cpp */; }; - A9EE0F5928FDD2570013FF99 /* propagator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E328FDD2550013FF99 /* propagator.cpp */; }; - A9EE0F5A28FDD2570013FF99 /* fix_storage_class.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E428FDD2550013FF99 /* fix_storage_class.h */; }; - A9EE0F5B28FDD2570013FF99 /* fix_storage_class.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E428FDD2550013FF99 /* fix_storage_class.h */; }; - A9EE0F5C28FDD2570013FF99 /* fix_storage_class.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E428FDD2550013FF99 /* fix_storage_class.h */; }; - A9EE0F5D28FDD2570013FF99 /* loop_dependence_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E528FDD2550013FF99 /* loop_dependence_helpers.cpp */; }; - A9EE0F5E28FDD2570013FF99 /* loop_dependence_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E528FDD2550013FF99 /* loop_dependence_helpers.cpp */; }; - A9EE0F5F28FDD2570013FF99 /* loop_dependence_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E528FDD2550013FF99 /* loop_dependence_helpers.cpp */; }; - A9EE0F6028FDD2570013FF99 /* set_spec_constant_default_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E628FDD2550013FF99 /* set_spec_constant_default_value_pass.cpp */; }; - A9EE0F6128FDD2570013FF99 /* set_spec_constant_default_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E628FDD2550013FF99 /* set_spec_constant_default_value_pass.cpp */; }; - A9EE0F6228FDD2570013FF99 /* set_spec_constant_default_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E628FDD2550013FF99 /* set_spec_constant_default_value_pass.cpp */; }; - A9EE0F6328FDD2570013FF99 /* passes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E728FDD2550013FF99 /* passes.h */; }; - A9EE0F6428FDD2570013FF99 /* passes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E728FDD2550013FF99 /* passes.h */; }; - A9EE0F6528FDD2570013FF99 /* passes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09E728FDD2550013FF99 /* passes.h */; }; - A9EE0F6628FDD2570013FF99 /* fold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E828FDD2550013FF99 /* fold.cpp */; }; - A9EE0F6728FDD2570013FF99 /* fold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E828FDD2550013FF99 /* fold.cpp */; }; - A9EE0F6828FDD2570013FF99 /* fold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E828FDD2550013FF99 /* fold.cpp */; }; - A9EE0F6928FDD2570013FF99 /* amd_ext_to_khr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E928FDD2550013FF99 /* amd_ext_to_khr.cpp */; }; - A9EE0F6A28FDD2570013FF99 /* amd_ext_to_khr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E928FDD2550013FF99 /* amd_ext_to_khr.cpp */; }; - A9EE0F6B28FDD2570013FF99 /* amd_ext_to_khr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09E928FDD2550013FF99 /* amd_ext_to_khr.cpp */; }; - A9EE0F6C28FDD2570013FF99 /* scalar_replacement_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EA28FDD2550013FF99 /* scalar_replacement_pass.cpp */; }; - A9EE0F6D28FDD2570013FF99 /* scalar_replacement_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EA28FDD2550013FF99 /* scalar_replacement_pass.cpp */; }; - A9EE0F6E28FDD2570013FF99 /* scalar_replacement_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EA28FDD2550013FF99 /* scalar_replacement_pass.cpp */; }; - A9EE0F6F28FDD2570013FF99 /* simplification_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09EB28FDD2550013FF99 /* simplification_pass.h */; }; - A9EE0F7028FDD2570013FF99 /* simplification_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09EB28FDD2550013FF99 /* simplification_pass.h */; }; - A9EE0F7128FDD2570013FF99 /* simplification_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09EB28FDD2550013FF99 /* simplification_pass.h */; }; - A9EE0F7228FDD2570013FF99 /* interface_var_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EC28FDD2550013FF99 /* interface_var_sroa.cpp */; }; - A9EE0F7328FDD2570013FF99 /* interface_var_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EC28FDD2550013FF99 /* interface_var_sroa.cpp */; }; - A9EE0F7428FDD2570013FF99 /* interface_var_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EC28FDD2550013FF99 /* interface_var_sroa.cpp */; }; - A9EE0F7528FDD2570013FF99 /* remove_duplicates_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09ED28FDD2550013FF99 /* remove_duplicates_pass.h */; }; - A9EE0F7628FDD2570013FF99 /* remove_duplicates_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09ED28FDD2550013FF99 /* remove_duplicates_pass.h */; }; - A9EE0F7728FDD2570013FF99 /* remove_duplicates_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09ED28FDD2550013FF99 /* remove_duplicates_pass.h */; }; - A9EE0F7828FDD2570013FF99 /* desc_sroa_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09EE28FDD2550013FF99 /* desc_sroa_util.h */; }; - A9EE0F7928FDD2570013FF99 /* desc_sroa_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09EE28FDD2550013FF99 /* desc_sroa_util.h */; }; - A9EE0F7A28FDD2570013FF99 /* desc_sroa_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09EE28FDD2550013FF99 /* desc_sroa_util.h */; }; - A9EE0F7B28FDD2570013FF99 /* redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EF28FDD2550013FF99 /* redundancy_elimination.cpp */; }; - A9EE0F7C28FDD2570013FF99 /* redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EF28FDD2550013FF99 /* redundancy_elimination.cpp */; }; - A9EE0F7D28FDD2570013FF99 /* redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09EF28FDD2550013FF99 /* redundancy_elimination.cpp */; }; - A9EE0F7E28FDD2570013FF99 /* reflect.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F028FDD2550013FF99 /* reflect.h */; }; - A9EE0F7F28FDD2570013FF99 /* reflect.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F028FDD2550013FF99 /* reflect.h */; }; - A9EE0F8028FDD2570013FF99 /* reflect.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F028FDD2550013FF99 /* reflect.h */; }; - A9EE0F8128FDD2570013FF99 /* workaround1209.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F128FDD2550013FF99 /* workaround1209.cpp */; }; - A9EE0F8228FDD2570013FF99 /* workaround1209.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F128FDD2550013FF99 /* workaround1209.cpp */; }; - A9EE0F8328FDD2570013FF99 /* workaround1209.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F128FDD2550013FF99 /* workaround1209.cpp */; }; - A9EE0F8428FDD2570013FF99 /* null_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F228FDD2550013FF99 /* null_pass.h */; }; - A9EE0F8528FDD2570013FF99 /* null_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F228FDD2550013FF99 /* null_pass.h */; }; - A9EE0F8628FDD2570013FF99 /* null_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F228FDD2550013FF99 /* null_pass.h */; }; - A9EE0F8728FDD2570013FF99 /* relax_float_ops_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F328FDD2550013FF99 /* relax_float_ops_pass.cpp */; }; - A9EE0F8828FDD2570013FF99 /* relax_float_ops_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F328FDD2550013FF99 /* relax_float_ops_pass.cpp */; }; - A9EE0F8928FDD2570013FF99 /* relax_float_ops_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F328FDD2550013FF99 /* relax_float_ops_pass.cpp */; }; - A9EE0F8A28FDD2570013FF99 /* const_folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F428FDD2550013FF99 /* const_folding_rules.h */; }; - A9EE0F8B28FDD2570013FF99 /* const_folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F428FDD2550013FF99 /* const_folding_rules.h */; }; - A9EE0F8C28FDD2570013FF99 /* const_folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F428FDD2550013FF99 /* const_folding_rules.h */; }; - A9EE0F8D28FDD2570013FF99 /* scalar_replacement_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F528FDD2550013FF99 /* scalar_replacement_pass.h */; }; - A9EE0F8E28FDD2570013FF99 /* scalar_replacement_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F528FDD2550013FF99 /* scalar_replacement_pass.h */; }; - A9EE0F8F28FDD2570013FF99 /* scalar_replacement_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F528FDD2550013FF99 /* scalar_replacement_pass.h */; }; - A9EE0F9028FDD2570013FF99 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F628FDD2550013FF99 /* instruction.cpp */; }; - A9EE0F9128FDD2570013FF99 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F628FDD2550013FF99 /* instruction.cpp */; }; - A9EE0F9228FDD2570013FF99 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F628FDD2550013FF99 /* instruction.cpp */; }; - A9EE0F9328FDD2570013FF99 /* pch_source_opt.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F728FDD2550013FF99 /* pch_source_opt.h */; }; - A9EE0F9428FDD2570013FF99 /* pch_source_opt.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F728FDD2550013FF99 /* pch_source_opt.h */; }; - A9EE0F9528FDD2570013FF99 /* pch_source_opt.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F728FDD2550013FF99 /* pch_source_opt.h */; }; - A9EE0F9628FDD2570013FF99 /* reduce_load_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F828FDD2550013FF99 /* reduce_load_size.cpp */; }; - A9EE0F9728FDD2570013FF99 /* reduce_load_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F828FDD2550013FF99 /* reduce_load_size.cpp */; }; - A9EE0F9828FDD2570013FF99 /* reduce_load_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09F828FDD2550013FF99 /* reduce_load_size.cpp */; }; - A9EE0F9928FDD2570013FF99 /* redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F928FDD2550013FF99 /* redundancy_elimination.h */; }; - A9EE0F9A28FDD2570013FF99 /* redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F928FDD2550013FF99 /* redundancy_elimination.h */; }; - A9EE0F9B28FDD2570013FF99 /* redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09F928FDD2550013FF99 /* redundancy_elimination.h */; }; - A9EE0F9C28FDD2570013FF99 /* fix_storage_class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FA28FDD2550013FF99 /* fix_storage_class.cpp */; }; - A9EE0F9D28FDD2570013FF99 /* fix_storage_class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FA28FDD2550013FF99 /* fix_storage_class.cpp */; }; - A9EE0F9E28FDD2570013FF99 /* fix_storage_class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FA28FDD2550013FF99 /* fix_storage_class.cpp */; }; - A9EE0F9F28FDD2570013FF99 /* value_number_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FB28FDD2550013FF99 /* value_number_table.cpp */; }; - A9EE0FA028FDD2570013FF99 /* value_number_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FB28FDD2550013FF99 /* value_number_table.cpp */; }; - A9EE0FA128FDD2570013FF99 /* value_number_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FB28FDD2550013FF99 /* value_number_table.cpp */; }; - A9EE0FA228FDD2570013FF99 /* remove_unused_interface_variables_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FC28FDD2550013FF99 /* remove_unused_interface_variables_pass.cpp */; }; - A9EE0FA328FDD2570013FF99 /* remove_unused_interface_variables_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FC28FDD2550013FF99 /* remove_unused_interface_variables_pass.cpp */; }; - A9EE0FA428FDD2570013FF99 /* remove_unused_interface_variables_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FC28FDD2550013FF99 /* remove_unused_interface_variables_pass.cpp */; }; - A9EE0FA528FDD2570013FF99 /* inline_opaque_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FD28FDD2550013FF99 /* inline_opaque_pass.cpp */; }; - A9EE0FA628FDD2570013FF99 /* inline_opaque_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FD28FDD2550013FF99 /* inline_opaque_pass.cpp */; }; - A9EE0FA728FDD2570013FF99 /* inline_opaque_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FD28FDD2550013FF99 /* inline_opaque_pass.cpp */; }; - A9EE0FA828FDD2570013FF99 /* replace_invalid_opc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FE28FDD2550013FF99 /* replace_invalid_opc.cpp */; }; - A9EE0FA928FDD2570013FF99 /* replace_invalid_opc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FE28FDD2550013FF99 /* replace_invalid_opc.cpp */; }; - A9EE0FAA28FDD2570013FF99 /* replace_invalid_opc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE09FE28FDD2550013FF99 /* replace_invalid_opc.cpp */; }; - A9EE0FAB28FDD2570013FF99 /* loop_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09FF28FDD2550013FF99 /* loop_utils.h */; }; - A9EE0FAC28FDD2570013FF99 /* loop_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09FF28FDD2550013FF99 /* loop_utils.h */; }; - A9EE0FAD28FDD2570013FF99 /* loop_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE09FF28FDD2550013FF99 /* loop_utils.h */; }; - A9EE0FAE28FDD2570013FF99 /* module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0028FDD2550013FF99 /* module.h */; }; - A9EE0FAF28FDD2570013FF99 /* module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0028FDD2550013FF99 /* module.h */; }; - A9EE0FB028FDD2570013FF99 /* module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0028FDD2550013FF99 /* module.h */; }; - A9EE0FB128FDD2570013FF99 /* dominator_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0128FDD2550013FF99 /* dominator_analysis.cpp */; }; - A9EE0FB228FDD2570013FF99 /* dominator_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0128FDD2550013FF99 /* dominator_analysis.cpp */; }; - A9EE0FB328FDD2570013FF99 /* dominator_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0128FDD2550013FF99 /* dominator_analysis.cpp */; }; - A9EE0FB428FDD2570013FF99 /* ir_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0228FDD2550013FF99 /* ir_builder.h */; }; - A9EE0FB528FDD2570013FF99 /* ir_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0228FDD2550013FF99 /* ir_builder.h */; }; - A9EE0FB628FDD2570013FF99 /* ir_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0228FDD2550013FF99 /* ir_builder.h */; }; - A9EE0FB728FDD2570013FF99 /* replace_desc_array_access_using_var_index.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0328FDD2550013FF99 /* replace_desc_array_access_using_var_index.cpp */; }; - A9EE0FB828FDD2570013FF99 /* replace_desc_array_access_using_var_index.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0328FDD2550013FF99 /* replace_desc_array_access_using_var_index.cpp */; }; - A9EE0FB928FDD2570013FF99 /* replace_desc_array_access_using_var_index.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0328FDD2550013FF99 /* replace_desc_array_access_using_var_index.cpp */; }; - A9EE0FBA28FDD2570013FF99 /* loop_unswitch_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0428FDD2550013FF99 /* loop_unswitch_pass.h */; }; - A9EE0FBB28FDD2570013FF99 /* loop_unswitch_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0428FDD2550013FF99 /* loop_unswitch_pass.h */; }; - A9EE0FBC28FDD2570013FF99 /* loop_unswitch_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0428FDD2550013FF99 /* loop_unswitch_pass.h */; }; - A9EE0FBD28FDD2570013FF99 /* cfg.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0528FDD2550013FF99 /* cfg.h */; }; - A9EE0FBE28FDD2570013FF99 /* cfg.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0528FDD2550013FF99 /* cfg.h */; }; - A9EE0FBF28FDD2570013FF99 /* cfg.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0528FDD2550013FF99 /* cfg.h */; }; - A9EE0FC028FDD2570013FF99 /* code_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0628FDD2550013FF99 /* code_sink.h */; }; - A9EE0FC128FDD2570013FF99 /* code_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0628FDD2550013FF99 /* code_sink.h */; }; - A9EE0FC228FDD2570013FF99 /* code_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0628FDD2550013FF99 /* code_sink.h */; }; - A9EE0FC328FDD2570013FF99 /* dataflow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0728FDD2550013FF99 /* dataflow.cpp */; }; - A9EE0FC428FDD2570013FF99 /* dataflow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0728FDD2550013FF99 /* dataflow.cpp */; }; - A9EE0FC528FDD2570013FF99 /* dataflow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0728FDD2550013FF99 /* dataflow.cpp */; }; - A9EE0FC628FDD2570013FF99 /* loop_descriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0828FDD2550013FF99 /* loop_descriptor.h */; }; - A9EE0FC728FDD2570013FF99 /* loop_descriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0828FDD2550013FF99 /* loop_descriptor.h */; }; - A9EE0FC828FDD2570013FF99 /* loop_descriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0828FDD2550013FF99 /* loop_descriptor.h */; }; - A9EE0FC928FDD2570013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0928FDD2550013FF99 /* instruction.h */; }; - A9EE0FCA28FDD2570013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0928FDD2550013FF99 /* instruction.h */; }; - A9EE0FCB28FDD2570013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0928FDD2550013FF99 /* instruction.h */; }; - A9EE0FCC28FDD2570013FF99 /* aggressive_dead_code_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0A28FDD2550013FF99 /* aggressive_dead_code_elim_pass.h */; }; - A9EE0FCD28FDD2570013FF99 /* aggressive_dead_code_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0A28FDD2550013FF99 /* aggressive_dead_code_elim_pass.h */; }; - A9EE0FCE28FDD2570013FF99 /* aggressive_dead_code_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0A28FDD2550013FF99 /* aggressive_dead_code_elim_pass.h */; }; - A9EE0FCF28FDD2570013FF99 /* struct_cfg_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0B28FDD2550013FF99 /* struct_cfg_analysis.cpp */; }; - A9EE0FD028FDD2570013FF99 /* struct_cfg_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0B28FDD2550013FF99 /* struct_cfg_analysis.cpp */; }; - A9EE0FD128FDD2570013FF99 /* struct_cfg_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0B28FDD2550013FF99 /* struct_cfg_analysis.cpp */; }; - A9EE0FD228FDD2570013FF99 /* remove_dontinline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0C28FDD2550013FF99 /* remove_dontinline_pass.cpp */; }; - A9EE0FD328FDD2570013FF99 /* remove_dontinline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0C28FDD2550013FF99 /* remove_dontinline_pass.cpp */; }; - A9EE0FD428FDD2570013FF99 /* remove_dontinline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A0C28FDD2550013FF99 /* remove_dontinline_pass.cpp */; }; - A9EE0FD528FDD2570013FF99 /* vector_dce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0D28FDD2550013FF99 /* vector_dce.h */; }; - A9EE0FD628FDD2570013FF99 /* vector_dce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0D28FDD2550013FF99 /* vector_dce.h */; }; - A9EE0FD728FDD2570013FF99 /* vector_dce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0D28FDD2550013FF99 /* vector_dce.h */; }; - A9EE0FD828FDD2570013FF99 /* combine_access_chains.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0E28FDD2550013FF99 /* combine_access_chains.h */; }; - A9EE0FD928FDD2570013FF99 /* combine_access_chains.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0E28FDD2550013FF99 /* combine_access_chains.h */; }; - A9EE0FDA28FDD2570013FF99 /* combine_access_chains.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0E28FDD2550013FF99 /* combine_access_chains.h */; }; - A9EE0FDB28FDD2570013FF99 /* pass_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0F28FDD2550013FF99 /* pass_manager.h */; }; - A9EE0FDC28FDD2570013FF99 /* pass_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0F28FDD2550013FF99 /* pass_manager.h */; }; - A9EE0FDD28FDD2570013FF99 /* pass_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A0F28FDD2550013FF99 /* pass_manager.h */; }; - A9EE0FDE28FDD2570013FF99 /* spread_volatile_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1028FDD2550013FF99 /* spread_volatile_semantics.h */; }; - A9EE0FDF28FDD2570013FF99 /* spread_volatile_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1028FDD2550013FF99 /* spread_volatile_semantics.h */; }; - A9EE0FE028FDD2570013FF99 /* spread_volatile_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1028FDD2550013FF99 /* spread_volatile_semantics.h */; }; - A9EE0FE128FDD2570013FF99 /* local_access_chain_convert_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1128FDD2550013FF99 /* local_access_chain_convert_pass.cpp */; }; - A9EE0FE228FDD2570013FF99 /* local_access_chain_convert_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1128FDD2550013FF99 /* local_access_chain_convert_pass.cpp */; }; - A9EE0FE328FDD2570013FF99 /* local_access_chain_convert_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1128FDD2550013FF99 /* local_access_chain_convert_pass.cpp */; }; - A9EE0FE428FDD2570013FF99 /* interp_fixup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1228FDD2550013FF99 /* interp_fixup_pass.cpp */; }; - A9EE0FE528FDD2570013FF99 /* interp_fixup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1228FDD2550013FF99 /* interp_fixup_pass.cpp */; }; - A9EE0FE628FDD2570013FF99 /* interp_fixup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1228FDD2550013FF99 /* interp_fixup_pass.cpp */; }; - A9EE0FE728FDD2570013FF99 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1328FDD2550013FF99 /* basic_block.cpp */; }; - A9EE0FE828FDD2570013FF99 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1328FDD2550013FF99 /* basic_block.cpp */; }; - A9EE0FE928FDD2570013FF99 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1328FDD2550013FF99 /* basic_block.cpp */; }; - A9EE0FEA28FDD2570013FF99 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1428FDD2550013FF99 /* iterator.h */; }; - A9EE0FEB28FDD2570013FF99 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1428FDD2550013FF99 /* iterator.h */; }; - A9EE0FEC28FDD2570013FF99 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1428FDD2550013FF99 /* iterator.h */; }; - A9EE0FED28FDD2570013FF99 /* licm_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1528FDD2550013FF99 /* licm_pass.h */; }; - A9EE0FEE28FDD2570013FF99 /* licm_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1528FDD2550013FF99 /* licm_pass.h */; }; - A9EE0FEF28FDD2570013FF99 /* licm_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1528FDD2550013FF99 /* licm_pass.h */; }; - A9EE0FF028FDD2570013FF99 /* build_module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1628FDD2550013FF99 /* build_module.h */; }; - A9EE0FF128FDD2570013FF99 /* build_module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1628FDD2550013FF99 /* build_module.h */; }; - A9EE0FF228FDD2570013FF99 /* build_module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1628FDD2550013FF99 /* build_module.h */; }; - A9EE0FF328FDD2570013FF99 /* ccp_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1728FDD2550013FF99 /* ccp_pass.h */; }; - A9EE0FF428FDD2570013FF99 /* ccp_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1728FDD2550013FF99 /* ccp_pass.h */; }; - A9EE0FF528FDD2570013FF99 /* ccp_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1728FDD2550013FF99 /* ccp_pass.h */; }; - A9EE0FF628FDD2570013FF99 /* graphics_robust_access_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1828FDD2550013FF99 /* graphics_robust_access_pass.cpp */; }; - A9EE0FF728FDD2570013FF99 /* graphics_robust_access_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1828FDD2550013FF99 /* graphics_robust_access_pass.cpp */; }; - A9EE0FF828FDD2570013FF99 /* graphics_robust_access_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1828FDD2550013FF99 /* graphics_robust_access_pass.cpp */; }; - A9EE0FF928FDD2570013FF99 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1928FDD2550013FF99 /* function.h */; }; - A9EE0FFA28FDD2570013FF99 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1928FDD2550013FF99 /* function.h */; }; - A9EE0FFB28FDD2570013FF99 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1928FDD2550013FF99 /* function.h */; }; - A9EE0FFC28FDD2570013FF99 /* fix_func_call_arguments.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1A28FDD2550013FF99 /* fix_func_call_arguments.h */; }; - A9EE0FFD28FDD2570013FF99 /* fix_func_call_arguments.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1A28FDD2550013FF99 /* fix_func_call_arguments.h */; }; - A9EE0FFE28FDD2570013FF99 /* fix_func_call_arguments.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1A28FDD2550013FF99 /* fix_func_call_arguments.h */; }; - A9EE0FFF28FDD2570013FF99 /* loop_fusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1B28FDD2550013FF99 /* loop_fusion.cpp */; }; - A9EE100028FDD2570013FF99 /* loop_fusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1B28FDD2550013FF99 /* loop_fusion.cpp */; }; - A9EE100128FDD2570013FF99 /* loop_fusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1B28FDD2550013FF99 /* loop_fusion.cpp */; }; - A9EE100228FDD2570013FF99 /* eliminate_dead_input_components_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1C28FDD2550013FF99 /* eliminate_dead_input_components_pass.cpp */; }; - A9EE100328FDD2570013FF99 /* eliminate_dead_input_components_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1C28FDD2550013FF99 /* eliminate_dead_input_components_pass.cpp */; }; - A9EE100428FDD2570013FF99 /* eliminate_dead_input_components_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1C28FDD2550013FF99 /* eliminate_dead_input_components_pass.cpp */; }; - A9EE100528FDD2570013FF99 /* upgrade_memory_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1D28FDD2550013FF99 /* upgrade_memory_model.cpp */; }; - A9EE100628FDD2570013FF99 /* upgrade_memory_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1D28FDD2550013FF99 /* upgrade_memory_model.cpp */; }; - A9EE100728FDD2570013FF99 /* upgrade_memory_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A1D28FDD2550013FF99 /* upgrade_memory_model.cpp */; }; - A9EE100828FDD2570013FF99 /* feature_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1E28FDD2550013FF99 /* feature_manager.h */; }; - A9EE100928FDD2570013FF99 /* feature_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1E28FDD2550013FF99 /* feature_manager.h */; }; - A9EE100A28FDD2570013FF99 /* feature_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1E28FDD2550013FF99 /* feature_manager.h */; }; - A9EE100B28FDD2570013FF99 /* dataflow.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1F28FDD2550013FF99 /* dataflow.h */; }; - A9EE100C28FDD2570013FF99 /* dataflow.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1F28FDD2550013FF99 /* dataflow.h */; }; - A9EE100D28FDD2570013FF99 /* dataflow.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A1F28FDD2550013FF99 /* dataflow.h */; }; - A9EE100E28FDD2570013FF99 /* inst_bindless_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2028FDD2550013FF99 /* inst_bindless_check_pass.h */; }; - A9EE100F28FDD2570013FF99 /* inst_bindless_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2028FDD2550013FF99 /* inst_bindless_check_pass.h */; }; - A9EE101028FDD2570013FF99 /* inst_bindless_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2028FDD2550013FF99 /* inst_bindless_check_pass.h */; }; - A9EE101128FDD2570013FF99 /* scalar_analysis_simplification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2128FDD2550013FF99 /* scalar_analysis_simplification.cpp */; }; - A9EE101228FDD2570013FF99 /* scalar_analysis_simplification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2128FDD2550013FF99 /* scalar_analysis_simplification.cpp */; }; - A9EE101328FDD2570013FF99 /* scalar_analysis_simplification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2128FDD2550013FF99 /* scalar_analysis_simplification.cpp */; }; - A9EE101428FDD2570013FF99 /* set_spec_constant_default_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2228FDD2550013FF99 /* set_spec_constant_default_value_pass.h */; }; - A9EE101528FDD2570013FF99 /* set_spec_constant_default_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2228FDD2550013FF99 /* set_spec_constant_default_value_pass.h */; }; - A9EE101628FDD2570013FF99 /* set_spec_constant_default_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2228FDD2550013FF99 /* set_spec_constant_default_value_pass.h */; }; - A9EE101728FDD2570013FF99 /* dominator_tree.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2328FDD2550013FF99 /* dominator_tree.h */; }; - A9EE101828FDD2570013FF99 /* dominator_tree.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2328FDD2550013FF99 /* dominator_tree.h */; }; - A9EE101928FDD2570013FF99 /* dominator_tree.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2328FDD2550013FF99 /* dominator_tree.h */; }; - A9EE101A28FDD2570013FF99 /* remove_unused_interface_variables_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2428FDD2550013FF99 /* remove_unused_interface_variables_pass.h */; }; - A9EE101B28FDD2570013FF99 /* remove_unused_interface_variables_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2428FDD2550013FF99 /* remove_unused_interface_variables_pass.h */; }; - A9EE101C28FDD2570013FF99 /* remove_unused_interface_variables_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2428FDD2550013FF99 /* remove_unused_interface_variables_pass.h */; }; - A9EE101D28FDD2570013FF99 /* type_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2528FDD2550013FF99 /* type_manager.h */; }; - A9EE101E28FDD2570013FF99 /* type_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2528FDD2550013FF99 /* type_manager.h */; }; - A9EE101F28FDD2570013FF99 /* type_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2528FDD2550013FF99 /* type_manager.h */; }; - A9EE102028FDD2570013FF99 /* compact_ids_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2628FDD2550013FF99 /* compact_ids_pass.cpp */; }; - A9EE102128FDD2570013FF99 /* compact_ids_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2628FDD2550013FF99 /* compact_ids_pass.cpp */; }; - A9EE102228FDD2570013FF99 /* compact_ids_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2628FDD2550013FF99 /* compact_ids_pass.cpp */; }; - A9EE102328FDD2570013FF99 /* loop_peeling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2728FDD2550013FF99 /* loop_peeling.cpp */; }; - A9EE102428FDD2570013FF99 /* loop_peeling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2728FDD2550013FF99 /* loop_peeling.cpp */; }; - A9EE102528FDD2570013FF99 /* loop_peeling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0A2728FDD2550013FF99 /* loop_peeling.cpp */; }; - A9EE102628FDD2570013FF99 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2828FDD2550013FF99 /* table.h */; }; - A9EE102728FDD2570013FF99 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2828FDD2550013FF99 /* table.h */; }; - A9EE102828FDD2570013FF99 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0A2828FDD2550013FF99 /* table.h */; }; - A9EE14BE28FDD2590013FF99 /* ext_inst.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB528FDD2560013FF99 /* ext_inst.h */; }; - A9EE14BF28FDD2590013FF99 /* ext_inst.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB528FDD2560013FF99 /* ext_inst.h */; }; - A9EE14C028FDD2590013FF99 /* ext_inst.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB528FDD2560013FF99 /* ext_inst.h */; }; - A9EE14C128FDD2590013FF99 /* diagnostic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BB628FDD2560013FF99 /* diagnostic.cpp */; }; - A9EE14C228FDD2590013FF99 /* diagnostic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BB628FDD2560013FF99 /* diagnostic.cpp */; }; - A9EE14C328FDD2590013FF99 /* diagnostic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BB628FDD2560013FF99 /* diagnostic.cpp */; }; - A9EE14C428FDD2590013FF99 /* latest_version_spirv_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB728FDD2560013FF99 /* latest_version_spirv_header.h */; }; - A9EE14C528FDD2590013FF99 /* latest_version_spirv_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB728FDD2560013FF99 /* latest_version_spirv_header.h */; }; - A9EE14C628FDD2590013FF99 /* latest_version_spirv_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB728FDD2560013FF99 /* latest_version_spirv_header.h */; }; - A9EE14C728FDD2590013FF99 /* libspirv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BB828FDD2560013FF99 /* libspirv.cpp */; }; - A9EE14C828FDD2590013FF99 /* libspirv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BB828FDD2560013FF99 /* libspirv.cpp */; }; - A9EE14C928FDD2590013FF99 /* libspirv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BB828FDD2560013FF99 /* libspirv.cpp */; }; - A9EE14CA28FDD2590013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB928FDD2560013FF99 /* instruction.h */; }; - A9EE14CB28FDD2590013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB928FDD2560013FF99 /* instruction.h */; }; - A9EE14CC28FDD2590013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BB928FDD2560013FF99 /* instruction.h */; }; - A9EE14CD28FDD2590013FF99 /* spirv_optimizer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBA28FDD2560013FF99 /* spirv_optimizer_options.h */; }; - A9EE14CE28FDD2590013FF99 /* spirv_optimizer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBA28FDD2560013FF99 /* spirv_optimizer_options.h */; }; - A9EE14CF28FDD2590013FF99 /* spirv_optimizer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBA28FDD2560013FF99 /* spirv_optimizer_options.h */; }; - A9EE14D028FDD2590013FF99 /* opcode.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBB28FDD2560013FF99 /* opcode.h */; }; - A9EE14D128FDD2590013FF99 /* opcode.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBB28FDD2560013FF99 /* opcode.h */; }; - A9EE14D228FDD2590013FF99 /* opcode.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBB28FDD2560013FF99 /* opcode.h */; }; - A9EE14D328FDD2590013FF99 /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BBC28FDD2560013FF99 /* operand.cpp */; }; - A9EE14D428FDD2590013FF99 /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BBC28FDD2560013FF99 /* operand.cpp */; }; - A9EE14D528FDD2590013FF99 /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BBC28FDD2560013FF99 /* operand.cpp */; }; - A9EE14D628FDD2590013FF99 /* latest_version_glsl_std_450_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBD28FDD2560013FF99 /* latest_version_glsl_std_450_header.h */; }; - A9EE14D728FDD2590013FF99 /* latest_version_glsl_std_450_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBD28FDD2560013FF99 /* latest_version_glsl_std_450_header.h */; }; - A9EE14D828FDD2590013FF99 /* latest_version_glsl_std_450_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBD28FDD2560013FF99 /* latest_version_glsl_std_450_header.h */; }; - A9EE14D928FDD2590013FF99 /* extensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBE28FDD2560013FF99 /* extensions.h */; }; - A9EE14DA28FDD2590013FF99 /* extensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBE28FDD2560013FF99 /* extensions.h */; }; - A9EE14DB28FDD2590013FF99 /* extensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BBE28FDD2560013FF99 /* extensions.h */; }; - A9EE14DC28FDD2590013FF99 /* disassemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BBF28FDD2560013FF99 /* disassemble.cpp */; }; - A9EE14DD28FDD2590013FF99 /* disassemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BBF28FDD2560013FF99 /* disassemble.cpp */; }; - A9EE14DE28FDD2590013FF99 /* disassemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BBF28FDD2560013FF99 /* disassemble.cpp */; }; - A9EE14DF28FDD2590013FF99 /* binary.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BC028FDD2560013FF99 /* binary.h */; }; - A9EE14E028FDD2590013FF99 /* binary.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BC028FDD2560013FF99 /* binary.h */; }; - A9EE14E128FDD2590013FF99 /* binary.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BC028FDD2560013FF99 /* binary.h */; }; - A9EE14E228FDD2590013FF99 /* text_handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC128FDD2560013FF99 /* text_handler.cpp */; }; - A9EE14E328FDD2590013FF99 /* text_handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC128FDD2560013FF99 /* text_handler.cpp */; }; - A9EE14E428FDD2590013FF99 /* text_handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC128FDD2560013FF99 /* text_handler.cpp */; }; - A9EE14E528FDD2590013FF99 /* validate_annotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC328FDD2560013FF99 /* validate_annotation.cpp */; }; - A9EE14E628FDD2590013FF99 /* validate_annotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC328FDD2560013FF99 /* validate_annotation.cpp */; }; - A9EE14E728FDD2590013FF99 /* validate_annotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC328FDD2560013FF99 /* validate_annotation.cpp */; }; - A9EE14E828FDD2590013FF99 /* validate_misc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC428FDD2560013FF99 /* validate_misc.cpp */; }; - A9EE14E928FDD2590013FF99 /* validate_misc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC428FDD2560013FF99 /* validate_misc.cpp */; }; - A9EE14EA28FDD2590013FF99 /* validate_misc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC428FDD2560013FF99 /* validate_misc.cpp */; }; - A9EE14EB28FDD2590013FF99 /* validate_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC528FDD2560013FF99 /* validate_cfg.cpp */; }; - A9EE14EC28FDD2590013FF99 /* validate_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC528FDD2560013FF99 /* validate_cfg.cpp */; }; - A9EE14ED28FDD2590013FF99 /* validate_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC528FDD2560013FF99 /* validate_cfg.cpp */; }; - A9EE14EE28FDD2590013FF99 /* validate_capability.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC628FDD2560013FF99 /* validate_capability.cpp */; }; - A9EE14EF28FDD2590013FF99 /* validate_capability.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC628FDD2560013FF99 /* validate_capability.cpp */; }; - A9EE14F028FDD2590013FF99 /* validate_capability.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC628FDD2560013FF99 /* validate_capability.cpp */; }; - A9EE14F128FDD2590013FF99 /* construct.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BC728FDD2560013FF99 /* construct.h */; }; - A9EE14F228FDD2590013FF99 /* construct.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BC728FDD2560013FF99 /* construct.h */; }; - A9EE14F328FDD2590013FF99 /* construct.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BC728FDD2560013FF99 /* construct.h */; }; - A9EE14F428FDD2590013FF99 /* validate_barriers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC828FDD2560013FF99 /* validate_barriers.cpp */; }; - A9EE14F528FDD2590013FF99 /* validate_barriers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC828FDD2560013FF99 /* validate_barriers.cpp */; }; - A9EE14F628FDD2590013FF99 /* validate_barriers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC828FDD2560013FF99 /* validate_barriers.cpp */; }; - A9EE14F728FDD2590013FF99 /* validate_non_uniform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC928FDD2560013FF99 /* validate_non_uniform.cpp */; }; - A9EE14F828FDD2590013FF99 /* validate_non_uniform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC928FDD2560013FF99 /* validate_non_uniform.cpp */; }; - A9EE14F928FDD2590013FF99 /* validate_non_uniform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BC928FDD2560013FF99 /* validate_non_uniform.cpp */; }; - A9EE14FA28FDD2590013FF99 /* validate_ray_query.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCA28FDD2560013FF99 /* validate_ray_query.cpp */; }; - A9EE14FB28FDD2590013FF99 /* validate_ray_query.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCA28FDD2560013FF99 /* validate_ray_query.cpp */; }; - A9EE14FC28FDD2590013FF99 /* validate_ray_query.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCA28FDD2560013FF99 /* validate_ray_query.cpp */; }; - A9EE14FD28FDD2590013FF99 /* validate_ray_tracing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCB28FDD2560013FF99 /* validate_ray_tracing.cpp */; }; - A9EE14FE28FDD2590013FF99 /* validate_ray_tracing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCB28FDD2560013FF99 /* validate_ray_tracing.cpp */; }; - A9EE14FF28FDD2590013FF99 /* validate_ray_tracing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCB28FDD2560013FF99 /* validate_ray_tracing.cpp */; }; - A9EE150028FDD2590013FF99 /* validate_scopes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCC28FDD2560013FF99 /* validate_scopes.cpp */; }; - A9EE150128FDD2590013FF99 /* validate_scopes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCC28FDD2560013FF99 /* validate_scopes.cpp */; }; - A9EE150228FDD2590013FF99 /* validate_scopes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCC28FDD2560013FF99 /* validate_scopes.cpp */; }; - A9EE150328FDD2590013FF99 /* validate_atomics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCD28FDD2560013FF99 /* validate_atomics.cpp */; }; - A9EE150428FDD2590013FF99 /* validate_atomics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCD28FDD2560013FF99 /* validate_atomics.cpp */; }; - A9EE150528FDD2590013FF99 /* validate_atomics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCD28FDD2560013FF99 /* validate_atomics.cpp */; }; - A9EE150628FDD2590013FF99 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BCE28FDD2560013FF99 /* basic_block.h */; }; - A9EE150728FDD2590013FF99 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BCE28FDD2560013FF99 /* basic_block.h */; }; - A9EE150828FDD2590013FF99 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BCE28FDD2560013FF99 /* basic_block.h */; }; - A9EE150928FDD2590013FF99 /* validate_instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCF28FDD2560013FF99 /* validate_instruction.cpp */; }; - A9EE150A28FDD2590013FF99 /* validate_instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCF28FDD2560013FF99 /* validate_instruction.cpp */; }; - A9EE150B28FDD2590013FF99 /* validate_instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BCF28FDD2560013FF99 /* validate_instruction.cpp */; }; - A9EE150C28FDD2590013FF99 /* validate_decorations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD028FDD2560013FF99 /* validate_decorations.cpp */; }; - A9EE150D28FDD2590013FF99 /* validate_decorations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD028FDD2560013FF99 /* validate_decorations.cpp */; }; - A9EE150E28FDD2590013FF99 /* validate_decorations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD028FDD2560013FF99 /* validate_decorations.cpp */; }; - A9EE150F28FDD2590013FF99 /* validate_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD128FDD2560013FF99 /* validate_debug.cpp */; }; - A9EE151028FDD2590013FF99 /* validate_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD128FDD2560013FF99 /* validate_debug.cpp */; }; - A9EE151128FDD2590013FF99 /* validate_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD128FDD2560013FF99 /* validate_debug.cpp */; }; - A9EE151228FDD2590013FF99 /* validate_builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD228FDD2560013FF99 /* validate_builtins.cpp */; }; - A9EE151328FDD2590013FF99 /* validate_builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD228FDD2560013FF99 /* validate_builtins.cpp */; }; - A9EE151428FDD2590013FF99 /* validate_builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD228FDD2560013FF99 /* validate_builtins.cpp */; }; - A9EE151528FDD2590013FF99 /* validate_interfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD328FDD2560013FF99 /* validate_interfaces.cpp */; }; - A9EE151628FDD2590013FF99 /* validate_interfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD328FDD2560013FF99 /* validate_interfaces.cpp */; }; - A9EE151728FDD2590013FF99 /* validate_interfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD328FDD2560013FF99 /* validate_interfaces.cpp */; }; - A9EE151828FDD2590013FF99 /* validate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD428FDD2560013FF99 /* validate.cpp */; }; - A9EE151928FDD2590013FF99 /* validate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD428FDD2560013FF99 /* validate.cpp */; }; - A9EE151A28FDD2590013FF99 /* validate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD428FDD2560013FF99 /* validate.cpp */; }; - A9EE151B28FDD2590013FF99 /* validation_state.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BD528FDD2560013FF99 /* validation_state.h */; }; - A9EE151C28FDD2590013FF99 /* validation_state.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BD528FDD2560013FF99 /* validation_state.h */; }; - A9EE151D28FDD2590013FF99 /* validation_state.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BD528FDD2560013FF99 /* validation_state.h */; }; - A9EE151E28FDD2590013FF99 /* validate_constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD628FDD2560013FF99 /* validate_constants.cpp */; }; - A9EE151F28FDD2590013FF99 /* validate_constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD628FDD2560013FF99 /* validate_constants.cpp */; }; - A9EE152028FDD2590013FF99 /* validate_constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD628FDD2560013FF99 /* validate_constants.cpp */; }; - A9EE152128FDD2590013FF99 /* validate_bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD728FDD2560013FF99 /* validate_bitwise.cpp */; }; - A9EE152228FDD2590013FF99 /* validate_bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD728FDD2560013FF99 /* validate_bitwise.cpp */; }; - A9EE152328FDD2590013FF99 /* validate_bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD728FDD2560013FF99 /* validate_bitwise.cpp */; }; - A9EE152428FDD2590013FF99 /* validate_extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD828FDD2560013FF99 /* validate_extensions.cpp */; }; - A9EE152528FDD2590013FF99 /* validate_extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD828FDD2560013FF99 /* validate_extensions.cpp */; }; - A9EE152628FDD2590013FF99 /* validate_extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD828FDD2560013FF99 /* validate_extensions.cpp */; }; - A9EE152728FDD2590013FF99 /* construct.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD928FDD2560013FF99 /* construct.cpp */; }; - A9EE152828FDD2590013FF99 /* construct.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD928FDD2560013FF99 /* construct.cpp */; }; - A9EE152928FDD2590013FF99 /* construct.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BD928FDD2560013FF99 /* construct.cpp */; }; - A9EE152A28FDD2590013FF99 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDA28FDD2560013FF99 /* function.cpp */; }; - A9EE152B28FDD2590013FF99 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDA28FDD2560013FF99 /* function.cpp */; }; - A9EE152C28FDD2590013FF99 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDA28FDD2560013FF99 /* function.cpp */; }; - A9EE152D28FDD2590013FF99 /* validate.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BDB28FDD2560013FF99 /* validate.h */; }; - A9EE152E28FDD2590013FF99 /* validate.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BDB28FDD2560013FF99 /* validate.h */; }; - A9EE152F28FDD2590013FF99 /* validate.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BDB28FDD2560013FF99 /* validate.h */; }; - A9EE153028FDD2590013FF99 /* validate_adjacency.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDC28FDD2560013FF99 /* validate_adjacency.cpp */; }; - A9EE153128FDD2590013FF99 /* validate_adjacency.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDC28FDD2560013FF99 /* validate_adjacency.cpp */; }; - A9EE153228FDD2590013FF99 /* validate_adjacency.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDC28FDD2560013FF99 /* validate_adjacency.cpp */; }; - A9EE153328FDD2590013FF99 /* validate_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDD28FDD2560013FF99 /* validate_conversion.cpp */; }; - A9EE153428FDD2590013FF99 /* validate_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDD28FDD2560013FF99 /* validate_conversion.cpp */; }; - A9EE153528FDD2590013FF99 /* validate_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDD28FDD2560013FF99 /* validate_conversion.cpp */; }; - A9EE153628FDD2590013FF99 /* validate_small_type_uses.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDE28FDD2560013FF99 /* validate_small_type_uses.cpp */; }; - A9EE153728FDD2590013FF99 /* validate_small_type_uses.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDE28FDD2560013FF99 /* validate_small_type_uses.cpp */; }; - A9EE153828FDD2590013FF99 /* validate_small_type_uses.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BDE28FDD2560013FF99 /* validate_small_type_uses.cpp */; }; - A9EE153928FDD2590013FF99 /* validate_scopes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BDF28FDD2560013FF99 /* validate_scopes.h */; }; - A9EE153A28FDD2590013FF99 /* validate_scopes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BDF28FDD2560013FF99 /* validate_scopes.h */; }; - A9EE153B28FDD2590013FF99 /* validate_scopes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BDF28FDD2560013FF99 /* validate_scopes.h */; }; - A9EE153C28FDD2590013FF99 /* validate_id.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE028FDD2560013FF99 /* validate_id.cpp */; }; - A9EE153D28FDD2590013FF99 /* validate_id.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE028FDD2560013FF99 /* validate_id.cpp */; }; - A9EE153E28FDD2590013FF99 /* validate_id.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE028FDD2560013FF99 /* validate_id.cpp */; }; - A9EE153F28FDD2590013FF99 /* validate_memory_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BE128FDD2560013FF99 /* validate_memory_semantics.h */; }; - A9EE154028FDD2590013FF99 /* validate_memory_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BE128FDD2560013FF99 /* validate_memory_semantics.h */; }; - A9EE154128FDD2590013FF99 /* validate_memory_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BE128FDD2560013FF99 /* validate_memory_semantics.h */; }; - A9EE154228FDD2590013FF99 /* validate_arithmetics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE228FDD2560013FF99 /* validate_arithmetics.cpp */; }; - A9EE154328FDD2590013FF99 /* validate_arithmetics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE228FDD2560013FF99 /* validate_arithmetics.cpp */; }; - A9EE154428FDD2590013FF99 /* validate_arithmetics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE228FDD2560013FF99 /* validate_arithmetics.cpp */; }; - A9EE154528FDD2590013FF99 /* validate_mode_setting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE328FDD2560013FF99 /* validate_mode_setting.cpp */; }; - A9EE154628FDD2590013FF99 /* validate_mode_setting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE328FDD2560013FF99 /* validate_mode_setting.cpp */; }; - A9EE154728FDD2590013FF99 /* validate_mode_setting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE328FDD2560013FF99 /* validate_mode_setting.cpp */; }; - A9EE154828FDD2590013FF99 /* validate_memory_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE428FDD2560013FF99 /* validate_memory_semantics.cpp */; }; - A9EE154928FDD2590013FF99 /* validate_memory_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE428FDD2560013FF99 /* validate_memory_semantics.cpp */; }; - A9EE154A28FDD2590013FF99 /* validate_memory_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE428FDD2560013FF99 /* validate_memory_semantics.cpp */; }; - A9EE154B28FDD2590013FF99 /* validate_logicals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE528FDD2560013FF99 /* validate_logicals.cpp */; }; - A9EE154C28FDD2590013FF99 /* validate_logicals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE528FDD2560013FF99 /* validate_logicals.cpp */; }; - A9EE154D28FDD2590013FF99 /* validate_logicals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE528FDD2560013FF99 /* validate_logicals.cpp */; }; - A9EE154E28FDD2590013FF99 /* validate_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE628FDD2560013FF99 /* validate_derivatives.cpp */; }; - A9EE154F28FDD2590013FF99 /* validate_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE628FDD2560013FF99 /* validate_derivatives.cpp */; }; - A9EE155028FDD2590013FF99 /* validate_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE628FDD2560013FF99 /* validate_derivatives.cpp */; }; - A9EE155128FDD2590013FF99 /* validate_memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE728FDD2560013FF99 /* validate_memory.cpp */; }; - A9EE155228FDD2590013FF99 /* validate_memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE728FDD2560013FF99 /* validate_memory.cpp */; }; - A9EE155328FDD2590013FF99 /* validate_memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE728FDD2560013FF99 /* validate_memory.cpp */; }; - A9EE155428FDD2590013FF99 /* validate_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE828FDD2560013FF99 /* validate_image.cpp */; }; - A9EE155528FDD2590013FF99 /* validate_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE828FDD2560013FF99 /* validate_image.cpp */; }; - A9EE155628FDD2590013FF99 /* validate_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE828FDD2560013FF99 /* validate_image.cpp */; }; - A9EE155728FDD2590013FF99 /* validate_literals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE928FDD2560013FF99 /* validate_literals.cpp */; }; - A9EE155828FDD2590013FF99 /* validate_literals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE928FDD2560013FF99 /* validate_literals.cpp */; }; - A9EE155928FDD2590013FF99 /* validate_literals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BE928FDD2560013FF99 /* validate_literals.cpp */; }; - A9EE155A28FDD2590013FF99 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEA28FDD2560013FF99 /* instruction.cpp */; }; - A9EE155B28FDD2590013FF99 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEA28FDD2560013FF99 /* instruction.cpp */; }; - A9EE155C28FDD2590013FF99 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEA28FDD2560013FF99 /* instruction.cpp */; }; - A9EE155D28FDD2590013FF99 /* validate_type.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEB28FDD2560013FF99 /* validate_type.cpp */; }; - A9EE155E28FDD2590013FF99 /* validate_type.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEB28FDD2560013FF99 /* validate_type.cpp */; }; - A9EE155F28FDD2590013FF99 /* validate_type.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEB28FDD2560013FF99 /* validate_type.cpp */; }; - A9EE156028FDD2590013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BEC28FDD2560013FF99 /* instruction.h */; }; - A9EE156128FDD2590013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BEC28FDD2560013FF99 /* instruction.h */; }; - A9EE156228FDD2590013FF99 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BEC28FDD2560013FF99 /* instruction.h */; }; - A9EE156328FDD2590013FF99 /* validate_mesh_shading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BED28FDD2560013FF99 /* validate_mesh_shading.cpp */; }; - A9EE156428FDD2590013FF99 /* validate_mesh_shading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BED28FDD2560013FF99 /* validate_mesh_shading.cpp */; }; - A9EE156528FDD2590013FF99 /* validate_mesh_shading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BED28FDD2560013FF99 /* validate_mesh_shading.cpp */; }; - A9EE156628FDD2590013FF99 /* validate_execution_limitations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEE28FDD2560013FF99 /* validate_execution_limitations.cpp */; }; - A9EE156728FDD2590013FF99 /* validate_execution_limitations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEE28FDD2560013FF99 /* validate_execution_limitations.cpp */; }; - A9EE156828FDD2590013FF99 /* validate_execution_limitations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEE28FDD2560013FF99 /* validate_execution_limitations.cpp */; }; - A9EE156928FDD2590013FF99 /* validate_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEF28FDD2560013FF99 /* validate_layout.cpp */; }; - A9EE156A28FDD2590013FF99 /* validate_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEF28FDD2560013FF99 /* validate_layout.cpp */; }; - A9EE156B28FDD2590013FF99 /* validate_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BEF28FDD2560013FF99 /* validate_layout.cpp */; }; - A9EE156C28FDD2590013FF99 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF028FDD2560013FF99 /* basic_block.cpp */; }; - A9EE156D28FDD2590013FF99 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF028FDD2560013FF99 /* basic_block.cpp */; }; - A9EE156E28FDD2590013FF99 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF028FDD2560013FF99 /* basic_block.cpp */; }; - A9EE156F28FDD2590013FF99 /* validate_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF128FDD2560013FF99 /* validate_function.cpp */; }; - A9EE157028FDD2590013FF99 /* validate_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF128FDD2560013FF99 /* validate_function.cpp */; }; - A9EE157128FDD2590013FF99 /* validate_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF128FDD2560013FF99 /* validate_function.cpp */; }; - A9EE157228FDD2590013FF99 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BF228FDD2560013FF99 /* function.h */; }; - A9EE157328FDD2590013FF99 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BF228FDD2560013FF99 /* function.h */; }; - A9EE157428FDD2590013FF99 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BF228FDD2560013FF99 /* function.h */; }; - A9EE157528FDD2590013FF99 /* validate_composites.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF328FDD2560013FF99 /* validate_composites.cpp */; }; - A9EE157628FDD2590013FF99 /* validate_composites.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF328FDD2560013FF99 /* validate_composites.cpp */; }; - A9EE157728FDD2590013FF99 /* validate_composites.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF328FDD2560013FF99 /* validate_composites.cpp */; }; - A9EE157828FDD2590013FF99 /* validation_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF428FDD2560013FF99 /* validation_state.cpp */; }; - A9EE157928FDD2590013FF99 /* validation_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF428FDD2560013FF99 /* validation_state.cpp */; }; - A9EE157A28FDD2590013FF99 /* validation_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF428FDD2560013FF99 /* validation_state.cpp */; }; - A9EE157B28FDD2590013FF99 /* validate_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF528FDD2560013FF99 /* validate_primitives.cpp */; }; - A9EE157C28FDD2590013FF99 /* validate_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF528FDD2560013FF99 /* validate_primitives.cpp */; }; - A9EE157D28FDD2590013FF99 /* validate_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9EE0BF528FDD2560013FF99 /* validate_primitives.cpp */; }; - A9EE157E28FDD2590013FF99 /* decoration.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BF628FDD2560013FF99 /* decoration.h */; }; - A9EE157F28FDD2590013FF99 /* decoration.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BF628FDD2560013FF99 /* decoration.h */; }; - A9EE158028FDD2590013FF99 /* decoration.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE0BF628FDD2560013FF99 /* decoration.h */; }; + A9F7B35929425A1800B30DA7 /* spirv_target_env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B00D29425A1700B30DA7 /* spirv_target_env.cpp */; }; + A9F7B35A29425A1800B30DA7 /* spirv_target_env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B00D29425A1700B30DA7 /* spirv_target_env.cpp */; }; + A9F7B35B29425A1800B30DA7 /* spirv_target_env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B00D29425A1700B30DA7 /* spirv_target_env.cpp */; }; + A9F7B35C29425A1800B30DA7 /* spirv_fuzzer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B00E29425A1700B30DA7 /* spirv_fuzzer_options.h */; }; + A9F7B35D29425A1800B30DA7 /* spirv_fuzzer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B00E29425A1700B30DA7 /* spirv_fuzzer_options.h */; }; + A9F7B35E29425A1800B30DA7 /* spirv_fuzzer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B00E29425A1700B30DA7 /* spirv_fuzzer_options.h */; }; + A9F7B35F29425A1800B30DA7 /* assembly_grammar.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B00F29425A1700B30DA7 /* assembly_grammar.h */; }; + A9F7B36029425A1800B30DA7 /* assembly_grammar.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B00F29425A1700B30DA7 /* assembly_grammar.h */; }; + A9F7B36129425A1800B30DA7 /* assembly_grammar.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B00F29425A1700B30DA7 /* assembly_grammar.h */; }; + A9F7B36229425A1800B30DA7 /* lint_divergent_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01229425A1700B30DA7 /* lint_divergent_derivatives.cpp */; }; + A9F7B36329425A1800B30DA7 /* lint_divergent_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01229425A1700B30DA7 /* lint_divergent_derivatives.cpp */; }; + A9F7B36429425A1800B30DA7 /* lint_divergent_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01229425A1700B30DA7 /* lint_divergent_derivatives.cpp */; }; + A9F7B36529425A1800B30DA7 /* linter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01329425A1700B30DA7 /* linter.cpp */; }; + A9F7B36629425A1800B30DA7 /* linter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01329425A1700B30DA7 /* linter.cpp */; }; + A9F7B36729425A1800B30DA7 /* linter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01329425A1700B30DA7 /* linter.cpp */; }; + A9F7B36829425A1800B30DA7 /* divergence_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01429425A1700B30DA7 /* divergence_analysis.cpp */; }; + A9F7B36929425A1800B30DA7 /* divergence_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01429425A1700B30DA7 /* divergence_analysis.cpp */; }; + A9F7B36A29425A1800B30DA7 /* divergence_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01429425A1700B30DA7 /* divergence_analysis.cpp */; }; + A9F7B36B29425A1800B30DA7 /* lints.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01529425A1700B30DA7 /* lints.h */; }; + A9F7B36C29425A1800B30DA7 /* lints.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01529425A1700B30DA7 /* lints.h */; }; + A9F7B36D29425A1800B30DA7 /* lints.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01529425A1700B30DA7 /* lints.h */; }; + A9F7B36E29425A1800B30DA7 /* divergence_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01629425A1700B30DA7 /* divergence_analysis.h */; }; + A9F7B36F29425A1800B30DA7 /* divergence_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01629425A1700B30DA7 /* divergence_analysis.h */; }; + A9F7B37029425A1800B30DA7 /* divergence_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01629425A1700B30DA7 /* divergence_analysis.h */; }; + A9F7B37129425A1800B30DA7 /* enum_set.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01729425A1700B30DA7 /* enum_set.h */; }; + A9F7B37229425A1800B30DA7 /* enum_set.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01729425A1700B30DA7 /* enum_set.h */; }; + A9F7B37329425A1800B30DA7 /* enum_set.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01729425A1700B30DA7 /* enum_set.h */; }; + A9F7B37429425A1800B30DA7 /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01929425A1700B30DA7 /* text.cpp */; }; + A9F7B37529425A1800B30DA7 /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01929425A1700B30DA7 /* text.cpp */; }; + A9F7B37629425A1800B30DA7 /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01929425A1700B30DA7 /* text.cpp */; }; + A9F7B37729425A1800B30DA7 /* assembly_grammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01A29425A1700B30DA7 /* assembly_grammar.cpp */; }; + A9F7B37829425A1800B30DA7 /* assembly_grammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01A29425A1700B30DA7 /* assembly_grammar.cpp */; }; + A9F7B37929425A1800B30DA7 /* assembly_grammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01A29425A1700B30DA7 /* assembly_grammar.cpp */; }; + A9F7B37A29425A1800B30DA7 /* text.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01B29425A1700B30DA7 /* text.h */; }; + A9F7B37B29425A1800B30DA7 /* text.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01B29425A1700B30DA7 /* text.h */; }; + A9F7B37C29425A1800B30DA7 /* text.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01B29425A1700B30DA7 /* text.h */; }; + A9F7B37D29425A1800B30DA7 /* extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01C29425A1700B30DA7 /* extensions.cpp */; }; + A9F7B37E29425A1800B30DA7 /* extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01C29425A1700B30DA7 /* extensions.cpp */; }; + A9F7B37F29425A1800B30DA7 /* extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01C29425A1700B30DA7 /* extensions.cpp */; }; + A9F7B38029425A1800B30DA7 /* pch_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01D29425A1700B30DA7 /* pch_source.cpp */; }; + A9F7B38129425A1800B30DA7 /* pch_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01D29425A1700B30DA7 /* pch_source.cpp */; }; + A9F7B38229425A1800B30DA7 /* pch_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B01D29425A1700B30DA7 /* pch_source.cpp */; }; + A9F7B38329425A1800B30DA7 /* parse_number.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01F29425A1700B30DA7 /* parse_number.h */; }; + A9F7B38429425A1800B30DA7 /* parse_number.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01F29425A1700B30DA7 /* parse_number.h */; }; + A9F7B38529425A1800B30DA7 /* parse_number.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B01F29425A1700B30DA7 /* parse_number.h */; }; + A9F7B38629425A1800B30DA7 /* ilist_node.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02029425A1700B30DA7 /* ilist_node.h */; }; + A9F7B38729425A1800B30DA7 /* ilist_node.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02029425A1700B30DA7 /* ilist_node.h */; }; + A9F7B38829425A1800B30DA7 /* ilist_node.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02029425A1700B30DA7 /* ilist_node.h */; }; + A9F7B38929425A1800B30DA7 /* make_unique.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02129425A1700B30DA7 /* make_unique.h */; }; + A9F7B38A29425A1800B30DA7 /* make_unique.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02129425A1700B30DA7 /* make_unique.h */; }; + A9F7B38B29425A1800B30DA7 /* make_unique.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02129425A1700B30DA7 /* make_unique.h */; }; + A9F7B38C29425A1800B30DA7 /* string_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02229425A1700B30DA7 /* string_utils.h */; }; + A9F7B38D29425A1800B30DA7 /* string_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02229425A1700B30DA7 /* string_utils.h */; }; + A9F7B38E29425A1800B30DA7 /* string_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02229425A1700B30DA7 /* string_utils.h */; }; + A9F7B38F29425A1800B30DA7 /* small_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02329425A1700B30DA7 /* small_vector.h */; }; + A9F7B39029425A1800B30DA7 /* small_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02329425A1700B30DA7 /* small_vector.h */; }; + A9F7B39129425A1800B30DA7 /* small_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02329425A1700B30DA7 /* small_vector.h */; }; + A9F7B39229425A1800B30DA7 /* hash_combine.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02429425A1700B30DA7 /* hash_combine.h */; }; + A9F7B39329425A1800B30DA7 /* hash_combine.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02429425A1700B30DA7 /* hash_combine.h */; }; + A9F7B39429425A1800B30DA7 /* hash_combine.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02429425A1700B30DA7 /* hash_combine.h */; }; + A9F7B39529425A1800B30DA7 /* timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02529425A1700B30DA7 /* timer.cpp */; }; + A9F7B39629425A1800B30DA7 /* timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02529425A1700B30DA7 /* timer.cpp */; }; + A9F7B39729425A1800B30DA7 /* timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02529425A1700B30DA7 /* timer.cpp */; }; + A9F7B39829425A1800B30DA7 /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02629425A1700B30DA7 /* timer.h */; }; + A9F7B39929425A1800B30DA7 /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02629425A1700B30DA7 /* timer.h */; }; + A9F7B39A29425A1800B30DA7 /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02629425A1700B30DA7 /* timer.h */; }; + A9F7B39B29425A1800B30DA7 /* string_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02729425A1700B30DA7 /* string_utils.cpp */; }; + A9F7B39C29425A1800B30DA7 /* string_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02729425A1700B30DA7 /* string_utils.cpp */; }; + A9F7B39D29425A1800B30DA7 /* string_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02729425A1700B30DA7 /* string_utils.cpp */; }; + A9F7B39E29425A1800B30DA7 /* bit_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02829425A1700B30DA7 /* bit_vector.h */; }; + A9F7B39F29425A1800B30DA7 /* bit_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02829425A1700B30DA7 /* bit_vector.h */; }; + A9F7B3A029425A1800B30DA7 /* bit_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02829425A1700B30DA7 /* bit_vector.h */; }; + A9F7B3A129425A1800B30DA7 /* bitutils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02929425A1700B30DA7 /* bitutils.h */; }; + A9F7B3A229425A1800B30DA7 /* bitutils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02929425A1700B30DA7 /* bitutils.h */; }; + A9F7B3A329425A1800B30DA7 /* bitutils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02929425A1700B30DA7 /* bitutils.h */; }; + A9F7B3A429425A1800B30DA7 /* hex_float.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02A29425A1700B30DA7 /* hex_float.h */; }; + A9F7B3A529425A1800B30DA7 /* hex_float.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02A29425A1700B30DA7 /* hex_float.h */; }; + A9F7B3A629425A1800B30DA7 /* hex_float.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02A29425A1700B30DA7 /* hex_float.h */; }; + A9F7B3A729425A1800B30DA7 /* parse_number.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02B29425A1700B30DA7 /* parse_number.cpp */; }; + A9F7B3A829425A1800B30DA7 /* parse_number.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02B29425A1700B30DA7 /* parse_number.cpp */; }; + A9F7B3A929425A1800B30DA7 /* parse_number.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02B29425A1700B30DA7 /* parse_number.cpp */; }; + A9F7B3AA29425A1800B30DA7 /* bit_vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02C29425A1700B30DA7 /* bit_vector.cpp */; }; + A9F7B3AB29425A1800B30DA7 /* bit_vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02C29425A1700B30DA7 /* bit_vector.cpp */; }; + A9F7B3AC29425A1800B30DA7 /* bit_vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02C29425A1700B30DA7 /* bit_vector.cpp */; }; + A9F7B3AD29425A1800B30DA7 /* ilist.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02D29425A1700B30DA7 /* ilist.h */; }; + A9F7B3AE29425A1800B30DA7 /* ilist.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02D29425A1700B30DA7 /* ilist.h */; }; + A9F7B3AF29425A1800B30DA7 /* ilist.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02D29425A1700B30DA7 /* ilist.h */; }; + A9F7B3B029425A1800B30DA7 /* spirv_target_env.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02E29425A1700B30DA7 /* spirv_target_env.h */; }; + A9F7B3B129425A1800B30DA7 /* spirv_target_env.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02E29425A1700B30DA7 /* spirv_target_env.h */; }; + A9F7B3B229425A1800B30DA7 /* spirv_target_env.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B02E29425A1700B30DA7 /* spirv_target_env.h */; }; + A9F7B3B329425A1800B30DA7 /* table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02F29425A1700B30DA7 /* table.cpp */; }; + A9F7B3B429425A1800B30DA7 /* table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02F29425A1700B30DA7 /* table.cpp */; }; + A9F7B3B529425A1800B30DA7 /* table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B02F29425A1700B30DA7 /* table.cpp */; }; + A9F7B3B629425A1800B30DA7 /* operand_to_undef_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03129425A1700B30DA7 /* operand_to_undef_reduction_opportunity_finder.h */; }; + A9F7B3B729425A1800B30DA7 /* operand_to_undef_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03129425A1700B30DA7 /* operand_to_undef_reduction_opportunity_finder.h */; }; + A9F7B3B829425A1800B30DA7 /* operand_to_undef_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03129425A1700B30DA7 /* operand_to_undef_reduction_opportunity_finder.h */; }; + A9F7B3B929425A1800B30DA7 /* remove_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03229425A1700B30DA7 /* remove_selection_reduction_opportunity.cpp */; }; + A9F7B3BA29425A1800B30DA7 /* remove_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03229425A1700B30DA7 /* remove_selection_reduction_opportunity.cpp */; }; + A9F7B3BB29425A1800B30DA7 /* remove_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03229425A1700B30DA7 /* remove_selection_reduction_opportunity.cpp */; }; + A9F7B3BC29425A1800B30DA7 /* remove_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03329425A1700B30DA7 /* remove_block_reduction_opportunity.h */; }; + A9F7B3BD29425A1800B30DA7 /* remove_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03329425A1700B30DA7 /* remove_block_reduction_opportunity.h */; }; + A9F7B3BE29425A1800B30DA7 /* remove_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03329425A1700B30DA7 /* remove_block_reduction_opportunity.h */; }; + A9F7B3BF29425A1800B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03429425A1700B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.h */; }; + A9F7B3C029425A1800B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03429425A1700B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.h */; }; + A9F7B3C129425A1800B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03429425A1700B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.h */; }; + A9F7B3C229425A1800B30DA7 /* reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03529425A1700B30DA7 /* reduction_pass.cpp */; }; + A9F7B3C329425A1800B30DA7 /* reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03529425A1700B30DA7 /* reduction_pass.cpp */; }; + A9F7B3C429425A1800B30DA7 /* reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03529425A1700B30DA7 /* reduction_pass.cpp */; }; + A9F7B3C529425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03629425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity.h */; }; + A9F7B3C629425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03629425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity.h */; }; + A9F7B3C729425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03629425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity.h */; }; + A9F7B3C829425A1800B30DA7 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03729425A1700B30DA7 /* operand_to_const_reduction_opportunity_finder.cpp */; }; + A9F7B3C929425A1800B30DA7 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03729425A1700B30DA7 /* operand_to_const_reduction_opportunity_finder.cpp */; }; + A9F7B3CA29425A1800B30DA7 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03729425A1700B30DA7 /* operand_to_const_reduction_opportunity_finder.cpp */; }; + A9F7B3CB29425A1800B30DA7 /* operand_to_const_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03829425A1700B30DA7 /* operand_to_const_reduction_opportunity_finder.h */; }; + A9F7B3CC29425A1800B30DA7 /* operand_to_const_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03829425A1700B30DA7 /* operand_to_const_reduction_opportunity_finder.h */; }; + A9F7B3CD29425A1800B30DA7 /* operand_to_const_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03829425A1700B30DA7 /* operand_to_const_reduction_opportunity_finder.h */; }; + A9F7B3CE29425A1800B30DA7 /* reduction_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03A29425A1700B30DA7 /* reduction_util.cpp */; }; + A9F7B3CF29425A1800B30DA7 /* reduction_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03A29425A1700B30DA7 /* reduction_util.cpp */; }; + A9F7B3D029425A1800B30DA7 /* reduction_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03A29425A1700B30DA7 /* reduction_util.cpp */; }; + A9F7B3D129425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03B29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.h */; }; + A9F7B3D229425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03B29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.h */; }; + A9F7B3D329425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03B29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.h */; }; + A9F7B3D429425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03C29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */; }; + A9F7B3D529425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03C29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */; }; + A9F7B3D629425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03C29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */; }; + A9F7B3D729425A1800B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03D29425A1700B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.h */; }; + A9F7B3D829425A1800B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03D29425A1700B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.h */; }; + A9F7B3D929425A1800B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03D29425A1700B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.h */; }; + A9F7B3DA29425A1800B30DA7 /* remove_function_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03E29425A1700B30DA7 /* remove_function_reduction_opportunity_finder.cpp */; }; + A9F7B3DB29425A1800B30DA7 /* remove_function_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03E29425A1700B30DA7 /* remove_function_reduction_opportunity_finder.cpp */; }; + A9F7B3DC29425A1800B30DA7 /* remove_function_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B03E29425A1700B30DA7 /* remove_function_reduction_opportunity_finder.cpp */; }; + A9F7B3DD29425A1800B30DA7 /* remove_instruction_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03F29425A1700B30DA7 /* remove_instruction_reduction_opportunity.h */; }; + A9F7B3DE29425A1800B30DA7 /* remove_instruction_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03F29425A1700B30DA7 /* remove_instruction_reduction_opportunity.h */; }; + A9F7B3DF29425A1800B30DA7 /* remove_instruction_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B03F29425A1700B30DA7 /* remove_instruction_reduction_opportunity.h */; }; + A9F7B3E029425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04029425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */; }; + A9F7B3E129425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04029425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */; }; + A9F7B3E229425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04029425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */; }; + A9F7B3E329425A1800B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04129425A1700B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */; }; + A9F7B3E429425A1800B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04129425A1700B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */; }; + A9F7B3E529425A1800B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04129425A1700B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */; }; + A9F7B3E629425A1800B30DA7 /* remove_function_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04229425A1700B30DA7 /* remove_function_reduction_opportunity.cpp */; }; + A9F7B3E729425A1800B30DA7 /* remove_function_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04229425A1700B30DA7 /* remove_function_reduction_opportunity.cpp */; }; + A9F7B3E829425A1800B30DA7 /* remove_function_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04229425A1700B30DA7 /* remove_function_reduction_opportunity.cpp */; }; + A9F7B3E929425A1800B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04329425A1700B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */; }; + A9F7B3EA29425A1800B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04329425A1700B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */; }; + A9F7B3EB29425A1800B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04329425A1700B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */; }; + A9F7B3EC29425A1800B30DA7 /* remove_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04429425A1700B30DA7 /* remove_selection_reduction_opportunity_finder.cpp */; }; + A9F7B3ED29425A1800B30DA7 /* remove_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04429425A1700B30DA7 /* remove_selection_reduction_opportunity_finder.cpp */; }; + A9F7B3EE29425A1800B30DA7 /* remove_selection_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04429425A1700B30DA7 /* remove_selection_reduction_opportunity_finder.cpp */; }; + A9F7B3EF29425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04529425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */; }; + A9F7B3F029425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04529425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */; }; + A9F7B3F129425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04529425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */; }; + A9F7B3F229425A1800B30DA7 /* remove_struct_member_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04629425A1700B30DA7 /* remove_struct_member_reduction_opportunity.h */; }; + A9F7B3F329425A1800B30DA7 /* remove_struct_member_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04629425A1700B30DA7 /* remove_struct_member_reduction_opportunity.h */; }; + A9F7B3F429425A1800B30DA7 /* remove_struct_member_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04629425A1700B30DA7 /* remove_struct_member_reduction_opportunity.h */; }; + A9F7B3F529425A1800B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04729425A1700B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.h */; }; + A9F7B3F629425A1800B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04729425A1700B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.h */; }; + A9F7B3F729425A1800B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04729425A1700B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.h */; }; + A9F7B3F829425A1800B30DA7 /* merge_blocks_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04829425A1700B30DA7 /* merge_blocks_reduction_opportunity.cpp */; }; + A9F7B3F929425A1800B30DA7 /* merge_blocks_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04829425A1700B30DA7 /* merge_blocks_reduction_opportunity.cpp */; }; + A9F7B3FA29425A1800B30DA7 /* merge_blocks_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04829425A1700B30DA7 /* merge_blocks_reduction_opportunity.cpp */; }; + A9F7B3FB29425A1800B30DA7 /* change_operand_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04929425A1700B30DA7 /* change_operand_reduction_opportunity.cpp */; }; + A9F7B3FC29425A1800B30DA7 /* change_operand_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04929425A1700B30DA7 /* change_operand_reduction_opportunity.cpp */; }; + A9F7B3FD29425A1800B30DA7 /* change_operand_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B04929425A1700B30DA7 /* change_operand_reduction_opportunity.cpp */; }; + A9F7B3FE29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04A29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity.h */; }; + A9F7B3FF29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04A29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity.h */; }; + A9F7B40029425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04A29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity.h */; }; + A9F7B40129425A1800B30DA7 /* remove_function_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04B29425A1700B30DA7 /* remove_function_reduction_opportunity.h */; }; + A9F7B40229425A1800B30DA7 /* remove_function_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04B29425A1700B30DA7 /* remove_function_reduction_opportunity.h */; }; + A9F7B40329425A1800B30DA7 /* remove_function_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04B29425A1700B30DA7 /* remove_function_reduction_opportunity.h */; }; + A9F7B40429425A1800B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04C29425A1700B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.h */; }; + A9F7B40529425A1800B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04C29425A1700B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.h */; }; + A9F7B40629425A1800B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04C29425A1700B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.h */; }; + A9F7B40729425A1800B30DA7 /* change_operand_to_undef_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04D29425A1700B30DA7 /* change_operand_to_undef_reduction_opportunity.h */; }; + A9F7B40829425A1800B30DA7 /* change_operand_to_undef_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04D29425A1700B30DA7 /* change_operand_to_undef_reduction_opportunity.h */; }; + A9F7B40929425A1800B30DA7 /* change_operand_to_undef_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04D29425A1700B30DA7 /* change_operand_to_undef_reduction_opportunity.h */; }; + A9F7B40A29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04E29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.h */; }; + A9F7B40B29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04E29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.h */; }; + A9F7B40C29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04E29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.h */; }; + A9F7B40D29425A1800B30DA7 /* remove_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04F29425A1700B30DA7 /* remove_selection_reduction_opportunity.h */; }; + A9F7B40E29425A1800B30DA7 /* remove_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04F29425A1700B30DA7 /* remove_selection_reduction_opportunity.h */; }; + A9F7B40F29425A1800B30DA7 /* remove_selection_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B04F29425A1700B30DA7 /* remove_selection_reduction_opportunity.h */; }; + A9F7B41029425A1800B30DA7 /* remove_instruction_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05029425A1700B30DA7 /* remove_instruction_reduction_opportunity.cpp */; }; + A9F7B41129425A1800B30DA7 /* remove_instruction_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05029425A1700B30DA7 /* remove_instruction_reduction_opportunity.cpp */; }; + A9F7B41229425A1800B30DA7 /* remove_instruction_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05029425A1700B30DA7 /* remove_instruction_reduction_opportunity.cpp */; }; + A9F7B41329425A1800B30DA7 /* remove_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05129425A1700B30DA7 /* remove_selection_reduction_opportunity_finder.h */; }; + A9F7B41429425A1800B30DA7 /* remove_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05129425A1700B30DA7 /* remove_selection_reduction_opportunity_finder.h */; }; + A9F7B41529425A1800B30DA7 /* remove_selection_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05129425A1700B30DA7 /* remove_selection_reduction_opportunity_finder.h */; }; + A9F7B41629425A1800B30DA7 /* merge_blocks_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05229425A1700B30DA7 /* merge_blocks_reduction_opportunity_finder.h */; }; + A9F7B41729425A1800B30DA7 /* merge_blocks_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05229425A1700B30DA7 /* merge_blocks_reduction_opportunity_finder.h */; }; + A9F7B41829425A1800B30DA7 /* merge_blocks_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05229425A1700B30DA7 /* merge_blocks_reduction_opportunity_finder.h */; }; + A9F7B41929425A1800B30DA7 /* pch_source_reduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05329425A1700B30DA7 /* pch_source_reduce.cpp */; }; + A9F7B41A29425A1800B30DA7 /* pch_source_reduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05329425A1700B30DA7 /* pch_source_reduce.cpp */; }; + A9F7B41B29425A1800B30DA7 /* pch_source_reduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05329425A1700B30DA7 /* pch_source_reduce.cpp */; }; + A9F7B41C29425A1800B30DA7 /* remove_struct_member_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05429425A1700B30DA7 /* remove_struct_member_reduction_opportunity.cpp */; }; + A9F7B41D29425A1800B30DA7 /* remove_struct_member_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05429425A1700B30DA7 /* remove_struct_member_reduction_opportunity.cpp */; }; + A9F7B41E29425A1800B30DA7 /* remove_struct_member_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05429425A1700B30DA7 /* remove_struct_member_reduction_opportunity.cpp */; }; + A9F7B41F29425A1800B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05529425A1700B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.h */; }; + A9F7B42029425A1800B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05529425A1700B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.h */; }; + A9F7B42129425A1800B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05529425A1700B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.h */; }; + A9F7B42229425A1800B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05629425A1700B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.cpp */; }; + A9F7B42329425A1800B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05629425A1700B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.cpp */; }; + A9F7B42429425A1800B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05629425A1700B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.cpp */; }; + A9F7B42529425A1800B30DA7 /* reducer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05729425A1700B30DA7 /* reducer.cpp */; }; + A9F7B42629425A1800B30DA7 /* reducer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05729425A1700B30DA7 /* reducer.cpp */; }; + A9F7B42729425A1800B30DA7 /* reducer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05729425A1700B30DA7 /* reducer.cpp */; }; + A9F7B42829425A1800B30DA7 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05829425A1700B30DA7 /* operand_to_undef_reduction_opportunity_finder.cpp */; }; + A9F7B42929425A1800B30DA7 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05829425A1700B30DA7 /* operand_to_undef_reduction_opportunity_finder.cpp */; }; + A9F7B42A29425A1800B30DA7 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05829425A1700B30DA7 /* operand_to_undef_reduction_opportunity_finder.cpp */; }; + A9F7B42B29425A1800B30DA7 /* remove_function_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05929425A1700B30DA7 /* remove_function_reduction_opportunity_finder.h */; }; + A9F7B42C29425A1800B30DA7 /* remove_function_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05929425A1700B30DA7 /* remove_function_reduction_opportunity_finder.h */; }; + A9F7B42D29425A1800B30DA7 /* remove_function_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05929425A1700B30DA7 /* remove_function_reduction_opportunity_finder.h */; }; + A9F7B42E29425A1800B30DA7 /* pch_source_reduce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05A29425A1700B30DA7 /* pch_source_reduce.h */; }; + A9F7B42F29425A1800B30DA7 /* pch_source_reduce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05A29425A1700B30DA7 /* pch_source_reduce.h */; }; + A9F7B43029425A1800B30DA7 /* pch_source_reduce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05A29425A1700B30DA7 /* pch_source_reduce.h */; }; + A9F7B43129425A1800B30DA7 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05B29425A1700B30DA7 /* merge_blocks_reduction_opportunity_finder.cpp */; }; + A9F7B43229425A1800B30DA7 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05B29425A1700B30DA7 /* merge_blocks_reduction_opportunity_finder.cpp */; }; + A9F7B43329425A1800B30DA7 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05B29425A1700B30DA7 /* merge_blocks_reduction_opportunity_finder.cpp */; }; + A9F7B43429425A1800B30DA7 /* reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05C29425A1700B30DA7 /* reduction_opportunity.cpp */; }; + A9F7B43529425A1800B30DA7 /* reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05C29425A1700B30DA7 /* reduction_opportunity.cpp */; }; + A9F7B43629425A1800B30DA7 /* reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05C29425A1700B30DA7 /* reduction_opportunity.cpp */; }; + A9F7B43729425A1800B30DA7 /* reducer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05D29425A1700B30DA7 /* reducer.h */; }; + A9F7B43829425A1800B30DA7 /* reducer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05D29425A1700B30DA7 /* reducer.h */; }; + A9F7B43929425A1800B30DA7 /* reducer.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05D29425A1700B30DA7 /* reducer.h */; }; + A9F7B43A29425A1800B30DA7 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05E29425A1700B30DA7 /* change_operand_to_undef_reduction_opportunity.cpp */; }; + A9F7B43B29425A1800B30DA7 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05E29425A1700B30DA7 /* change_operand_to_undef_reduction_opportunity.cpp */; }; + A9F7B43C29425A1800B30DA7 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B05E29425A1700B30DA7 /* change_operand_to_undef_reduction_opportunity.cpp */; }; + A9F7B43D29425A1800B30DA7 /* reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05F29425A1700B30DA7 /* reduction_opportunity.h */; }; + A9F7B43E29425A1800B30DA7 /* reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05F29425A1700B30DA7 /* reduction_opportunity.h */; }; + A9F7B43F29425A1800B30DA7 /* reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B05F29425A1700B30DA7 /* reduction_opportunity.h */; }; + A9F7B44029425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06029425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */; }; + A9F7B44129425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06029425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */; }; + A9F7B44229425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06029425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */; }; + A9F7B44329425A1800B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06129425A1700B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */; }; + A9F7B44429425A1800B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06129425A1700B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */; }; + A9F7B44529425A1800B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06129425A1700B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */; }; + A9F7B44629425A1800B30DA7 /* reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06229425A1700B30DA7 /* reduction_opportunity_finder.h */; }; + A9F7B44729425A1800B30DA7 /* reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06229425A1700B30DA7 /* reduction_opportunity_finder.h */; }; + A9F7B44829425A1800B30DA7 /* reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06229425A1700B30DA7 /* reduction_opportunity_finder.h */; }; + A9F7B44929425A1800B30DA7 /* change_operand_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06329425A1700B30DA7 /* change_operand_reduction_opportunity.h */; }; + A9F7B44A29425A1800B30DA7 /* change_operand_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06329425A1700B30DA7 /* change_operand_reduction_opportunity.h */; }; + A9F7B44B29425A1800B30DA7 /* change_operand_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06329425A1700B30DA7 /* change_operand_reduction_opportunity.h */; }; + A9F7B44C29425A1800B30DA7 /* remove_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06429425A1700B30DA7 /* remove_block_reduction_opportunity_finder.h */; }; + A9F7B44D29425A1800B30DA7 /* remove_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06429425A1700B30DA7 /* remove_block_reduction_opportunity_finder.h */; }; + A9F7B44E29425A1800B30DA7 /* remove_block_reduction_opportunity_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06429425A1700B30DA7 /* remove_block_reduction_opportunity_finder.h */; }; + A9F7B44F29425A1800B30DA7 /* remove_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06529425A1700B30DA7 /* remove_block_reduction_opportunity_finder.cpp */; }; + A9F7B45029425A1800B30DA7 /* remove_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06529425A1700B30DA7 /* remove_block_reduction_opportunity_finder.cpp */; }; + A9F7B45129425A1800B30DA7 /* remove_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06529425A1700B30DA7 /* remove_block_reduction_opportunity_finder.cpp */; }; + A9F7B45229425A1800B30DA7 /* reduction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06629425A1700B30DA7 /* reduction_util.h */; }; + A9F7B45329425A1800B30DA7 /* reduction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06629425A1700B30DA7 /* reduction_util.h */; }; + A9F7B45429425A1800B30DA7 /* reduction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06629425A1700B30DA7 /* reduction_util.h */; }; + A9F7B45529425A1800B30DA7 /* merge_blocks_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06729425A1700B30DA7 /* merge_blocks_reduction_opportunity.h */; }; + A9F7B45629425A1800B30DA7 /* merge_blocks_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06729425A1700B30DA7 /* merge_blocks_reduction_opportunity.h */; }; + A9F7B45729425A1800B30DA7 /* merge_blocks_reduction_opportunity.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06729425A1700B30DA7 /* merge_blocks_reduction_opportunity.h */; }; + A9F7B45829425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06829425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */; }; + A9F7B45929425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06829425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */; }; + A9F7B45A29425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06829425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */; }; + A9F7B45B29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06929425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity.cpp */; }; + A9F7B45C29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06929425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity.cpp */; }; + A9F7B45D29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06929425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity.cpp */; }; + A9F7B45E29425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06A29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity.cpp */; }; + A9F7B45F29425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06A29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity.cpp */; }; + A9F7B46029425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06A29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity.cpp */; }; + A9F7B46129425A1800B30DA7 /* remove_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06B29425A1700B30DA7 /* remove_block_reduction_opportunity.cpp */; }; + A9F7B46229425A1800B30DA7 /* remove_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06B29425A1700B30DA7 /* remove_block_reduction_opportunity.cpp */; }; + A9F7B46329425A1800B30DA7 /* remove_block_reduction_opportunity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06B29425A1700B30DA7 /* remove_block_reduction_opportunity.cpp */; }; + A9F7B46429425A1800B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06C29425A1700B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */; }; + A9F7B46529425A1800B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06C29425A1700B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */; }; + A9F7B46629425A1800B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06C29425A1700B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */; }; + A9F7B46729425A1800B30DA7 /* reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06D29425A1700B30DA7 /* reduction_opportunity_finder.cpp */; }; + A9F7B46829425A1800B30DA7 /* reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06D29425A1700B30DA7 /* reduction_opportunity_finder.cpp */; }; + A9F7B46929425A1800B30DA7 /* reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06D29425A1700B30DA7 /* reduction_opportunity_finder.cpp */; }; + A9F7B46A29425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06E29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.cpp */; }; + A9F7B46B29425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06E29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.cpp */; }; + A9F7B46C29425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B06E29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.cpp */; }; + A9F7B46D29425A1800B30DA7 /* reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06F29425A1700B30DA7 /* reduction_pass.h */; }; + A9F7B46E29425A1800B30DA7 /* reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06F29425A1700B30DA7 /* reduction_pass.h */; }; + A9F7B46F29425A1800B30DA7 /* reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B06F29425A1700B30DA7 /* reduction_pass.h */; }; + A9F7B47029425A1800B30DA7 /* latest_version_opencl_std_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07029425A1700B30DA7 /* latest_version_opencl_std_header.h */; }; + A9F7B47129425A1800B30DA7 /* latest_version_opencl_std_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07029425A1700B30DA7 /* latest_version_opencl_std_header.h */; }; + A9F7B47229425A1800B30DA7 /* latest_version_opencl_std_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07029425A1700B30DA7 /* latest_version_opencl_std_header.h */; }; + A9F7B47329425A1800B30DA7 /* spirv_optimizer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B07129425A1700B30DA7 /* spirv_optimizer_options.cpp */; }; + A9F7B47429425A1800B30DA7 /* spirv_optimizer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B07129425A1700B30DA7 /* spirv_optimizer_options.cpp */; }; + A9F7B47529425A1800B30DA7 /* spirv_optimizer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B07129425A1700B30DA7 /* spirv_optimizer_options.cpp */; }; + A9F7B47629425A1800B30DA7 /* cfa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07229425A1700B30DA7 /* cfa.h */; }; + A9F7B47729425A1800B30DA7 /* cfa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07229425A1700B30DA7 /* cfa.h */; }; + A9F7B47829425A1800B30DA7 /* cfa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07229425A1700B30DA7 /* cfa.h */; }; + A9F7B47929425A1800B30DA7 /* pch_source.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07329425A1700B30DA7 /* pch_source.h */; }; + A9F7B47A29425A1800B30DA7 /* pch_source.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07329425A1700B30DA7 /* pch_source.h */; }; + A9F7B47B29425A1800B30DA7 /* pch_source.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07329425A1700B30DA7 /* pch_source.h */; }; + A9F7B47C29425A1800B30DA7 /* enum_string_mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07429425A1700B30DA7 /* enum_string_mapping.h */; }; + A9F7B47D29425A1800B30DA7 /* enum_string_mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07429425A1700B30DA7 /* enum_string_mapping.h */; }; + A9F7B47E29425A1800B30DA7 /* enum_string_mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07429425A1700B30DA7 /* enum_string_mapping.h */; }; + A9F7B47F29425A1800B30DA7 /* spirv_fuzzer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B07529425A1700B30DA7 /* spirv_fuzzer_options.cpp */; }; + A9F7B48029425A1800B30DA7 /* spirv_fuzzer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B07529425A1700B30DA7 /* spirv_fuzzer_options.cpp */; }; + A9F7B48129425A1800B30DA7 /* spirv_fuzzer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B07529425A1700B30DA7 /* spirv_fuzzer_options.cpp */; }; + A9F7B48229425A1800B30DA7 /* spirv_reducer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07629425A1700B30DA7 /* spirv_reducer_options.h */; }; + A9F7B48329425A1800B30DA7 /* spirv_reducer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07629425A1700B30DA7 /* spirv_reducer_options.h */; }; + A9F7B48429425A1800B30DA7 /* spirv_reducer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07629425A1700B30DA7 /* spirv_reducer_options.h */; }; + A9F7B48529425A1800B30DA7 /* spirv_validator_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B07729425A1700B30DA7 /* spirv_validator_options.cpp */; }; + A9F7B48629425A1800B30DA7 /* spirv_validator_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B07729425A1700B30DA7 /* spirv_validator_options.cpp */; }; + A9F7B48729425A1800B30DA7 /* spirv_validator_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B07729425A1700B30DA7 /* spirv_validator_options.cpp */; }; + A9F7B48B29425A1800B30DA7 /* print.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B07E29425A1700B30DA7 /* print.cpp */; }; + A9F7B48C29425A1800B30DA7 /* print.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B07E29425A1700B30DA7 /* print.cpp */; }; + A9F7B48D29425A1800B30DA7 /* print.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B07E29425A1700B30DA7 /* print.cpp */; }; + A9F7B48E29425A1800B30DA7 /* spirv_definition.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07F29425A1700B30DA7 /* spirv_definition.h */; }; + A9F7B48F29425A1800B30DA7 /* spirv_definition.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07F29425A1700B30DA7 /* spirv_definition.h */; }; + A9F7B49029425A1800B30DA7 /* spirv_definition.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B07F29425A1700B30DA7 /* spirv_definition.h */; }; + A9F7B49129425A1800B30DA7 /* operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08029425A1700B30DA7 /* operand.h */; }; + A9F7B49229425A1800B30DA7 /* operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08029425A1700B30DA7 /* operand.h */; }; + A9F7B49329425A1800B30DA7 /* operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08029425A1700B30DA7 /* operand.h */; }; + A9F7B49429425A1800B30DA7 /* spirv_endian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08129425A1700B30DA7 /* spirv_endian.cpp */; }; + A9F7B49529425A1800B30DA7 /* spirv_endian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08129425A1700B30DA7 /* spirv_endian.cpp */; }; + A9F7B49629425A1800B30DA7 /* spirv_endian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08129425A1700B30DA7 /* spirv_endian.cpp */; }; + A9F7B49729425A1800B30DA7 /* macro.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08229425A1700B30DA7 /* macro.h */; }; + A9F7B49829425A1800B30DA7 /* macro.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08229425A1700B30DA7 /* macro.h */; }; + A9F7B49929425A1800B30DA7 /* macro.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08229425A1700B30DA7 /* macro.h */; }; + A9F7B49A29425A1800B30DA7 /* spirv_constant.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08329425A1700B30DA7 /* spirv_constant.h */; }; + A9F7B49B29425A1800B30DA7 /* spirv_constant.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08329425A1700B30DA7 /* spirv_constant.h */; }; + A9F7B49C29425A1900B30DA7 /* spirv_constant.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08329425A1700B30DA7 /* spirv_constant.h */; }; + A9F7B49D29425A1900B30DA7 /* binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08429425A1700B30DA7 /* binary.cpp */; }; + A9F7B49E29425A1900B30DA7 /* binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08429425A1700B30DA7 /* binary.cpp */; }; + A9F7B49F29425A1900B30DA7 /* binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08429425A1700B30DA7 /* binary.cpp */; }; + A9F7B4A029425A1900B30DA7 /* diff.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08729425A1700B30DA7 /* diff.h */; }; + A9F7B4A129425A1900B30DA7 /* diff.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08729425A1700B30DA7 /* diff.h */; }; + A9F7B4A229425A1900B30DA7 /* diff.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08729425A1700B30DA7 /* diff.h */; }; + A9F7B4A329425A1900B30DA7 /* lcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08829425A1700B30DA7 /* lcs.h */; }; + A9F7B4A429425A1900B30DA7 /* lcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08829425A1700B30DA7 /* lcs.h */; }; + A9F7B4A529425A1900B30DA7 /* lcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08829425A1700B30DA7 /* lcs.h */; }; + A9F7B4A629425A1900B30DA7 /* diff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08929425A1700B30DA7 /* diff.cpp */; }; + A9F7B4A729425A1900B30DA7 /* diff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08929425A1700B30DA7 /* diff.cpp */; }; + A9F7B4A829425A1900B30DA7 /* diff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08929425A1700B30DA7 /* diff.cpp */; }; + A9F7B4A929425A1900B30DA7 /* spirv_validator_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08A29425A1700B30DA7 /* spirv_validator_options.h */; }; + A9F7B4AA29425A1900B30DA7 /* spirv_validator_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08A29425A1700B30DA7 /* spirv_validator_options.h */; }; + A9F7B4AB29425A1900B30DA7 /* spirv_validator_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08A29425A1700B30DA7 /* spirv_validator_options.h */; }; + A9F7B4AC29425A1900B30DA7 /* enum_string_mapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08B29425A1700B30DA7 /* enum_string_mapping.cpp */; }; + A9F7B4AD29425A1900B30DA7 /* enum_string_mapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08B29425A1700B30DA7 /* enum_string_mapping.cpp */; }; + A9F7B4AE29425A1900B30DA7 /* enum_string_mapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08B29425A1700B30DA7 /* enum_string_mapping.cpp */; }; + A9F7B4AF29425A1900B30DA7 /* text_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08C29425A1700B30DA7 /* text_handler.h */; }; + A9F7B4B029425A1900B30DA7 /* text_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08C29425A1700B30DA7 /* text_handler.h */; }; + A9F7B4B129425A1900B30DA7 /* text_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08C29425A1700B30DA7 /* text_handler.h */; }; + A9F7B4B229425A1900B30DA7 /* parsed_operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08D29425A1700B30DA7 /* parsed_operand.h */; }; + A9F7B4B329425A1900B30DA7 /* parsed_operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08D29425A1700B30DA7 /* parsed_operand.h */; }; + A9F7B4B429425A1900B30DA7 /* parsed_operand.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08D29425A1700B30DA7 /* parsed_operand.h */; }; + A9F7B4B529425A1900B30DA7 /* name_mapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08E29425A1700B30DA7 /* name_mapper.h */; }; + A9F7B4B629425A1900B30DA7 /* name_mapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08E29425A1700B30DA7 /* name_mapper.h */; }; + A9F7B4B729425A1900B30DA7 /* name_mapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B08E29425A1700B30DA7 /* name_mapper.h */; }; + A9F7B4B829425A1900B30DA7 /* spirv_reducer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08F29425A1700B30DA7 /* spirv_reducer_options.cpp */; }; + A9F7B4B929425A1900B30DA7 /* spirv_reducer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08F29425A1700B30DA7 /* spirv_reducer_options.cpp */; }; + A9F7B4BA29425A1900B30DA7 /* spirv_reducer_options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B08F29425A1700B30DA7 /* spirv_reducer_options.cpp */; }; + A9F7B4BB29425A1900B30DA7 /* parsed_operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09029425A1700B30DA7 /* parsed_operand.cpp */; }; + A9F7B4BC29425A1900B30DA7 /* parsed_operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09029425A1700B30DA7 /* parsed_operand.cpp */; }; + A9F7B4BD29425A1900B30DA7 /* parsed_operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09029425A1700B30DA7 /* parsed_operand.cpp */; }; + A9F7B4BE29425A1900B30DA7 /* diagnostic.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09129425A1700B30DA7 /* diagnostic.h */; }; + A9F7B4BF29425A1900B30DA7 /* diagnostic.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09129425A1700B30DA7 /* diagnostic.h */; }; + A9F7B4C029425A1900B30DA7 /* diagnostic.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09129425A1700B30DA7 /* diagnostic.h */; }; + A9F7B4C129425A1900B30DA7 /* spirv_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09229425A1700B30DA7 /* spirv_endian.h */; }; + A9F7B4C229425A1900B30DA7 /* spirv_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09229425A1700B30DA7 /* spirv_endian.h */; }; + A9F7B4C329425A1900B30DA7 /* spirv_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09229425A1700B30DA7 /* spirv_endian.h */; }; + A9F7B4C429425A1900B30DA7 /* name_mapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09329425A1700B30DA7 /* name_mapper.cpp */; }; + A9F7B4C529425A1900B30DA7 /* name_mapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09329425A1700B30DA7 /* name_mapper.cpp */; }; + A9F7B4C629425A1900B30DA7 /* name_mapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09329425A1700B30DA7 /* name_mapper.cpp */; }; + A9F7B4C729425A1900B30DA7 /* linker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09629425A1700B30DA7 /* linker.cpp */; }; + A9F7B4C829425A1900B30DA7 /* linker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09629425A1700B30DA7 /* linker.cpp */; }; + A9F7B4C929425A1900B30DA7 /* linker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09629425A1700B30DA7 /* linker.cpp */; }; + A9F7B4CA29425A1900B30DA7 /* common_debug_info.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09729425A1700B30DA7 /* common_debug_info.h */; }; + A9F7B4CB29425A1900B30DA7 /* common_debug_info.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09729425A1700B30DA7 /* common_debug_info.h */; }; + A9F7B4CC29425A1900B30DA7 /* common_debug_info.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09729425A1700B30DA7 /* common_debug_info.h */; }; + A9F7B4CD29425A1900B30DA7 /* software_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09829425A1700B30DA7 /* software_version.cpp */; }; + A9F7B4CE29425A1900B30DA7 /* software_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09829425A1700B30DA7 /* software_version.cpp */; }; + A9F7B4CF29425A1900B30DA7 /* software_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09829425A1700B30DA7 /* software_version.cpp */; }; + A9F7B4D029425A1900B30DA7 /* opcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09929425A1700B30DA7 /* opcode.cpp */; }; + A9F7B4D129425A1900B30DA7 /* opcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09929425A1700B30DA7 /* opcode.cpp */; }; + A9F7B4D229425A1900B30DA7 /* opcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09929425A1700B30DA7 /* opcode.cpp */; }; + A9F7B4D329425A1900B30DA7 /* print.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09A29425A1700B30DA7 /* print.h */; }; + A9F7B4D429425A1900B30DA7 /* print.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09A29425A1700B30DA7 /* print.h */; }; + A9F7B4D529425A1900B30DA7 /* print.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09A29425A1700B30DA7 /* print.h */; }; + A9F7B4D629425A1900B30DA7 /* ext_inst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09B29425A1700B30DA7 /* ext_inst.cpp */; }; + A9F7B4D729425A1900B30DA7 /* ext_inst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09B29425A1700B30DA7 /* ext_inst.cpp */; }; + A9F7B4D829425A1900B30DA7 /* ext_inst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09B29425A1700B30DA7 /* ext_inst.cpp */; }; + A9F7B4D929425A1900B30DA7 /* disassemble.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09C29425A1700B30DA7 /* disassemble.h */; }; + A9F7B4DA29425A1900B30DA7 /* disassemble.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09C29425A1700B30DA7 /* disassemble.h */; }; + A9F7B4DB29425A1900B30DA7 /* disassemble.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09C29425A1700B30DA7 /* disassemble.h */; }; + A9F7B4DC29425A1900B30DA7 /* optimizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09E29425A1700B30DA7 /* optimizer.cpp */; }; + A9F7B4DD29425A1900B30DA7 /* optimizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09E29425A1700B30DA7 /* optimizer.cpp */; }; + A9F7B4DE29425A1900B30DA7 /* optimizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B09E29425A1700B30DA7 /* optimizer.cpp */; }; + A9F7B4DF29425A1900B30DA7 /* if_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09F29425A1700B30DA7 /* if_conversion.h */; }; + A9F7B4E029425A1900B30DA7 /* if_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09F29425A1700B30DA7 /* if_conversion.h */; }; + A9F7B4E129425A1900B30DA7 /* if_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B09F29425A1700B30DA7 /* if_conversion.h */; }; + A9F7B4E229425A1900B30DA7 /* register_pressure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A029425A1700B30DA7 /* register_pressure.cpp */; }; + A9F7B4E329425A1900B30DA7 /* register_pressure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A029425A1700B30DA7 /* register_pressure.cpp */; }; + A9F7B4E429425A1900B30DA7 /* register_pressure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A029425A1700B30DA7 /* register_pressure.cpp */; }; + A9F7B4E529425A1900B30DA7 /* loop_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A129425A1700B30DA7 /* loop_utils.cpp */; }; + A9F7B4E629425A1900B30DA7 /* loop_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A129425A1700B30DA7 /* loop_utils.cpp */; }; + A9F7B4E729425A1900B30DA7 /* loop_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A129425A1700B30DA7 /* loop_utils.cpp */; }; + A9F7B4E829425A1900B30DA7 /* strip_nonsemantic_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0A229425A1700B30DA7 /* strip_nonsemantic_info_pass.h */; }; + A9F7B4E929425A1900B30DA7 /* strip_nonsemantic_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0A229425A1700B30DA7 /* strip_nonsemantic_info_pass.h */; }; + A9F7B4EA29425A1900B30DA7 /* strip_nonsemantic_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0A229425A1700B30DA7 /* strip_nonsemantic_info_pass.h */; }; + A9F7B4EB29425A1900B30DA7 /* spread_volatile_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A329425A1700B30DA7 /* spread_volatile_semantics.cpp */; }; + A9F7B4EC29425A1900B30DA7 /* spread_volatile_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A329425A1700B30DA7 /* spread_volatile_semantics.cpp */; }; + A9F7B4ED29425A1900B30DA7 /* spread_volatile_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A329425A1700B30DA7 /* spread_volatile_semantics.cpp */; }; + A9F7B4EE29425A1900B30DA7 /* merge_return_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0A429425A1700B30DA7 /* merge_return_pass.h */; }; + A9F7B4EF29425A1900B30DA7 /* merge_return_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0A429425A1700B30DA7 /* merge_return_pass.h */; }; + A9F7B4F029425A1900B30DA7 /* merge_return_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0A429425A1700B30DA7 /* merge_return_pass.h */; }; + A9F7B4F129425A1900B30DA7 /* inline_opaque_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0A529425A1700B30DA7 /* inline_opaque_pass.h */; }; + A9F7B4F229425A1900B30DA7 /* inline_opaque_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0A529425A1700B30DA7 /* inline_opaque_pass.h */; }; + A9F7B4F329425A1900B30DA7 /* inline_opaque_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0A529425A1700B30DA7 /* inline_opaque_pass.h */; }; + A9F7B4F429425A1900B30DA7 /* loop_fusion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0A629425A1700B30DA7 /* loop_fusion.h */; }; + A9F7B4F529425A1900B30DA7 /* loop_fusion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0A629425A1700B30DA7 /* loop_fusion.h */; }; + A9F7B4F629425A1900B30DA7 /* loop_fusion.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0A629425A1700B30DA7 /* loop_fusion.h */; }; + A9F7B4F729425A1900B30DA7 /* combine_access_chains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A729425A1700B30DA7 /* combine_access_chains.cpp */; }; + A9F7B4F829425A1900B30DA7 /* combine_access_chains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A729425A1700B30DA7 /* combine_access_chains.cpp */; }; + A9F7B4F929425A1900B30DA7 /* combine_access_chains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A729425A1700B30DA7 /* combine_access_chains.cpp */; }; + A9F7B4FA29425A1900B30DA7 /* build_module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A829425A1700B30DA7 /* build_module.cpp */; }; + A9F7B4FB29425A1900B30DA7 /* build_module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A829425A1700B30DA7 /* build_module.cpp */; }; + A9F7B4FC29425A1900B30DA7 /* build_module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A829425A1700B30DA7 /* build_module.cpp */; }; + A9F7B4FD29425A1900B30DA7 /* eliminate_dead_output_stores_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A929425A1700B30DA7 /* eliminate_dead_output_stores_pass.cpp */; }; + A9F7B4FE29425A1900B30DA7 /* eliminate_dead_output_stores_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A929425A1700B30DA7 /* eliminate_dead_output_stores_pass.cpp */; }; + A9F7B4FF29425A1900B30DA7 /* eliminate_dead_output_stores_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0A929425A1700B30DA7 /* eliminate_dead_output_stores_pass.cpp */; }; + A9F7B50029425A1900B30DA7 /* composite.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AA29425A1700B30DA7 /* composite.h */; }; + A9F7B50129425A1900B30DA7 /* composite.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AA29425A1700B30DA7 /* composite.h */; }; + A9F7B50229425A1900B30DA7 /* composite.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AA29425A1700B30DA7 /* composite.h */; }; + A9F7B50329425A1900B30DA7 /* liveness.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0AB29425A1700B30DA7 /* liveness.cpp */; }; + A9F7B50429425A1900B30DA7 /* liveness.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0AB29425A1700B30DA7 /* liveness.cpp */; }; + A9F7B50529425A1900B30DA7 /* liveness.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0AB29425A1700B30DA7 /* liveness.cpp */; }; + A9F7B50629425A1900B30DA7 /* compact_ids_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AC29425A1700B30DA7 /* compact_ids_pass.h */; }; + A9F7B50729425A1900B30DA7 /* compact_ids_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AC29425A1700B30DA7 /* compact_ids_pass.h */; }; + A9F7B50829425A1900B30DA7 /* compact_ids_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AC29425A1700B30DA7 /* compact_ids_pass.h */; }; + A9F7B50929425A1900B30DA7 /* register_pressure.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AD29425A1700B30DA7 /* register_pressure.h */; }; + A9F7B50A29425A1900B30DA7 /* register_pressure.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AD29425A1700B30DA7 /* register_pressure.h */; }; + A9F7B50B29425A1900B30DA7 /* register_pressure.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AD29425A1700B30DA7 /* register_pressure.h */; }; + A9F7B50C29425A1900B30DA7 /* tree_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AE29425A1700B30DA7 /* tree_iterator.h */; }; + A9F7B50D29425A1900B30DA7 /* tree_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AE29425A1700B30DA7 /* tree_iterator.h */; }; + A9F7B50E29425A1900B30DA7 /* tree_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AE29425A1700B30DA7 /* tree_iterator.h */; }; + A9F7B50F29425A1900B30DA7 /* interface_var_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AF29425A1700B30DA7 /* interface_var_sroa.h */; }; + A9F7B51029425A1900B30DA7 /* interface_var_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AF29425A1700B30DA7 /* interface_var_sroa.h */; }; + A9F7B51129425A1900B30DA7 /* interface_var_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0AF29425A1700B30DA7 /* interface_var_sroa.h */; }; + A9F7B51229425A1900B30DA7 /* graphics_robust_access_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B029425A1700B30DA7 /* graphics_robust_access_pass.h */; }; + A9F7B51329425A1900B30DA7 /* graphics_robust_access_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B029425A1700B30DA7 /* graphics_robust_access_pass.h */; }; + A9F7B51429425A1900B30DA7 /* graphics_robust_access_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B029425A1700B30DA7 /* graphics_robust_access_pass.h */; }; + A9F7B51529425A1900B30DA7 /* local_single_store_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B129425A1700B30DA7 /* local_single_store_elim_pass.h */; }; + A9F7B51629425A1900B30DA7 /* local_single_store_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B129425A1700B30DA7 /* local_single_store_elim_pass.h */; }; + A9F7B51729425A1900B30DA7 /* local_single_store_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B129425A1700B30DA7 /* local_single_store_elim_pass.h */; }; + A9F7B51829425A1900B30DA7 /* reduce_load_size.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B229425A1700B30DA7 /* reduce_load_size.h */; }; + A9F7B51929425A1900B30DA7 /* reduce_load_size.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B229425A1700B30DA7 /* reduce_load_size.h */; }; + A9F7B51A29425A1900B30DA7 /* reduce_load_size.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B229425A1700B30DA7 /* reduce_load_size.h */; }; + A9F7B51B29425A1900B30DA7 /* code_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0B329425A1700B30DA7 /* code_sink.cpp */; }; + A9F7B51C29425A1900B30DA7 /* code_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0B329425A1700B30DA7 /* code_sink.cpp */; }; + A9F7B51D29425A1900B30DA7 /* code_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0B329425A1700B30DA7 /* code_sink.cpp */; }; + A9F7B51E29425A1900B30DA7 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0B429425A1700B30DA7 /* types.cpp */; }; + A9F7B51F29425A1900B30DA7 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0B429425A1700B30DA7 /* types.cpp */; }; + A9F7B52029425A1900B30DA7 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0B429425A1700B30DA7 /* types.cpp */; }; + A9F7B52129425A1900B30DA7 /* scalar_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B529425A1700B30DA7 /* scalar_analysis.h */; }; + A9F7B52229425A1900B30DA7 /* scalar_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B529425A1700B30DA7 /* scalar_analysis.h */; }; + A9F7B52329425A1900B30DA7 /* scalar_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B529425A1700B30DA7 /* scalar_analysis.h */; }; + A9F7B52429425A1900B30DA7 /* strip_debug_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B629425A1700B30DA7 /* strip_debug_info_pass.h */; }; + A9F7B52529425A1900B30DA7 /* strip_debug_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B629425A1700B30DA7 /* strip_debug_info_pass.h */; }; + A9F7B52629425A1900B30DA7 /* strip_debug_info_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B629425A1700B30DA7 /* strip_debug_info_pass.h */; }; + A9F7B52729425A1900B30DA7 /* replace_desc_array_access_using_var_index.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B729425A1700B30DA7 /* replace_desc_array_access_using_var_index.h */; }; + A9F7B52829425A1900B30DA7 /* replace_desc_array_access_using_var_index.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B729425A1700B30DA7 /* replace_desc_array_access_using_var_index.h */; }; + A9F7B52929425A1900B30DA7 /* replace_desc_array_access_using_var_index.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0B729425A1700B30DA7 /* replace_desc_array_access_using_var_index.h */; }; + A9F7B52A29425A1900B30DA7 /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0B829425A1700B30DA7 /* cfg.cpp */; }; + A9F7B52B29425A1900B30DA7 /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0B829425A1700B30DA7 /* cfg.cpp */; }; + A9F7B52C29425A1900B30DA7 /* cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0B829425A1700B30DA7 /* cfg.cpp */; }; + A9F7B52D29425A1900B30DA7 /* decoration_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0B929425A1700B30DA7 /* decoration_manager.cpp */; }; + A9F7B52E29425A1900B30DA7 /* decoration_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0B929425A1700B30DA7 /* decoration_manager.cpp */; }; + A9F7B52F29425A1900B30DA7 /* decoration_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0B929425A1700B30DA7 /* decoration_manager.cpp */; }; + A9F7B53029425A1900B30DA7 /* local_single_block_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0BA29425A1700B30DA7 /* local_single_block_elim_pass.cpp */; }; + A9F7B53129425A1900B30DA7 /* local_single_block_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0BA29425A1700B30DA7 /* local_single_block_elim_pass.cpp */; }; + A9F7B53229425A1900B30DA7 /* local_single_block_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0BA29425A1700B30DA7 /* local_single_block_elim_pass.cpp */; }; + A9F7B53329425A1900B30DA7 /* freeze_spec_constant_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0BB29425A1700B30DA7 /* freeze_spec_constant_value_pass.cpp */; }; + A9F7B53429425A1900B30DA7 /* freeze_spec_constant_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0BB29425A1700B30DA7 /* freeze_spec_constant_value_pass.cpp */; }; + A9F7B53529425A1900B30DA7 /* freeze_spec_constant_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0BB29425A1700B30DA7 /* freeze_spec_constant_value_pass.cpp */; }; + A9F7B53629425A1900B30DA7 /* replace_invalid_opc.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0BC29425A1700B30DA7 /* replace_invalid_opc.h */; }; + A9F7B53729425A1900B30DA7 /* replace_invalid_opc.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0BC29425A1700B30DA7 /* replace_invalid_opc.h */; }; + A9F7B53829425A1900B30DA7 /* replace_invalid_opc.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0BC29425A1700B30DA7 /* replace_invalid_opc.h */; }; + A9F7B53929425A1900B30DA7 /* eliminate_dead_output_stores_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0BD29425A1700B30DA7 /* eliminate_dead_output_stores_pass.h */; }; + A9F7B53A29425A1900B30DA7 /* eliminate_dead_output_stores_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0BD29425A1700B30DA7 /* eliminate_dead_output_stores_pass.h */; }; + A9F7B53B29425A1900B30DA7 /* eliminate_dead_output_stores_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0BD29425A1700B30DA7 /* eliminate_dead_output_stores_pass.h */; }; + A9F7B53C29425A1900B30DA7 /* local_access_chain_convert_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0BE29425A1700B30DA7 /* local_access_chain_convert_pass.h */; }; + A9F7B53D29425A1900B30DA7 /* local_access_chain_convert_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0BE29425A1700B30DA7 /* local_access_chain_convert_pass.h */; }; + A9F7B53E29425A1900B30DA7 /* local_access_chain_convert_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0BE29425A1700B30DA7 /* local_access_chain_convert_pass.h */; }; + A9F7B53F29425A1900B30DA7 /* inst_bindless_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0BF29425A1700B30DA7 /* inst_bindless_check_pass.cpp */; }; + A9F7B54029425A1900B30DA7 /* inst_bindless_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0BF29425A1700B30DA7 /* inst_bindless_check_pass.cpp */; }; + A9F7B54129425A1900B30DA7 /* inst_bindless_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0BF29425A1700B30DA7 /* inst_bindless_check_pass.cpp */; }; + A9F7B54229425A1900B30DA7 /* local_redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C029425A1700B30DA7 /* local_redundancy_elimination.cpp */; }; + A9F7B54329425A1900B30DA7 /* local_redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C029425A1700B30DA7 /* local_redundancy_elimination.cpp */; }; + A9F7B54429425A1900B30DA7 /* local_redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C029425A1700B30DA7 /* local_redundancy_elimination.cpp */; }; + A9F7B54529425A1900B30DA7 /* instrument_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C229425A1700B30DA7 /* instrument_pass.cpp */; }; + A9F7B54629425A1900B30DA7 /* instrument_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C229425A1700B30DA7 /* instrument_pass.cpp */; }; + A9F7B54729425A1900B30DA7 /* instrument_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C229425A1700B30DA7 /* instrument_pass.cpp */; }; + A9F7B54829425A1900B30DA7 /* propagator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0C329425A1700B30DA7 /* propagator.h */; }; + A9F7B54929425A1900B30DA7 /* propagator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0C329425A1700B30DA7 /* propagator.h */; }; + A9F7B54A29425A1900B30DA7 /* propagator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0C329425A1700B30DA7 /* propagator.h */; }; + A9F7B54B29425A1900B30DA7 /* instruction_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0C429425A1700B30DA7 /* instruction_list.h */; }; + A9F7B54C29425A1900B30DA7 /* instruction_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0C429425A1700B30DA7 /* instruction_list.h */; }; + A9F7B54D29425A1900B30DA7 /* instruction_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0C429425A1700B30DA7 /* instruction_list.h */; }; + A9F7B54E29425A1900B30DA7 /* feature_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C529425A1700B30DA7 /* feature_manager.cpp */; }; + A9F7B54F29425A1900B30DA7 /* feature_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C529425A1700B30DA7 /* feature_manager.cpp */; }; + A9F7B55029425A1900B30DA7 /* feature_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C529425A1700B30DA7 /* feature_manager.cpp */; }; + A9F7B55129425A1900B30DA7 /* pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C629425A1700B30DA7 /* pass.cpp */; }; + A9F7B55229425A1900B30DA7 /* pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C629425A1700B30DA7 /* pass.cpp */; }; + A9F7B55329425A1900B30DA7 /* pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C629425A1700B30DA7 /* pass.cpp */; }; + A9F7B55429425A1900B30DA7 /* loop_fission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C729425A1700B30DA7 /* loop_fission.cpp */; }; + A9F7B55529425A1900B30DA7 /* loop_fission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C729425A1700B30DA7 /* loop_fission.cpp */; }; + A9F7B55629425A1900B30DA7 /* loop_fission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C729425A1700B30DA7 /* loop_fission.cpp */; }; + A9F7B55729425A1900B30DA7 /* dominator_tree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C829425A1700B30DA7 /* dominator_tree.cpp */; }; + A9F7B55829425A1900B30DA7 /* dominator_tree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C829425A1700B30DA7 /* dominator_tree.cpp */; }; + A9F7B55929425A1900B30DA7 /* dominator_tree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0C829425A1700B30DA7 /* dominator_tree.cpp */; }; + A9F7B55A29425A1900B30DA7 /* amd_ext_to_khr.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0C929425A1700B30DA7 /* amd_ext_to_khr.h */; }; + A9F7B55B29425A1900B30DA7 /* amd_ext_to_khr.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0C929425A1700B30DA7 /* amd_ext_to_khr.h */; }; + A9F7B55C29425A1900B30DA7 /* amd_ext_to_khr.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0C929425A1700B30DA7 /* amd_ext_to_khr.h */; }; + A9F7B55D29425A1900B30DA7 /* merge_return_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0CA29425A1700B30DA7 /* merge_return_pass.cpp */; }; + A9F7B55E29425A1900B30DA7 /* merge_return_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0CA29425A1700B30DA7 /* merge_return_pass.cpp */; }; + A9F7B55F29425A1900B30DA7 /* merge_return_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0CA29425A1700B30DA7 /* merge_return_pass.cpp */; }; + A9F7B56029425A1900B30DA7 /* ir_context.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0CB29425A1700B30DA7 /* ir_context.h */; }; + A9F7B56129425A1900B30DA7 /* ir_context.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0CB29425A1700B30DA7 /* ir_context.h */; }; + A9F7B56229425A1900B30DA7 /* ir_context.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0CB29425A1700B30DA7 /* ir_context.h */; }; + A9F7B56329425A1900B30DA7 /* eliminate_dead_constant_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0CC29425A1700B30DA7 /* eliminate_dead_constant_pass.cpp */; }; + A9F7B56429425A1900B30DA7 /* eliminate_dead_constant_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0CC29425A1700B30DA7 /* eliminate_dead_constant_pass.cpp */; }; + A9F7B56529425A1900B30DA7 /* eliminate_dead_constant_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0CC29425A1700B30DA7 /* eliminate_dead_constant_pass.cpp */; }; + A9F7B56629425A1900B30DA7 /* control_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0CD29425A1700B30DA7 /* control_dependence.h */; }; + A9F7B56729425A1900B30DA7 /* control_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0CD29425A1700B30DA7 /* control_dependence.h */; }; + A9F7B56829425A1900B30DA7 /* control_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0CD29425A1700B30DA7 /* control_dependence.h */; }; + A9F7B56929425A1900B30DA7 /* cfg_cleanup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0CE29425A1700B30DA7 /* cfg_cleanup_pass.cpp */; }; + A9F7B56A29425A1900B30DA7 /* cfg_cleanup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0CE29425A1700B30DA7 /* cfg_cleanup_pass.cpp */; }; + A9F7B56B29425A1900B30DA7 /* cfg_cleanup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0CE29425A1700B30DA7 /* cfg_cleanup_pass.cpp */; }; + A9F7B56C29425A1900B30DA7 /* wrap_opkill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0CF29425A1700B30DA7 /* wrap_opkill.cpp */; }; + A9F7B56D29425A1900B30DA7 /* wrap_opkill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0CF29425A1700B30DA7 /* wrap_opkill.cpp */; }; + A9F7B56E29425A1900B30DA7 /* wrap_opkill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0CF29425A1700B30DA7 /* wrap_opkill.cpp */; }; + A9F7B56F29425A1900B30DA7 /* eliminate_dead_io_components_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D029425A1700B30DA7 /* eliminate_dead_io_components_pass.cpp */; }; + A9F7B57029425A1900B30DA7 /* eliminate_dead_io_components_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D029425A1700B30DA7 /* eliminate_dead_io_components_pass.cpp */; }; + A9F7B57129425A1900B30DA7 /* eliminate_dead_io_components_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D029425A1700B30DA7 /* eliminate_dead_io_components_pass.cpp */; }; + A9F7B57229425A1900B30DA7 /* const_folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D129425A1700B30DA7 /* const_folding_rules.cpp */; }; + A9F7B57329425A1900B30DA7 /* const_folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D129425A1700B30DA7 /* const_folding_rules.cpp */; }; + A9F7B57429425A1900B30DA7 /* const_folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D129425A1700B30DA7 /* const_folding_rules.cpp */; }; + A9F7B57529425A1900B30DA7 /* liveness.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0D229425A1700B30DA7 /* liveness.h */; }; + A9F7B57629425A1900B30DA7 /* liveness.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0D229425A1700B30DA7 /* liveness.h */; }; + A9F7B57729425A1900B30DA7 /* liveness.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0D229425A1700B30DA7 /* liveness.h */; }; + A9F7B57829425A1900B30DA7 /* loop_unroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0D329425A1700B30DA7 /* loop_unroller.h */; }; + A9F7B57929425A1900B30DA7 /* loop_unroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0D329425A1700B30DA7 /* loop_unroller.h */; }; + A9F7B57A29425A1900B30DA7 /* loop_unroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0D329425A1700B30DA7 /* loop_unroller.h */; }; + A9F7B57B29425A1900B30DA7 /* strip_debug_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D429425A1700B30DA7 /* strip_debug_info_pass.cpp */; }; + A9F7B57C29425A1900B30DA7 /* strip_debug_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D429425A1700B30DA7 /* strip_debug_info_pass.cpp */; }; + A9F7B57D29425A1900B30DA7 /* strip_debug_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D429425A1700B30DA7 /* strip_debug_info_pass.cpp */; }; + A9F7B57E29425A1900B30DA7 /* ssa_rewrite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D529425A1700B30DA7 /* ssa_rewrite_pass.cpp */; }; + A9F7B57F29425A1900B30DA7 /* ssa_rewrite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D529425A1700B30DA7 /* ssa_rewrite_pass.cpp */; }; + A9F7B58029425A1900B30DA7 /* ssa_rewrite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D529425A1700B30DA7 /* ssa_rewrite_pass.cpp */; }; + A9F7B58129425A1900B30DA7 /* loop_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D629425A1700B30DA7 /* loop_dependence.cpp */; }; + A9F7B58229425A1900B30DA7 /* loop_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D629425A1700B30DA7 /* loop_dependence.cpp */; }; + A9F7B58329425A1900B30DA7 /* loop_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D629425A1700B30DA7 /* loop_dependence.cpp */; }; + A9F7B58429425A1900B30DA7 /* unify_const_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0D729425A1700B30DA7 /* unify_const_pass.h */; }; + A9F7B58529425A1900B30DA7 /* unify_const_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0D729425A1700B30DA7 /* unify_const_pass.h */; }; + A9F7B58629425A1900B30DA7 /* unify_const_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0D729425A1700B30DA7 /* unify_const_pass.h */; }; + A9F7B58729425A1900B30DA7 /* ir_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0D829425A1700B30DA7 /* ir_loader.h */; }; + A9F7B58829425A1900B30DA7 /* ir_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0D829425A1700B30DA7 /* ir_loader.h */; }; + A9F7B58929425A1900B30DA7 /* ir_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0D829425A1700B30DA7 /* ir_loader.h */; }; + A9F7B58A29425A1900B30DA7 /* inst_debug_printf_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D929425A1700B30DA7 /* inst_debug_printf_pass.cpp */; }; + A9F7B58B29425A1900B30DA7 /* inst_debug_printf_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D929425A1700B30DA7 /* inst_debug_printf_pass.cpp */; }; + A9F7B58C29425A1900B30DA7 /* inst_debug_printf_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0D929425A1700B30DA7 /* inst_debug_printf_pass.cpp */; }; + A9F7B58D29425A1900B30DA7 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0DA29425A1700B30DA7 /* types.h */; }; + A9F7B58E29425A1900B30DA7 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0DA29425A1700B30DA7 /* types.h */; }; + A9F7B58F29425A1900B30DA7 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0DA29425A1700B30DA7 /* types.h */; }; + A9F7B59029425A1900B30DA7 /* fold_spec_constant_op_and_composite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0DB29425A1700B30DA7 /* fold_spec_constant_op_and_composite_pass.h */; }; + A9F7B59129425A1900B30DA7 /* fold_spec_constant_op_and_composite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0DB29425A1700B30DA7 /* fold_spec_constant_op_and_composite_pass.h */; }; + A9F7B59229425A1900B30DA7 /* fold_spec_constant_op_and_composite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0DB29425A1700B30DA7 /* fold_spec_constant_op_and_composite_pass.h */; }; + A9F7B59329425A1900B30DA7 /* mem_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0DC29425A1700B30DA7 /* mem_pass.cpp */; }; + A9F7B59429425A1900B30DA7 /* mem_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0DC29425A1700B30DA7 /* mem_pass.cpp */; }; + A9F7B59529425A1900B30DA7 /* mem_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0DC29425A1700B30DA7 /* mem_pass.cpp */; }; + A9F7B59629425A1900B30DA7 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0DD29425A1700B30DA7 /* basic_block.h */; }; + A9F7B59729425A1900B30DA7 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0DD29425A1700B30DA7 /* basic_block.h */; }; + A9F7B59829425A1900B30DA7 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0DD29425A1700B30DA7 /* basic_block.h */; }; + A9F7B59929425A1900B30DA7 /* remove_duplicates_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0DE29425A1700B30DA7 /* remove_duplicates_pass.cpp */; }; + A9F7B59A29425A1900B30DA7 /* remove_duplicates_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0DE29425A1700B30DA7 /* remove_duplicates_pass.cpp */; }; + A9F7B59B29425A1900B30DA7 /* remove_duplicates_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0DE29425A1700B30DA7 /* remove_duplicates_pass.cpp */; }; + A9F7B59C29425A1900B30DA7 /* dead_variable_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0DF29425A1700B30DA7 /* dead_variable_elimination.cpp */; }; + A9F7B59D29425A1900B30DA7 /* dead_variable_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0DF29425A1700B30DA7 /* dead_variable_elimination.cpp */; }; + A9F7B59E29425A1900B30DA7 /* dead_variable_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0DF29425A1700B30DA7 /* dead_variable_elimination.cpp */; }; + A9F7B59F29425A1900B30DA7 /* block_merge_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E029425A1700B30DA7 /* block_merge_pass.h */; }; + A9F7B5A029425A1900B30DA7 /* block_merge_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E029425A1700B30DA7 /* block_merge_pass.h */; }; + A9F7B5A129425A1900B30DA7 /* block_merge_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E029425A1700B30DA7 /* block_merge_pass.h */; }; + A9F7B5A229425A1900B30DA7 /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E129425A1700B30DA7 /* module.cpp */; }; + A9F7B5A329425A1900B30DA7 /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E129425A1700B30DA7 /* module.cpp */; }; + A9F7B5A429425A1900B30DA7 /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E129425A1700B30DA7 /* module.cpp */; }; + A9F7B5A529425A1900B30DA7 /* debug_info_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E229425A1700B30DA7 /* debug_info_manager.h */; }; + A9F7B5A629425A1900B30DA7 /* debug_info_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E229425A1700B30DA7 /* debug_info_manager.h */; }; + A9F7B5A729425A1900B30DA7 /* debug_info_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E229425A1700B30DA7 /* debug_info_manager.h */; }; + A9F7B5A829425A1900B30DA7 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E329425A1700B30DA7 /* fold_spec_constant_op_and_composite_pass.cpp */; }; + A9F7B5A929425A1900B30DA7 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E329425A1700B30DA7 /* fold_spec_constant_op_and_composite_pass.cpp */; }; + A9F7B5AA29425A1900B30DA7 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E329425A1700B30DA7 /* fold_spec_constant_op_and_composite_pass.cpp */; }; + A9F7B5AB29425A1900B30DA7 /* loop_unswitch_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E429425A1700B30DA7 /* loop_unswitch_pass.cpp */; }; + A9F7B5AC29425A1900B30DA7 /* loop_unswitch_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E429425A1700B30DA7 /* loop_unswitch_pass.cpp */; }; + A9F7B5AD29425A1900B30DA7 /* loop_unswitch_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E429425A1700B30DA7 /* loop_unswitch_pass.cpp */; }; + A9F7B5AE29425A1900B30DA7 /* unify_const_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E529425A1700B30DA7 /* unify_const_pass.cpp */; }; + A9F7B5AF29425A1900B30DA7 /* unify_const_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E529425A1700B30DA7 /* unify_const_pass.cpp */; }; + A9F7B5B029425A1900B30DA7 /* unify_const_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E529425A1700B30DA7 /* unify_const_pass.cpp */; }; + A9F7B5B129425A1900B30DA7 /* type_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E629425A1700B30DA7 /* type_manager.cpp */; }; + A9F7B5B229425A1900B30DA7 /* type_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E629425A1700B30DA7 /* type_manager.cpp */; }; + A9F7B5B329425A1900B30DA7 /* type_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0E629425A1700B30DA7 /* type_manager.cpp */; }; + A9F7B5B429425A1900B30DA7 /* private_to_local_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E729425A1700B30DA7 /* private_to_local_pass.h */; }; + A9F7B5B529425A1900B30DA7 /* private_to_local_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E729425A1700B30DA7 /* private_to_local_pass.h */; }; + A9F7B5B629425A1900B30DA7 /* private_to_local_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E729425A1700B30DA7 /* private_to_local_pass.h */; }; + A9F7B5B729425A1900B30DA7 /* convert_to_half_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E829425A1700B30DA7 /* convert_to_half_pass.h */; }; + A9F7B5B829425A1900B30DA7 /* convert_to_half_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E829425A1700B30DA7 /* convert_to_half_pass.h */; }; + A9F7B5B929425A1900B30DA7 /* convert_to_half_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E829425A1700B30DA7 /* convert_to_half_pass.h */; }; + A9F7B5BA29425A1900B30DA7 /* remove_dontinline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E929425A1700B30DA7 /* remove_dontinline_pass.h */; }; + A9F7B5BB29425A1900B30DA7 /* remove_dontinline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E929425A1700B30DA7 /* remove_dontinline_pass.h */; }; + A9F7B5BC29425A1900B30DA7 /* remove_dontinline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0E929425A1700B30DA7 /* remove_dontinline_pass.h */; }; + A9F7B5BD29425A1900B30DA7 /* relax_float_ops_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0EA29425A1700B30DA7 /* relax_float_ops_pass.h */; }; + A9F7B5BE29425A1900B30DA7 /* relax_float_ops_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0EA29425A1700B30DA7 /* relax_float_ops_pass.h */; }; + A9F7B5BF29425A1900B30DA7 /* relax_float_ops_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0EA29425A1700B30DA7 /* relax_float_ops_pass.h */; }; + A9F7B5C029425A1900B30DA7 /* inline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0EB29425A1700B30DA7 /* inline_pass.cpp */; }; + A9F7B5C129425A1900B30DA7 /* inline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0EB29425A1700B30DA7 /* inline_pass.cpp */; }; + A9F7B5C229425A1900B30DA7 /* inline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0EB29425A1700B30DA7 /* inline_pass.cpp */; }; + A9F7B5C329425A1900B30DA7 /* def_use_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0EC29425A1700B30DA7 /* def_use_manager.h */; }; + A9F7B5C429425A1900B30DA7 /* def_use_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0EC29425A1700B30DA7 /* def_use_manager.h */; }; + A9F7B5C529425A1900B30DA7 /* def_use_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0EC29425A1700B30DA7 /* def_use_manager.h */; }; + A9F7B5C629425A1900B30DA7 /* ir_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0ED29425A1700B30DA7 /* ir_loader.cpp */; }; + A9F7B5C729425A1900B30DA7 /* ir_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0ED29425A1700B30DA7 /* ir_loader.cpp */; }; + A9F7B5C829425A1900B30DA7 /* ir_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0ED29425A1700B30DA7 /* ir_loader.cpp */; }; + A9F7B5C929425A1900B30DA7 /* convert_to_sampled_image_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0EE29425A1700B30DA7 /* convert_to_sampled_image_pass.h */; }; + A9F7B5CA29425A1900B30DA7 /* convert_to_sampled_image_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0EE29425A1700B30DA7 /* convert_to_sampled_image_pass.h */; }; + A9F7B5CB29425A1900B30DA7 /* convert_to_sampled_image_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0EE29425A1700B30DA7 /* convert_to_sampled_image_pass.h */; }; + A9F7B5CC29425A1900B30DA7 /* cfg_cleanup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0EF29425A1700B30DA7 /* cfg_cleanup_pass.h */; }; + A9F7B5CD29425A1900B30DA7 /* cfg_cleanup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0EF29425A1700B30DA7 /* cfg_cleanup_pass.h */; }; + A9F7B5CE29425A1900B30DA7 /* cfg_cleanup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0EF29425A1700B30DA7 /* cfg_cleanup_pass.h */; }; + A9F7B5CF29425A1900B30DA7 /* licm_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F029425A1700B30DA7 /* licm_pass.cpp */; }; + A9F7B5D029425A1900B30DA7 /* licm_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F029425A1700B30DA7 /* licm_pass.cpp */; }; + A9F7B5D129425A1900B30DA7 /* licm_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F029425A1700B30DA7 /* licm_pass.cpp */; }; + A9F7B5D229425A1900B30DA7 /* eliminate_dead_functions_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F129425A1700B30DA7 /* eliminate_dead_functions_pass.cpp */; }; + A9F7B5D329425A1900B30DA7 /* eliminate_dead_functions_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F129425A1700B30DA7 /* eliminate_dead_functions_pass.cpp */; }; + A9F7B5D429425A1900B30DA7 /* eliminate_dead_functions_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F129425A1700B30DA7 /* eliminate_dead_functions_pass.cpp */; }; + A9F7B5D529425A1900B30DA7 /* local_redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F229425A1700B30DA7 /* local_redundancy_elimination.h */; }; + A9F7B5D629425A1900B30DA7 /* local_redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F229425A1700B30DA7 /* local_redundancy_elimination.h */; }; + A9F7B5D729425A1900B30DA7 /* local_redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F229425A1700B30DA7 /* local_redundancy_elimination.h */; }; + A9F7B5D829425A1900B30DA7 /* loop_peeling.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F329425A1700B30DA7 /* loop_peeling.h */; }; + A9F7B5D929425A1900B30DA7 /* loop_peeling.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F329425A1700B30DA7 /* loop_peeling.h */; }; + A9F7B5DA29425A1900B30DA7 /* loop_peeling.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F329425A1700B30DA7 /* loop_peeling.h */; }; + A9F7B5DB29425A1900B30DA7 /* vector_dce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F429425A1700B30DA7 /* vector_dce.cpp */; }; + A9F7B5DC29425A1900B30DA7 /* vector_dce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F429425A1700B30DA7 /* vector_dce.cpp */; }; + A9F7B5DD29425A1900B30DA7 /* vector_dce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F429425A1700B30DA7 /* vector_dce.cpp */; }; + A9F7B5DE29425A1900B30DA7 /* block_merge_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F529425A1700B30DA7 /* block_merge_util.h */; }; + A9F7B5DF29425A1900B30DA7 /* block_merge_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F529425A1700B30DA7 /* block_merge_util.h */; }; + A9F7B5E029425A1900B30DA7 /* block_merge_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F529425A1700B30DA7 /* block_merge_util.h */; }; + A9F7B5E129425A1900B30DA7 /* loop_unroller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F629425A1700B30DA7 /* loop_unroller.cpp */; }; + A9F7B5E229425A1900B30DA7 /* loop_unroller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F629425A1700B30DA7 /* loop_unroller.cpp */; }; + A9F7B5E329425A1900B30DA7 /* loop_unroller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F629425A1700B30DA7 /* loop_unroller.cpp */; }; + A9F7B5E429425A1900B30DA7 /* desc_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F729425A1700B30DA7 /* desc_sroa.h */; }; + A9F7B5E529425A1900B30DA7 /* desc_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F729425A1700B30DA7 /* desc_sroa.h */; }; + A9F7B5E629425A1900B30DA7 /* desc_sroa.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F729425A1700B30DA7 /* desc_sroa.h */; }; + A9F7B5E729425A1900B30DA7 /* constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F829425A1700B30DA7 /* constants.cpp */; }; + A9F7B5E829425A1900B30DA7 /* constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F829425A1700B30DA7 /* constants.cpp */; }; + A9F7B5E929425A1900B30DA7 /* constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0F829425A1700B30DA7 /* constants.cpp */; }; + A9F7B5EA29425A1900B30DA7 /* loop_fusion_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F929425A1700B30DA7 /* loop_fusion_pass.h */; }; + A9F7B5EB29425A1900B30DA7 /* loop_fusion_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F929425A1700B30DA7 /* loop_fusion_pass.h */; }; + A9F7B5EC29425A1900B30DA7 /* loop_fusion_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0F929425A1700B30DA7 /* loop_fusion_pass.h */; }; + A9F7B5ED29425A1900B30DA7 /* struct_cfg_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0FA29425A1700B30DA7 /* struct_cfg_analysis.h */; }; + A9F7B5EE29425A1900B30DA7 /* struct_cfg_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0FA29425A1700B30DA7 /* struct_cfg_analysis.h */; }; + A9F7B5EF29425A1900B30DA7 /* struct_cfg_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0FA29425A1700B30DA7 /* struct_cfg_analysis.h */; }; + A9F7B5F029425A1900B30DA7 /* desc_sroa_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0FB29425A1700B30DA7 /* desc_sroa_util.cpp */; }; + A9F7B5F129425A1900B30DA7 /* desc_sroa_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0FB29425A1700B30DA7 /* desc_sroa_util.cpp */; }; + A9F7B5F229425A1900B30DA7 /* desc_sroa_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0FB29425A1700B30DA7 /* desc_sroa_util.cpp */; }; + A9F7B5F329425A1900B30DA7 /* inst_buff_addr_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0FC29425A1700B30DA7 /* inst_buff_addr_check_pass.cpp */; }; + A9F7B5F429425A1900B30DA7 /* inst_buff_addr_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0FC29425A1700B30DA7 /* inst_buff_addr_check_pass.cpp */; }; + A9F7B5F529425A1900B30DA7 /* inst_buff_addr_check_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0FC29425A1700B30DA7 /* inst_buff_addr_check_pass.cpp */; }; + A9F7B5F629425A1900B30DA7 /* def_use_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0FD29425A1700B30DA7 /* def_use_manager.cpp */; }; + A9F7B5F729425A1900B30DA7 /* def_use_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0FD29425A1700B30DA7 /* def_use_manager.cpp */; }; + A9F7B5F829425A1900B30DA7 /* def_use_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B0FD29425A1700B30DA7 /* def_use_manager.cpp */; }; + A9F7B5F929425A1900B30DA7 /* wrap_opkill.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0FE29425A1700B30DA7 /* wrap_opkill.h */; }; + A9F7B5FA29425A1900B30DA7 /* wrap_opkill.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0FE29425A1700B30DA7 /* wrap_opkill.h */; }; + A9F7B5FB29425A1900B30DA7 /* wrap_opkill.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0FE29425A1700B30DA7 /* wrap_opkill.h */; }; + A9F7B5FC29425A1900B30DA7 /* empty_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0FF29425A1800B30DA7 /* empty_pass.h */; }; + A9F7B5FD29425A1900B30DA7 /* empty_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0FF29425A1800B30DA7 /* empty_pass.h */; }; + A9F7B5FE29425A1900B30DA7 /* empty_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B0FF29425A1800B30DA7 /* empty_pass.h */; }; + A9F7B5FF29425A1900B30DA7 /* decoration_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10029425A1800B30DA7 /* decoration_manager.h */; }; + A9F7B60029425A1900B30DA7 /* decoration_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10029425A1800B30DA7 /* decoration_manager.h */; }; + A9F7B60129425A1900B30DA7 /* decoration_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10029425A1800B30DA7 /* decoration_manager.h */; }; + A9F7B60229425A1900B30DA7 /* ccp_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10129425A1800B30DA7 /* ccp_pass.cpp */; }; + A9F7B60329425A1900B30DA7 /* ccp_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10129425A1800B30DA7 /* ccp_pass.cpp */; }; + A9F7B60429425A1900B30DA7 /* ccp_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10129425A1800B30DA7 /* ccp_pass.cpp */; }; + A9F7B60529425A1900B30DA7 /* local_single_block_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10229425A1800B30DA7 /* local_single_block_elim_pass.h */; }; + A9F7B60629425A1900B30DA7 /* local_single_block_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10229425A1800B30DA7 /* local_single_block_elim_pass.h */; }; + A9F7B60729425A1900B30DA7 /* local_single_block_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10229425A1800B30DA7 /* local_single_block_elim_pass.h */; }; + A9F7B60829425A1900B30DA7 /* interp_fixup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10329425A1800B30DA7 /* interp_fixup_pass.h */; }; + A9F7B60929425A1900B30DA7 /* interp_fixup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10329425A1800B30DA7 /* interp_fixup_pass.h */; }; + A9F7B60A29425A1900B30DA7 /* interp_fixup_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10329425A1800B30DA7 /* interp_fixup_pass.h */; }; + A9F7B60B29425A1900B30DA7 /* eliminate_dead_io_components_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10429425A1800B30DA7 /* eliminate_dead_io_components_pass.h */; }; + A9F7B60C29425A1900B30DA7 /* eliminate_dead_io_components_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10429425A1800B30DA7 /* eliminate_dead_io_components_pass.h */; }; + A9F7B60D29425A1900B30DA7 /* eliminate_dead_io_components_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10429425A1800B30DA7 /* eliminate_dead_io_components_pass.h */; }; + A9F7B60E29425A1900B30DA7 /* pch_source_opt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10529425A1800B30DA7 /* pch_source_opt.cpp */; }; + A9F7B60F29425A1900B30DA7 /* pch_source_opt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10529425A1800B30DA7 /* pch_source_opt.cpp */; }; + A9F7B61029425A1900B30DA7 /* pch_source_opt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10529425A1800B30DA7 /* pch_source_opt.cpp */; }; + A9F7B61129425A1900B30DA7 /* inst_buff_addr_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10629425A1800B30DA7 /* inst_buff_addr_check_pass.h */; }; + A9F7B61229425A1900B30DA7 /* inst_buff_addr_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10629425A1800B30DA7 /* inst_buff_addr_check_pass.h */; }; + A9F7B61329425A1900B30DA7 /* inst_buff_addr_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10629425A1800B30DA7 /* inst_buff_addr_check_pass.h */; }; + A9F7B61429425A1900B30DA7 /* strength_reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10729425A1800B30DA7 /* strength_reduction_pass.h */; }; + A9F7B61529425A1900B30DA7 /* strength_reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10729425A1800B30DA7 /* strength_reduction_pass.h */; }; + A9F7B61629425A1900B30DA7 /* strength_reduction_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10729425A1800B30DA7 /* strength_reduction_pass.h */; }; + A9F7B61729425A1900B30DA7 /* aggressive_dead_code_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10829425A1800B30DA7 /* aggressive_dead_code_elim_pass.cpp */; }; + A9F7B61829425A1900B30DA7 /* aggressive_dead_code_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10829425A1800B30DA7 /* aggressive_dead_code_elim_pass.cpp */; }; + A9F7B61929425A1900B30DA7 /* aggressive_dead_code_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10829425A1800B30DA7 /* aggressive_dead_code_elim_pass.cpp */; }; + A9F7B61A29425A1900B30DA7 /* eliminate_dead_functions_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10929425A1800B30DA7 /* eliminate_dead_functions_util.cpp */; }; + A9F7B61B29425A1900B30DA7 /* eliminate_dead_functions_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10929425A1800B30DA7 /* eliminate_dead_functions_util.cpp */; }; + A9F7B61C29425A1900B30DA7 /* eliminate_dead_functions_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10929425A1800B30DA7 /* eliminate_dead_functions_util.cpp */; }; + A9F7B61D29425A1900B30DA7 /* inst_debug_printf_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10A29425A1800B30DA7 /* inst_debug_printf_pass.h */; }; + A9F7B61E29425A1900B30DA7 /* inst_debug_printf_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10A29425A1800B30DA7 /* inst_debug_printf_pass.h */; }; + A9F7B61F29425A1900B30DA7 /* inst_debug_printf_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10A29425A1800B30DA7 /* inst_debug_printf_pass.h */; }; + A9F7B62029425A1900B30DA7 /* simplification_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10B29425A1800B30DA7 /* simplification_pass.cpp */; }; + A9F7B62129425A1900B30DA7 /* simplification_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10B29425A1800B30DA7 /* simplification_pass.cpp */; }; + A9F7B62229425A1900B30DA7 /* simplification_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10B29425A1800B30DA7 /* simplification_pass.cpp */; }; + A9F7B62329425A1900B30DA7 /* dead_branch_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10C29425A1800B30DA7 /* dead_branch_elim_pass.cpp */; }; + A9F7B62429425A1900B30DA7 /* dead_branch_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10C29425A1800B30DA7 /* dead_branch_elim_pass.cpp */; }; + A9F7B62529425A1900B30DA7 /* dead_branch_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10C29425A1800B30DA7 /* dead_branch_elim_pass.cpp */; }; + A9F7B62629425A1900B30DA7 /* flatten_decoration_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10D29425A1800B30DA7 /* flatten_decoration_pass.cpp */; }; + A9F7B62729425A1900B30DA7 /* flatten_decoration_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10D29425A1800B30DA7 /* flatten_decoration_pass.cpp */; }; + A9F7B62829425A1900B30DA7 /* flatten_decoration_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10D29425A1800B30DA7 /* flatten_decoration_pass.cpp */; }; + A9F7B62929425A1900B30DA7 /* dead_insert_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10E29425A1800B30DA7 /* dead_insert_elim_pass.h */; }; + A9F7B62A29425A1900B30DA7 /* dead_insert_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10E29425A1800B30DA7 /* dead_insert_elim_pass.h */; }; + A9F7B62B29425A1900B30DA7 /* dead_insert_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B10E29425A1800B30DA7 /* dead_insert_elim_pass.h */; }; + A9F7B62C29425A1900B30DA7 /* folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10F29425A1800B30DA7 /* folding_rules.cpp */; }; + A9F7B62D29425A1900B30DA7 /* folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10F29425A1800B30DA7 /* folding_rules.cpp */; }; + A9F7B62E29425A1900B30DA7 /* folding_rules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B10F29425A1800B30DA7 /* folding_rules.cpp */; }; + A9F7B62F29425A1900B30DA7 /* freeze_spec_constant_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11029425A1800B30DA7 /* freeze_spec_constant_value_pass.h */; }; + A9F7B63029425A1900B30DA7 /* freeze_spec_constant_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11029425A1800B30DA7 /* freeze_spec_constant_value_pass.h */; }; + A9F7B63129425A1900B30DA7 /* freeze_spec_constant_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11029425A1800B30DA7 /* freeze_spec_constant_value_pass.h */; }; + A9F7B63229425A1900B30DA7 /* ir_context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11129425A1800B30DA7 /* ir_context.cpp */; }; + A9F7B63329425A1900B30DA7 /* ir_context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11129425A1800B30DA7 /* ir_context.cpp */; }; + A9F7B63429425A1900B30DA7 /* ir_context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11129425A1800B30DA7 /* ir_context.cpp */; }; + A9F7B63529425A1900B30DA7 /* instrument_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11229425A1800B30DA7 /* instrument_pass.h */; }; + A9F7B63629425A1900B30DA7 /* instrument_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11229425A1800B30DA7 /* instrument_pass.h */; }; + A9F7B63729425A1900B30DA7 /* instrument_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11229425A1800B30DA7 /* instrument_pass.h */; }; + A9F7B63829425A1900B30DA7 /* mem_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11329425A1800B30DA7 /* mem_pass.h */; }; + A9F7B63929425A1900B30DA7 /* mem_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11329425A1800B30DA7 /* mem_pass.h */; }; + A9F7B63A29425A1900B30DA7 /* mem_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11329425A1800B30DA7 /* mem_pass.h */; }; + A9F7B63B29425A1900B30DA7 /* loop_descriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11429425A1800B30DA7 /* loop_descriptor.cpp */; }; + A9F7B63C29425A1900B30DA7 /* loop_descriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11429425A1800B30DA7 /* loop_descriptor.cpp */; }; + A9F7B63D29425A1900B30DA7 /* loop_descriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11429425A1800B30DA7 /* loop_descriptor.cpp */; }; + A9F7B63E29425A1900B30DA7 /* eliminate_dead_members_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11529425A1800B30DA7 /* eliminate_dead_members_pass.h */; }; + A9F7B63F29425A1900B30DA7 /* eliminate_dead_members_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11529425A1800B30DA7 /* eliminate_dead_members_pass.h */; }; + A9F7B64029425A1900B30DA7 /* eliminate_dead_members_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11529425A1800B30DA7 /* eliminate_dead_members_pass.h */; }; + A9F7B64129425A1900B30DA7 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11629425A1800B30DA7 /* function.cpp */; }; + A9F7B64229425A1900B30DA7 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11629425A1800B30DA7 /* function.cpp */; }; + A9F7B64329425A1900B30DA7 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11629425A1800B30DA7 /* function.cpp */; }; + A9F7B64429425A1900B30DA7 /* instruction_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11729425A1800B30DA7 /* instruction_list.cpp */; }; + A9F7B64529425A1900B30DA7 /* instruction_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11729425A1800B30DA7 /* instruction_list.cpp */; }; + A9F7B64629425A1900B30DA7 /* instruction_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11729425A1800B30DA7 /* instruction_list.cpp */; }; + A9F7B64729425A1900B30DA7 /* control_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11829425A1800B30DA7 /* control_dependence.cpp */; }; + A9F7B64829425A1900B30DA7 /* control_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11829425A1800B30DA7 /* control_dependence.cpp */; }; + A9F7B64929425A1900B30DA7 /* control_dependence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11829425A1800B30DA7 /* control_dependence.cpp */; }; + A9F7B64A29425A1900B30DA7 /* composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11929425A1800B30DA7 /* composite.cpp */; }; + A9F7B64B29425A1900B30DA7 /* composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11929425A1800B30DA7 /* composite.cpp */; }; + A9F7B64C29425A1900B30DA7 /* composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11929425A1800B30DA7 /* composite.cpp */; }; + A9F7B64D29425A1900B30DA7 /* convert_to_half_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11A29425A1800B30DA7 /* convert_to_half_pass.cpp */; }; + A9F7B64E29425A1900B30DA7 /* convert_to_half_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11A29425A1800B30DA7 /* convert_to_half_pass.cpp */; }; + A9F7B64F29425A1900B30DA7 /* convert_to_half_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11A29425A1800B30DA7 /* convert_to_half_pass.cpp */; }; + A9F7B65029425A1900B30DA7 /* inline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11B29425A1800B30DA7 /* inline_pass.h */; }; + A9F7B65129425A1900B30DA7 /* inline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11B29425A1800B30DA7 /* inline_pass.h */; }; + A9F7B65229425A1900B30DA7 /* inline_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11B29425A1800B30DA7 /* inline_pass.h */; }; + A9F7B65329425A1900B30DA7 /* loop_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11C29425A1800B30DA7 /* loop_dependence.h */; }; + A9F7B65429425A1900B30DA7 /* loop_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11C29425A1800B30DA7 /* loop_dependence.h */; }; + A9F7B65529425A1900B30DA7 /* loop_dependence.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11C29425A1800B30DA7 /* loop_dependence.h */; }; + A9F7B65629425A1900B30DA7 /* value_number_table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11D29425A1800B30DA7 /* value_number_table.h */; }; + A9F7B65729425A1900B30DA7 /* value_number_table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11D29425A1800B30DA7 /* value_number_table.h */; }; + A9F7B65829425A1900B30DA7 /* value_number_table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11D29425A1800B30DA7 /* value_number_table.h */; }; + A9F7B65929425A1900B30DA7 /* strip_nonsemantic_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11E29425A1800B30DA7 /* strip_nonsemantic_info_pass.cpp */; }; + A9F7B65A29425A1900B30DA7 /* strip_nonsemantic_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11E29425A1800B30DA7 /* strip_nonsemantic_info_pass.cpp */; }; + A9F7B65B29425A1900B30DA7 /* strip_nonsemantic_info_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B11E29425A1800B30DA7 /* strip_nonsemantic_info_pass.cpp */; }; + A9F7B65C29425A1900B30DA7 /* flatten_decoration_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11F29425A1800B30DA7 /* flatten_decoration_pass.h */; }; + A9F7B65D29425A1900B30DA7 /* flatten_decoration_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11F29425A1800B30DA7 /* flatten_decoration_pass.h */; }; + A9F7B65E29425A1900B30DA7 /* flatten_decoration_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B11F29425A1800B30DA7 /* flatten_decoration_pass.h */; }; + A9F7B65F29425A1900B30DA7 /* if_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12029425A1800B30DA7 /* if_conversion.cpp */; }; + A9F7B66029425A1900B30DA7 /* if_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12029425A1800B30DA7 /* if_conversion.cpp */; }; + A9F7B66129425A1900B30DA7 /* if_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12029425A1800B30DA7 /* if_conversion.cpp */; }; + A9F7B66229425A1900B30DA7 /* fix_func_call_arguments.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12129425A1800B30DA7 /* fix_func_call_arguments.cpp */; }; + A9F7B66329425A1900B30DA7 /* fix_func_call_arguments.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12129425A1800B30DA7 /* fix_func_call_arguments.cpp */; }; + A9F7B66429425A1900B30DA7 /* fix_func_call_arguments.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12129425A1800B30DA7 /* fix_func_call_arguments.cpp */; }; + A9F7B66529425A1900B30DA7 /* debug_info_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12229425A1800B30DA7 /* debug_info_manager.cpp */; }; + A9F7B66629425A1900B30DA7 /* debug_info_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12229425A1800B30DA7 /* debug_info_manager.cpp */; }; + A9F7B66729425A1900B30DA7 /* debug_info_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12229425A1800B30DA7 /* debug_info_manager.cpp */; }; + A9F7B66829425A1900B30DA7 /* inline_exhaustive_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12329425A1800B30DA7 /* inline_exhaustive_pass.h */; }; + A9F7B66929425A1900B30DA7 /* inline_exhaustive_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12329425A1800B30DA7 /* inline_exhaustive_pass.h */; }; + A9F7B66A29425A1900B30DA7 /* inline_exhaustive_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12329425A1800B30DA7 /* inline_exhaustive_pass.h */; }; + A9F7B66B29425A1900B30DA7 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12429425A1800B30DA7 /* constants.h */; }; + A9F7B66C29425A1900B30DA7 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12429425A1800B30DA7 /* constants.h */; }; + A9F7B66D29425A1900B30DA7 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12429425A1800B30DA7 /* constants.h */; }; + A9F7B66E29425A1900B30DA7 /* eliminate_dead_members_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12529425A1800B30DA7 /* eliminate_dead_members_pass.cpp */; }; + A9F7B66F29425A1900B30DA7 /* eliminate_dead_members_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12529425A1800B30DA7 /* eliminate_dead_members_pass.cpp */; }; + A9F7B67029425A1900B30DA7 /* eliminate_dead_members_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12529425A1800B30DA7 /* eliminate_dead_members_pass.cpp */; }; + A9F7B67129425A1900B30DA7 /* strength_reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12629425A1800B30DA7 /* strength_reduction_pass.cpp */; }; + A9F7B67229425A1900B30DA7 /* strength_reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12629425A1800B30DA7 /* strength_reduction_pass.cpp */; }; + A9F7B67329425A1900B30DA7 /* strength_reduction_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12629425A1800B30DA7 /* strength_reduction_pass.cpp */; }; + A9F7B67429425A1900B30DA7 /* desc_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12729425A1800B30DA7 /* desc_sroa.cpp */; }; + A9F7B67529425A1900B30DA7 /* desc_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12729425A1800B30DA7 /* desc_sroa.cpp */; }; + A9F7B67629425A1900B30DA7 /* desc_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12729425A1800B30DA7 /* desc_sroa.cpp */; }; + A9F7B67729425A1900B30DA7 /* block_merge_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12829425A1800B30DA7 /* block_merge_util.cpp */; }; + A9F7B67829425A1900B30DA7 /* block_merge_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12829425A1800B30DA7 /* block_merge_util.cpp */; }; + A9F7B67929425A1900B30DA7 /* block_merge_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12829425A1800B30DA7 /* block_merge_util.cpp */; }; + A9F7B67A29425A1900B30DA7 /* upgrade_memory_model.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12929425A1800B30DA7 /* upgrade_memory_model.h */; }; + A9F7B67B29425A1900B30DA7 /* upgrade_memory_model.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12929425A1800B30DA7 /* upgrade_memory_model.h */; }; + A9F7B67C29425A1900B30DA7 /* upgrade_memory_model.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12929425A1800B30DA7 /* upgrade_memory_model.h */; }; + A9F7B67D29425A1900B30DA7 /* copy_prop_arrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12A29425A1800B30DA7 /* copy_prop_arrays.cpp */; }; + A9F7B67E29425A1900B30DA7 /* copy_prop_arrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12A29425A1800B30DA7 /* copy_prop_arrays.cpp */; }; + A9F7B67F29425A1900B30DA7 /* copy_prop_arrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12A29425A1800B30DA7 /* copy_prop_arrays.cpp */; }; + A9F7B68029425A1900B30DA7 /* analyze_live_input_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12B29425A1800B30DA7 /* analyze_live_input_pass.h */; }; + A9F7B68129425A1900B30DA7 /* analyze_live_input_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12B29425A1800B30DA7 /* analyze_live_input_pass.h */; }; + A9F7B68229425A1900B30DA7 /* analyze_live_input_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12B29425A1800B30DA7 /* analyze_live_input_pass.h */; }; + A9F7B68329425A1900B30DA7 /* pass_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12C29425A1800B30DA7 /* pass_manager.cpp */; }; + A9F7B68429425A1900B30DA7 /* pass_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12C29425A1800B30DA7 /* pass_manager.cpp */; }; + A9F7B68529425A1900B30DA7 /* pass_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12C29425A1800B30DA7 /* pass_manager.cpp */; }; + A9F7B68629425A1900B30DA7 /* inline_exhaustive_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12D29425A1800B30DA7 /* inline_exhaustive_pass.cpp */; }; + A9F7B68729425A1900B30DA7 /* inline_exhaustive_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12D29425A1800B30DA7 /* inline_exhaustive_pass.cpp */; }; + A9F7B68829425A1900B30DA7 /* inline_exhaustive_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B12D29425A1800B30DA7 /* inline_exhaustive_pass.cpp */; }; + A9F7B68929425A1900B30DA7 /* loop_fission.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12E29425A1800B30DA7 /* loop_fission.h */; }; + A9F7B68A29425A1900B30DA7 /* loop_fission.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12E29425A1800B30DA7 /* loop_fission.h */; }; + A9F7B68B29425A1900B30DA7 /* loop_fission.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12E29425A1800B30DA7 /* loop_fission.h */; }; + A9F7B68C29425A1900B30DA7 /* workaround1209.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12F29425A1800B30DA7 /* workaround1209.h */; }; + A9F7B68D29425A1900B30DA7 /* workaround1209.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12F29425A1800B30DA7 /* workaround1209.h */; }; + A9F7B68E29425A1900B30DA7 /* workaround1209.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B12F29425A1800B30DA7 /* workaround1209.h */; }; + A9F7B68F29425A1900B30DA7 /* loop_fusion_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13029425A1800B30DA7 /* loop_fusion_pass.cpp */; }; + A9F7B69029425A1900B30DA7 /* loop_fusion_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13029425A1800B30DA7 /* loop_fusion_pass.cpp */; }; + A9F7B69129425A1900B30DA7 /* loop_fusion_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13029425A1800B30DA7 /* loop_fusion_pass.cpp */; }; + A9F7B69229425A1900B30DA7 /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13129425A1800B30DA7 /* log.h */; }; + A9F7B69329425A1900B30DA7 /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13129425A1800B30DA7 /* log.h */; }; + A9F7B69429425A1900B30DA7 /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13129425A1800B30DA7 /* log.h */; }; + A9F7B69529425A1900B30DA7 /* copy_prop_arrays.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13229425A1800B30DA7 /* copy_prop_arrays.h */; }; + A9F7B69629425A1900B30DA7 /* copy_prop_arrays.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13229425A1800B30DA7 /* copy_prop_arrays.h */; }; + A9F7B69729425A1900B30DA7 /* copy_prop_arrays.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13229425A1800B30DA7 /* copy_prop_arrays.h */; }; + A9F7B69829425A1900B30DA7 /* eliminate_dead_constant_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13329425A1800B30DA7 /* eliminate_dead_constant_pass.h */; }; + A9F7B69929425A1900B30DA7 /* eliminate_dead_constant_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13329425A1800B30DA7 /* eliminate_dead_constant_pass.h */; }; + A9F7B69A29425A1900B30DA7 /* eliminate_dead_constant_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13329425A1800B30DA7 /* eliminate_dead_constant_pass.h */; }; + A9F7B69B29425A1900B30DA7 /* dead_insert_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13429425A1800B30DA7 /* dead_insert_elim_pass.cpp */; }; + A9F7B69C29425A1900B30DA7 /* dead_insert_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13429425A1800B30DA7 /* dead_insert_elim_pass.cpp */; }; + A9F7B69D29425A1900B30DA7 /* dead_insert_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13429425A1800B30DA7 /* dead_insert_elim_pass.cpp */; }; + A9F7B69E29425A1900B30DA7 /* ssa_rewrite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13529425A1800B30DA7 /* ssa_rewrite_pass.h */; }; + A9F7B69F29425A1900B30DA7 /* ssa_rewrite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13529425A1800B30DA7 /* ssa_rewrite_pass.h */; }; + A9F7B6A029425A1900B30DA7 /* ssa_rewrite_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13529425A1800B30DA7 /* ssa_rewrite_pass.h */; }; + A9F7B6A129425A1900B30DA7 /* scalar_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13629425A1800B30DA7 /* scalar_analysis.cpp */; }; + A9F7B6A229425A1900B30DA7 /* scalar_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13629425A1800B30DA7 /* scalar_analysis.cpp */; }; + A9F7B6A329425A1900B30DA7 /* scalar_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13629425A1800B30DA7 /* scalar_analysis.cpp */; }; + A9F7B6A429425A1900B30DA7 /* dead_variable_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13729425A1800B30DA7 /* dead_variable_elimination.h */; }; + A9F7B6A529425A1900B30DA7 /* dead_variable_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13729425A1800B30DA7 /* dead_variable_elimination.h */; }; + A9F7B6A629425A1900B30DA7 /* dead_variable_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13729425A1800B30DA7 /* dead_variable_elimination.h */; }; + A9F7B6A729425A1900B30DA7 /* block_merge_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13829425A1800B30DA7 /* block_merge_pass.cpp */; }; + A9F7B6A829425A1900B30DA7 /* block_merge_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13829425A1800B30DA7 /* block_merge_pass.cpp */; }; + A9F7B6A929425A1900B30DA7 /* block_merge_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13829425A1800B30DA7 /* block_merge_pass.cpp */; }; + A9F7B6AA29425A1900B30DA7 /* dominator_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13929425A1800B30DA7 /* dominator_analysis.h */; }; + A9F7B6AB29425A1900B30DA7 /* dominator_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13929425A1800B30DA7 /* dominator_analysis.h */; }; + A9F7B6AC29425A1900B30DA7 /* dominator_analysis.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13929425A1800B30DA7 /* dominator_analysis.h */; }; + A9F7B6AD29425A1900B30DA7 /* convert_to_sampled_image_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13A29425A1800B30DA7 /* convert_to_sampled_image_pass.cpp */; }; + A9F7B6AE29425A1900B30DA7 /* convert_to_sampled_image_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13A29425A1800B30DA7 /* convert_to_sampled_image_pass.cpp */; }; + A9F7B6AF29425A1900B30DA7 /* convert_to_sampled_image_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B13A29425A1800B30DA7 /* convert_to_sampled_image_pass.cpp */; }; + A9F7B6B029425A1900B30DA7 /* pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13B29425A1800B30DA7 /* pass.h */; }; + A9F7B6B129425A1900B30DA7 /* pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13B29425A1800B30DA7 /* pass.h */; }; + A9F7B6B229425A1900B30DA7 /* pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13B29425A1800B30DA7 /* pass.h */; }; + A9F7B6B329425A1900B30DA7 /* folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13C29425A1800B30DA7 /* folding_rules.h */; }; + A9F7B6B429425A1900B30DA7 /* folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13C29425A1800B30DA7 /* folding_rules.h */; }; + A9F7B6B529425A1900B30DA7 /* folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13C29425A1800B30DA7 /* folding_rules.h */; }; + A9F7B6B629425A1900B30DA7 /* eliminate_dead_functions_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13D29425A1800B30DA7 /* eliminate_dead_functions_pass.h */; }; + A9F7B6B729425A1900B30DA7 /* eliminate_dead_functions_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13D29425A1800B30DA7 /* eliminate_dead_functions_pass.h */; }; + A9F7B6B829425A1900B30DA7 /* eliminate_dead_functions_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13D29425A1800B30DA7 /* eliminate_dead_functions_pass.h */; }; + A9F7B6B929425A1900B30DA7 /* eliminate_dead_functions_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13E29425A1800B30DA7 /* eliminate_dead_functions_util.h */; }; + A9F7B6BA29425A1900B30DA7 /* eliminate_dead_functions_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13E29425A1800B30DA7 /* eliminate_dead_functions_util.h */; }; + A9F7B6BB29425A1900B30DA7 /* eliminate_dead_functions_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13E29425A1800B30DA7 /* eliminate_dead_functions_util.h */; }; + A9F7B6BC29425A1900B30DA7 /* fold.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13F29425A1800B30DA7 /* fold.h */; }; + A9F7B6BD29425A1900B30DA7 /* fold.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13F29425A1800B30DA7 /* fold.h */; }; + A9F7B6BE29425A1900B30DA7 /* fold.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B13F29425A1800B30DA7 /* fold.h */; }; + A9F7B6BF29425A1900B30DA7 /* local_single_store_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14029425A1800B30DA7 /* local_single_store_elim_pass.cpp */; }; + A9F7B6C029425A1900B30DA7 /* local_single_store_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14029425A1800B30DA7 /* local_single_store_elim_pass.cpp */; }; + A9F7B6C129425A1900B30DA7 /* local_single_store_elim_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14029425A1800B30DA7 /* local_single_store_elim_pass.cpp */; }; + A9F7B6C229425A1900B30DA7 /* dead_branch_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14129425A1800B30DA7 /* dead_branch_elim_pass.h */; }; + A9F7B6C329425A1900B30DA7 /* dead_branch_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14129425A1800B30DA7 /* dead_branch_elim_pass.h */; }; + A9F7B6C429425A1900B30DA7 /* dead_branch_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14129425A1800B30DA7 /* dead_branch_elim_pass.h */; }; + A9F7B6C529425A1900B30DA7 /* private_to_local_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14229425A1800B30DA7 /* private_to_local_pass.cpp */; }; + A9F7B6C629425A1900B30DA7 /* private_to_local_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14229425A1800B30DA7 /* private_to_local_pass.cpp */; }; + A9F7B6C729425A1900B30DA7 /* private_to_local_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14229425A1800B30DA7 /* private_to_local_pass.cpp */; }; + A9F7B6C829425A1900B30DA7 /* scalar_analysis_nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14329425A1800B30DA7 /* scalar_analysis_nodes.h */; }; + A9F7B6C929425A1900B30DA7 /* scalar_analysis_nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14329425A1800B30DA7 /* scalar_analysis_nodes.h */; }; + A9F7B6CA29425A1900B30DA7 /* scalar_analysis_nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14329425A1800B30DA7 /* scalar_analysis_nodes.h */; }; + A9F7B6CB29425A1900B30DA7 /* propagator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14429425A1800B30DA7 /* propagator.cpp */; }; + A9F7B6CC29425A1900B30DA7 /* propagator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14429425A1800B30DA7 /* propagator.cpp */; }; + A9F7B6CD29425A1900B30DA7 /* propagator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14429425A1800B30DA7 /* propagator.cpp */; }; + A9F7B6CE29425A1900B30DA7 /* fix_storage_class.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14529425A1800B30DA7 /* fix_storage_class.h */; }; + A9F7B6CF29425A1900B30DA7 /* fix_storage_class.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14529425A1800B30DA7 /* fix_storage_class.h */; }; + A9F7B6D029425A1900B30DA7 /* fix_storage_class.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14529425A1800B30DA7 /* fix_storage_class.h */; }; + A9F7B6D129425A1900B30DA7 /* loop_dependence_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14629425A1800B30DA7 /* loop_dependence_helpers.cpp */; }; + A9F7B6D229425A1900B30DA7 /* loop_dependence_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14629425A1800B30DA7 /* loop_dependence_helpers.cpp */; }; + A9F7B6D329425A1900B30DA7 /* loop_dependence_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14629425A1800B30DA7 /* loop_dependence_helpers.cpp */; }; + A9F7B6D429425A1900B30DA7 /* set_spec_constant_default_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14729425A1800B30DA7 /* set_spec_constant_default_value_pass.cpp */; }; + A9F7B6D529425A1900B30DA7 /* set_spec_constant_default_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14729425A1800B30DA7 /* set_spec_constant_default_value_pass.cpp */; }; + A9F7B6D629425A1900B30DA7 /* set_spec_constant_default_value_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14729425A1800B30DA7 /* set_spec_constant_default_value_pass.cpp */; }; + A9F7B6D729425A1900B30DA7 /* passes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14829425A1800B30DA7 /* passes.h */; }; + A9F7B6D829425A1900B30DA7 /* passes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14829425A1800B30DA7 /* passes.h */; }; + A9F7B6D929425A1900B30DA7 /* passes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14829425A1800B30DA7 /* passes.h */; }; + A9F7B6DA29425A1900B30DA7 /* fold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14929425A1800B30DA7 /* fold.cpp */; }; + A9F7B6DB29425A1900B30DA7 /* fold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14929425A1800B30DA7 /* fold.cpp */; }; + A9F7B6DC29425A1900B30DA7 /* fold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14929425A1800B30DA7 /* fold.cpp */; }; + A9F7B6DD29425A1900B30DA7 /* amd_ext_to_khr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14A29425A1800B30DA7 /* amd_ext_to_khr.cpp */; }; + A9F7B6DE29425A1900B30DA7 /* amd_ext_to_khr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14A29425A1800B30DA7 /* amd_ext_to_khr.cpp */; }; + A9F7B6DF29425A1900B30DA7 /* amd_ext_to_khr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14A29425A1800B30DA7 /* amd_ext_to_khr.cpp */; }; + A9F7B6E029425A1900B30DA7 /* scalar_replacement_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14B29425A1800B30DA7 /* scalar_replacement_pass.cpp */; }; + A9F7B6E129425A1900B30DA7 /* scalar_replacement_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14B29425A1800B30DA7 /* scalar_replacement_pass.cpp */; }; + A9F7B6E229425A1900B30DA7 /* scalar_replacement_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14B29425A1800B30DA7 /* scalar_replacement_pass.cpp */; }; + A9F7B6E329425A1900B30DA7 /* simplification_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14C29425A1800B30DA7 /* simplification_pass.h */; }; + A9F7B6E429425A1900B30DA7 /* simplification_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14C29425A1800B30DA7 /* simplification_pass.h */; }; + A9F7B6E529425A1900B30DA7 /* simplification_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14C29425A1800B30DA7 /* simplification_pass.h */; }; + A9F7B6E629425A1900B30DA7 /* interface_var_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14D29425A1800B30DA7 /* interface_var_sroa.cpp */; }; + A9F7B6E729425A1900B30DA7 /* interface_var_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14D29425A1800B30DA7 /* interface_var_sroa.cpp */; }; + A9F7B6E829425A1900B30DA7 /* interface_var_sroa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B14D29425A1800B30DA7 /* interface_var_sroa.cpp */; }; + A9F7B6E929425A1900B30DA7 /* remove_duplicates_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14E29425A1800B30DA7 /* remove_duplicates_pass.h */; }; + A9F7B6EA29425A1900B30DA7 /* remove_duplicates_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14E29425A1800B30DA7 /* remove_duplicates_pass.h */; }; + A9F7B6EB29425A1900B30DA7 /* remove_duplicates_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14E29425A1800B30DA7 /* remove_duplicates_pass.h */; }; + A9F7B6EC29425A1900B30DA7 /* desc_sroa_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14F29425A1800B30DA7 /* desc_sroa_util.h */; }; + A9F7B6ED29425A1900B30DA7 /* desc_sroa_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14F29425A1800B30DA7 /* desc_sroa_util.h */; }; + A9F7B6EE29425A1900B30DA7 /* desc_sroa_util.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B14F29425A1800B30DA7 /* desc_sroa_util.h */; }; + A9F7B6EF29425A1900B30DA7 /* redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15029425A1800B30DA7 /* redundancy_elimination.cpp */; }; + A9F7B6F029425A1900B30DA7 /* redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15029425A1800B30DA7 /* redundancy_elimination.cpp */; }; + A9F7B6F129425A1900B30DA7 /* redundancy_elimination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15029425A1800B30DA7 /* redundancy_elimination.cpp */; }; + A9F7B6F229425A1900B30DA7 /* reflect.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15129425A1800B30DA7 /* reflect.h */; }; + A9F7B6F329425A1900B30DA7 /* reflect.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15129425A1800B30DA7 /* reflect.h */; }; + A9F7B6F429425A1900B30DA7 /* reflect.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15129425A1800B30DA7 /* reflect.h */; }; + A9F7B6F529425A1900B30DA7 /* workaround1209.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15229425A1800B30DA7 /* workaround1209.cpp */; }; + A9F7B6F629425A1900B30DA7 /* workaround1209.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15229425A1800B30DA7 /* workaround1209.cpp */; }; + A9F7B6F729425A1900B30DA7 /* workaround1209.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15229425A1800B30DA7 /* workaround1209.cpp */; }; + A9F7B6F829425A1900B30DA7 /* null_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15329425A1800B30DA7 /* null_pass.h */; }; + A9F7B6F929425A1900B30DA7 /* null_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15329425A1800B30DA7 /* null_pass.h */; }; + A9F7B6FA29425A1900B30DA7 /* null_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15329425A1800B30DA7 /* null_pass.h */; }; + A9F7B6FB29425A1900B30DA7 /* relax_float_ops_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15429425A1800B30DA7 /* relax_float_ops_pass.cpp */; }; + A9F7B6FC29425A1900B30DA7 /* relax_float_ops_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15429425A1800B30DA7 /* relax_float_ops_pass.cpp */; }; + A9F7B6FD29425A1900B30DA7 /* relax_float_ops_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15429425A1800B30DA7 /* relax_float_ops_pass.cpp */; }; + A9F7B6FE29425A1900B30DA7 /* const_folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15529425A1800B30DA7 /* const_folding_rules.h */; }; + A9F7B6FF29425A1900B30DA7 /* const_folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15529425A1800B30DA7 /* const_folding_rules.h */; }; + A9F7B70029425A1900B30DA7 /* const_folding_rules.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15529425A1800B30DA7 /* const_folding_rules.h */; }; + A9F7B70129425A1900B30DA7 /* scalar_replacement_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15629425A1800B30DA7 /* scalar_replacement_pass.h */; }; + A9F7B70229425A1900B30DA7 /* scalar_replacement_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15629425A1800B30DA7 /* scalar_replacement_pass.h */; }; + A9F7B70329425A1900B30DA7 /* scalar_replacement_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15629425A1800B30DA7 /* scalar_replacement_pass.h */; }; + A9F7B70429425A1900B30DA7 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15729425A1800B30DA7 /* instruction.cpp */; }; + A9F7B70529425A1900B30DA7 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15729425A1800B30DA7 /* instruction.cpp */; }; + A9F7B70629425A1900B30DA7 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15729425A1800B30DA7 /* instruction.cpp */; }; + A9F7B70729425A1900B30DA7 /* pch_source_opt.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15829425A1800B30DA7 /* pch_source_opt.h */; }; + A9F7B70829425A1900B30DA7 /* pch_source_opt.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15829425A1800B30DA7 /* pch_source_opt.h */; }; + A9F7B70929425A1900B30DA7 /* pch_source_opt.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15829425A1800B30DA7 /* pch_source_opt.h */; }; + A9F7B70A29425A1900B30DA7 /* reduce_load_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15929425A1800B30DA7 /* reduce_load_size.cpp */; }; + A9F7B70B29425A1900B30DA7 /* reduce_load_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15929425A1800B30DA7 /* reduce_load_size.cpp */; }; + A9F7B70C29425A1900B30DA7 /* reduce_load_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15929425A1800B30DA7 /* reduce_load_size.cpp */; }; + A9F7B70D29425A1900B30DA7 /* redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15A29425A1800B30DA7 /* redundancy_elimination.h */; }; + A9F7B70E29425A1900B30DA7 /* redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15A29425A1800B30DA7 /* redundancy_elimination.h */; }; + A9F7B70F29425A1900B30DA7 /* redundancy_elimination.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B15A29425A1800B30DA7 /* redundancy_elimination.h */; }; + A9F7B71029425A1900B30DA7 /* fix_storage_class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15B29425A1800B30DA7 /* fix_storage_class.cpp */; }; + A9F7B71129425A1900B30DA7 /* fix_storage_class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15B29425A1800B30DA7 /* fix_storage_class.cpp */; }; + A9F7B71229425A1900B30DA7 /* fix_storage_class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15B29425A1800B30DA7 /* fix_storage_class.cpp */; }; + A9F7B71329425A1900B30DA7 /* value_number_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15C29425A1800B30DA7 /* value_number_table.cpp */; }; + A9F7B71429425A1900B30DA7 /* value_number_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15C29425A1800B30DA7 /* value_number_table.cpp */; }; + A9F7B71529425A1900B30DA7 /* value_number_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15C29425A1800B30DA7 /* value_number_table.cpp */; }; + A9F7B71629425A1900B30DA7 /* remove_unused_interface_variables_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15D29425A1800B30DA7 /* remove_unused_interface_variables_pass.cpp */; }; + A9F7B71729425A1900B30DA7 /* remove_unused_interface_variables_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15D29425A1800B30DA7 /* remove_unused_interface_variables_pass.cpp */; }; + A9F7B71829425A1900B30DA7 /* remove_unused_interface_variables_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15D29425A1800B30DA7 /* remove_unused_interface_variables_pass.cpp */; }; + A9F7B71929425A1900B30DA7 /* inline_opaque_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15E29425A1800B30DA7 /* inline_opaque_pass.cpp */; }; + A9F7B71A29425A1900B30DA7 /* inline_opaque_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15E29425A1800B30DA7 /* inline_opaque_pass.cpp */; }; + A9F7B71B29425A1900B30DA7 /* inline_opaque_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15E29425A1800B30DA7 /* inline_opaque_pass.cpp */; }; + A9F7B71C29425A1900B30DA7 /* replace_invalid_opc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15F29425A1800B30DA7 /* replace_invalid_opc.cpp */; }; + A9F7B71D29425A1900B30DA7 /* replace_invalid_opc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15F29425A1800B30DA7 /* replace_invalid_opc.cpp */; }; + A9F7B71E29425A1900B30DA7 /* replace_invalid_opc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B15F29425A1800B30DA7 /* replace_invalid_opc.cpp */; }; + A9F7B71F29425A1900B30DA7 /* loop_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16029425A1800B30DA7 /* loop_utils.h */; }; + A9F7B72029425A1900B30DA7 /* loop_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16029425A1800B30DA7 /* loop_utils.h */; }; + A9F7B72129425A1900B30DA7 /* loop_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16029425A1800B30DA7 /* loop_utils.h */; }; + A9F7B72229425A1900B30DA7 /* module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16129425A1800B30DA7 /* module.h */; }; + A9F7B72329425A1900B30DA7 /* module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16129425A1800B30DA7 /* module.h */; }; + A9F7B72429425A1900B30DA7 /* module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16129425A1800B30DA7 /* module.h */; }; + A9F7B72529425A1900B30DA7 /* dominator_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16229425A1800B30DA7 /* dominator_analysis.cpp */; }; + A9F7B72629425A1900B30DA7 /* dominator_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16229425A1800B30DA7 /* dominator_analysis.cpp */; }; + A9F7B72729425A1900B30DA7 /* dominator_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16229425A1800B30DA7 /* dominator_analysis.cpp */; }; + A9F7B72829425A1900B30DA7 /* ir_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16329425A1800B30DA7 /* ir_builder.h */; }; + A9F7B72929425A1900B30DA7 /* ir_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16329425A1800B30DA7 /* ir_builder.h */; }; + A9F7B72A29425A1900B30DA7 /* ir_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16329425A1800B30DA7 /* ir_builder.h */; }; + A9F7B72B29425A1900B30DA7 /* replace_desc_array_access_using_var_index.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16429425A1800B30DA7 /* replace_desc_array_access_using_var_index.cpp */; }; + A9F7B72C29425A1900B30DA7 /* replace_desc_array_access_using_var_index.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16429425A1800B30DA7 /* replace_desc_array_access_using_var_index.cpp */; }; + A9F7B72D29425A1900B30DA7 /* replace_desc_array_access_using_var_index.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16429425A1800B30DA7 /* replace_desc_array_access_using_var_index.cpp */; }; + A9F7B72E29425A1900B30DA7 /* loop_unswitch_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16529425A1800B30DA7 /* loop_unswitch_pass.h */; }; + A9F7B72F29425A1900B30DA7 /* loop_unswitch_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16529425A1800B30DA7 /* loop_unswitch_pass.h */; }; + A9F7B73029425A1900B30DA7 /* loop_unswitch_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16529425A1800B30DA7 /* loop_unswitch_pass.h */; }; + A9F7B73129425A1900B30DA7 /* cfg.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16629425A1800B30DA7 /* cfg.h */; }; + A9F7B73229425A1900B30DA7 /* cfg.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16629425A1800B30DA7 /* cfg.h */; }; + A9F7B73329425A1900B30DA7 /* cfg.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16629425A1800B30DA7 /* cfg.h */; }; + A9F7B73429425A1900B30DA7 /* code_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16729425A1800B30DA7 /* code_sink.h */; }; + A9F7B73529425A1900B30DA7 /* code_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16729425A1800B30DA7 /* code_sink.h */; }; + A9F7B73629425A1900B30DA7 /* code_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16729425A1800B30DA7 /* code_sink.h */; }; + A9F7B73729425A1900B30DA7 /* dataflow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16829425A1800B30DA7 /* dataflow.cpp */; }; + A9F7B73829425A1900B30DA7 /* dataflow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16829425A1800B30DA7 /* dataflow.cpp */; }; + A9F7B73929425A1900B30DA7 /* dataflow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16829425A1800B30DA7 /* dataflow.cpp */; }; + A9F7B73A29425A1900B30DA7 /* loop_descriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16929425A1800B30DA7 /* loop_descriptor.h */; }; + A9F7B73B29425A1900B30DA7 /* loop_descriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16929425A1800B30DA7 /* loop_descriptor.h */; }; + A9F7B73C29425A1900B30DA7 /* loop_descriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16929425A1800B30DA7 /* loop_descriptor.h */; }; + A9F7B73D29425A1900B30DA7 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16A29425A1800B30DA7 /* instruction.h */; }; + A9F7B73E29425A1900B30DA7 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16A29425A1800B30DA7 /* instruction.h */; }; + A9F7B73F29425A1900B30DA7 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16A29425A1800B30DA7 /* instruction.h */; }; + A9F7B74029425A1900B30DA7 /* aggressive_dead_code_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16B29425A1800B30DA7 /* aggressive_dead_code_elim_pass.h */; }; + A9F7B74129425A1900B30DA7 /* aggressive_dead_code_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16B29425A1800B30DA7 /* aggressive_dead_code_elim_pass.h */; }; + A9F7B74229425A1900B30DA7 /* aggressive_dead_code_elim_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16B29425A1800B30DA7 /* aggressive_dead_code_elim_pass.h */; }; + A9F7B74329425A1900B30DA7 /* struct_cfg_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16C29425A1800B30DA7 /* struct_cfg_analysis.cpp */; }; + A9F7B74429425A1900B30DA7 /* struct_cfg_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16C29425A1800B30DA7 /* struct_cfg_analysis.cpp */; }; + A9F7B74529425A1900B30DA7 /* struct_cfg_analysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16C29425A1800B30DA7 /* struct_cfg_analysis.cpp */; }; + A9F7B74629425A1900B30DA7 /* remove_dontinline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16D29425A1800B30DA7 /* remove_dontinline_pass.cpp */; }; + A9F7B74729425A1900B30DA7 /* remove_dontinline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16D29425A1800B30DA7 /* remove_dontinline_pass.cpp */; }; + A9F7B74829425A1900B30DA7 /* remove_dontinline_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B16D29425A1800B30DA7 /* remove_dontinline_pass.cpp */; }; + A9F7B74929425A1900B30DA7 /* vector_dce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16E29425A1800B30DA7 /* vector_dce.h */; }; + A9F7B74A29425A1900B30DA7 /* vector_dce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16E29425A1800B30DA7 /* vector_dce.h */; }; + A9F7B74B29425A1900B30DA7 /* vector_dce.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16E29425A1800B30DA7 /* vector_dce.h */; }; + A9F7B74C29425A1900B30DA7 /* combine_access_chains.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16F29425A1800B30DA7 /* combine_access_chains.h */; }; + A9F7B74D29425A1900B30DA7 /* combine_access_chains.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16F29425A1800B30DA7 /* combine_access_chains.h */; }; + A9F7B74E29425A1900B30DA7 /* combine_access_chains.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B16F29425A1800B30DA7 /* combine_access_chains.h */; }; + A9F7B74F29425A1900B30DA7 /* pass_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17029425A1800B30DA7 /* pass_manager.h */; }; + A9F7B75029425A1900B30DA7 /* pass_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17029425A1800B30DA7 /* pass_manager.h */; }; + A9F7B75129425A1900B30DA7 /* pass_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17029425A1800B30DA7 /* pass_manager.h */; }; + A9F7B75229425A1900B30DA7 /* spread_volatile_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17129425A1800B30DA7 /* spread_volatile_semantics.h */; }; + A9F7B75329425A1900B30DA7 /* spread_volatile_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17129425A1800B30DA7 /* spread_volatile_semantics.h */; }; + A9F7B75429425A1900B30DA7 /* spread_volatile_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17129425A1800B30DA7 /* spread_volatile_semantics.h */; }; + A9F7B75529425A1900B30DA7 /* local_access_chain_convert_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17229425A1800B30DA7 /* local_access_chain_convert_pass.cpp */; }; + A9F7B75629425A1900B30DA7 /* local_access_chain_convert_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17229425A1800B30DA7 /* local_access_chain_convert_pass.cpp */; }; + A9F7B75729425A1900B30DA7 /* local_access_chain_convert_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17229425A1800B30DA7 /* local_access_chain_convert_pass.cpp */; }; + A9F7B75829425A1900B30DA7 /* interp_fixup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17329425A1800B30DA7 /* interp_fixup_pass.cpp */; }; + A9F7B75929425A1900B30DA7 /* interp_fixup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17329425A1800B30DA7 /* interp_fixup_pass.cpp */; }; + A9F7B75A29425A1900B30DA7 /* interp_fixup_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17329425A1800B30DA7 /* interp_fixup_pass.cpp */; }; + A9F7B75B29425A1900B30DA7 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17429425A1800B30DA7 /* basic_block.cpp */; }; + A9F7B75C29425A1900B30DA7 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17429425A1800B30DA7 /* basic_block.cpp */; }; + A9F7B75D29425A1900B30DA7 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17429425A1800B30DA7 /* basic_block.cpp */; }; + A9F7B75E29425A1900B30DA7 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17529425A1800B30DA7 /* iterator.h */; }; + A9F7B75F29425A1900B30DA7 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17529425A1800B30DA7 /* iterator.h */; }; + A9F7B76029425A1900B30DA7 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17529425A1800B30DA7 /* iterator.h */; }; + A9F7B76129425A1900B30DA7 /* licm_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17629425A1800B30DA7 /* licm_pass.h */; }; + A9F7B76229425A1900B30DA7 /* licm_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17629425A1800B30DA7 /* licm_pass.h */; }; + A9F7B76329425A1900B30DA7 /* licm_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17629425A1800B30DA7 /* licm_pass.h */; }; + A9F7B76429425A1900B30DA7 /* build_module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17729425A1800B30DA7 /* build_module.h */; }; + A9F7B76529425A1900B30DA7 /* build_module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17729425A1800B30DA7 /* build_module.h */; }; + A9F7B76629425A1900B30DA7 /* build_module.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17729425A1800B30DA7 /* build_module.h */; }; + A9F7B76729425A1900B30DA7 /* ccp_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17829425A1800B30DA7 /* ccp_pass.h */; }; + A9F7B76829425A1900B30DA7 /* ccp_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17829425A1800B30DA7 /* ccp_pass.h */; }; + A9F7B76929425A1900B30DA7 /* ccp_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17829425A1800B30DA7 /* ccp_pass.h */; }; + A9F7B76A29425A1900B30DA7 /* graphics_robust_access_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17929425A1800B30DA7 /* graphics_robust_access_pass.cpp */; }; + A9F7B76B29425A1900B30DA7 /* graphics_robust_access_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17929425A1800B30DA7 /* graphics_robust_access_pass.cpp */; }; + A9F7B76C29425A1900B30DA7 /* graphics_robust_access_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17929425A1800B30DA7 /* graphics_robust_access_pass.cpp */; }; + A9F7B76D29425A1900B30DA7 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17A29425A1800B30DA7 /* function.h */; }; + A9F7B76E29425A1900B30DA7 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17A29425A1800B30DA7 /* function.h */; }; + A9F7B76F29425A1900B30DA7 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17A29425A1800B30DA7 /* function.h */; }; + A9F7B77029425A1900B30DA7 /* fix_func_call_arguments.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17B29425A1800B30DA7 /* fix_func_call_arguments.h */; }; + A9F7B77129425A1900B30DA7 /* fix_func_call_arguments.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17B29425A1800B30DA7 /* fix_func_call_arguments.h */; }; + A9F7B77229425A1900B30DA7 /* fix_func_call_arguments.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17B29425A1800B30DA7 /* fix_func_call_arguments.h */; }; + A9F7B77329425A1900B30DA7 /* loop_fusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17C29425A1800B30DA7 /* loop_fusion.cpp */; }; + A9F7B77429425A1900B30DA7 /* loop_fusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17C29425A1800B30DA7 /* loop_fusion.cpp */; }; + A9F7B77529425A1900B30DA7 /* loop_fusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17C29425A1800B30DA7 /* loop_fusion.cpp */; }; + A9F7B77629425A1900B30DA7 /* analyze_live_input_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17D29425A1800B30DA7 /* analyze_live_input_pass.cpp */; }; + A9F7B77729425A1900B30DA7 /* analyze_live_input_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17D29425A1800B30DA7 /* analyze_live_input_pass.cpp */; }; + A9F7B77829425A1900B30DA7 /* analyze_live_input_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17D29425A1800B30DA7 /* analyze_live_input_pass.cpp */; }; + A9F7B77929425A1900B30DA7 /* upgrade_memory_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17E29425A1800B30DA7 /* upgrade_memory_model.cpp */; }; + A9F7B77A29425A1900B30DA7 /* upgrade_memory_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17E29425A1800B30DA7 /* upgrade_memory_model.cpp */; }; + A9F7B77B29425A1900B30DA7 /* upgrade_memory_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B17E29425A1800B30DA7 /* upgrade_memory_model.cpp */; }; + A9F7B77C29425A1900B30DA7 /* feature_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17F29425A1800B30DA7 /* feature_manager.h */; }; + A9F7B77D29425A1900B30DA7 /* feature_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17F29425A1800B30DA7 /* feature_manager.h */; }; + A9F7B77E29425A1900B30DA7 /* feature_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B17F29425A1800B30DA7 /* feature_manager.h */; }; + A9F7B77F29425A1900B30DA7 /* dataflow.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18029425A1800B30DA7 /* dataflow.h */; }; + A9F7B78029425A1900B30DA7 /* dataflow.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18029425A1800B30DA7 /* dataflow.h */; }; + A9F7B78129425A1900B30DA7 /* dataflow.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18029425A1800B30DA7 /* dataflow.h */; }; + A9F7B78229425A1900B30DA7 /* inst_bindless_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18129425A1800B30DA7 /* inst_bindless_check_pass.h */; }; + A9F7B78329425A1900B30DA7 /* inst_bindless_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18129425A1800B30DA7 /* inst_bindless_check_pass.h */; }; + A9F7B78429425A1900B30DA7 /* inst_bindless_check_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18129425A1800B30DA7 /* inst_bindless_check_pass.h */; }; + A9F7B78529425A1900B30DA7 /* scalar_analysis_simplification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B18229425A1800B30DA7 /* scalar_analysis_simplification.cpp */; }; + A9F7B78629425A1900B30DA7 /* scalar_analysis_simplification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B18229425A1800B30DA7 /* scalar_analysis_simplification.cpp */; }; + A9F7B78729425A1900B30DA7 /* scalar_analysis_simplification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B18229425A1800B30DA7 /* scalar_analysis_simplification.cpp */; }; + A9F7B78829425A1900B30DA7 /* set_spec_constant_default_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18329425A1800B30DA7 /* set_spec_constant_default_value_pass.h */; }; + A9F7B78929425A1900B30DA7 /* set_spec_constant_default_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18329425A1800B30DA7 /* set_spec_constant_default_value_pass.h */; }; + A9F7B78A29425A1900B30DA7 /* set_spec_constant_default_value_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18329425A1800B30DA7 /* set_spec_constant_default_value_pass.h */; }; + A9F7B78B29425A1900B30DA7 /* dominator_tree.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18429425A1800B30DA7 /* dominator_tree.h */; }; + A9F7B78C29425A1900B30DA7 /* dominator_tree.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18429425A1800B30DA7 /* dominator_tree.h */; }; + A9F7B78D29425A1900B30DA7 /* dominator_tree.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18429425A1800B30DA7 /* dominator_tree.h */; }; + A9F7B78E29425A1900B30DA7 /* remove_unused_interface_variables_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18529425A1800B30DA7 /* remove_unused_interface_variables_pass.h */; }; + A9F7B78F29425A1900B30DA7 /* remove_unused_interface_variables_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18529425A1800B30DA7 /* remove_unused_interface_variables_pass.h */; }; + A9F7B79029425A1900B30DA7 /* remove_unused_interface_variables_pass.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18529425A1800B30DA7 /* remove_unused_interface_variables_pass.h */; }; + A9F7B79129425A1900B30DA7 /* type_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18629425A1800B30DA7 /* type_manager.h */; }; + A9F7B79229425A1900B30DA7 /* type_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18629425A1800B30DA7 /* type_manager.h */; }; + A9F7B79329425A1900B30DA7 /* type_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18629425A1800B30DA7 /* type_manager.h */; }; + A9F7B79429425A1900B30DA7 /* compact_ids_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B18729425A1800B30DA7 /* compact_ids_pass.cpp */; }; + A9F7B79529425A1900B30DA7 /* compact_ids_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B18729425A1800B30DA7 /* compact_ids_pass.cpp */; }; + A9F7B79629425A1900B30DA7 /* compact_ids_pass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B18729425A1800B30DA7 /* compact_ids_pass.cpp */; }; + A9F7B79729425A1900B30DA7 /* loop_peeling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B18829425A1800B30DA7 /* loop_peeling.cpp */; }; + A9F7B79829425A1900B30DA7 /* loop_peeling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B18829425A1800B30DA7 /* loop_peeling.cpp */; }; + A9F7B79929425A1900B30DA7 /* loop_peeling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B18829425A1800B30DA7 /* loop_peeling.cpp */; }; + A9F7B79A29425A1900B30DA7 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18929425A1800B30DA7 /* table.h */; }; + A9F7B79B29425A1900B30DA7 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18929425A1800B30DA7 /* table.h */; }; + A9F7B79C29425A1900B30DA7 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B18929425A1800B30DA7 /* table.h */; }; + A9F7BC3229425A1B00B30DA7 /* ext_inst.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31629425A1800B30DA7 /* ext_inst.h */; }; + A9F7BC3329425A1B00B30DA7 /* ext_inst.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31629425A1800B30DA7 /* ext_inst.h */; }; + A9F7BC3429425A1B00B30DA7 /* ext_inst.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31629425A1800B30DA7 /* ext_inst.h */; }; + A9F7BC3529425A1B00B30DA7 /* diagnostic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B31729425A1800B30DA7 /* diagnostic.cpp */; }; + A9F7BC3629425A1B00B30DA7 /* diagnostic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B31729425A1800B30DA7 /* diagnostic.cpp */; }; + A9F7BC3729425A1B00B30DA7 /* diagnostic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B31729425A1800B30DA7 /* diagnostic.cpp */; }; + A9F7BC3829425A1B00B30DA7 /* latest_version_spirv_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31829425A1800B30DA7 /* latest_version_spirv_header.h */; }; + A9F7BC3929425A1B00B30DA7 /* latest_version_spirv_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31829425A1800B30DA7 /* latest_version_spirv_header.h */; }; + A9F7BC3A29425A1B00B30DA7 /* latest_version_spirv_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31829425A1800B30DA7 /* latest_version_spirv_header.h */; }; + A9F7BC3B29425A1B00B30DA7 /* libspirv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B31929425A1800B30DA7 /* libspirv.cpp */; }; + A9F7BC3C29425A1B00B30DA7 /* libspirv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B31929425A1800B30DA7 /* libspirv.cpp */; }; + A9F7BC3D29425A1B00B30DA7 /* libspirv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B31929425A1800B30DA7 /* libspirv.cpp */; }; + A9F7BC3E29425A1B00B30DA7 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31A29425A1800B30DA7 /* instruction.h */; }; + A9F7BC3F29425A1B00B30DA7 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31A29425A1800B30DA7 /* instruction.h */; }; + A9F7BC4029425A1B00B30DA7 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31A29425A1800B30DA7 /* instruction.h */; }; + A9F7BC4129425A1B00B30DA7 /* spirv_optimizer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31B29425A1800B30DA7 /* spirv_optimizer_options.h */; }; + A9F7BC4229425A1B00B30DA7 /* spirv_optimizer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31B29425A1800B30DA7 /* spirv_optimizer_options.h */; }; + A9F7BC4329425A1B00B30DA7 /* spirv_optimizer_options.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31B29425A1800B30DA7 /* spirv_optimizer_options.h */; }; + A9F7BC4429425A1B00B30DA7 /* opcode.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31C29425A1800B30DA7 /* opcode.h */; }; + A9F7BC4529425A1B00B30DA7 /* opcode.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31C29425A1800B30DA7 /* opcode.h */; }; + A9F7BC4629425A1B00B30DA7 /* opcode.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31C29425A1800B30DA7 /* opcode.h */; }; + A9F7BC4729425A1B00B30DA7 /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B31D29425A1800B30DA7 /* operand.cpp */; }; + A9F7BC4829425A1B00B30DA7 /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B31D29425A1800B30DA7 /* operand.cpp */; }; + A9F7BC4929425A1B00B30DA7 /* operand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B31D29425A1800B30DA7 /* operand.cpp */; }; + A9F7BC4A29425A1B00B30DA7 /* latest_version_glsl_std_450_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31E29425A1800B30DA7 /* latest_version_glsl_std_450_header.h */; }; + A9F7BC4B29425A1B00B30DA7 /* latest_version_glsl_std_450_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31E29425A1800B30DA7 /* latest_version_glsl_std_450_header.h */; }; + A9F7BC4C29425A1B00B30DA7 /* latest_version_glsl_std_450_header.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31E29425A1800B30DA7 /* latest_version_glsl_std_450_header.h */; }; + A9F7BC4D29425A1B00B30DA7 /* extensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31F29425A1800B30DA7 /* extensions.h */; }; + A9F7BC4E29425A1B00B30DA7 /* extensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31F29425A1800B30DA7 /* extensions.h */; }; + A9F7BC4F29425A1B00B30DA7 /* extensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B31F29425A1800B30DA7 /* extensions.h */; }; + A9F7BC5029425A1B00B30DA7 /* disassemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32029425A1800B30DA7 /* disassemble.cpp */; }; + A9F7BC5129425A1B00B30DA7 /* disassemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32029425A1800B30DA7 /* disassemble.cpp */; }; + A9F7BC5229425A1B00B30DA7 /* disassemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32029425A1800B30DA7 /* disassemble.cpp */; }; + A9F7BC5329425A1B00B30DA7 /* binary.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B32129425A1800B30DA7 /* binary.h */; }; + A9F7BC5429425A1B00B30DA7 /* binary.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B32129425A1800B30DA7 /* binary.h */; }; + A9F7BC5529425A1B00B30DA7 /* binary.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B32129425A1800B30DA7 /* binary.h */; }; + A9F7BC5629425A1B00B30DA7 /* text_handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32229425A1800B30DA7 /* text_handler.cpp */; }; + A9F7BC5729425A1B00B30DA7 /* text_handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32229425A1800B30DA7 /* text_handler.cpp */; }; + A9F7BC5829425A1B00B30DA7 /* text_handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32229425A1800B30DA7 /* text_handler.cpp */; }; + A9F7BC5929425A1B00B30DA7 /* validate_annotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32429425A1800B30DA7 /* validate_annotation.cpp */; }; + A9F7BC5A29425A1B00B30DA7 /* validate_annotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32429425A1800B30DA7 /* validate_annotation.cpp */; }; + A9F7BC5B29425A1B00B30DA7 /* validate_annotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32429425A1800B30DA7 /* validate_annotation.cpp */; }; + A9F7BC5C29425A1B00B30DA7 /* validate_misc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32529425A1800B30DA7 /* validate_misc.cpp */; }; + A9F7BC5D29425A1B00B30DA7 /* validate_misc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32529425A1800B30DA7 /* validate_misc.cpp */; }; + A9F7BC5E29425A1B00B30DA7 /* validate_misc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32529425A1800B30DA7 /* validate_misc.cpp */; }; + A9F7BC5F29425A1B00B30DA7 /* validate_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32629425A1800B30DA7 /* validate_cfg.cpp */; }; + A9F7BC6029425A1B00B30DA7 /* validate_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32629425A1800B30DA7 /* validate_cfg.cpp */; }; + A9F7BC6129425A1B00B30DA7 /* validate_cfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32629425A1800B30DA7 /* validate_cfg.cpp */; }; + A9F7BC6229425A1B00B30DA7 /* validate_capability.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32729425A1800B30DA7 /* validate_capability.cpp */; }; + A9F7BC6329425A1B00B30DA7 /* validate_capability.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32729425A1800B30DA7 /* validate_capability.cpp */; }; + A9F7BC6429425A1B00B30DA7 /* validate_capability.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32729425A1800B30DA7 /* validate_capability.cpp */; }; + A9F7BC6529425A1B00B30DA7 /* construct.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B32829425A1800B30DA7 /* construct.h */; }; + A9F7BC6629425A1B00B30DA7 /* construct.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B32829425A1800B30DA7 /* construct.h */; }; + A9F7BC6729425A1B00B30DA7 /* construct.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B32829425A1800B30DA7 /* construct.h */; }; + A9F7BC6829425A1B00B30DA7 /* validate_barriers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32929425A1800B30DA7 /* validate_barriers.cpp */; }; + A9F7BC6929425A1B00B30DA7 /* validate_barriers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32929425A1800B30DA7 /* validate_barriers.cpp */; }; + A9F7BC6A29425A1B00B30DA7 /* validate_barriers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32929425A1800B30DA7 /* validate_barriers.cpp */; }; + A9F7BC6B29425A1B00B30DA7 /* validate_non_uniform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32A29425A1800B30DA7 /* validate_non_uniform.cpp */; }; + A9F7BC6C29425A1B00B30DA7 /* validate_non_uniform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32A29425A1800B30DA7 /* validate_non_uniform.cpp */; }; + A9F7BC6D29425A1B00B30DA7 /* validate_non_uniform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32A29425A1800B30DA7 /* validate_non_uniform.cpp */; }; + A9F7BC6E29425A1B00B30DA7 /* validate_ray_query.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32B29425A1800B30DA7 /* validate_ray_query.cpp */; }; + A9F7BC6F29425A1B00B30DA7 /* validate_ray_query.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32B29425A1800B30DA7 /* validate_ray_query.cpp */; }; + A9F7BC7029425A1B00B30DA7 /* validate_ray_query.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32B29425A1800B30DA7 /* validate_ray_query.cpp */; }; + A9F7BC7129425A1B00B30DA7 /* validate_ray_tracing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32C29425A1800B30DA7 /* validate_ray_tracing.cpp */; }; + A9F7BC7229425A1B00B30DA7 /* validate_ray_tracing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32C29425A1800B30DA7 /* validate_ray_tracing.cpp */; }; + A9F7BC7329425A1B00B30DA7 /* validate_ray_tracing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32C29425A1800B30DA7 /* validate_ray_tracing.cpp */; }; + A9F7BC7429425A1B00B30DA7 /* validate_scopes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32D29425A1800B30DA7 /* validate_scopes.cpp */; }; + A9F7BC7529425A1B00B30DA7 /* validate_scopes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32D29425A1800B30DA7 /* validate_scopes.cpp */; }; + A9F7BC7629425A1B00B30DA7 /* validate_scopes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32D29425A1800B30DA7 /* validate_scopes.cpp */; }; + A9F7BC7729425A1B00B30DA7 /* validate_atomics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32E29425A1800B30DA7 /* validate_atomics.cpp */; }; + A9F7BC7829425A1B00B30DA7 /* validate_atomics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32E29425A1800B30DA7 /* validate_atomics.cpp */; }; + A9F7BC7929425A1B00B30DA7 /* validate_atomics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B32E29425A1800B30DA7 /* validate_atomics.cpp */; }; + A9F7BC7A29425A1B00B30DA7 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B32F29425A1800B30DA7 /* basic_block.h */; }; + A9F7BC7B29425A1B00B30DA7 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B32F29425A1800B30DA7 /* basic_block.h */; }; + A9F7BC7C29425A1B00B30DA7 /* basic_block.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B32F29425A1800B30DA7 /* basic_block.h */; }; + A9F7BC7D29425A1B00B30DA7 /* validate_instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33029425A1800B30DA7 /* validate_instruction.cpp */; }; + A9F7BC7E29425A1B00B30DA7 /* validate_instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33029425A1800B30DA7 /* validate_instruction.cpp */; }; + A9F7BC7F29425A1B00B30DA7 /* validate_instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33029425A1800B30DA7 /* validate_instruction.cpp */; }; + A9F7BC8029425A1B00B30DA7 /* validate_ray_tracing_reorder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33129425A1800B30DA7 /* validate_ray_tracing_reorder.cpp */; }; + A9F7BC8129425A1B00B30DA7 /* validate_ray_tracing_reorder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33129425A1800B30DA7 /* validate_ray_tracing_reorder.cpp */; }; + A9F7BC8229425A1B00B30DA7 /* validate_ray_tracing_reorder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33129425A1800B30DA7 /* validate_ray_tracing_reorder.cpp */; }; + A9F7BC8329425A1B00B30DA7 /* validate_decorations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33229425A1800B30DA7 /* validate_decorations.cpp */; }; + A9F7BC8429425A1B00B30DA7 /* validate_decorations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33229425A1800B30DA7 /* validate_decorations.cpp */; }; + A9F7BC8529425A1B00B30DA7 /* validate_decorations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33229425A1800B30DA7 /* validate_decorations.cpp */; }; + A9F7BC8629425A1B00B30DA7 /* validate_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33329425A1800B30DA7 /* validate_debug.cpp */; }; + A9F7BC8729425A1B00B30DA7 /* validate_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33329425A1800B30DA7 /* validate_debug.cpp */; }; + A9F7BC8829425A1B00B30DA7 /* validate_debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33329425A1800B30DA7 /* validate_debug.cpp */; }; + A9F7BC8929425A1B00B30DA7 /* validate_builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33429425A1800B30DA7 /* validate_builtins.cpp */; }; + A9F7BC8A29425A1B00B30DA7 /* validate_builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33429425A1800B30DA7 /* validate_builtins.cpp */; }; + A9F7BC8B29425A1B00B30DA7 /* validate_builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33429425A1800B30DA7 /* validate_builtins.cpp */; }; + A9F7BC8C29425A1B00B30DA7 /* validate_interfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33529425A1800B30DA7 /* validate_interfaces.cpp */; }; + A9F7BC8D29425A1B00B30DA7 /* validate_interfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33529425A1800B30DA7 /* validate_interfaces.cpp */; }; + A9F7BC8E29425A1B00B30DA7 /* validate_interfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33529425A1800B30DA7 /* validate_interfaces.cpp */; }; + A9F7BC8F29425A1B00B30DA7 /* validate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33629425A1800B30DA7 /* validate.cpp */; }; + A9F7BC9029425A1B00B30DA7 /* validate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33629425A1800B30DA7 /* validate.cpp */; }; + A9F7BC9129425A1B00B30DA7 /* validate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33629425A1800B30DA7 /* validate.cpp */; }; + A9F7BC9229425A1B00B30DA7 /* validation_state.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B33729425A1800B30DA7 /* validation_state.h */; }; + A9F7BC9329425A1B00B30DA7 /* validation_state.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B33729425A1800B30DA7 /* validation_state.h */; }; + A9F7BC9429425A1B00B30DA7 /* validation_state.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B33729425A1800B30DA7 /* validation_state.h */; }; + A9F7BC9529425A1B00B30DA7 /* validate_constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33829425A1800B30DA7 /* validate_constants.cpp */; }; + A9F7BC9629425A1B00B30DA7 /* validate_constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33829425A1800B30DA7 /* validate_constants.cpp */; }; + A9F7BC9729425A1B00B30DA7 /* validate_constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33829425A1800B30DA7 /* validate_constants.cpp */; }; + A9F7BC9829425A1B00B30DA7 /* validate_bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33929425A1800B30DA7 /* validate_bitwise.cpp */; }; + A9F7BC9929425A1B00B30DA7 /* validate_bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33929425A1800B30DA7 /* validate_bitwise.cpp */; }; + A9F7BC9A29425A1B00B30DA7 /* validate_bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33929425A1800B30DA7 /* validate_bitwise.cpp */; }; + A9F7BC9B29425A1B00B30DA7 /* validate_extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33A29425A1800B30DA7 /* validate_extensions.cpp */; }; + A9F7BC9C29425A1B00B30DA7 /* validate_extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33A29425A1800B30DA7 /* validate_extensions.cpp */; }; + A9F7BC9D29425A1B00B30DA7 /* validate_extensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33A29425A1800B30DA7 /* validate_extensions.cpp */; }; + A9F7BC9E29425A1B00B30DA7 /* construct.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33B29425A1800B30DA7 /* construct.cpp */; }; + A9F7BC9F29425A1B00B30DA7 /* construct.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33B29425A1800B30DA7 /* construct.cpp */; }; + A9F7BCA029425A1B00B30DA7 /* construct.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33B29425A1800B30DA7 /* construct.cpp */; }; + A9F7BCA129425A1B00B30DA7 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33C29425A1800B30DA7 /* function.cpp */; }; + A9F7BCA229425A1B00B30DA7 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33C29425A1800B30DA7 /* function.cpp */; }; + A9F7BCA329425A1B00B30DA7 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33C29425A1800B30DA7 /* function.cpp */; }; + A9F7BCA429425A1B00B30DA7 /* validate.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B33D29425A1800B30DA7 /* validate.h */; }; + A9F7BCA529425A1B00B30DA7 /* validate.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B33D29425A1800B30DA7 /* validate.h */; }; + A9F7BCA629425A1B00B30DA7 /* validate.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B33D29425A1800B30DA7 /* validate.h */; }; + A9F7BCA729425A1B00B30DA7 /* validate_adjacency.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33E29425A1800B30DA7 /* validate_adjacency.cpp */; }; + A9F7BCA829425A1B00B30DA7 /* validate_adjacency.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33E29425A1800B30DA7 /* validate_adjacency.cpp */; }; + A9F7BCA929425A1B00B30DA7 /* validate_adjacency.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33E29425A1800B30DA7 /* validate_adjacency.cpp */; }; + A9F7BCAA29425A1B00B30DA7 /* validate_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33F29425A1800B30DA7 /* validate_conversion.cpp */; }; + A9F7BCAB29425A1B00B30DA7 /* validate_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33F29425A1800B30DA7 /* validate_conversion.cpp */; }; + A9F7BCAC29425A1B00B30DA7 /* validate_conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B33F29425A1800B30DA7 /* validate_conversion.cpp */; }; + A9F7BCAD29425A1B00B30DA7 /* validate_small_type_uses.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34029425A1800B30DA7 /* validate_small_type_uses.cpp */; }; + A9F7BCAE29425A1B00B30DA7 /* validate_small_type_uses.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34029425A1800B30DA7 /* validate_small_type_uses.cpp */; }; + A9F7BCAF29425A1B00B30DA7 /* validate_small_type_uses.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34029425A1800B30DA7 /* validate_small_type_uses.cpp */; }; + A9F7BCB029425A1B00B30DA7 /* validate_scopes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B34129425A1800B30DA7 /* validate_scopes.h */; }; + A9F7BCB129425A1B00B30DA7 /* validate_scopes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B34129425A1800B30DA7 /* validate_scopes.h */; }; + A9F7BCB229425A1B00B30DA7 /* validate_scopes.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B34129425A1800B30DA7 /* validate_scopes.h */; }; + A9F7BCB329425A1B00B30DA7 /* validate_id.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34229425A1800B30DA7 /* validate_id.cpp */; }; + A9F7BCB429425A1B00B30DA7 /* validate_id.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34229425A1800B30DA7 /* validate_id.cpp */; }; + A9F7BCB529425A1B00B30DA7 /* validate_id.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34229425A1800B30DA7 /* validate_id.cpp */; }; + A9F7BCB629425A1B00B30DA7 /* validate_memory_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B34329425A1800B30DA7 /* validate_memory_semantics.h */; }; + A9F7BCB729425A1B00B30DA7 /* validate_memory_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B34329425A1800B30DA7 /* validate_memory_semantics.h */; }; + A9F7BCB829425A1B00B30DA7 /* validate_memory_semantics.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B34329425A1800B30DA7 /* validate_memory_semantics.h */; }; + A9F7BCB929425A1B00B30DA7 /* validate_arithmetics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34429425A1800B30DA7 /* validate_arithmetics.cpp */; }; + A9F7BCBA29425A1B00B30DA7 /* validate_arithmetics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34429425A1800B30DA7 /* validate_arithmetics.cpp */; }; + A9F7BCBB29425A1B00B30DA7 /* validate_arithmetics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34429425A1800B30DA7 /* validate_arithmetics.cpp */; }; + A9F7BCBC29425A1B00B30DA7 /* validate_mode_setting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34529425A1800B30DA7 /* validate_mode_setting.cpp */; }; + A9F7BCBD29425A1B00B30DA7 /* validate_mode_setting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34529425A1800B30DA7 /* validate_mode_setting.cpp */; }; + A9F7BCBE29425A1B00B30DA7 /* validate_mode_setting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34529425A1800B30DA7 /* validate_mode_setting.cpp */; }; + A9F7BCBF29425A1B00B30DA7 /* validate_memory_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34629425A1800B30DA7 /* validate_memory_semantics.cpp */; }; + A9F7BCC029425A1B00B30DA7 /* validate_memory_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34629425A1800B30DA7 /* validate_memory_semantics.cpp */; }; + A9F7BCC129425A1B00B30DA7 /* validate_memory_semantics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34629425A1800B30DA7 /* validate_memory_semantics.cpp */; }; + A9F7BCC229425A1B00B30DA7 /* validate_logicals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34729425A1800B30DA7 /* validate_logicals.cpp */; }; + A9F7BCC329425A1B00B30DA7 /* validate_logicals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34729425A1800B30DA7 /* validate_logicals.cpp */; }; + A9F7BCC429425A1B00B30DA7 /* validate_logicals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34729425A1800B30DA7 /* validate_logicals.cpp */; }; + A9F7BCC529425A1B00B30DA7 /* validate_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34829425A1800B30DA7 /* validate_derivatives.cpp */; }; + A9F7BCC629425A1B00B30DA7 /* validate_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34829425A1800B30DA7 /* validate_derivatives.cpp */; }; + A9F7BCC729425A1B00B30DA7 /* validate_derivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34829425A1800B30DA7 /* validate_derivatives.cpp */; }; + A9F7BCC829425A1B00B30DA7 /* validate_memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34929425A1800B30DA7 /* validate_memory.cpp */; }; + A9F7BCC929425A1B00B30DA7 /* validate_memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34929425A1800B30DA7 /* validate_memory.cpp */; }; + A9F7BCCA29425A1B00B30DA7 /* validate_memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34929425A1800B30DA7 /* validate_memory.cpp */; }; + A9F7BCCB29425A1B00B30DA7 /* validate_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34A29425A1800B30DA7 /* validate_image.cpp */; }; + A9F7BCCC29425A1B00B30DA7 /* validate_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34A29425A1800B30DA7 /* validate_image.cpp */; }; + A9F7BCCD29425A1B00B30DA7 /* validate_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34A29425A1800B30DA7 /* validate_image.cpp */; }; + A9F7BCCE29425A1B00B30DA7 /* validate_literals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34B29425A1800B30DA7 /* validate_literals.cpp */; }; + A9F7BCCF29425A1B00B30DA7 /* validate_literals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34B29425A1800B30DA7 /* validate_literals.cpp */; }; + A9F7BCD029425A1B00B30DA7 /* validate_literals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34B29425A1800B30DA7 /* validate_literals.cpp */; }; + A9F7BCD129425A1B00B30DA7 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34C29425A1800B30DA7 /* instruction.cpp */; }; + A9F7BCD229425A1B00B30DA7 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34C29425A1800B30DA7 /* instruction.cpp */; }; + A9F7BCD329425A1B00B30DA7 /* instruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34C29425A1800B30DA7 /* instruction.cpp */; }; + A9F7BCD429425A1B00B30DA7 /* validate_type.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34D29425A1800B30DA7 /* validate_type.cpp */; }; + A9F7BCD529425A1B00B30DA7 /* validate_type.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34D29425A1800B30DA7 /* validate_type.cpp */; }; + A9F7BCD629425A1B00B30DA7 /* validate_type.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34D29425A1800B30DA7 /* validate_type.cpp */; }; + A9F7BCD729425A1B00B30DA7 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B34E29425A1800B30DA7 /* instruction.h */; }; + A9F7BCD829425A1B00B30DA7 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B34E29425A1800B30DA7 /* instruction.h */; }; + A9F7BCD929425A1B00B30DA7 /* instruction.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B34E29425A1800B30DA7 /* instruction.h */; }; + A9F7BCDA29425A1B00B30DA7 /* validate_mesh_shading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34F29425A1800B30DA7 /* validate_mesh_shading.cpp */; }; + A9F7BCDB29425A1B00B30DA7 /* validate_mesh_shading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34F29425A1800B30DA7 /* validate_mesh_shading.cpp */; }; + A9F7BCDC29425A1B00B30DA7 /* validate_mesh_shading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B34F29425A1800B30DA7 /* validate_mesh_shading.cpp */; }; + A9F7BCDD29425A1B00B30DA7 /* validate_execution_limitations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35029425A1800B30DA7 /* validate_execution_limitations.cpp */; }; + A9F7BCDE29425A1B00B30DA7 /* validate_execution_limitations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35029425A1800B30DA7 /* validate_execution_limitations.cpp */; }; + A9F7BCDF29425A1B00B30DA7 /* validate_execution_limitations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35029425A1800B30DA7 /* validate_execution_limitations.cpp */; }; + A9F7BCE029425A1B00B30DA7 /* validate_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35129425A1800B30DA7 /* validate_layout.cpp */; }; + A9F7BCE129425A1B00B30DA7 /* validate_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35129425A1800B30DA7 /* validate_layout.cpp */; }; + A9F7BCE229425A1B00B30DA7 /* validate_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35129425A1800B30DA7 /* validate_layout.cpp */; }; + A9F7BCE329425A1B00B30DA7 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35229425A1800B30DA7 /* basic_block.cpp */; }; + A9F7BCE429425A1B00B30DA7 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35229425A1800B30DA7 /* basic_block.cpp */; }; + A9F7BCE529425A1B00B30DA7 /* basic_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35229425A1800B30DA7 /* basic_block.cpp */; }; + A9F7BCE629425A1B00B30DA7 /* validate_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35329425A1800B30DA7 /* validate_function.cpp */; }; + A9F7BCE729425A1B00B30DA7 /* validate_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35329425A1800B30DA7 /* validate_function.cpp */; }; + A9F7BCE829425A1B00B30DA7 /* validate_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35329425A1800B30DA7 /* validate_function.cpp */; }; + A9F7BCE929425A1B00B30DA7 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B35429425A1800B30DA7 /* function.h */; }; + A9F7BCEA29425A1B00B30DA7 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B35429425A1800B30DA7 /* function.h */; }; + A9F7BCEB29425A1B00B30DA7 /* function.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B35429425A1800B30DA7 /* function.h */; }; + A9F7BCEC29425A1B00B30DA7 /* validate_composites.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35529425A1800B30DA7 /* validate_composites.cpp */; }; + A9F7BCED29425A1B00B30DA7 /* validate_composites.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35529425A1800B30DA7 /* validate_composites.cpp */; }; + A9F7BCEE29425A1B00B30DA7 /* validate_composites.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35529425A1800B30DA7 /* validate_composites.cpp */; }; + A9F7BCEF29425A1B00B30DA7 /* validation_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35629425A1800B30DA7 /* validation_state.cpp */; }; + A9F7BCF029425A1B00B30DA7 /* validation_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35629425A1800B30DA7 /* validation_state.cpp */; }; + A9F7BCF129425A1B00B30DA7 /* validation_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35629425A1800B30DA7 /* validation_state.cpp */; }; + A9F7BCF229425A1B00B30DA7 /* validate_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35729425A1800B30DA7 /* validate_primitives.cpp */; }; + A9F7BCF329425A1B00B30DA7 /* validate_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35729425A1800B30DA7 /* validate_primitives.cpp */; }; + A9F7BCF429425A1B00B30DA7 /* validate_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9F7B35729425A1800B30DA7 /* validate_primitives.cpp */; }; + A9F7BCF529425A1B00B30DA7 /* decoration.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B35829425A1800B30DA7 /* decoration.h */; }; + A9F7BCF629425A1B00B30DA7 /* decoration.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B35829425A1800B30DA7 /* decoration.h */; }; + A9F7BCF729425A1B00B30DA7 /* decoration.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F7B35829425A1800B30DA7 /* decoration.h */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -1904,434 +1925,441 @@ A997F9CD26865A550006F71B /* Link.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Link.cpp; sourceTree = ""; }; A9C2104521D14FD7006BA2D3 /* fetchDependencies */ = {isa = PBXFileReference; lastKnownFileType = text; path = fetchDependencies; sourceTree = ""; }; A9C2104721D15843006BA2D3 /* ExternalRevisions */ = {isa = PBXFileReference; lastKnownFileType = folder; path = ExternalRevisions; sourceTree = ""; }; - A9EE08B228FDD2550013FF99 /* spirv_target_env.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_target_env.cpp; sourceTree = ""; }; - A9EE08B328FDD2550013FF99 /* spirv_fuzzer_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_fuzzer_options.h; sourceTree = ""; }; - A9EE08B428FDD2550013FF99 /* assembly_grammar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = assembly_grammar.h; sourceTree = ""; }; - A9EE08B628FDD2550013FF99 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - A9EE08B728FDD2550013FF99 /* lint_divergent_derivatives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lint_divergent_derivatives.cpp; sourceTree = ""; }; - A9EE08B828FDD2550013FF99 /* linter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = linter.cpp; sourceTree = ""; }; - A9EE08B928FDD2550013FF99 /* divergence_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = divergence_analysis.cpp; sourceTree = ""; }; - A9EE08BA28FDD2550013FF99 /* lints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lints.h; sourceTree = ""; }; - A9EE08BB28FDD2550013FF99 /* divergence_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = divergence_analysis.h; sourceTree = ""; }; - A9EE08BC28FDD2550013FF99 /* enum_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enum_set.h; sourceTree = ""; }; - A9EE08BD28FDD2550013FF99 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - A9EE08BE28FDD2550013FF99 /* text.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = text.cpp; sourceTree = ""; }; - A9EE08BF28FDD2550013FF99 /* assembly_grammar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = assembly_grammar.cpp; sourceTree = ""; }; - A9EE08C028FDD2550013FF99 /* text.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = text.h; sourceTree = ""; }; - A9EE08C128FDD2550013FF99 /* extensions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = extensions.cpp; sourceTree = ""; }; - A9EE08C228FDD2550013FF99 /* pch_source.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pch_source.cpp; sourceTree = ""; }; - A9EE08C428FDD2550013FF99 /* parse_number.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parse_number.h; sourceTree = ""; }; - A9EE08C528FDD2550013FF99 /* ilist_node.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ilist_node.h; sourceTree = ""; }; - A9EE08C628FDD2550013FF99 /* make_unique.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = make_unique.h; sourceTree = ""; }; - A9EE08C728FDD2550013FF99 /* string_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = string_utils.h; sourceTree = ""; }; - A9EE08C828FDD2550013FF99 /* small_vector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = small_vector.h; sourceTree = ""; }; - A9EE08C928FDD2550013FF99 /* hash_combine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash_combine.h; sourceTree = ""; }; - A9EE08CA28FDD2550013FF99 /* timer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = timer.cpp; sourceTree = ""; }; - A9EE08CB28FDD2550013FF99 /* timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = timer.h; sourceTree = ""; }; - A9EE08CC28FDD2550013FF99 /* string_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = string_utils.cpp; sourceTree = ""; }; - A9EE08CD28FDD2550013FF99 /* bit_vector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit_vector.h; sourceTree = ""; }; - A9EE08CE28FDD2550013FF99 /* bitutils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bitutils.h; sourceTree = ""; }; - A9EE08CF28FDD2550013FF99 /* hex_float.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hex_float.h; sourceTree = ""; }; - A9EE08D028FDD2550013FF99 /* parse_number.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parse_number.cpp; sourceTree = ""; }; - A9EE08D128FDD2550013FF99 /* bit_vector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bit_vector.cpp; sourceTree = ""; }; - A9EE08D228FDD2550013FF99 /* ilist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ilist.h; sourceTree = ""; }; - A9EE08D328FDD2550013FF99 /* spirv_target_env.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_target_env.h; sourceTree = ""; }; - A9EE08D428FDD2550013FF99 /* table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table.cpp; sourceTree = ""; }; - A9EE08D628FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand_to_undef_reduction_opportunity_finder.h; sourceTree = ""; }; - A9EE08D728FDD2550013FF99 /* remove_selection_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_selection_reduction_opportunity.cpp; sourceTree = ""; }; - A9EE08D828FDD2550013FF99 /* remove_block_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_block_reduction_opportunity.h; sourceTree = ""; }; - A9EE08D928FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand_to_dominating_id_reduction_opportunity_finder.h; sourceTree = ""; }; - A9EE08DA28FDD2550013FF99 /* reduction_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_pass.cpp; sourceTree = ""; }; - A9EE08DB28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_construct_to_block_reduction_opportunity.h; sourceTree = ""; }; - A9EE08DC28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand_to_const_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A9EE08DD28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand_to_const_reduction_opportunity_finder.h; sourceTree = ""; }; - A9EE08DE28FDD2550013FF99 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - A9EE08DF28FDD2550013FF99 /* reduction_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_util.cpp; sourceTree = ""; }; - A9EE08E028FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_construct_to_block_reduction_opportunity_finder.h; sourceTree = ""; }; - A9EE08E128FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_loop_to_selection_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A9EE08E228FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simple_conditional_branch_to_branch_reduction_opportunity.h; sourceTree = ""; }; - A9EE08E328FDD2550013FF99 /* remove_function_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_function_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A9EE08E428FDD2550013FF99 /* remove_instruction_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_instruction_reduction_opportunity.h; sourceTree = ""; }; - A9EE08E528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conditional_branch_to_simple_conditional_branch_reduction_opportunity.h; sourceTree = ""; }; - A9EE08E628FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simple_conditional_branch_to_branch_reduction_opportunity.cpp; sourceTree = ""; }; - A9EE08E728FDD2550013FF99 /* remove_function_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_function_reduction_opportunity.cpp; sourceTree = ""; }; - A9EE08E828FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simple_conditional_branch_to_branch_opportunity_finder.cpp; sourceTree = ""; }; - A9EE08E928FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_selection_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A9EE08EA28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp; sourceTree = ""; }; - A9EE08EB28FDD2550013FF99 /* remove_struct_member_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_struct_member_reduction_opportunity.h; sourceTree = ""; }; - A9EE08EC28FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simple_conditional_branch_to_branch_opportunity_finder.h; sourceTree = ""; }; - A9EE08ED28FDD2550013FF99 /* merge_blocks_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_blocks_reduction_opportunity.cpp; sourceTree = ""; }; - A9EE08EE28FDD2550013FF99 /* change_operand_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = change_operand_reduction_opportunity.cpp; sourceTree = ""; }; - A9EE08EF28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_loop_to_selection_reduction_opportunity.h; sourceTree = ""; }; - A9EE08F028FDD2550013FF99 /* remove_function_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_function_reduction_opportunity.h; sourceTree = ""; }; - A9EE08F128FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_unused_instruction_reduction_opportunity_finder.h; sourceTree = ""; }; - A9EE08F228FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = change_operand_to_undef_reduction_opportunity.h; sourceTree = ""; }; - A9EE08F328FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_loop_to_selection_reduction_opportunity_finder.h; sourceTree = ""; }; - A9EE08F428FDD2550013FF99 /* remove_selection_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_selection_reduction_opportunity.h; sourceTree = ""; }; - A9EE08F528FDD2550013FF99 /* remove_instruction_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_instruction_reduction_opportunity.cpp; sourceTree = ""; }; - A9EE08F628FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_selection_reduction_opportunity_finder.h; sourceTree = ""; }; - A9EE08F728FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_blocks_reduction_opportunity_finder.h; sourceTree = ""; }; - A9EE08F828FDD2550013FF99 /* pch_source_reduce.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pch_source_reduce.cpp; sourceTree = ""; }; - A9EE08F928FDD2550013FF99 /* remove_struct_member_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_struct_member_reduction_opportunity.cpp; sourceTree = ""; }; - A9EE08FA28FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_unused_struct_member_reduction_opportunity_finder.h; sourceTree = ""; }; - A9EE08FB28FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_unused_instruction_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A9EE08FC28FDD2550013FF99 /* reducer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reducer.cpp; sourceTree = ""; }; - A9EE08FD28FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand_to_undef_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A9EE08FE28FDD2550013FF99 /* remove_function_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_function_reduction_opportunity_finder.h; sourceTree = ""; }; - A9EE08FF28FDD2550013FF99 /* pch_source_reduce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pch_source_reduce.h; sourceTree = ""; }; - A9EE090028FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_blocks_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A9EE090128FDD2550013FF99 /* reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_opportunity.cpp; sourceTree = ""; }; - A9EE090228FDD2550013FF99 /* reducer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reducer.h; sourceTree = ""; }; - A9EE090328FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = change_operand_to_undef_reduction_opportunity.cpp; sourceTree = ""; }; - A9EE090428FDD2550013FF99 /* reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_opportunity.h; sourceTree = ""; }; - A9EE090528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conditional_branch_to_simple_conditional_branch_opportunity_finder.h; sourceTree = ""; }; - A9EE090628FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand_to_dominating_id_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A9EE090728FDD2550013FF99 /* reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_opportunity_finder.h; sourceTree = ""; }; - A9EE090828FDD2550013FF99 /* change_operand_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = change_operand_reduction_opportunity.h; sourceTree = ""; }; - A9EE090928FDD2550013FF99 /* remove_block_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_block_reduction_opportunity_finder.h; sourceTree = ""; }; - A9EE090A28FDD2550013FF99 /* remove_block_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_block_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A9EE090B28FDD2550013FF99 /* reduction_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_util.h; sourceTree = ""; }; - A9EE090C28FDD2550013FF99 /* merge_blocks_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_blocks_reduction_opportunity.h; sourceTree = ""; }; - A9EE090D28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp; sourceTree = ""; }; - A9EE090E28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_loop_to_selection_reduction_opportunity.cpp; sourceTree = ""; }; - A9EE090F28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_construct_to_block_reduction_opportunity.cpp; sourceTree = ""; }; - A9EE091028FDD2550013FF99 /* remove_block_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_block_reduction_opportunity.cpp; sourceTree = ""; }; - A9EE091128FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_unused_struct_member_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A9EE091228FDD2550013FF99 /* reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_opportunity_finder.cpp; sourceTree = ""; }; - A9EE091328FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_construct_to_block_reduction_opportunity_finder.cpp; sourceTree = ""; }; - A9EE091428FDD2550013FF99 /* reduction_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_pass.h; sourceTree = ""; }; - A9EE091528FDD2550013FF99 /* latest_version_opencl_std_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = latest_version_opencl_std_header.h; sourceTree = ""; }; - A9EE091628FDD2550013FF99 /* spirv_optimizer_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_optimizer_options.cpp; sourceTree = ""; }; - A9EE091728FDD2550013FF99 /* cfa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfa.h; sourceTree = ""; }; - A9EE091828FDD2550013FF99 /* pch_source.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pch_source.h; sourceTree = ""; }; - A9EE091928FDD2550013FF99 /* enum_string_mapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enum_string_mapping.h; sourceTree = ""; }; - A9EE091A28FDD2550013FF99 /* spirv_fuzzer_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_fuzzer_options.cpp; sourceTree = ""; }; - A9EE091B28FDD2550013FF99 /* spirv_reducer_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_reducer_options.h; sourceTree = ""; }; - A9EE091C28FDD2550013FF99 /* spirv_validator_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_validator_options.cpp; sourceTree = ""; }; - A9EE092328FDD2550013FF99 /* print.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = print.cpp; sourceTree = ""; }; - A9EE092428FDD2550013FF99 /* spirv_definition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_definition.h; sourceTree = ""; }; - A9EE092528FDD2550013FF99 /* operand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand.h; sourceTree = ""; }; - A9EE092628FDD2550013FF99 /* spirv_endian.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_endian.cpp; sourceTree = ""; }; - A9EE092728FDD2550013FF99 /* macro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macro.h; sourceTree = ""; }; - A9EE092828FDD2550013FF99 /* spirv_constant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_constant.h; sourceTree = ""; }; - A9EE092928FDD2550013FF99 /* binary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = binary.cpp; sourceTree = ""; }; - A9EE092B28FDD2550013FF99 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - A9EE092C28FDD2550013FF99 /* diff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = diff.h; sourceTree = ""; }; - A9EE092D28FDD2550013FF99 /* lcs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lcs.h; sourceTree = ""; }; - A9EE092E28FDD2550013FF99 /* diff.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = diff.cpp; sourceTree = ""; }; - A9EE092F28FDD2550013FF99 /* spirv_validator_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_validator_options.h; sourceTree = ""; }; - A9EE093028FDD2550013FF99 /* enum_string_mapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = enum_string_mapping.cpp; sourceTree = ""; }; - A9EE093128FDD2550013FF99 /* text_handler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = text_handler.h; sourceTree = ""; }; - A9EE093228FDD2550013FF99 /* parsed_operand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parsed_operand.h; sourceTree = ""; }; - A9EE093328FDD2550013FF99 /* name_mapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = name_mapper.h; sourceTree = ""; }; - A9EE093428FDD2550013FF99 /* spirv_reducer_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_reducer_options.cpp; sourceTree = ""; }; - A9EE093528FDD2550013FF99 /* parsed_operand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parsed_operand.cpp; sourceTree = ""; }; - A9EE093628FDD2550013FF99 /* diagnostic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = diagnostic.h; sourceTree = ""; }; - A9EE093728FDD2550013FF99 /* spirv_endian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_endian.h; sourceTree = ""; }; - A9EE093828FDD2550013FF99 /* name_mapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = name_mapper.cpp; sourceTree = ""; }; - A9EE093A28FDD2550013FF99 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - A9EE093B28FDD2550013FF99 /* linker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = linker.cpp; sourceTree = ""; }; - A9EE093C28FDD2550013FF99 /* common_debug_info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common_debug_info.h; sourceTree = ""; }; - A9EE093D28FDD2550013FF99 /* software_version.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = software_version.cpp; sourceTree = ""; }; - A9EE093E28FDD2550013FF99 /* opcode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = opcode.cpp; sourceTree = ""; }; - A9EE093F28FDD2550013FF99 /* print.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = print.h; sourceTree = ""; }; - A9EE094028FDD2550013FF99 /* ext_inst.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ext_inst.cpp; sourceTree = ""; }; - A9EE094128FDD2550013FF99 /* disassemble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = disassemble.h; sourceTree = ""; }; - A9EE094328FDD2550013FF99 /* optimizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = optimizer.cpp; sourceTree = ""; }; - A9EE094428FDD2550013FF99 /* if_conversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = if_conversion.h; sourceTree = ""; }; - A9EE094528FDD2550013FF99 /* register_pressure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = register_pressure.cpp; sourceTree = ""; }; - A9EE094628FDD2550013FF99 /* loop_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_utils.cpp; sourceTree = ""; }; - A9EE094728FDD2550013FF99 /* strip_nonsemantic_info_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strip_nonsemantic_info_pass.h; sourceTree = ""; }; - A9EE094828FDD2550013FF99 /* spread_volatile_semantics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spread_volatile_semantics.cpp; sourceTree = ""; }; - A9EE094928FDD2550013FF99 /* merge_return_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_return_pass.h; sourceTree = ""; }; - A9EE094A28FDD2550013FF99 /* inline_opaque_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inline_opaque_pass.h; sourceTree = ""; }; - A9EE094B28FDD2550013FF99 /* loop_fusion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_fusion.h; sourceTree = ""; }; - A9EE094C28FDD2550013FF99 /* combine_access_chains.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = combine_access_chains.cpp; sourceTree = ""; }; - A9EE094D28FDD2550013FF99 /* build_module.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = build_module.cpp; sourceTree = ""; }; - A9EE094E28FDD2550013FF99 /* composite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = composite.h; sourceTree = ""; }; - A9EE094F28FDD2550013FF99 /* compact_ids_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compact_ids_pass.h; sourceTree = ""; }; - A9EE095028FDD2550013FF99 /* register_pressure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = register_pressure.h; sourceTree = ""; }; - A9EE095128FDD2550013FF99 /* tree_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tree_iterator.h; sourceTree = ""; }; - A9EE095228FDD2550013FF99 /* interface_var_sroa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = interface_var_sroa.h; sourceTree = ""; }; - A9EE095328FDD2550013FF99 /* graphics_robust_access_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = graphics_robust_access_pass.h; sourceTree = ""; }; - A9EE095428FDD2550013FF99 /* local_single_store_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_single_store_elim_pass.h; sourceTree = ""; }; - A9EE095528FDD2550013FF99 /* reduce_load_size.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduce_load_size.h; sourceTree = ""; }; - A9EE095628FDD2550013FF99 /* code_sink.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = code_sink.cpp; sourceTree = ""; }; - A9EE095728FDD2550013FF99 /* types.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = types.cpp; sourceTree = ""; }; - A9EE095828FDD2550013FF99 /* scalar_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scalar_analysis.h; sourceTree = ""; }; - A9EE095928FDD2550013FF99 /* strip_debug_info_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strip_debug_info_pass.h; sourceTree = ""; }; - A9EE095A28FDD2550013FF99 /* replace_desc_array_access_using_var_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = replace_desc_array_access_using_var_index.h; sourceTree = ""; }; - A9EE095B28FDD2550013FF99 /* cfg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cfg.cpp; sourceTree = ""; }; - A9EE095C28FDD2550013FF99 /* decoration_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoration_manager.cpp; sourceTree = ""; }; - A9EE095D28FDD2550013FF99 /* local_single_block_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_single_block_elim_pass.cpp; sourceTree = ""; }; - A9EE095E28FDD2550013FF99 /* freeze_spec_constant_value_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = freeze_spec_constant_value_pass.cpp; sourceTree = ""; }; - A9EE095F28FDD2550013FF99 /* replace_invalid_opc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = replace_invalid_opc.h; sourceTree = ""; }; - A9EE096028FDD2550013FF99 /* local_access_chain_convert_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_access_chain_convert_pass.h; sourceTree = ""; }; - A9EE096128FDD2550013FF99 /* inst_bindless_check_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inst_bindless_check_pass.cpp; sourceTree = ""; }; - A9EE096228FDD2550013FF99 /* local_redundancy_elimination.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_redundancy_elimination.cpp; sourceTree = ""; }; - A9EE096328FDD2550013FF99 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - A9EE096428FDD2550013FF99 /* instrument_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instrument_pass.cpp; sourceTree = ""; }; - A9EE096528FDD2550013FF99 /* propagator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = propagator.h; sourceTree = ""; }; - A9EE096628FDD2550013FF99 /* instruction_list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction_list.h; sourceTree = ""; }; - A9EE096728FDD2550013FF99 /* feature_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = feature_manager.cpp; sourceTree = ""; }; - A9EE096828FDD2550013FF99 /* pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pass.cpp; sourceTree = ""; }; - A9EE096928FDD2550013FF99 /* loop_fission.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_fission.cpp; sourceTree = ""; }; - A9EE096A28FDD2550013FF99 /* dominator_tree.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dominator_tree.cpp; sourceTree = ""; }; - A9EE096B28FDD2550013FF99 /* amd_ext_to_khr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = amd_ext_to_khr.h; sourceTree = ""; }; - A9EE096C28FDD2550013FF99 /* merge_return_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_return_pass.cpp; sourceTree = ""; }; - A9EE096D28FDD2550013FF99 /* ir_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ir_context.h; sourceTree = ""; }; - A9EE096E28FDD2550013FF99 /* eliminate_dead_constant_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_constant_pass.cpp; sourceTree = ""; }; - A9EE096F28FDD2550013FF99 /* control_dependence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = control_dependence.h; sourceTree = ""; }; - A9EE097028FDD2550013FF99 /* cfg_cleanup_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cfg_cleanup_pass.cpp; sourceTree = ""; }; - A9EE097128FDD2550013FF99 /* wrap_opkill.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wrap_opkill.cpp; sourceTree = ""; }; - A9EE097228FDD2550013FF99 /* const_folding_rules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = const_folding_rules.cpp; sourceTree = ""; }; - A9EE097328FDD2550013FF99 /* loop_unroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_unroller.h; sourceTree = ""; }; - A9EE097428FDD2550013FF99 /* strip_debug_info_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strip_debug_info_pass.cpp; sourceTree = ""; }; - A9EE097528FDD2550013FF99 /* ssa_rewrite_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ssa_rewrite_pass.cpp; sourceTree = ""; }; - A9EE097628FDD2550013FF99 /* loop_dependence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_dependence.cpp; sourceTree = ""; }; - A9EE097728FDD2550013FF99 /* unify_const_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unify_const_pass.h; sourceTree = ""; }; - A9EE097828FDD2550013FF99 /* ir_loader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ir_loader.h; sourceTree = ""; }; - A9EE097928FDD2550013FF99 /* inst_debug_printf_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inst_debug_printf_pass.cpp; sourceTree = ""; }; - A9EE097A28FDD2550013FF99 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = ""; }; - A9EE097B28FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fold_spec_constant_op_and_composite_pass.h; sourceTree = ""; }; - A9EE097C28FDD2550013FF99 /* mem_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mem_pass.cpp; sourceTree = ""; }; - A9EE097D28FDD2550013FF99 /* basic_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = basic_block.h; sourceTree = ""; }; - A9EE097E28FDD2550013FF99 /* remove_duplicates_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_duplicates_pass.cpp; sourceTree = ""; }; - A9EE097F28FDD2550013FF99 /* dead_variable_elimination.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dead_variable_elimination.cpp; sourceTree = ""; }; - A9EE098028FDD2550013FF99 /* block_merge_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_merge_pass.h; sourceTree = ""; }; - A9EE098128FDD2550013FF99 /* module.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = module.cpp; sourceTree = ""; }; - A9EE098228FDD2550013FF99 /* debug_info_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = debug_info_manager.h; sourceTree = ""; }; - A9EE098328FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fold_spec_constant_op_and_composite_pass.cpp; sourceTree = ""; }; - A9EE098428FDD2550013FF99 /* loop_unswitch_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_unswitch_pass.cpp; sourceTree = ""; }; - A9EE098528FDD2550013FF99 /* unify_const_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unify_const_pass.cpp; sourceTree = ""; }; - A9EE098628FDD2550013FF99 /* type_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = type_manager.cpp; sourceTree = ""; }; - A9EE098728FDD2550013FF99 /* private_to_local_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = private_to_local_pass.h; sourceTree = ""; }; - A9EE098828FDD2550013FF99 /* convert_to_half_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convert_to_half_pass.h; sourceTree = ""; }; - A9EE098928FDD2550013FF99 /* remove_dontinline_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_dontinline_pass.h; sourceTree = ""; }; - A9EE098A28FDD2550013FF99 /* relax_float_ops_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = relax_float_ops_pass.h; sourceTree = ""; }; - A9EE098B28FDD2550013FF99 /* inline_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inline_pass.cpp; sourceTree = ""; }; - A9EE098C28FDD2550013FF99 /* def_use_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = def_use_manager.h; sourceTree = ""; }; - A9EE098D28FDD2550013FF99 /* ir_loader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ir_loader.cpp; sourceTree = ""; }; - A9EE098E28FDD2550013FF99 /* convert_to_sampled_image_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convert_to_sampled_image_pass.h; sourceTree = ""; }; - A9EE098F28FDD2550013FF99 /* cfg_cleanup_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfg_cleanup_pass.h; sourceTree = ""; }; - A9EE099028FDD2550013FF99 /* licm_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = licm_pass.cpp; sourceTree = ""; }; - A9EE099128FDD2550013FF99 /* eliminate_dead_functions_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_functions_pass.cpp; sourceTree = ""; }; - A9EE099228FDD2550013FF99 /* local_redundancy_elimination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_redundancy_elimination.h; sourceTree = ""; }; - A9EE099328FDD2550013FF99 /* loop_peeling.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_peeling.h; sourceTree = ""; }; - A9EE099428FDD2550013FF99 /* vector_dce.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vector_dce.cpp; sourceTree = ""; }; - A9EE099528FDD2550013FF99 /* block_merge_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_merge_util.h; sourceTree = ""; }; - A9EE099628FDD2550013FF99 /* loop_unroller.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_unroller.cpp; sourceTree = ""; }; - A9EE099728FDD2550013FF99 /* desc_sroa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = desc_sroa.h; sourceTree = ""; }; - A9EE099828FDD2550013FF99 /* constants.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = constants.cpp; sourceTree = ""; }; - A9EE099928FDD2550013FF99 /* loop_fusion_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_fusion_pass.h; sourceTree = ""; }; - A9EE099A28FDD2550013FF99 /* struct_cfg_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = struct_cfg_analysis.h; sourceTree = ""; }; - A9EE099B28FDD2550013FF99 /* desc_sroa_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = desc_sroa_util.cpp; sourceTree = ""; }; - A9EE099C28FDD2550013FF99 /* inst_buff_addr_check_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inst_buff_addr_check_pass.cpp; sourceTree = ""; }; - A9EE099D28FDD2550013FF99 /* def_use_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = def_use_manager.cpp; sourceTree = ""; }; - A9EE099E28FDD2550013FF99 /* wrap_opkill.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wrap_opkill.h; sourceTree = ""; }; - A9EE099F28FDD2550013FF99 /* empty_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = empty_pass.h; sourceTree = ""; }; - A9EE09A028FDD2550013FF99 /* eliminate_dead_input_components_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_input_components_pass.h; sourceTree = ""; }; - A9EE09A128FDD2550013FF99 /* decoration_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoration_manager.h; sourceTree = ""; }; - A9EE09A228FDD2550013FF99 /* ccp_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ccp_pass.cpp; sourceTree = ""; }; - A9EE09A328FDD2550013FF99 /* local_single_block_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_single_block_elim_pass.h; sourceTree = ""; }; - A9EE09A428FDD2550013FF99 /* interp_fixup_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = interp_fixup_pass.h; sourceTree = ""; }; - A9EE09A528FDD2550013FF99 /* pch_source_opt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pch_source_opt.cpp; sourceTree = ""; }; - A9EE09A628FDD2550013FF99 /* inst_buff_addr_check_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inst_buff_addr_check_pass.h; sourceTree = ""; }; - A9EE09A728FDD2550013FF99 /* strength_reduction_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strength_reduction_pass.h; sourceTree = ""; }; - A9EE09A828FDD2550013FF99 /* aggressive_dead_code_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aggressive_dead_code_elim_pass.cpp; sourceTree = ""; }; - A9EE09A928FDD2550013FF99 /* eliminate_dead_functions_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_functions_util.cpp; sourceTree = ""; }; - A9EE09AA28FDD2550013FF99 /* inst_debug_printf_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inst_debug_printf_pass.h; sourceTree = ""; }; - A9EE09AB28FDD2550013FF99 /* simplification_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simplification_pass.cpp; sourceTree = ""; }; - A9EE09AC28FDD2550013FF99 /* dead_branch_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dead_branch_elim_pass.cpp; sourceTree = ""; }; - A9EE09AD28FDD2550013FF99 /* flatten_decoration_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flatten_decoration_pass.cpp; sourceTree = ""; }; - A9EE09AE28FDD2550013FF99 /* dead_insert_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dead_insert_elim_pass.h; sourceTree = ""; }; - A9EE09AF28FDD2550013FF99 /* folding_rules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = folding_rules.cpp; sourceTree = ""; }; - A9EE09B028FDD2550013FF99 /* freeze_spec_constant_value_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = freeze_spec_constant_value_pass.h; sourceTree = ""; }; - A9EE09B128FDD2550013FF99 /* ir_context.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ir_context.cpp; sourceTree = ""; }; - A9EE09B228FDD2550013FF99 /* instrument_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instrument_pass.h; sourceTree = ""; }; - A9EE09B328FDD2550013FF99 /* mem_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mem_pass.h; sourceTree = ""; }; - A9EE09B428FDD2550013FF99 /* loop_descriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_descriptor.cpp; sourceTree = ""; }; - A9EE09B528FDD2550013FF99 /* eliminate_dead_members_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_members_pass.h; sourceTree = ""; }; - A9EE09B628FDD2550013FF99 /* function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = function.cpp; sourceTree = ""; }; - A9EE09B728FDD2550013FF99 /* instruction_list.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instruction_list.cpp; sourceTree = ""; }; - A9EE09B828FDD2550013FF99 /* control_dependence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = control_dependence.cpp; sourceTree = ""; }; - A9EE09B928FDD2550013FF99 /* composite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = composite.cpp; sourceTree = ""; }; - A9EE09BA28FDD2550013FF99 /* convert_to_half_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = convert_to_half_pass.cpp; sourceTree = ""; }; - A9EE09BB28FDD2550013FF99 /* inline_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inline_pass.h; sourceTree = ""; }; - A9EE09BC28FDD2550013FF99 /* loop_dependence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_dependence.h; sourceTree = ""; }; - A9EE09BD28FDD2550013FF99 /* value_number_table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = value_number_table.h; sourceTree = ""; }; - A9EE09BE28FDD2550013FF99 /* strip_nonsemantic_info_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strip_nonsemantic_info_pass.cpp; sourceTree = ""; }; - A9EE09BF28FDD2550013FF99 /* flatten_decoration_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flatten_decoration_pass.h; sourceTree = ""; }; - A9EE09C028FDD2550013FF99 /* if_conversion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = if_conversion.cpp; sourceTree = ""; }; - A9EE09C128FDD2550013FF99 /* fix_func_call_arguments.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fix_func_call_arguments.cpp; sourceTree = ""; }; - A9EE09C228FDD2550013FF99 /* debug_info_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = debug_info_manager.cpp; sourceTree = ""; }; - A9EE09C328FDD2550013FF99 /* inline_exhaustive_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inline_exhaustive_pass.h; sourceTree = ""; }; - A9EE09C428FDD2550013FF99 /* constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = constants.h; sourceTree = ""; }; - A9EE09C528FDD2550013FF99 /* eliminate_dead_members_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_members_pass.cpp; sourceTree = ""; }; - A9EE09C628FDD2550013FF99 /* strength_reduction_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strength_reduction_pass.cpp; sourceTree = ""; }; - A9EE09C728FDD2550013FF99 /* desc_sroa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = desc_sroa.cpp; sourceTree = ""; }; - A9EE09C828FDD2550013FF99 /* block_merge_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_merge_util.cpp; sourceTree = ""; }; - A9EE09C928FDD2550013FF99 /* upgrade_memory_model.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = upgrade_memory_model.h; sourceTree = ""; }; - A9EE09CA28FDD2550013FF99 /* copy_prop_arrays.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = copy_prop_arrays.cpp; sourceTree = ""; }; - A9EE09CB28FDD2550013FF99 /* pass_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pass_manager.cpp; sourceTree = ""; }; - A9EE09CC28FDD2550013FF99 /* inline_exhaustive_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inline_exhaustive_pass.cpp; sourceTree = ""; }; - A9EE09CD28FDD2550013FF99 /* loop_fission.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_fission.h; sourceTree = ""; }; - A9EE09CE28FDD2550013FF99 /* workaround1209.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = workaround1209.h; sourceTree = ""; }; - A9EE09CF28FDD2550013FF99 /* loop_fusion_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_fusion_pass.cpp; sourceTree = ""; }; - A9EE09D028FDD2550013FF99 /* log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log.h; sourceTree = ""; }; - A9EE09D128FDD2550013FF99 /* copy_prop_arrays.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = copy_prop_arrays.h; sourceTree = ""; }; - A9EE09D228FDD2550013FF99 /* eliminate_dead_constant_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_constant_pass.h; sourceTree = ""; }; - A9EE09D328FDD2550013FF99 /* dead_insert_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dead_insert_elim_pass.cpp; sourceTree = ""; }; - A9EE09D428FDD2550013FF99 /* ssa_rewrite_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssa_rewrite_pass.h; sourceTree = ""; }; - A9EE09D528FDD2550013FF99 /* scalar_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scalar_analysis.cpp; sourceTree = ""; }; - A9EE09D628FDD2550013FF99 /* dead_variable_elimination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dead_variable_elimination.h; sourceTree = ""; }; - A9EE09D728FDD2550013FF99 /* block_merge_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_merge_pass.cpp; sourceTree = ""; }; - A9EE09D828FDD2550013FF99 /* dominator_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dominator_analysis.h; sourceTree = ""; }; - A9EE09D928FDD2550013FF99 /* convert_to_sampled_image_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = convert_to_sampled_image_pass.cpp; sourceTree = ""; }; - A9EE09DA28FDD2550013FF99 /* pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pass.h; sourceTree = ""; }; - A9EE09DB28FDD2550013FF99 /* folding_rules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = folding_rules.h; sourceTree = ""; }; - A9EE09DC28FDD2550013FF99 /* eliminate_dead_functions_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_functions_pass.h; sourceTree = ""; }; - A9EE09DD28FDD2550013FF99 /* eliminate_dead_functions_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_functions_util.h; sourceTree = ""; }; - A9EE09DE28FDD2550013FF99 /* fold.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fold.h; sourceTree = ""; }; - A9EE09DF28FDD2550013FF99 /* local_single_store_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_single_store_elim_pass.cpp; sourceTree = ""; }; - A9EE09E028FDD2550013FF99 /* dead_branch_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dead_branch_elim_pass.h; sourceTree = ""; }; - A9EE09E128FDD2550013FF99 /* private_to_local_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = private_to_local_pass.cpp; sourceTree = ""; }; - A9EE09E228FDD2550013FF99 /* scalar_analysis_nodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scalar_analysis_nodes.h; sourceTree = ""; }; - A9EE09E328FDD2550013FF99 /* propagator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = propagator.cpp; sourceTree = ""; }; - A9EE09E428FDD2550013FF99 /* fix_storage_class.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fix_storage_class.h; sourceTree = ""; }; - A9EE09E528FDD2550013FF99 /* loop_dependence_helpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_dependence_helpers.cpp; sourceTree = ""; }; - A9EE09E628FDD2550013FF99 /* set_spec_constant_default_value_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = set_spec_constant_default_value_pass.cpp; sourceTree = ""; }; - A9EE09E728FDD2550013FF99 /* passes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = passes.h; sourceTree = ""; }; - A9EE09E828FDD2550013FF99 /* fold.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fold.cpp; sourceTree = ""; }; - A9EE09E928FDD2550013FF99 /* amd_ext_to_khr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = amd_ext_to_khr.cpp; sourceTree = ""; }; - A9EE09EA28FDD2550013FF99 /* scalar_replacement_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scalar_replacement_pass.cpp; sourceTree = ""; }; - A9EE09EB28FDD2550013FF99 /* simplification_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simplification_pass.h; sourceTree = ""; }; - A9EE09EC28FDD2550013FF99 /* interface_var_sroa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = interface_var_sroa.cpp; sourceTree = ""; }; - A9EE09ED28FDD2550013FF99 /* remove_duplicates_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_duplicates_pass.h; sourceTree = ""; }; - A9EE09EE28FDD2550013FF99 /* desc_sroa_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = desc_sroa_util.h; sourceTree = ""; }; - A9EE09EF28FDD2550013FF99 /* redundancy_elimination.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = redundancy_elimination.cpp; sourceTree = ""; }; - A9EE09F028FDD2550013FF99 /* reflect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reflect.h; sourceTree = ""; }; - A9EE09F128FDD2550013FF99 /* workaround1209.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = workaround1209.cpp; sourceTree = ""; }; - A9EE09F228FDD2550013FF99 /* null_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = null_pass.h; sourceTree = ""; }; - A9EE09F328FDD2550013FF99 /* relax_float_ops_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = relax_float_ops_pass.cpp; sourceTree = ""; }; - A9EE09F428FDD2550013FF99 /* const_folding_rules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = const_folding_rules.h; sourceTree = ""; }; - A9EE09F528FDD2550013FF99 /* scalar_replacement_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scalar_replacement_pass.h; sourceTree = ""; }; - A9EE09F628FDD2550013FF99 /* instruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instruction.cpp; sourceTree = ""; }; - A9EE09F728FDD2550013FF99 /* pch_source_opt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pch_source_opt.h; sourceTree = ""; }; - A9EE09F828FDD2550013FF99 /* reduce_load_size.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduce_load_size.cpp; sourceTree = ""; }; - A9EE09F928FDD2550013FF99 /* redundancy_elimination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = redundancy_elimination.h; sourceTree = ""; }; - A9EE09FA28FDD2550013FF99 /* fix_storage_class.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fix_storage_class.cpp; sourceTree = ""; }; - A9EE09FB28FDD2550013FF99 /* value_number_table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = value_number_table.cpp; sourceTree = ""; }; - A9EE09FC28FDD2550013FF99 /* remove_unused_interface_variables_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_unused_interface_variables_pass.cpp; sourceTree = ""; }; - A9EE09FD28FDD2550013FF99 /* inline_opaque_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inline_opaque_pass.cpp; sourceTree = ""; }; - A9EE09FE28FDD2550013FF99 /* replace_invalid_opc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = replace_invalid_opc.cpp; sourceTree = ""; }; - A9EE09FF28FDD2550013FF99 /* loop_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_utils.h; sourceTree = ""; }; - A9EE0A0028FDD2550013FF99 /* module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = module.h; sourceTree = ""; }; - A9EE0A0128FDD2550013FF99 /* dominator_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dominator_analysis.cpp; sourceTree = ""; }; - A9EE0A0228FDD2550013FF99 /* ir_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ir_builder.h; sourceTree = ""; }; - A9EE0A0328FDD2550013FF99 /* replace_desc_array_access_using_var_index.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = replace_desc_array_access_using_var_index.cpp; sourceTree = ""; }; - A9EE0A0428FDD2550013FF99 /* loop_unswitch_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_unswitch_pass.h; sourceTree = ""; }; - A9EE0A0528FDD2550013FF99 /* cfg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfg.h; sourceTree = ""; }; - A9EE0A0628FDD2550013FF99 /* code_sink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = code_sink.h; sourceTree = ""; }; - A9EE0A0728FDD2550013FF99 /* dataflow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dataflow.cpp; sourceTree = ""; }; - A9EE0A0828FDD2550013FF99 /* loop_descriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_descriptor.h; sourceTree = ""; }; - A9EE0A0928FDD2550013FF99 /* instruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction.h; sourceTree = ""; }; - A9EE0A0A28FDD2550013FF99 /* aggressive_dead_code_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aggressive_dead_code_elim_pass.h; sourceTree = ""; }; - A9EE0A0B28FDD2550013FF99 /* struct_cfg_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = struct_cfg_analysis.cpp; sourceTree = ""; }; - A9EE0A0C28FDD2550013FF99 /* remove_dontinline_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_dontinline_pass.cpp; sourceTree = ""; }; - A9EE0A0D28FDD2550013FF99 /* vector_dce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vector_dce.h; sourceTree = ""; }; - A9EE0A0E28FDD2550013FF99 /* combine_access_chains.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = combine_access_chains.h; sourceTree = ""; }; - A9EE0A0F28FDD2550013FF99 /* pass_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pass_manager.h; sourceTree = ""; }; - A9EE0A1028FDD2550013FF99 /* spread_volatile_semantics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spread_volatile_semantics.h; sourceTree = ""; }; - A9EE0A1128FDD2550013FF99 /* local_access_chain_convert_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_access_chain_convert_pass.cpp; sourceTree = ""; }; - A9EE0A1228FDD2550013FF99 /* interp_fixup_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = interp_fixup_pass.cpp; sourceTree = ""; }; - A9EE0A1328FDD2550013FF99 /* basic_block.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = basic_block.cpp; sourceTree = ""; }; - A9EE0A1428FDD2550013FF99 /* iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iterator.h; sourceTree = ""; }; - A9EE0A1528FDD2550013FF99 /* licm_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = licm_pass.h; sourceTree = ""; }; - A9EE0A1628FDD2550013FF99 /* build_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = build_module.h; sourceTree = ""; }; - A9EE0A1728FDD2550013FF99 /* ccp_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccp_pass.h; sourceTree = ""; }; - A9EE0A1828FDD2550013FF99 /* graphics_robust_access_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = graphics_robust_access_pass.cpp; sourceTree = ""; }; - A9EE0A1928FDD2550013FF99 /* function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = function.h; sourceTree = ""; }; - A9EE0A1A28FDD2550013FF99 /* fix_func_call_arguments.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fix_func_call_arguments.h; sourceTree = ""; }; - A9EE0A1B28FDD2550013FF99 /* loop_fusion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_fusion.cpp; sourceTree = ""; }; - A9EE0A1C28FDD2550013FF99 /* eliminate_dead_input_components_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_input_components_pass.cpp; sourceTree = ""; }; - A9EE0A1D28FDD2550013FF99 /* upgrade_memory_model.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = upgrade_memory_model.cpp; sourceTree = ""; }; - A9EE0A1E28FDD2550013FF99 /* feature_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = feature_manager.h; sourceTree = ""; }; - A9EE0A1F28FDD2550013FF99 /* dataflow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dataflow.h; sourceTree = ""; }; - A9EE0A2028FDD2550013FF99 /* inst_bindless_check_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inst_bindless_check_pass.h; sourceTree = ""; }; - A9EE0A2128FDD2550013FF99 /* scalar_analysis_simplification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scalar_analysis_simplification.cpp; sourceTree = ""; }; - A9EE0A2228FDD2550013FF99 /* set_spec_constant_default_value_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = set_spec_constant_default_value_pass.h; sourceTree = ""; }; - A9EE0A2328FDD2550013FF99 /* dominator_tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dominator_tree.h; sourceTree = ""; }; - A9EE0A2428FDD2550013FF99 /* remove_unused_interface_variables_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_unused_interface_variables_pass.h; sourceTree = ""; }; - A9EE0A2528FDD2550013FF99 /* type_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = type_manager.h; sourceTree = ""; }; - A9EE0A2628FDD2550013FF99 /* compact_ids_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compact_ids_pass.cpp; sourceTree = ""; }; - A9EE0A2728FDD2550013FF99 /* loop_peeling.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_peeling.cpp; sourceTree = ""; }; - A9EE0A2828FDD2550013FF99 /* table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table.h; sourceTree = ""; }; - A9EE0BB528FDD2560013FF99 /* ext_inst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ext_inst.h; sourceTree = ""; }; - A9EE0BB628FDD2560013FF99 /* diagnostic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = diagnostic.cpp; sourceTree = ""; }; - A9EE0BB728FDD2560013FF99 /* latest_version_spirv_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = latest_version_spirv_header.h; sourceTree = ""; }; - A9EE0BB828FDD2560013FF99 /* libspirv.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = libspirv.cpp; sourceTree = ""; }; - A9EE0BB928FDD2560013FF99 /* instruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction.h; sourceTree = ""; }; - A9EE0BBA28FDD2560013FF99 /* spirv_optimizer_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_optimizer_options.h; sourceTree = ""; }; - A9EE0BBB28FDD2560013FF99 /* opcode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opcode.h; sourceTree = ""; }; - A9EE0BBC28FDD2560013FF99 /* operand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand.cpp; sourceTree = ""; }; - A9EE0BBD28FDD2560013FF99 /* latest_version_glsl_std_450_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = latest_version_glsl_std_450_header.h; sourceTree = ""; }; - A9EE0BBE28FDD2560013FF99 /* extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = extensions.h; sourceTree = ""; }; - A9EE0BBF28FDD2560013FF99 /* disassemble.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = disassemble.cpp; sourceTree = ""; }; - A9EE0BC028FDD2560013FF99 /* binary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = binary.h; sourceTree = ""; }; - A9EE0BC128FDD2560013FF99 /* text_handler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = text_handler.cpp; sourceTree = ""; }; - A9EE0BC328FDD2560013FF99 /* validate_annotation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_annotation.cpp; sourceTree = ""; }; - A9EE0BC428FDD2560013FF99 /* validate_misc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_misc.cpp; sourceTree = ""; }; - A9EE0BC528FDD2560013FF99 /* validate_cfg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_cfg.cpp; sourceTree = ""; }; - A9EE0BC628FDD2560013FF99 /* validate_capability.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_capability.cpp; sourceTree = ""; }; - A9EE0BC728FDD2560013FF99 /* construct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = construct.h; sourceTree = ""; }; - A9EE0BC828FDD2560013FF99 /* validate_barriers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_barriers.cpp; sourceTree = ""; }; - A9EE0BC928FDD2560013FF99 /* validate_non_uniform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_non_uniform.cpp; sourceTree = ""; }; - A9EE0BCA28FDD2560013FF99 /* validate_ray_query.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_ray_query.cpp; sourceTree = ""; }; - A9EE0BCB28FDD2560013FF99 /* validate_ray_tracing.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_ray_tracing.cpp; sourceTree = ""; }; - A9EE0BCC28FDD2560013FF99 /* validate_scopes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_scopes.cpp; sourceTree = ""; }; - A9EE0BCD28FDD2560013FF99 /* validate_atomics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_atomics.cpp; sourceTree = ""; }; - A9EE0BCE28FDD2560013FF99 /* basic_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = basic_block.h; sourceTree = ""; }; - A9EE0BCF28FDD2560013FF99 /* validate_instruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_instruction.cpp; sourceTree = ""; }; - A9EE0BD028FDD2560013FF99 /* validate_decorations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_decorations.cpp; sourceTree = ""; }; - A9EE0BD128FDD2560013FF99 /* validate_debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_debug.cpp; sourceTree = ""; }; - A9EE0BD228FDD2560013FF99 /* validate_builtins.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_builtins.cpp; sourceTree = ""; }; - A9EE0BD328FDD2560013FF99 /* validate_interfaces.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_interfaces.cpp; sourceTree = ""; }; - A9EE0BD428FDD2560013FF99 /* validate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate.cpp; sourceTree = ""; }; - A9EE0BD528FDD2560013FF99 /* validation_state.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validation_state.h; sourceTree = ""; }; - A9EE0BD628FDD2560013FF99 /* validate_constants.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_constants.cpp; sourceTree = ""; }; - A9EE0BD728FDD2560013FF99 /* validate_bitwise.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_bitwise.cpp; sourceTree = ""; }; - A9EE0BD828FDD2560013FF99 /* validate_extensions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_extensions.cpp; sourceTree = ""; }; - A9EE0BD928FDD2560013FF99 /* construct.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = construct.cpp; sourceTree = ""; }; - A9EE0BDA28FDD2560013FF99 /* function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = function.cpp; sourceTree = ""; }; - A9EE0BDB28FDD2560013FF99 /* validate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validate.h; sourceTree = ""; }; - A9EE0BDC28FDD2560013FF99 /* validate_adjacency.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_adjacency.cpp; sourceTree = ""; }; - A9EE0BDD28FDD2560013FF99 /* validate_conversion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_conversion.cpp; sourceTree = ""; }; - A9EE0BDE28FDD2560013FF99 /* validate_small_type_uses.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_small_type_uses.cpp; sourceTree = ""; }; - A9EE0BDF28FDD2560013FF99 /* validate_scopes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validate_scopes.h; sourceTree = ""; }; - A9EE0BE028FDD2560013FF99 /* validate_id.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_id.cpp; sourceTree = ""; }; - A9EE0BE128FDD2560013FF99 /* validate_memory_semantics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validate_memory_semantics.h; sourceTree = ""; }; - A9EE0BE228FDD2560013FF99 /* validate_arithmetics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_arithmetics.cpp; sourceTree = ""; }; - A9EE0BE328FDD2560013FF99 /* validate_mode_setting.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_mode_setting.cpp; sourceTree = ""; }; - A9EE0BE428FDD2560013FF99 /* validate_memory_semantics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_memory_semantics.cpp; sourceTree = ""; }; - A9EE0BE528FDD2560013FF99 /* validate_logicals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_logicals.cpp; sourceTree = ""; }; - A9EE0BE628FDD2560013FF99 /* validate_derivatives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_derivatives.cpp; sourceTree = ""; }; - A9EE0BE728FDD2560013FF99 /* validate_memory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_memory.cpp; sourceTree = ""; }; - A9EE0BE828FDD2560013FF99 /* validate_image.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_image.cpp; sourceTree = ""; }; - A9EE0BE928FDD2560013FF99 /* validate_literals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_literals.cpp; sourceTree = ""; }; - A9EE0BEA28FDD2560013FF99 /* instruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instruction.cpp; sourceTree = ""; }; - A9EE0BEB28FDD2560013FF99 /* validate_type.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_type.cpp; sourceTree = ""; }; - A9EE0BEC28FDD2560013FF99 /* instruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction.h; sourceTree = ""; }; - A9EE0BED28FDD2560013FF99 /* validate_mesh_shading.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_mesh_shading.cpp; sourceTree = ""; }; - A9EE0BEE28FDD2560013FF99 /* validate_execution_limitations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_execution_limitations.cpp; sourceTree = ""; }; - A9EE0BEF28FDD2560013FF99 /* validate_layout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_layout.cpp; sourceTree = ""; }; - A9EE0BF028FDD2560013FF99 /* basic_block.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = basic_block.cpp; sourceTree = ""; }; - A9EE0BF128FDD2560013FF99 /* validate_function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_function.cpp; sourceTree = ""; }; - A9EE0BF228FDD2560013FF99 /* function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = function.h; sourceTree = ""; }; - A9EE0BF328FDD2560013FF99 /* validate_composites.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_composites.cpp; sourceTree = ""; }; - A9EE0BF428FDD2560013FF99 /* validation_state.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validation_state.cpp; sourceTree = ""; }; - A9EE0BF528FDD2560013FF99 /* validate_primitives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_primitives.cpp; sourceTree = ""; }; - A9EE0BF628FDD2560013FF99 /* decoration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoration.h; sourceTree = ""; }; + A9F7B00D29425A1700B30DA7 /* spirv_target_env.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_target_env.cpp; sourceTree = ""; }; + A9F7B00E29425A1700B30DA7 /* spirv_fuzzer_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_fuzzer_options.h; sourceTree = ""; }; + A9F7B00F29425A1700B30DA7 /* assembly_grammar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = assembly_grammar.h; sourceTree = ""; }; + A9F7B01129425A1700B30DA7 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + A9F7B01229425A1700B30DA7 /* lint_divergent_derivatives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lint_divergent_derivatives.cpp; sourceTree = ""; }; + A9F7B01329425A1700B30DA7 /* linter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = linter.cpp; sourceTree = ""; }; + A9F7B01429425A1700B30DA7 /* divergence_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = divergence_analysis.cpp; sourceTree = ""; }; + A9F7B01529425A1700B30DA7 /* lints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lints.h; sourceTree = ""; }; + A9F7B01629425A1700B30DA7 /* divergence_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = divergence_analysis.h; sourceTree = ""; }; + A9F7B01729425A1700B30DA7 /* enum_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enum_set.h; sourceTree = ""; }; + A9F7B01829425A1700B30DA7 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + A9F7B01929425A1700B30DA7 /* text.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = text.cpp; sourceTree = ""; }; + A9F7B01A29425A1700B30DA7 /* assembly_grammar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = assembly_grammar.cpp; sourceTree = ""; }; + A9F7B01B29425A1700B30DA7 /* text.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = text.h; sourceTree = ""; }; + A9F7B01C29425A1700B30DA7 /* extensions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = extensions.cpp; sourceTree = ""; }; + A9F7B01D29425A1700B30DA7 /* pch_source.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pch_source.cpp; sourceTree = ""; }; + A9F7B01F29425A1700B30DA7 /* parse_number.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parse_number.h; sourceTree = ""; }; + A9F7B02029425A1700B30DA7 /* ilist_node.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ilist_node.h; sourceTree = ""; }; + A9F7B02129425A1700B30DA7 /* make_unique.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = make_unique.h; sourceTree = ""; }; + A9F7B02229425A1700B30DA7 /* string_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = string_utils.h; sourceTree = ""; }; + A9F7B02329425A1700B30DA7 /* small_vector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = small_vector.h; sourceTree = ""; }; + A9F7B02429425A1700B30DA7 /* hash_combine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash_combine.h; sourceTree = ""; }; + A9F7B02529425A1700B30DA7 /* timer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = timer.cpp; sourceTree = ""; }; + A9F7B02629425A1700B30DA7 /* timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = timer.h; sourceTree = ""; }; + A9F7B02729425A1700B30DA7 /* string_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = string_utils.cpp; sourceTree = ""; }; + A9F7B02829425A1700B30DA7 /* bit_vector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit_vector.h; sourceTree = ""; }; + A9F7B02929425A1700B30DA7 /* bitutils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bitutils.h; sourceTree = ""; }; + A9F7B02A29425A1700B30DA7 /* hex_float.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hex_float.h; sourceTree = ""; }; + A9F7B02B29425A1700B30DA7 /* parse_number.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parse_number.cpp; sourceTree = ""; }; + A9F7B02C29425A1700B30DA7 /* bit_vector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bit_vector.cpp; sourceTree = ""; }; + A9F7B02D29425A1700B30DA7 /* ilist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ilist.h; sourceTree = ""; }; + A9F7B02E29425A1700B30DA7 /* spirv_target_env.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_target_env.h; sourceTree = ""; }; + A9F7B02F29425A1700B30DA7 /* table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table.cpp; sourceTree = ""; }; + A9F7B03129425A1700B30DA7 /* operand_to_undef_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand_to_undef_reduction_opportunity_finder.h; sourceTree = ""; }; + A9F7B03229425A1700B30DA7 /* remove_selection_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_selection_reduction_opportunity.cpp; sourceTree = ""; }; + A9F7B03329425A1700B30DA7 /* remove_block_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_block_reduction_opportunity.h; sourceTree = ""; }; + A9F7B03429425A1700B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand_to_dominating_id_reduction_opportunity_finder.h; sourceTree = ""; }; + A9F7B03529425A1700B30DA7 /* reduction_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_pass.cpp; sourceTree = ""; }; + A9F7B03629425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_construct_to_block_reduction_opportunity.h; sourceTree = ""; }; + A9F7B03729425A1700B30DA7 /* operand_to_const_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand_to_const_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B03829425A1700B30DA7 /* operand_to_const_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand_to_const_reduction_opportunity_finder.h; sourceTree = ""; }; + A9F7B03929425A1700B30DA7 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + A9F7B03A29425A1700B30DA7 /* reduction_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_util.cpp; sourceTree = ""; }; + A9F7B03B29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_construct_to_block_reduction_opportunity_finder.h; sourceTree = ""; }; + A9F7B03C29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_loop_to_selection_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B03D29425A1700B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simple_conditional_branch_to_branch_reduction_opportunity.h; sourceTree = ""; }; + A9F7B03E29425A1700B30DA7 /* remove_function_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_function_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B03F29425A1700B30DA7 /* remove_instruction_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_instruction_reduction_opportunity.h; sourceTree = ""; }; + A9F7B04029425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conditional_branch_to_simple_conditional_branch_reduction_opportunity.h; sourceTree = ""; }; + A9F7B04129425A1700B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simple_conditional_branch_to_branch_reduction_opportunity.cpp; sourceTree = ""; }; + A9F7B04229425A1700B30DA7 /* remove_function_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_function_reduction_opportunity.cpp; sourceTree = ""; }; + A9F7B04329425A1700B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simple_conditional_branch_to_branch_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B04429425A1700B30DA7 /* remove_selection_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_selection_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B04529425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp; sourceTree = ""; }; + A9F7B04629425A1700B30DA7 /* remove_struct_member_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_struct_member_reduction_opportunity.h; sourceTree = ""; }; + A9F7B04729425A1700B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simple_conditional_branch_to_branch_opportunity_finder.h; sourceTree = ""; }; + A9F7B04829425A1700B30DA7 /* merge_blocks_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_blocks_reduction_opportunity.cpp; sourceTree = ""; }; + A9F7B04929425A1700B30DA7 /* change_operand_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = change_operand_reduction_opportunity.cpp; sourceTree = ""; }; + A9F7B04A29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_loop_to_selection_reduction_opportunity.h; sourceTree = ""; }; + A9F7B04B29425A1700B30DA7 /* remove_function_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_function_reduction_opportunity.h; sourceTree = ""; }; + A9F7B04C29425A1700B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_unused_instruction_reduction_opportunity_finder.h; sourceTree = ""; }; + A9F7B04D29425A1700B30DA7 /* change_operand_to_undef_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = change_operand_to_undef_reduction_opportunity.h; sourceTree = ""; }; + A9F7B04E29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structured_loop_to_selection_reduction_opportunity_finder.h; sourceTree = ""; }; + A9F7B04F29425A1700B30DA7 /* remove_selection_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_selection_reduction_opportunity.h; sourceTree = ""; }; + A9F7B05029425A1700B30DA7 /* remove_instruction_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_instruction_reduction_opportunity.cpp; sourceTree = ""; }; + A9F7B05129425A1700B30DA7 /* remove_selection_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_selection_reduction_opportunity_finder.h; sourceTree = ""; }; + A9F7B05229425A1700B30DA7 /* merge_blocks_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_blocks_reduction_opportunity_finder.h; sourceTree = ""; }; + A9F7B05329425A1700B30DA7 /* pch_source_reduce.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pch_source_reduce.cpp; sourceTree = ""; }; + A9F7B05429425A1700B30DA7 /* remove_struct_member_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_struct_member_reduction_opportunity.cpp; sourceTree = ""; }; + A9F7B05529425A1700B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_unused_struct_member_reduction_opportunity_finder.h; sourceTree = ""; }; + A9F7B05629425A1700B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_unused_instruction_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B05729425A1700B30DA7 /* reducer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reducer.cpp; sourceTree = ""; }; + A9F7B05829425A1700B30DA7 /* operand_to_undef_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand_to_undef_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B05929425A1700B30DA7 /* remove_function_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_function_reduction_opportunity_finder.h; sourceTree = ""; }; + A9F7B05A29425A1700B30DA7 /* pch_source_reduce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pch_source_reduce.h; sourceTree = ""; }; + A9F7B05B29425A1700B30DA7 /* merge_blocks_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_blocks_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B05C29425A1700B30DA7 /* reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_opportunity.cpp; sourceTree = ""; }; + A9F7B05D29425A1700B30DA7 /* reducer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reducer.h; sourceTree = ""; }; + A9F7B05E29425A1700B30DA7 /* change_operand_to_undef_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = change_operand_to_undef_reduction_opportunity.cpp; sourceTree = ""; }; + A9F7B05F29425A1700B30DA7 /* reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_opportunity.h; sourceTree = ""; }; + A9F7B06029425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conditional_branch_to_simple_conditional_branch_opportunity_finder.h; sourceTree = ""; }; + A9F7B06129425A1700B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand_to_dominating_id_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B06229425A1700B30DA7 /* reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_opportunity_finder.h; sourceTree = ""; }; + A9F7B06329425A1700B30DA7 /* change_operand_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = change_operand_reduction_opportunity.h; sourceTree = ""; }; + A9F7B06429425A1700B30DA7 /* remove_block_reduction_opportunity_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_block_reduction_opportunity_finder.h; sourceTree = ""; }; + A9F7B06529425A1700B30DA7 /* remove_block_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_block_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B06629425A1700B30DA7 /* reduction_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_util.h; sourceTree = ""; }; + A9F7B06729425A1700B30DA7 /* merge_blocks_reduction_opportunity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_blocks_reduction_opportunity.h; sourceTree = ""; }; + A9F7B06829425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B06929425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_loop_to_selection_reduction_opportunity.cpp; sourceTree = ""; }; + A9F7B06A29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_construct_to_block_reduction_opportunity.cpp; sourceTree = ""; }; + A9F7B06B29425A1700B30DA7 /* remove_block_reduction_opportunity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_block_reduction_opportunity.cpp; sourceTree = ""; }; + A9F7B06C29425A1700B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_unused_struct_member_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B06D29425A1700B30DA7 /* reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B06E29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = structured_construct_to_block_reduction_opportunity_finder.cpp; sourceTree = ""; }; + A9F7B06F29425A1700B30DA7 /* reduction_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduction_pass.h; sourceTree = ""; }; + A9F7B07029425A1700B30DA7 /* latest_version_opencl_std_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = latest_version_opencl_std_header.h; sourceTree = ""; }; + A9F7B07129425A1700B30DA7 /* spirv_optimizer_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_optimizer_options.cpp; sourceTree = ""; }; + A9F7B07229425A1700B30DA7 /* cfa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfa.h; sourceTree = ""; }; + A9F7B07329425A1700B30DA7 /* pch_source.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pch_source.h; sourceTree = ""; }; + A9F7B07429425A1700B30DA7 /* enum_string_mapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enum_string_mapping.h; sourceTree = ""; }; + A9F7B07529425A1700B30DA7 /* spirv_fuzzer_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_fuzzer_options.cpp; sourceTree = ""; }; + A9F7B07629425A1700B30DA7 /* spirv_reducer_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_reducer_options.h; sourceTree = ""; }; + A9F7B07729425A1700B30DA7 /* spirv_validator_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_validator_options.cpp; sourceTree = ""; }; + A9F7B07E29425A1700B30DA7 /* print.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = print.cpp; sourceTree = ""; }; + A9F7B07F29425A1700B30DA7 /* spirv_definition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_definition.h; sourceTree = ""; }; + A9F7B08029425A1700B30DA7 /* operand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operand.h; sourceTree = ""; }; + A9F7B08129425A1700B30DA7 /* spirv_endian.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_endian.cpp; sourceTree = ""; }; + A9F7B08229425A1700B30DA7 /* macro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macro.h; sourceTree = ""; }; + A9F7B08329425A1700B30DA7 /* spirv_constant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_constant.h; sourceTree = ""; }; + A9F7B08429425A1700B30DA7 /* binary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = binary.cpp; sourceTree = ""; }; + A9F7B08629425A1700B30DA7 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + A9F7B08729425A1700B30DA7 /* diff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = diff.h; sourceTree = ""; }; + A9F7B08829425A1700B30DA7 /* lcs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lcs.h; sourceTree = ""; }; + A9F7B08929425A1700B30DA7 /* diff.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = diff.cpp; sourceTree = ""; }; + A9F7B08A29425A1700B30DA7 /* spirv_validator_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_validator_options.h; sourceTree = ""; }; + A9F7B08B29425A1700B30DA7 /* enum_string_mapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = enum_string_mapping.cpp; sourceTree = ""; }; + A9F7B08C29425A1700B30DA7 /* text_handler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = text_handler.h; sourceTree = ""; }; + A9F7B08D29425A1700B30DA7 /* parsed_operand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parsed_operand.h; sourceTree = ""; }; + A9F7B08E29425A1700B30DA7 /* name_mapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = name_mapper.h; sourceTree = ""; }; + A9F7B08F29425A1700B30DA7 /* spirv_reducer_options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_reducer_options.cpp; sourceTree = ""; }; + A9F7B09029425A1700B30DA7 /* parsed_operand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parsed_operand.cpp; sourceTree = ""; }; + A9F7B09129425A1700B30DA7 /* diagnostic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = diagnostic.h; sourceTree = ""; }; + A9F7B09229425A1700B30DA7 /* spirv_endian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_endian.h; sourceTree = ""; }; + A9F7B09329425A1700B30DA7 /* name_mapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = name_mapper.cpp; sourceTree = ""; }; + A9F7B09529425A1700B30DA7 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + A9F7B09629425A1700B30DA7 /* linker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = linker.cpp; sourceTree = ""; }; + A9F7B09729425A1700B30DA7 /* common_debug_info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common_debug_info.h; sourceTree = ""; }; + A9F7B09829425A1700B30DA7 /* software_version.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = software_version.cpp; sourceTree = ""; }; + A9F7B09929425A1700B30DA7 /* opcode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = opcode.cpp; sourceTree = ""; }; + A9F7B09A29425A1700B30DA7 /* print.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = print.h; sourceTree = ""; }; + A9F7B09B29425A1700B30DA7 /* ext_inst.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ext_inst.cpp; sourceTree = ""; }; + A9F7B09C29425A1700B30DA7 /* disassemble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = disassemble.h; sourceTree = ""; }; + A9F7B09E29425A1700B30DA7 /* optimizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = optimizer.cpp; sourceTree = ""; }; + A9F7B09F29425A1700B30DA7 /* if_conversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = if_conversion.h; sourceTree = ""; }; + A9F7B0A029425A1700B30DA7 /* register_pressure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = register_pressure.cpp; sourceTree = ""; }; + A9F7B0A129425A1700B30DA7 /* loop_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_utils.cpp; sourceTree = ""; }; + A9F7B0A229425A1700B30DA7 /* strip_nonsemantic_info_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strip_nonsemantic_info_pass.h; sourceTree = ""; }; + A9F7B0A329425A1700B30DA7 /* spread_volatile_semantics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spread_volatile_semantics.cpp; sourceTree = ""; }; + A9F7B0A429425A1700B30DA7 /* merge_return_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_return_pass.h; sourceTree = ""; }; + A9F7B0A529425A1700B30DA7 /* inline_opaque_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inline_opaque_pass.h; sourceTree = ""; }; + A9F7B0A629425A1700B30DA7 /* loop_fusion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_fusion.h; sourceTree = ""; }; + A9F7B0A729425A1700B30DA7 /* combine_access_chains.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = combine_access_chains.cpp; sourceTree = ""; }; + A9F7B0A829425A1700B30DA7 /* build_module.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = build_module.cpp; sourceTree = ""; }; + A9F7B0A929425A1700B30DA7 /* eliminate_dead_output_stores_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_output_stores_pass.cpp; sourceTree = ""; }; + A9F7B0AA29425A1700B30DA7 /* composite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = composite.h; sourceTree = ""; }; + A9F7B0AB29425A1700B30DA7 /* liveness.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = liveness.cpp; sourceTree = ""; }; + A9F7B0AC29425A1700B30DA7 /* compact_ids_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compact_ids_pass.h; sourceTree = ""; }; + A9F7B0AD29425A1700B30DA7 /* register_pressure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = register_pressure.h; sourceTree = ""; }; + A9F7B0AE29425A1700B30DA7 /* tree_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tree_iterator.h; sourceTree = ""; }; + A9F7B0AF29425A1700B30DA7 /* interface_var_sroa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = interface_var_sroa.h; sourceTree = ""; }; + A9F7B0B029425A1700B30DA7 /* graphics_robust_access_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = graphics_robust_access_pass.h; sourceTree = ""; }; + A9F7B0B129425A1700B30DA7 /* local_single_store_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_single_store_elim_pass.h; sourceTree = ""; }; + A9F7B0B229425A1700B30DA7 /* reduce_load_size.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reduce_load_size.h; sourceTree = ""; }; + A9F7B0B329425A1700B30DA7 /* code_sink.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = code_sink.cpp; sourceTree = ""; }; + A9F7B0B429425A1700B30DA7 /* types.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = types.cpp; sourceTree = ""; }; + A9F7B0B529425A1700B30DA7 /* scalar_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scalar_analysis.h; sourceTree = ""; }; + A9F7B0B629425A1700B30DA7 /* strip_debug_info_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strip_debug_info_pass.h; sourceTree = ""; }; + A9F7B0B729425A1700B30DA7 /* replace_desc_array_access_using_var_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = replace_desc_array_access_using_var_index.h; sourceTree = ""; }; + A9F7B0B829425A1700B30DA7 /* cfg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cfg.cpp; sourceTree = ""; }; + A9F7B0B929425A1700B30DA7 /* decoration_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoration_manager.cpp; sourceTree = ""; }; + A9F7B0BA29425A1700B30DA7 /* local_single_block_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_single_block_elim_pass.cpp; sourceTree = ""; }; + A9F7B0BB29425A1700B30DA7 /* freeze_spec_constant_value_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = freeze_spec_constant_value_pass.cpp; sourceTree = ""; }; + A9F7B0BC29425A1700B30DA7 /* replace_invalid_opc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = replace_invalid_opc.h; sourceTree = ""; }; + A9F7B0BD29425A1700B30DA7 /* eliminate_dead_output_stores_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_output_stores_pass.h; sourceTree = ""; }; + A9F7B0BE29425A1700B30DA7 /* local_access_chain_convert_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_access_chain_convert_pass.h; sourceTree = ""; }; + A9F7B0BF29425A1700B30DA7 /* inst_bindless_check_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inst_bindless_check_pass.cpp; sourceTree = ""; }; + A9F7B0C029425A1700B30DA7 /* local_redundancy_elimination.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_redundancy_elimination.cpp; sourceTree = ""; }; + A9F7B0C129425A1700B30DA7 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + A9F7B0C229425A1700B30DA7 /* instrument_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instrument_pass.cpp; sourceTree = ""; }; + A9F7B0C329425A1700B30DA7 /* propagator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = propagator.h; sourceTree = ""; }; + A9F7B0C429425A1700B30DA7 /* instruction_list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction_list.h; sourceTree = ""; }; + A9F7B0C529425A1700B30DA7 /* feature_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = feature_manager.cpp; sourceTree = ""; }; + A9F7B0C629425A1700B30DA7 /* pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pass.cpp; sourceTree = ""; }; + A9F7B0C729425A1700B30DA7 /* loop_fission.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_fission.cpp; sourceTree = ""; }; + A9F7B0C829425A1700B30DA7 /* dominator_tree.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dominator_tree.cpp; sourceTree = ""; }; + A9F7B0C929425A1700B30DA7 /* amd_ext_to_khr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = amd_ext_to_khr.h; sourceTree = ""; }; + A9F7B0CA29425A1700B30DA7 /* merge_return_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_return_pass.cpp; sourceTree = ""; }; + A9F7B0CB29425A1700B30DA7 /* ir_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ir_context.h; sourceTree = ""; }; + A9F7B0CC29425A1700B30DA7 /* eliminate_dead_constant_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_constant_pass.cpp; sourceTree = ""; }; + A9F7B0CD29425A1700B30DA7 /* control_dependence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = control_dependence.h; sourceTree = ""; }; + A9F7B0CE29425A1700B30DA7 /* cfg_cleanup_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cfg_cleanup_pass.cpp; sourceTree = ""; }; + A9F7B0CF29425A1700B30DA7 /* wrap_opkill.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wrap_opkill.cpp; sourceTree = ""; }; + A9F7B0D029425A1700B30DA7 /* eliminate_dead_io_components_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_io_components_pass.cpp; sourceTree = ""; }; + A9F7B0D129425A1700B30DA7 /* const_folding_rules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = const_folding_rules.cpp; sourceTree = ""; }; + A9F7B0D229425A1700B30DA7 /* liveness.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = liveness.h; sourceTree = ""; }; + A9F7B0D329425A1700B30DA7 /* loop_unroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_unroller.h; sourceTree = ""; }; + A9F7B0D429425A1700B30DA7 /* strip_debug_info_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strip_debug_info_pass.cpp; sourceTree = ""; }; + A9F7B0D529425A1700B30DA7 /* ssa_rewrite_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ssa_rewrite_pass.cpp; sourceTree = ""; }; + A9F7B0D629425A1700B30DA7 /* loop_dependence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_dependence.cpp; sourceTree = ""; }; + A9F7B0D729425A1700B30DA7 /* unify_const_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unify_const_pass.h; sourceTree = ""; }; + A9F7B0D829425A1700B30DA7 /* ir_loader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ir_loader.h; sourceTree = ""; }; + A9F7B0D929425A1700B30DA7 /* inst_debug_printf_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inst_debug_printf_pass.cpp; sourceTree = ""; }; + A9F7B0DA29425A1700B30DA7 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = ""; }; + A9F7B0DB29425A1700B30DA7 /* fold_spec_constant_op_and_composite_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fold_spec_constant_op_and_composite_pass.h; sourceTree = ""; }; + A9F7B0DC29425A1700B30DA7 /* mem_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mem_pass.cpp; sourceTree = ""; }; + A9F7B0DD29425A1700B30DA7 /* basic_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = basic_block.h; sourceTree = ""; }; + A9F7B0DE29425A1700B30DA7 /* remove_duplicates_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_duplicates_pass.cpp; sourceTree = ""; }; + A9F7B0DF29425A1700B30DA7 /* dead_variable_elimination.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dead_variable_elimination.cpp; sourceTree = ""; }; + A9F7B0E029425A1700B30DA7 /* block_merge_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_merge_pass.h; sourceTree = ""; }; + A9F7B0E129425A1700B30DA7 /* module.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = module.cpp; sourceTree = ""; }; + A9F7B0E229425A1700B30DA7 /* debug_info_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = debug_info_manager.h; sourceTree = ""; }; + A9F7B0E329425A1700B30DA7 /* fold_spec_constant_op_and_composite_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fold_spec_constant_op_and_composite_pass.cpp; sourceTree = ""; }; + A9F7B0E429425A1700B30DA7 /* loop_unswitch_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_unswitch_pass.cpp; sourceTree = ""; }; + A9F7B0E529425A1700B30DA7 /* unify_const_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unify_const_pass.cpp; sourceTree = ""; }; + A9F7B0E629425A1700B30DA7 /* type_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = type_manager.cpp; sourceTree = ""; }; + A9F7B0E729425A1700B30DA7 /* private_to_local_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = private_to_local_pass.h; sourceTree = ""; }; + A9F7B0E829425A1700B30DA7 /* convert_to_half_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convert_to_half_pass.h; sourceTree = ""; }; + A9F7B0E929425A1700B30DA7 /* remove_dontinline_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_dontinline_pass.h; sourceTree = ""; }; + A9F7B0EA29425A1700B30DA7 /* relax_float_ops_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = relax_float_ops_pass.h; sourceTree = ""; }; + A9F7B0EB29425A1700B30DA7 /* inline_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inline_pass.cpp; sourceTree = ""; }; + A9F7B0EC29425A1700B30DA7 /* def_use_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = def_use_manager.h; sourceTree = ""; }; + A9F7B0ED29425A1700B30DA7 /* ir_loader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ir_loader.cpp; sourceTree = ""; }; + A9F7B0EE29425A1700B30DA7 /* convert_to_sampled_image_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convert_to_sampled_image_pass.h; sourceTree = ""; }; + A9F7B0EF29425A1700B30DA7 /* cfg_cleanup_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfg_cleanup_pass.h; sourceTree = ""; }; + A9F7B0F029425A1700B30DA7 /* licm_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = licm_pass.cpp; sourceTree = ""; }; + A9F7B0F129425A1700B30DA7 /* eliminate_dead_functions_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_functions_pass.cpp; sourceTree = ""; }; + A9F7B0F229425A1700B30DA7 /* local_redundancy_elimination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_redundancy_elimination.h; sourceTree = ""; }; + A9F7B0F329425A1700B30DA7 /* loop_peeling.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_peeling.h; sourceTree = ""; }; + A9F7B0F429425A1700B30DA7 /* vector_dce.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vector_dce.cpp; sourceTree = ""; }; + A9F7B0F529425A1700B30DA7 /* block_merge_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_merge_util.h; sourceTree = ""; }; + A9F7B0F629425A1700B30DA7 /* loop_unroller.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_unroller.cpp; sourceTree = ""; }; + A9F7B0F729425A1700B30DA7 /* desc_sroa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = desc_sroa.h; sourceTree = ""; }; + A9F7B0F829425A1700B30DA7 /* constants.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = constants.cpp; sourceTree = ""; }; + A9F7B0F929425A1700B30DA7 /* loop_fusion_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_fusion_pass.h; sourceTree = ""; }; + A9F7B0FA29425A1700B30DA7 /* struct_cfg_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = struct_cfg_analysis.h; sourceTree = ""; }; + A9F7B0FB29425A1700B30DA7 /* desc_sroa_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = desc_sroa_util.cpp; sourceTree = ""; }; + A9F7B0FC29425A1700B30DA7 /* inst_buff_addr_check_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inst_buff_addr_check_pass.cpp; sourceTree = ""; }; + A9F7B0FD29425A1700B30DA7 /* def_use_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = def_use_manager.cpp; sourceTree = ""; }; + A9F7B0FE29425A1700B30DA7 /* wrap_opkill.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wrap_opkill.h; sourceTree = ""; }; + A9F7B0FF29425A1800B30DA7 /* empty_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = empty_pass.h; sourceTree = ""; }; + A9F7B10029425A1800B30DA7 /* decoration_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoration_manager.h; sourceTree = ""; }; + A9F7B10129425A1800B30DA7 /* ccp_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ccp_pass.cpp; sourceTree = ""; }; + A9F7B10229425A1800B30DA7 /* local_single_block_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = local_single_block_elim_pass.h; sourceTree = ""; }; + A9F7B10329425A1800B30DA7 /* interp_fixup_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = interp_fixup_pass.h; sourceTree = ""; }; + A9F7B10429425A1800B30DA7 /* eliminate_dead_io_components_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_io_components_pass.h; sourceTree = ""; }; + A9F7B10529425A1800B30DA7 /* pch_source_opt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pch_source_opt.cpp; sourceTree = ""; }; + A9F7B10629425A1800B30DA7 /* inst_buff_addr_check_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inst_buff_addr_check_pass.h; sourceTree = ""; }; + A9F7B10729425A1800B30DA7 /* strength_reduction_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strength_reduction_pass.h; sourceTree = ""; }; + A9F7B10829425A1800B30DA7 /* aggressive_dead_code_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aggressive_dead_code_elim_pass.cpp; sourceTree = ""; }; + A9F7B10929425A1800B30DA7 /* eliminate_dead_functions_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_functions_util.cpp; sourceTree = ""; }; + A9F7B10A29425A1800B30DA7 /* inst_debug_printf_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inst_debug_printf_pass.h; sourceTree = ""; }; + A9F7B10B29425A1800B30DA7 /* simplification_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simplification_pass.cpp; sourceTree = ""; }; + A9F7B10C29425A1800B30DA7 /* dead_branch_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dead_branch_elim_pass.cpp; sourceTree = ""; }; + A9F7B10D29425A1800B30DA7 /* flatten_decoration_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flatten_decoration_pass.cpp; sourceTree = ""; }; + A9F7B10E29425A1800B30DA7 /* dead_insert_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dead_insert_elim_pass.h; sourceTree = ""; }; + A9F7B10F29425A1800B30DA7 /* folding_rules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = folding_rules.cpp; sourceTree = ""; }; + A9F7B11029425A1800B30DA7 /* freeze_spec_constant_value_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = freeze_spec_constant_value_pass.h; sourceTree = ""; }; + A9F7B11129425A1800B30DA7 /* ir_context.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ir_context.cpp; sourceTree = ""; }; + A9F7B11229425A1800B30DA7 /* instrument_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instrument_pass.h; sourceTree = ""; }; + A9F7B11329425A1800B30DA7 /* mem_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mem_pass.h; sourceTree = ""; }; + A9F7B11429425A1800B30DA7 /* loop_descriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_descriptor.cpp; sourceTree = ""; }; + A9F7B11529425A1800B30DA7 /* eliminate_dead_members_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_members_pass.h; sourceTree = ""; }; + A9F7B11629425A1800B30DA7 /* function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = function.cpp; sourceTree = ""; }; + A9F7B11729425A1800B30DA7 /* instruction_list.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instruction_list.cpp; sourceTree = ""; }; + A9F7B11829425A1800B30DA7 /* control_dependence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = control_dependence.cpp; sourceTree = ""; }; + A9F7B11929425A1800B30DA7 /* composite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = composite.cpp; sourceTree = ""; }; + A9F7B11A29425A1800B30DA7 /* convert_to_half_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = convert_to_half_pass.cpp; sourceTree = ""; }; + A9F7B11B29425A1800B30DA7 /* inline_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inline_pass.h; sourceTree = ""; }; + A9F7B11C29425A1800B30DA7 /* loop_dependence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_dependence.h; sourceTree = ""; }; + A9F7B11D29425A1800B30DA7 /* value_number_table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = value_number_table.h; sourceTree = ""; }; + A9F7B11E29425A1800B30DA7 /* strip_nonsemantic_info_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strip_nonsemantic_info_pass.cpp; sourceTree = ""; }; + A9F7B11F29425A1800B30DA7 /* flatten_decoration_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flatten_decoration_pass.h; sourceTree = ""; }; + A9F7B12029425A1800B30DA7 /* if_conversion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = if_conversion.cpp; sourceTree = ""; }; + A9F7B12129425A1800B30DA7 /* fix_func_call_arguments.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fix_func_call_arguments.cpp; sourceTree = ""; }; + A9F7B12229425A1800B30DA7 /* debug_info_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = debug_info_manager.cpp; sourceTree = ""; }; + A9F7B12329425A1800B30DA7 /* inline_exhaustive_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inline_exhaustive_pass.h; sourceTree = ""; }; + A9F7B12429425A1800B30DA7 /* constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = constants.h; sourceTree = ""; }; + A9F7B12529425A1800B30DA7 /* eliminate_dead_members_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = eliminate_dead_members_pass.cpp; sourceTree = ""; }; + A9F7B12629425A1800B30DA7 /* strength_reduction_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strength_reduction_pass.cpp; sourceTree = ""; }; + A9F7B12729425A1800B30DA7 /* desc_sroa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = desc_sroa.cpp; sourceTree = ""; }; + A9F7B12829425A1800B30DA7 /* block_merge_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_merge_util.cpp; sourceTree = ""; }; + A9F7B12929425A1800B30DA7 /* upgrade_memory_model.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = upgrade_memory_model.h; sourceTree = ""; }; + A9F7B12A29425A1800B30DA7 /* copy_prop_arrays.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = copy_prop_arrays.cpp; sourceTree = ""; }; + A9F7B12B29425A1800B30DA7 /* analyze_live_input_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = analyze_live_input_pass.h; sourceTree = ""; }; + A9F7B12C29425A1800B30DA7 /* pass_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pass_manager.cpp; sourceTree = ""; }; + A9F7B12D29425A1800B30DA7 /* inline_exhaustive_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inline_exhaustive_pass.cpp; sourceTree = ""; }; + A9F7B12E29425A1800B30DA7 /* loop_fission.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_fission.h; sourceTree = ""; }; + A9F7B12F29425A1800B30DA7 /* workaround1209.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = workaround1209.h; sourceTree = ""; }; + A9F7B13029425A1800B30DA7 /* loop_fusion_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_fusion_pass.cpp; sourceTree = ""; }; + A9F7B13129425A1800B30DA7 /* log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log.h; sourceTree = ""; }; + A9F7B13229425A1800B30DA7 /* copy_prop_arrays.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = copy_prop_arrays.h; sourceTree = ""; }; + A9F7B13329425A1800B30DA7 /* eliminate_dead_constant_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_constant_pass.h; sourceTree = ""; }; + A9F7B13429425A1800B30DA7 /* dead_insert_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dead_insert_elim_pass.cpp; sourceTree = ""; }; + A9F7B13529425A1800B30DA7 /* ssa_rewrite_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssa_rewrite_pass.h; sourceTree = ""; }; + A9F7B13629425A1800B30DA7 /* scalar_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scalar_analysis.cpp; sourceTree = ""; }; + A9F7B13729425A1800B30DA7 /* dead_variable_elimination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dead_variable_elimination.h; sourceTree = ""; }; + A9F7B13829425A1800B30DA7 /* block_merge_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_merge_pass.cpp; sourceTree = ""; }; + A9F7B13929425A1800B30DA7 /* dominator_analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dominator_analysis.h; sourceTree = ""; }; + A9F7B13A29425A1800B30DA7 /* convert_to_sampled_image_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = convert_to_sampled_image_pass.cpp; sourceTree = ""; }; + A9F7B13B29425A1800B30DA7 /* pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pass.h; sourceTree = ""; }; + A9F7B13C29425A1800B30DA7 /* folding_rules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = folding_rules.h; sourceTree = ""; }; + A9F7B13D29425A1800B30DA7 /* eliminate_dead_functions_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_functions_pass.h; sourceTree = ""; }; + A9F7B13E29425A1800B30DA7 /* eliminate_dead_functions_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eliminate_dead_functions_util.h; sourceTree = ""; }; + A9F7B13F29425A1800B30DA7 /* fold.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fold.h; sourceTree = ""; }; + A9F7B14029425A1800B30DA7 /* local_single_store_elim_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_single_store_elim_pass.cpp; sourceTree = ""; }; + A9F7B14129425A1800B30DA7 /* dead_branch_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dead_branch_elim_pass.h; sourceTree = ""; }; + A9F7B14229425A1800B30DA7 /* private_to_local_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = private_to_local_pass.cpp; sourceTree = ""; }; + A9F7B14329425A1800B30DA7 /* scalar_analysis_nodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scalar_analysis_nodes.h; sourceTree = ""; }; + A9F7B14429425A1800B30DA7 /* propagator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = propagator.cpp; sourceTree = ""; }; + A9F7B14529425A1800B30DA7 /* fix_storage_class.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fix_storage_class.h; sourceTree = ""; }; + A9F7B14629425A1800B30DA7 /* loop_dependence_helpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_dependence_helpers.cpp; sourceTree = ""; }; + A9F7B14729425A1800B30DA7 /* set_spec_constant_default_value_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = set_spec_constant_default_value_pass.cpp; sourceTree = ""; }; + A9F7B14829425A1800B30DA7 /* passes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = passes.h; sourceTree = ""; }; + A9F7B14929425A1800B30DA7 /* fold.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fold.cpp; sourceTree = ""; }; + A9F7B14A29425A1800B30DA7 /* amd_ext_to_khr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = amd_ext_to_khr.cpp; sourceTree = ""; }; + A9F7B14B29425A1800B30DA7 /* scalar_replacement_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scalar_replacement_pass.cpp; sourceTree = ""; }; + A9F7B14C29425A1800B30DA7 /* simplification_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simplification_pass.h; sourceTree = ""; }; + A9F7B14D29425A1800B30DA7 /* interface_var_sroa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = interface_var_sroa.cpp; sourceTree = ""; }; + A9F7B14E29425A1800B30DA7 /* remove_duplicates_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_duplicates_pass.h; sourceTree = ""; }; + A9F7B14F29425A1800B30DA7 /* desc_sroa_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = desc_sroa_util.h; sourceTree = ""; }; + A9F7B15029425A1800B30DA7 /* redundancy_elimination.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = redundancy_elimination.cpp; sourceTree = ""; }; + A9F7B15129425A1800B30DA7 /* reflect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reflect.h; sourceTree = ""; }; + A9F7B15229425A1800B30DA7 /* workaround1209.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = workaround1209.cpp; sourceTree = ""; }; + A9F7B15329425A1800B30DA7 /* null_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = null_pass.h; sourceTree = ""; }; + A9F7B15429425A1800B30DA7 /* relax_float_ops_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = relax_float_ops_pass.cpp; sourceTree = ""; }; + A9F7B15529425A1800B30DA7 /* const_folding_rules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = const_folding_rules.h; sourceTree = ""; }; + A9F7B15629425A1800B30DA7 /* scalar_replacement_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scalar_replacement_pass.h; sourceTree = ""; }; + A9F7B15729425A1800B30DA7 /* instruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instruction.cpp; sourceTree = ""; }; + A9F7B15829425A1800B30DA7 /* pch_source_opt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pch_source_opt.h; sourceTree = ""; }; + A9F7B15929425A1800B30DA7 /* reduce_load_size.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduce_load_size.cpp; sourceTree = ""; }; + A9F7B15A29425A1800B30DA7 /* redundancy_elimination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = redundancy_elimination.h; sourceTree = ""; }; + A9F7B15B29425A1800B30DA7 /* fix_storage_class.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fix_storage_class.cpp; sourceTree = ""; }; + A9F7B15C29425A1800B30DA7 /* value_number_table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = value_number_table.cpp; sourceTree = ""; }; + A9F7B15D29425A1800B30DA7 /* remove_unused_interface_variables_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_unused_interface_variables_pass.cpp; sourceTree = ""; }; + A9F7B15E29425A1800B30DA7 /* inline_opaque_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inline_opaque_pass.cpp; sourceTree = ""; }; + A9F7B15F29425A1800B30DA7 /* replace_invalid_opc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = replace_invalid_opc.cpp; sourceTree = ""; }; + A9F7B16029425A1800B30DA7 /* loop_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_utils.h; sourceTree = ""; }; + A9F7B16129425A1800B30DA7 /* module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = module.h; sourceTree = ""; }; + A9F7B16229425A1800B30DA7 /* dominator_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dominator_analysis.cpp; sourceTree = ""; }; + A9F7B16329425A1800B30DA7 /* ir_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ir_builder.h; sourceTree = ""; }; + A9F7B16429425A1800B30DA7 /* replace_desc_array_access_using_var_index.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = replace_desc_array_access_using_var_index.cpp; sourceTree = ""; }; + A9F7B16529425A1800B30DA7 /* loop_unswitch_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_unswitch_pass.h; sourceTree = ""; }; + A9F7B16629425A1800B30DA7 /* cfg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfg.h; sourceTree = ""; }; + A9F7B16729425A1800B30DA7 /* code_sink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = code_sink.h; sourceTree = ""; }; + A9F7B16829425A1800B30DA7 /* dataflow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dataflow.cpp; sourceTree = ""; }; + A9F7B16929425A1800B30DA7 /* loop_descriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loop_descriptor.h; sourceTree = ""; }; + A9F7B16A29425A1800B30DA7 /* instruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction.h; sourceTree = ""; }; + A9F7B16B29425A1800B30DA7 /* aggressive_dead_code_elim_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aggressive_dead_code_elim_pass.h; sourceTree = ""; }; + A9F7B16C29425A1800B30DA7 /* struct_cfg_analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = struct_cfg_analysis.cpp; sourceTree = ""; }; + A9F7B16D29425A1800B30DA7 /* remove_dontinline_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_dontinline_pass.cpp; sourceTree = ""; }; + A9F7B16E29425A1800B30DA7 /* vector_dce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vector_dce.h; sourceTree = ""; }; + A9F7B16F29425A1800B30DA7 /* combine_access_chains.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = combine_access_chains.h; sourceTree = ""; }; + A9F7B17029425A1800B30DA7 /* pass_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pass_manager.h; sourceTree = ""; }; + A9F7B17129425A1800B30DA7 /* spread_volatile_semantics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spread_volatile_semantics.h; sourceTree = ""; }; + A9F7B17229425A1800B30DA7 /* local_access_chain_convert_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = local_access_chain_convert_pass.cpp; sourceTree = ""; }; + A9F7B17329425A1800B30DA7 /* interp_fixup_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = interp_fixup_pass.cpp; sourceTree = ""; }; + A9F7B17429425A1800B30DA7 /* basic_block.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = basic_block.cpp; sourceTree = ""; }; + A9F7B17529425A1800B30DA7 /* iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iterator.h; sourceTree = ""; }; + A9F7B17629425A1800B30DA7 /* licm_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = licm_pass.h; sourceTree = ""; }; + A9F7B17729425A1800B30DA7 /* build_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = build_module.h; sourceTree = ""; }; + A9F7B17829425A1800B30DA7 /* ccp_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccp_pass.h; sourceTree = ""; }; + A9F7B17929425A1800B30DA7 /* graphics_robust_access_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = graphics_robust_access_pass.cpp; sourceTree = ""; }; + A9F7B17A29425A1800B30DA7 /* function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = function.h; sourceTree = ""; }; + A9F7B17B29425A1800B30DA7 /* fix_func_call_arguments.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fix_func_call_arguments.h; sourceTree = ""; }; + A9F7B17C29425A1800B30DA7 /* loop_fusion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_fusion.cpp; sourceTree = ""; }; + A9F7B17D29425A1800B30DA7 /* analyze_live_input_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = analyze_live_input_pass.cpp; sourceTree = ""; }; + A9F7B17E29425A1800B30DA7 /* upgrade_memory_model.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = upgrade_memory_model.cpp; sourceTree = ""; }; + A9F7B17F29425A1800B30DA7 /* feature_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = feature_manager.h; sourceTree = ""; }; + A9F7B18029425A1800B30DA7 /* dataflow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dataflow.h; sourceTree = ""; }; + A9F7B18129425A1800B30DA7 /* inst_bindless_check_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inst_bindless_check_pass.h; sourceTree = ""; }; + A9F7B18229425A1800B30DA7 /* scalar_analysis_simplification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scalar_analysis_simplification.cpp; sourceTree = ""; }; + A9F7B18329425A1800B30DA7 /* set_spec_constant_default_value_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = set_spec_constant_default_value_pass.h; sourceTree = ""; }; + A9F7B18429425A1800B30DA7 /* dominator_tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dominator_tree.h; sourceTree = ""; }; + A9F7B18529425A1800B30DA7 /* remove_unused_interface_variables_pass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_unused_interface_variables_pass.h; sourceTree = ""; }; + A9F7B18629425A1800B30DA7 /* type_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = type_manager.h; sourceTree = ""; }; + A9F7B18729425A1800B30DA7 /* compact_ids_pass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compact_ids_pass.cpp; sourceTree = ""; }; + A9F7B18829425A1800B30DA7 /* loop_peeling.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loop_peeling.cpp; sourceTree = ""; }; + A9F7B18929425A1800B30DA7 /* table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table.h; sourceTree = ""; }; + A9F7B31629425A1800B30DA7 /* ext_inst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ext_inst.h; sourceTree = ""; }; + A9F7B31729425A1800B30DA7 /* diagnostic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = diagnostic.cpp; sourceTree = ""; }; + A9F7B31829425A1800B30DA7 /* latest_version_spirv_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = latest_version_spirv_header.h; sourceTree = ""; }; + A9F7B31929425A1800B30DA7 /* libspirv.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = libspirv.cpp; sourceTree = ""; }; + A9F7B31A29425A1800B30DA7 /* instruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction.h; sourceTree = ""; }; + A9F7B31B29425A1800B30DA7 /* spirv_optimizer_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spirv_optimizer_options.h; sourceTree = ""; }; + A9F7B31C29425A1800B30DA7 /* opcode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opcode.h; sourceTree = ""; }; + A9F7B31D29425A1800B30DA7 /* operand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operand.cpp; sourceTree = ""; }; + A9F7B31E29425A1800B30DA7 /* latest_version_glsl_std_450_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = latest_version_glsl_std_450_header.h; sourceTree = ""; }; + A9F7B31F29425A1800B30DA7 /* extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = extensions.h; sourceTree = ""; }; + A9F7B32029425A1800B30DA7 /* disassemble.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = disassemble.cpp; sourceTree = ""; }; + A9F7B32129425A1800B30DA7 /* binary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = binary.h; sourceTree = ""; }; + A9F7B32229425A1800B30DA7 /* text_handler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = text_handler.cpp; sourceTree = ""; }; + A9F7B32429425A1800B30DA7 /* validate_annotation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_annotation.cpp; sourceTree = ""; }; + A9F7B32529425A1800B30DA7 /* validate_misc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_misc.cpp; sourceTree = ""; }; + A9F7B32629425A1800B30DA7 /* validate_cfg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_cfg.cpp; sourceTree = ""; }; + A9F7B32729425A1800B30DA7 /* validate_capability.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_capability.cpp; sourceTree = ""; }; + A9F7B32829425A1800B30DA7 /* construct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = construct.h; sourceTree = ""; }; + A9F7B32929425A1800B30DA7 /* validate_barriers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_barriers.cpp; sourceTree = ""; }; + A9F7B32A29425A1800B30DA7 /* validate_non_uniform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_non_uniform.cpp; sourceTree = ""; }; + A9F7B32B29425A1800B30DA7 /* validate_ray_query.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_ray_query.cpp; sourceTree = ""; }; + A9F7B32C29425A1800B30DA7 /* validate_ray_tracing.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_ray_tracing.cpp; sourceTree = ""; }; + A9F7B32D29425A1800B30DA7 /* validate_scopes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_scopes.cpp; sourceTree = ""; }; + A9F7B32E29425A1800B30DA7 /* validate_atomics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_atomics.cpp; sourceTree = ""; }; + A9F7B32F29425A1800B30DA7 /* basic_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = basic_block.h; sourceTree = ""; }; + A9F7B33029425A1800B30DA7 /* validate_instruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_instruction.cpp; sourceTree = ""; }; + A9F7B33129425A1800B30DA7 /* validate_ray_tracing_reorder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_ray_tracing_reorder.cpp; sourceTree = ""; }; + A9F7B33229425A1800B30DA7 /* validate_decorations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_decorations.cpp; sourceTree = ""; }; + A9F7B33329425A1800B30DA7 /* validate_debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_debug.cpp; sourceTree = ""; }; + A9F7B33429425A1800B30DA7 /* validate_builtins.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_builtins.cpp; sourceTree = ""; }; + A9F7B33529425A1800B30DA7 /* validate_interfaces.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_interfaces.cpp; sourceTree = ""; }; + A9F7B33629425A1800B30DA7 /* validate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate.cpp; sourceTree = ""; }; + A9F7B33729425A1800B30DA7 /* validation_state.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validation_state.h; sourceTree = ""; }; + A9F7B33829425A1800B30DA7 /* validate_constants.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_constants.cpp; sourceTree = ""; }; + A9F7B33929425A1800B30DA7 /* validate_bitwise.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_bitwise.cpp; sourceTree = ""; }; + A9F7B33A29425A1800B30DA7 /* validate_extensions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_extensions.cpp; sourceTree = ""; }; + A9F7B33B29425A1800B30DA7 /* construct.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = construct.cpp; sourceTree = ""; }; + A9F7B33C29425A1800B30DA7 /* function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = function.cpp; sourceTree = ""; }; + A9F7B33D29425A1800B30DA7 /* validate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validate.h; sourceTree = ""; }; + A9F7B33E29425A1800B30DA7 /* validate_adjacency.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_adjacency.cpp; sourceTree = ""; }; + A9F7B33F29425A1800B30DA7 /* validate_conversion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_conversion.cpp; sourceTree = ""; }; + A9F7B34029425A1800B30DA7 /* validate_small_type_uses.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_small_type_uses.cpp; sourceTree = ""; }; + A9F7B34129425A1800B30DA7 /* validate_scopes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validate_scopes.h; sourceTree = ""; }; + A9F7B34229425A1800B30DA7 /* validate_id.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_id.cpp; sourceTree = ""; }; + A9F7B34329425A1800B30DA7 /* validate_memory_semantics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validate_memory_semantics.h; sourceTree = ""; }; + A9F7B34429425A1800B30DA7 /* validate_arithmetics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_arithmetics.cpp; sourceTree = ""; }; + A9F7B34529425A1800B30DA7 /* validate_mode_setting.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_mode_setting.cpp; sourceTree = ""; }; + A9F7B34629425A1800B30DA7 /* validate_memory_semantics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_memory_semantics.cpp; sourceTree = ""; }; + A9F7B34729425A1800B30DA7 /* validate_logicals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_logicals.cpp; sourceTree = ""; }; + A9F7B34829425A1800B30DA7 /* validate_derivatives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_derivatives.cpp; sourceTree = ""; }; + A9F7B34929425A1800B30DA7 /* validate_memory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_memory.cpp; sourceTree = ""; }; + A9F7B34A29425A1800B30DA7 /* validate_image.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_image.cpp; sourceTree = ""; }; + A9F7B34B29425A1800B30DA7 /* validate_literals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_literals.cpp; sourceTree = ""; }; + A9F7B34C29425A1800B30DA7 /* instruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instruction.cpp; sourceTree = ""; }; + A9F7B34D29425A1800B30DA7 /* validate_type.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_type.cpp; sourceTree = ""; }; + A9F7B34E29425A1800B30DA7 /* instruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instruction.h; sourceTree = ""; }; + A9F7B34F29425A1800B30DA7 /* validate_mesh_shading.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_mesh_shading.cpp; sourceTree = ""; }; + A9F7B35029425A1800B30DA7 /* validate_execution_limitations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_execution_limitations.cpp; sourceTree = ""; }; + A9F7B35129425A1800B30DA7 /* validate_layout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_layout.cpp; sourceTree = ""; }; + A9F7B35229425A1800B30DA7 /* basic_block.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = basic_block.cpp; sourceTree = ""; }; + A9F7B35329425A1800B30DA7 /* validate_function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_function.cpp; sourceTree = ""; }; + A9F7B35429425A1800B30DA7 /* function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = function.h; sourceTree = ""; }; + A9F7B35529425A1800B30DA7 /* validate_composites.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_composites.cpp; sourceTree = ""; }; + A9F7B35629425A1800B30DA7 /* validation_state.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validation_state.cpp; sourceTree = ""; }; + A9F7B35729425A1800B30DA7 /* validate_primitives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_primitives.cpp; sourceTree = ""; }; + A9F7B35829425A1800B30DA7 /* decoration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoration.h; sourceTree = ""; }; A9FC5F7F249DA96D003CB086 /* package_ext_libs_finish.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_ext_libs_finish.sh; sourceTree = ""; }; /* End PBXFileReference section */ @@ -2362,7 +2390,7 @@ A972A82421CECC410013AB25 /* SPIRV-Tools */ = { isa = PBXGroup; children = ( - A9EE08B128FDD2550013FF99 /* source */, + A9F7B00C29425A1700B30DA7 /* source */, ); name = "SPIRV-Tools"; path = "glslang/External/spirv-tools"; @@ -2615,508 +2643,515 @@ path = GenericCodeGen; sourceTree = ""; }; - A9EE08B128FDD2550013FF99 /* source */ = { + A9F55D24198BE6A7004EC31B = { + isa = PBXGroup; + children = ( + A9C2104521D14FD7006BA2D3 /* fetchDependencies */, + A9C2104721D15843006BA2D3 /* ExternalRevisions */, + A90FD9E921CC519E00B92BB2 /* External */, + A9679AAB21D2699800856BF7 /* Scripts */, + A972AD2421CEE30F0013AB25 /* Products */, + ); + sourceTree = ""; + }; + A9F7B00C29425A1700B30DA7 /* source */ = { isa = PBXGroup; children = ( - A9EE08B228FDD2550013FF99 /* spirv_target_env.cpp */, - A9EE08B328FDD2550013FF99 /* spirv_fuzzer_options.h */, - A9EE08B428FDD2550013FF99 /* assembly_grammar.h */, - A9EE08B528FDD2550013FF99 /* lint */, - A9EE08BC28FDD2550013FF99 /* enum_set.h */, - A9EE08BD28FDD2550013FF99 /* CMakeLists.txt */, - A9EE08BE28FDD2550013FF99 /* text.cpp */, - A9EE08BF28FDD2550013FF99 /* assembly_grammar.cpp */, - A9EE08C028FDD2550013FF99 /* text.h */, - A9EE08C128FDD2550013FF99 /* extensions.cpp */, - A9EE08C228FDD2550013FF99 /* pch_source.cpp */, - A9EE08C328FDD2550013FF99 /* util */, - A9EE08D328FDD2550013FF99 /* spirv_target_env.h */, - A9EE08D428FDD2550013FF99 /* table.cpp */, - A9EE08D528FDD2550013FF99 /* reduce */, - A9EE091528FDD2550013FF99 /* latest_version_opencl_std_header.h */, - A9EE091628FDD2550013FF99 /* spirv_optimizer_options.cpp */, - A9EE091728FDD2550013FF99 /* cfa.h */, - A9EE091828FDD2550013FF99 /* pch_source.h */, - A9EE091928FDD2550013FF99 /* enum_string_mapping.h */, - A9EE091A28FDD2550013FF99 /* spirv_fuzzer_options.cpp */, - A9EE091B28FDD2550013FF99 /* spirv_reducer_options.h */, - A9EE091C28FDD2550013FF99 /* spirv_validator_options.cpp */, - A9EE092328FDD2550013FF99 /* print.cpp */, - A9EE092428FDD2550013FF99 /* spirv_definition.h */, - A9EE092528FDD2550013FF99 /* operand.h */, - A9EE092628FDD2550013FF99 /* spirv_endian.cpp */, - A9EE092728FDD2550013FF99 /* macro.h */, - A9EE092828FDD2550013FF99 /* spirv_constant.h */, - A9EE092928FDD2550013FF99 /* binary.cpp */, - A9EE092A28FDD2550013FF99 /* diff */, - A9EE092F28FDD2550013FF99 /* spirv_validator_options.h */, - A9EE093028FDD2550013FF99 /* enum_string_mapping.cpp */, - A9EE093128FDD2550013FF99 /* text_handler.h */, - A9EE093228FDD2550013FF99 /* parsed_operand.h */, - A9EE093328FDD2550013FF99 /* name_mapper.h */, - A9EE093428FDD2550013FF99 /* spirv_reducer_options.cpp */, - A9EE093528FDD2550013FF99 /* parsed_operand.cpp */, - A9EE093628FDD2550013FF99 /* diagnostic.h */, - A9EE093728FDD2550013FF99 /* spirv_endian.h */, - A9EE093828FDD2550013FF99 /* name_mapper.cpp */, - A9EE093928FDD2550013FF99 /* link */, - A9EE093C28FDD2550013FF99 /* common_debug_info.h */, - A9EE093D28FDD2550013FF99 /* software_version.cpp */, - A9EE093E28FDD2550013FF99 /* opcode.cpp */, - A9EE093F28FDD2550013FF99 /* print.h */, - A9EE094028FDD2550013FF99 /* ext_inst.cpp */, - A9EE094128FDD2550013FF99 /* disassemble.h */, - A9EE094228FDD2550013FF99 /* opt */, - A9EE0A2828FDD2550013FF99 /* table.h */, - A9EE0BB528FDD2560013FF99 /* ext_inst.h */, - A9EE0BB628FDD2560013FF99 /* diagnostic.cpp */, - A9EE0BB728FDD2560013FF99 /* latest_version_spirv_header.h */, - A9EE0BB828FDD2560013FF99 /* libspirv.cpp */, - A9EE0BB928FDD2560013FF99 /* instruction.h */, - A9EE0BBA28FDD2560013FF99 /* spirv_optimizer_options.h */, - A9EE0BBB28FDD2560013FF99 /* opcode.h */, - A9EE0BBC28FDD2560013FF99 /* operand.cpp */, - A9EE0BBD28FDD2560013FF99 /* latest_version_glsl_std_450_header.h */, - A9EE0BBE28FDD2560013FF99 /* extensions.h */, - A9EE0BBF28FDD2560013FF99 /* disassemble.cpp */, - A9EE0BC028FDD2560013FF99 /* binary.h */, - A9EE0BC128FDD2560013FF99 /* text_handler.cpp */, - A9EE0BC228FDD2560013FF99 /* val */, + A9F7B00D29425A1700B30DA7 /* spirv_target_env.cpp */, + A9F7B00E29425A1700B30DA7 /* spirv_fuzzer_options.h */, + A9F7B00F29425A1700B30DA7 /* assembly_grammar.h */, + A9F7B01029425A1700B30DA7 /* lint */, + A9F7B01729425A1700B30DA7 /* enum_set.h */, + A9F7B01829425A1700B30DA7 /* CMakeLists.txt */, + A9F7B01929425A1700B30DA7 /* text.cpp */, + A9F7B01A29425A1700B30DA7 /* assembly_grammar.cpp */, + A9F7B01B29425A1700B30DA7 /* text.h */, + A9F7B01C29425A1700B30DA7 /* extensions.cpp */, + A9F7B01D29425A1700B30DA7 /* pch_source.cpp */, + A9F7B01E29425A1700B30DA7 /* util */, + A9F7B02E29425A1700B30DA7 /* spirv_target_env.h */, + A9F7B02F29425A1700B30DA7 /* table.cpp */, + A9F7B03029425A1700B30DA7 /* reduce */, + A9F7B07029425A1700B30DA7 /* latest_version_opencl_std_header.h */, + A9F7B07129425A1700B30DA7 /* spirv_optimizer_options.cpp */, + A9F7B07229425A1700B30DA7 /* cfa.h */, + A9F7B07329425A1700B30DA7 /* pch_source.h */, + A9F7B07429425A1700B30DA7 /* enum_string_mapping.h */, + A9F7B07529425A1700B30DA7 /* spirv_fuzzer_options.cpp */, + A9F7B07629425A1700B30DA7 /* spirv_reducer_options.h */, + A9F7B07729425A1700B30DA7 /* spirv_validator_options.cpp */, + A9F7B07E29425A1700B30DA7 /* print.cpp */, + A9F7B07F29425A1700B30DA7 /* spirv_definition.h */, + A9F7B08029425A1700B30DA7 /* operand.h */, + A9F7B08129425A1700B30DA7 /* spirv_endian.cpp */, + A9F7B08229425A1700B30DA7 /* macro.h */, + A9F7B08329425A1700B30DA7 /* spirv_constant.h */, + A9F7B08429425A1700B30DA7 /* binary.cpp */, + A9F7B08529425A1700B30DA7 /* diff */, + A9F7B08A29425A1700B30DA7 /* spirv_validator_options.h */, + A9F7B08B29425A1700B30DA7 /* enum_string_mapping.cpp */, + A9F7B08C29425A1700B30DA7 /* text_handler.h */, + A9F7B08D29425A1700B30DA7 /* parsed_operand.h */, + A9F7B08E29425A1700B30DA7 /* name_mapper.h */, + A9F7B08F29425A1700B30DA7 /* spirv_reducer_options.cpp */, + A9F7B09029425A1700B30DA7 /* parsed_operand.cpp */, + A9F7B09129425A1700B30DA7 /* diagnostic.h */, + A9F7B09229425A1700B30DA7 /* spirv_endian.h */, + A9F7B09329425A1700B30DA7 /* name_mapper.cpp */, + A9F7B09429425A1700B30DA7 /* link */, + A9F7B09729425A1700B30DA7 /* common_debug_info.h */, + A9F7B09829425A1700B30DA7 /* software_version.cpp */, + A9F7B09929425A1700B30DA7 /* opcode.cpp */, + A9F7B09A29425A1700B30DA7 /* print.h */, + A9F7B09B29425A1700B30DA7 /* ext_inst.cpp */, + A9F7B09C29425A1700B30DA7 /* disassemble.h */, + A9F7B09D29425A1700B30DA7 /* opt */, + A9F7B18929425A1800B30DA7 /* table.h */, + A9F7B31629425A1800B30DA7 /* ext_inst.h */, + A9F7B31729425A1800B30DA7 /* diagnostic.cpp */, + A9F7B31829425A1800B30DA7 /* latest_version_spirv_header.h */, + A9F7B31929425A1800B30DA7 /* libspirv.cpp */, + A9F7B31A29425A1800B30DA7 /* instruction.h */, + A9F7B31B29425A1800B30DA7 /* spirv_optimizer_options.h */, + A9F7B31C29425A1800B30DA7 /* opcode.h */, + A9F7B31D29425A1800B30DA7 /* operand.cpp */, + A9F7B31E29425A1800B30DA7 /* latest_version_glsl_std_450_header.h */, + A9F7B31F29425A1800B30DA7 /* extensions.h */, + A9F7B32029425A1800B30DA7 /* disassemble.cpp */, + A9F7B32129425A1800B30DA7 /* binary.h */, + A9F7B32229425A1800B30DA7 /* text_handler.cpp */, + A9F7B32329425A1800B30DA7 /* val */, ); path = source; sourceTree = ""; }; - A9EE08B528FDD2550013FF99 /* lint */ = { + A9F7B01029425A1700B30DA7 /* lint */ = { isa = PBXGroup; children = ( - A9EE08B628FDD2550013FF99 /* CMakeLists.txt */, - A9EE08B728FDD2550013FF99 /* lint_divergent_derivatives.cpp */, - A9EE08B828FDD2550013FF99 /* linter.cpp */, - A9EE08B928FDD2550013FF99 /* divergence_analysis.cpp */, - A9EE08BA28FDD2550013FF99 /* lints.h */, - A9EE08BB28FDD2550013FF99 /* divergence_analysis.h */, + A9F7B01129425A1700B30DA7 /* CMakeLists.txt */, + A9F7B01229425A1700B30DA7 /* lint_divergent_derivatives.cpp */, + A9F7B01329425A1700B30DA7 /* linter.cpp */, + A9F7B01429425A1700B30DA7 /* divergence_analysis.cpp */, + A9F7B01529425A1700B30DA7 /* lints.h */, + A9F7B01629425A1700B30DA7 /* divergence_analysis.h */, ); path = lint; sourceTree = ""; }; - A9EE08C328FDD2550013FF99 /* util */ = { + A9F7B01E29425A1700B30DA7 /* util */ = { isa = PBXGroup; children = ( - A9EE08C428FDD2550013FF99 /* parse_number.h */, - A9EE08C528FDD2550013FF99 /* ilist_node.h */, - A9EE08C628FDD2550013FF99 /* make_unique.h */, - A9EE08C728FDD2550013FF99 /* string_utils.h */, - A9EE08C828FDD2550013FF99 /* small_vector.h */, - A9EE08C928FDD2550013FF99 /* hash_combine.h */, - A9EE08CA28FDD2550013FF99 /* timer.cpp */, - A9EE08CB28FDD2550013FF99 /* timer.h */, - A9EE08CC28FDD2550013FF99 /* string_utils.cpp */, - A9EE08CD28FDD2550013FF99 /* bit_vector.h */, - A9EE08CE28FDD2550013FF99 /* bitutils.h */, - A9EE08CF28FDD2550013FF99 /* hex_float.h */, - A9EE08D028FDD2550013FF99 /* parse_number.cpp */, - A9EE08D128FDD2550013FF99 /* bit_vector.cpp */, - A9EE08D228FDD2550013FF99 /* ilist.h */, + A9F7B01F29425A1700B30DA7 /* parse_number.h */, + A9F7B02029425A1700B30DA7 /* ilist_node.h */, + A9F7B02129425A1700B30DA7 /* make_unique.h */, + A9F7B02229425A1700B30DA7 /* string_utils.h */, + A9F7B02329425A1700B30DA7 /* small_vector.h */, + A9F7B02429425A1700B30DA7 /* hash_combine.h */, + A9F7B02529425A1700B30DA7 /* timer.cpp */, + A9F7B02629425A1700B30DA7 /* timer.h */, + A9F7B02729425A1700B30DA7 /* string_utils.cpp */, + A9F7B02829425A1700B30DA7 /* bit_vector.h */, + A9F7B02929425A1700B30DA7 /* bitutils.h */, + A9F7B02A29425A1700B30DA7 /* hex_float.h */, + A9F7B02B29425A1700B30DA7 /* parse_number.cpp */, + A9F7B02C29425A1700B30DA7 /* bit_vector.cpp */, + A9F7B02D29425A1700B30DA7 /* ilist.h */, ); path = util; sourceTree = ""; }; - A9EE08D528FDD2550013FF99 /* reduce */ = { + A9F7B03029425A1700B30DA7 /* reduce */ = { isa = PBXGroup; children = ( - A9EE08D628FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.h */, - A9EE08D728FDD2550013FF99 /* remove_selection_reduction_opportunity.cpp */, - A9EE08D828FDD2550013FF99 /* remove_block_reduction_opportunity.h */, - A9EE08D928FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h */, - A9EE08DA28FDD2550013FF99 /* reduction_pass.cpp */, - A9EE08DB28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.h */, - A9EE08DC28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.cpp */, - A9EE08DD28FDD2550013FF99 /* operand_to_const_reduction_opportunity_finder.h */, - A9EE08DE28FDD2550013FF99 /* CMakeLists.txt */, - A9EE08DF28FDD2550013FF99 /* reduction_util.cpp */, - A9EE08E028FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h */, - A9EE08E128FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */, - A9EE08E228FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h */, - A9EE08E328FDD2550013FF99 /* remove_function_reduction_opportunity_finder.cpp */, - A9EE08E428FDD2550013FF99 /* remove_instruction_reduction_opportunity.h */, - A9EE08E528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */, - A9EE08E628FDD2550013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */, - A9EE08E728FDD2550013FF99 /* remove_function_reduction_opportunity.cpp */, - A9EE08E828FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */, - A9EE08E928FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.cpp */, - A9EE08EA28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */, - A9EE08EB28FDD2550013FF99 /* remove_struct_member_reduction_opportunity.h */, - A9EE08EC28FDD2550013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h */, - A9EE08ED28FDD2550013FF99 /* merge_blocks_reduction_opportunity.cpp */, - A9EE08EE28FDD2550013FF99 /* change_operand_reduction_opportunity.cpp */, - A9EE08EF28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.h */, - A9EE08F028FDD2550013FF99 /* remove_function_reduction_opportunity.h */, - A9EE08F128FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h */, - A9EE08F228FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.h */, - A9EE08F328FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h */, - A9EE08F428FDD2550013FF99 /* remove_selection_reduction_opportunity.h */, - A9EE08F528FDD2550013FF99 /* remove_instruction_reduction_opportunity.cpp */, - A9EE08F628FDD2550013FF99 /* remove_selection_reduction_opportunity_finder.h */, - A9EE08F728FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.h */, - A9EE08F828FDD2550013FF99 /* pch_source_reduce.cpp */, - A9EE08F928FDD2550013FF99 /* remove_struct_member_reduction_opportunity.cpp */, - A9EE08FA28FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h */, - A9EE08FB28FDD2550013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp */, - A9EE08FC28FDD2550013FF99 /* reducer.cpp */, - A9EE08FD28FDD2550013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp */, - A9EE08FE28FDD2550013FF99 /* remove_function_reduction_opportunity_finder.h */, - A9EE08FF28FDD2550013FF99 /* pch_source_reduce.h */, - A9EE090028FDD2550013FF99 /* merge_blocks_reduction_opportunity_finder.cpp */, - A9EE090128FDD2550013FF99 /* reduction_opportunity.cpp */, - A9EE090228FDD2550013FF99 /* reducer.h */, - A9EE090328FDD2550013FF99 /* change_operand_to_undef_reduction_opportunity.cpp */, - A9EE090428FDD2550013FF99 /* reduction_opportunity.h */, - A9EE090528FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */, - A9EE090628FDD2550013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */, - A9EE090728FDD2550013FF99 /* reduction_opportunity_finder.h */, - A9EE090828FDD2550013FF99 /* change_operand_reduction_opportunity.h */, - A9EE090928FDD2550013FF99 /* remove_block_reduction_opportunity_finder.h */, - A9EE090A28FDD2550013FF99 /* remove_block_reduction_opportunity_finder.cpp */, - A9EE090B28FDD2550013FF99 /* reduction_util.h */, - A9EE090C28FDD2550013FF99 /* merge_blocks_reduction_opportunity.h */, - A9EE090D28FDD2550013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */, - A9EE090E28FDD2550013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp */, - A9EE090F28FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity.cpp */, - A9EE091028FDD2550013FF99 /* remove_block_reduction_opportunity.cpp */, - A9EE091128FDD2550013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */, - A9EE091228FDD2550013FF99 /* reduction_opportunity_finder.cpp */, - A9EE091328FDD2550013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp */, - A9EE091428FDD2550013FF99 /* reduction_pass.h */, + A9F7B03129425A1700B30DA7 /* operand_to_undef_reduction_opportunity_finder.h */, + A9F7B03229425A1700B30DA7 /* remove_selection_reduction_opportunity.cpp */, + A9F7B03329425A1700B30DA7 /* remove_block_reduction_opportunity.h */, + A9F7B03429425A1700B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.h */, + A9F7B03529425A1700B30DA7 /* reduction_pass.cpp */, + A9F7B03629425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity.h */, + A9F7B03729425A1700B30DA7 /* operand_to_const_reduction_opportunity_finder.cpp */, + A9F7B03829425A1700B30DA7 /* operand_to_const_reduction_opportunity_finder.h */, + A9F7B03929425A1700B30DA7 /* CMakeLists.txt */, + A9F7B03A29425A1700B30DA7 /* reduction_util.cpp */, + A9F7B03B29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.h */, + A9F7B03C29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.cpp */, + A9F7B03D29425A1700B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.h */, + A9F7B03E29425A1700B30DA7 /* remove_function_reduction_opportunity_finder.cpp */, + A9F7B03F29425A1700B30DA7 /* remove_instruction_reduction_opportunity.h */, + A9F7B04029425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h */, + A9F7B04129425A1700B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp */, + A9F7B04229425A1700B30DA7 /* remove_function_reduction_opportunity.cpp */, + A9F7B04329425A1700B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.cpp */, + A9F7B04429425A1700B30DA7 /* remove_selection_reduction_opportunity_finder.cpp */, + A9F7B04529425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp */, + A9F7B04629425A1700B30DA7 /* remove_struct_member_reduction_opportunity.h */, + A9F7B04729425A1700B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.h */, + A9F7B04829425A1700B30DA7 /* merge_blocks_reduction_opportunity.cpp */, + A9F7B04929425A1700B30DA7 /* change_operand_reduction_opportunity.cpp */, + A9F7B04A29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity.h */, + A9F7B04B29425A1700B30DA7 /* remove_function_reduction_opportunity.h */, + A9F7B04C29425A1700B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.h */, + A9F7B04D29425A1700B30DA7 /* change_operand_to_undef_reduction_opportunity.h */, + A9F7B04E29425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.h */, + A9F7B04F29425A1700B30DA7 /* remove_selection_reduction_opportunity.h */, + A9F7B05029425A1700B30DA7 /* remove_instruction_reduction_opportunity.cpp */, + A9F7B05129425A1700B30DA7 /* remove_selection_reduction_opportunity_finder.h */, + A9F7B05229425A1700B30DA7 /* merge_blocks_reduction_opportunity_finder.h */, + A9F7B05329425A1700B30DA7 /* pch_source_reduce.cpp */, + A9F7B05429425A1700B30DA7 /* remove_struct_member_reduction_opportunity.cpp */, + A9F7B05529425A1700B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.h */, + A9F7B05629425A1700B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.cpp */, + A9F7B05729425A1700B30DA7 /* reducer.cpp */, + A9F7B05829425A1700B30DA7 /* operand_to_undef_reduction_opportunity_finder.cpp */, + A9F7B05929425A1700B30DA7 /* remove_function_reduction_opportunity_finder.h */, + A9F7B05A29425A1700B30DA7 /* pch_source_reduce.h */, + A9F7B05B29425A1700B30DA7 /* merge_blocks_reduction_opportunity_finder.cpp */, + A9F7B05C29425A1700B30DA7 /* reduction_opportunity.cpp */, + A9F7B05D29425A1700B30DA7 /* reducer.h */, + A9F7B05E29425A1700B30DA7 /* change_operand_to_undef_reduction_opportunity.cpp */, + A9F7B05F29425A1700B30DA7 /* reduction_opportunity.h */, + A9F7B06029425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h */, + A9F7B06129425A1700B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.cpp */, + A9F7B06229425A1700B30DA7 /* reduction_opportunity_finder.h */, + A9F7B06329425A1700B30DA7 /* change_operand_reduction_opportunity.h */, + A9F7B06429425A1700B30DA7 /* remove_block_reduction_opportunity_finder.h */, + A9F7B06529425A1700B30DA7 /* remove_block_reduction_opportunity_finder.cpp */, + A9F7B06629425A1700B30DA7 /* reduction_util.h */, + A9F7B06729425A1700B30DA7 /* merge_blocks_reduction_opportunity.h */, + A9F7B06829425A1700B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp */, + A9F7B06929425A1700B30DA7 /* structured_loop_to_selection_reduction_opportunity.cpp */, + A9F7B06A29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity.cpp */, + A9F7B06B29425A1700B30DA7 /* remove_block_reduction_opportunity.cpp */, + A9F7B06C29425A1700B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.cpp */, + A9F7B06D29425A1700B30DA7 /* reduction_opportunity_finder.cpp */, + A9F7B06E29425A1700B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.cpp */, + A9F7B06F29425A1700B30DA7 /* reduction_pass.h */, ); path = reduce; sourceTree = ""; }; - A9EE092A28FDD2550013FF99 /* diff */ = { + A9F7B08529425A1700B30DA7 /* diff */ = { isa = PBXGroup; children = ( - A9EE092B28FDD2550013FF99 /* CMakeLists.txt */, - A9EE092C28FDD2550013FF99 /* diff.h */, - A9EE092D28FDD2550013FF99 /* lcs.h */, - A9EE092E28FDD2550013FF99 /* diff.cpp */, + A9F7B08629425A1700B30DA7 /* CMakeLists.txt */, + A9F7B08729425A1700B30DA7 /* diff.h */, + A9F7B08829425A1700B30DA7 /* lcs.h */, + A9F7B08929425A1700B30DA7 /* diff.cpp */, ); path = diff; sourceTree = ""; }; - A9EE093928FDD2550013FF99 /* link */ = { + A9F7B09429425A1700B30DA7 /* link */ = { isa = PBXGroup; children = ( - A9EE093A28FDD2550013FF99 /* CMakeLists.txt */, - A9EE093B28FDD2550013FF99 /* linker.cpp */, + A9F7B09529425A1700B30DA7 /* CMakeLists.txt */, + A9F7B09629425A1700B30DA7 /* linker.cpp */, ); path = link; sourceTree = ""; }; - A9EE094228FDD2550013FF99 /* opt */ = { + A9F7B09D29425A1700B30DA7 /* opt */ = { isa = PBXGroup; children = ( - A9EE094328FDD2550013FF99 /* optimizer.cpp */, - A9EE094428FDD2550013FF99 /* if_conversion.h */, - A9EE094528FDD2550013FF99 /* register_pressure.cpp */, - A9EE094628FDD2550013FF99 /* loop_utils.cpp */, - A9EE094728FDD2550013FF99 /* strip_nonsemantic_info_pass.h */, - A9EE094828FDD2550013FF99 /* spread_volatile_semantics.cpp */, - A9EE094928FDD2550013FF99 /* merge_return_pass.h */, - A9EE094A28FDD2550013FF99 /* inline_opaque_pass.h */, - A9EE094B28FDD2550013FF99 /* loop_fusion.h */, - A9EE094C28FDD2550013FF99 /* combine_access_chains.cpp */, - A9EE094D28FDD2550013FF99 /* build_module.cpp */, - A9EE094E28FDD2550013FF99 /* composite.h */, - A9EE094F28FDD2550013FF99 /* compact_ids_pass.h */, - A9EE095028FDD2550013FF99 /* register_pressure.h */, - A9EE095128FDD2550013FF99 /* tree_iterator.h */, - A9EE095228FDD2550013FF99 /* interface_var_sroa.h */, - A9EE095328FDD2550013FF99 /* graphics_robust_access_pass.h */, - A9EE095428FDD2550013FF99 /* local_single_store_elim_pass.h */, - A9EE095528FDD2550013FF99 /* reduce_load_size.h */, - A9EE095628FDD2550013FF99 /* code_sink.cpp */, - A9EE095728FDD2550013FF99 /* types.cpp */, - A9EE095828FDD2550013FF99 /* scalar_analysis.h */, - A9EE095928FDD2550013FF99 /* strip_debug_info_pass.h */, - A9EE095A28FDD2550013FF99 /* replace_desc_array_access_using_var_index.h */, - A9EE095B28FDD2550013FF99 /* cfg.cpp */, - A9EE095C28FDD2550013FF99 /* decoration_manager.cpp */, - A9EE095D28FDD2550013FF99 /* local_single_block_elim_pass.cpp */, - A9EE095E28FDD2550013FF99 /* freeze_spec_constant_value_pass.cpp */, - A9EE095F28FDD2550013FF99 /* replace_invalid_opc.h */, - A9EE096028FDD2550013FF99 /* local_access_chain_convert_pass.h */, - A9EE096128FDD2550013FF99 /* inst_bindless_check_pass.cpp */, - A9EE096228FDD2550013FF99 /* local_redundancy_elimination.cpp */, - A9EE096328FDD2550013FF99 /* CMakeLists.txt */, - A9EE096428FDD2550013FF99 /* instrument_pass.cpp */, - A9EE096528FDD2550013FF99 /* propagator.h */, - A9EE096628FDD2550013FF99 /* instruction_list.h */, - A9EE096728FDD2550013FF99 /* feature_manager.cpp */, - A9EE096828FDD2550013FF99 /* pass.cpp */, - A9EE096928FDD2550013FF99 /* loop_fission.cpp */, - A9EE096A28FDD2550013FF99 /* dominator_tree.cpp */, - A9EE096B28FDD2550013FF99 /* amd_ext_to_khr.h */, - A9EE096C28FDD2550013FF99 /* merge_return_pass.cpp */, - A9EE096D28FDD2550013FF99 /* ir_context.h */, - A9EE096E28FDD2550013FF99 /* eliminate_dead_constant_pass.cpp */, - A9EE096F28FDD2550013FF99 /* control_dependence.h */, - A9EE097028FDD2550013FF99 /* cfg_cleanup_pass.cpp */, - A9EE097128FDD2550013FF99 /* wrap_opkill.cpp */, - A9EE097228FDD2550013FF99 /* const_folding_rules.cpp */, - A9EE097328FDD2550013FF99 /* loop_unroller.h */, - A9EE097428FDD2550013FF99 /* strip_debug_info_pass.cpp */, - A9EE097528FDD2550013FF99 /* ssa_rewrite_pass.cpp */, - A9EE097628FDD2550013FF99 /* loop_dependence.cpp */, - A9EE097728FDD2550013FF99 /* unify_const_pass.h */, - A9EE097828FDD2550013FF99 /* ir_loader.h */, - A9EE097928FDD2550013FF99 /* inst_debug_printf_pass.cpp */, - A9EE097A28FDD2550013FF99 /* types.h */, - A9EE097B28FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.h */, - A9EE097C28FDD2550013FF99 /* mem_pass.cpp */, - A9EE097D28FDD2550013FF99 /* basic_block.h */, - A9EE097E28FDD2550013FF99 /* remove_duplicates_pass.cpp */, - A9EE097F28FDD2550013FF99 /* dead_variable_elimination.cpp */, - A9EE098028FDD2550013FF99 /* block_merge_pass.h */, - A9EE098128FDD2550013FF99 /* module.cpp */, - A9EE098228FDD2550013FF99 /* debug_info_manager.h */, - A9EE098328FDD2550013FF99 /* fold_spec_constant_op_and_composite_pass.cpp */, - A9EE098428FDD2550013FF99 /* loop_unswitch_pass.cpp */, - A9EE098528FDD2550013FF99 /* unify_const_pass.cpp */, - A9EE098628FDD2550013FF99 /* type_manager.cpp */, - A9EE098728FDD2550013FF99 /* private_to_local_pass.h */, - A9EE098828FDD2550013FF99 /* convert_to_half_pass.h */, - A9EE098928FDD2550013FF99 /* remove_dontinline_pass.h */, - A9EE098A28FDD2550013FF99 /* relax_float_ops_pass.h */, - A9EE098B28FDD2550013FF99 /* inline_pass.cpp */, - A9EE098C28FDD2550013FF99 /* def_use_manager.h */, - A9EE098D28FDD2550013FF99 /* ir_loader.cpp */, - A9EE098E28FDD2550013FF99 /* convert_to_sampled_image_pass.h */, - A9EE098F28FDD2550013FF99 /* cfg_cleanup_pass.h */, - A9EE099028FDD2550013FF99 /* licm_pass.cpp */, - A9EE099128FDD2550013FF99 /* eliminate_dead_functions_pass.cpp */, - A9EE099228FDD2550013FF99 /* local_redundancy_elimination.h */, - A9EE099328FDD2550013FF99 /* loop_peeling.h */, - A9EE099428FDD2550013FF99 /* vector_dce.cpp */, - A9EE099528FDD2550013FF99 /* block_merge_util.h */, - A9EE099628FDD2550013FF99 /* loop_unroller.cpp */, - A9EE099728FDD2550013FF99 /* desc_sroa.h */, - A9EE099828FDD2550013FF99 /* constants.cpp */, - A9EE099928FDD2550013FF99 /* loop_fusion_pass.h */, - A9EE099A28FDD2550013FF99 /* struct_cfg_analysis.h */, - A9EE099B28FDD2550013FF99 /* desc_sroa_util.cpp */, - A9EE099C28FDD2550013FF99 /* inst_buff_addr_check_pass.cpp */, - A9EE099D28FDD2550013FF99 /* def_use_manager.cpp */, - A9EE099E28FDD2550013FF99 /* wrap_opkill.h */, - A9EE099F28FDD2550013FF99 /* empty_pass.h */, - A9EE09A028FDD2550013FF99 /* eliminate_dead_input_components_pass.h */, - A9EE09A128FDD2550013FF99 /* decoration_manager.h */, - A9EE09A228FDD2550013FF99 /* ccp_pass.cpp */, - A9EE09A328FDD2550013FF99 /* local_single_block_elim_pass.h */, - A9EE09A428FDD2550013FF99 /* interp_fixup_pass.h */, - A9EE09A528FDD2550013FF99 /* pch_source_opt.cpp */, - A9EE09A628FDD2550013FF99 /* inst_buff_addr_check_pass.h */, - A9EE09A728FDD2550013FF99 /* strength_reduction_pass.h */, - A9EE09A828FDD2550013FF99 /* aggressive_dead_code_elim_pass.cpp */, - A9EE09A928FDD2550013FF99 /* eliminate_dead_functions_util.cpp */, - A9EE09AA28FDD2550013FF99 /* inst_debug_printf_pass.h */, - A9EE09AB28FDD2550013FF99 /* simplification_pass.cpp */, - A9EE09AC28FDD2550013FF99 /* dead_branch_elim_pass.cpp */, - A9EE09AD28FDD2550013FF99 /* flatten_decoration_pass.cpp */, - A9EE09AE28FDD2550013FF99 /* dead_insert_elim_pass.h */, - A9EE09AF28FDD2550013FF99 /* folding_rules.cpp */, - A9EE09B028FDD2550013FF99 /* freeze_spec_constant_value_pass.h */, - A9EE09B128FDD2550013FF99 /* ir_context.cpp */, - A9EE09B228FDD2550013FF99 /* instrument_pass.h */, - A9EE09B328FDD2550013FF99 /* mem_pass.h */, - A9EE09B428FDD2550013FF99 /* loop_descriptor.cpp */, - A9EE09B528FDD2550013FF99 /* eliminate_dead_members_pass.h */, - A9EE09B628FDD2550013FF99 /* function.cpp */, - A9EE09B728FDD2550013FF99 /* instruction_list.cpp */, - A9EE09B828FDD2550013FF99 /* control_dependence.cpp */, - A9EE09B928FDD2550013FF99 /* composite.cpp */, - A9EE09BA28FDD2550013FF99 /* convert_to_half_pass.cpp */, - A9EE09BB28FDD2550013FF99 /* inline_pass.h */, - A9EE09BC28FDD2550013FF99 /* loop_dependence.h */, - A9EE09BD28FDD2550013FF99 /* value_number_table.h */, - A9EE09BE28FDD2550013FF99 /* strip_nonsemantic_info_pass.cpp */, - A9EE09BF28FDD2550013FF99 /* flatten_decoration_pass.h */, - A9EE09C028FDD2550013FF99 /* if_conversion.cpp */, - A9EE09C128FDD2550013FF99 /* fix_func_call_arguments.cpp */, - A9EE09C228FDD2550013FF99 /* debug_info_manager.cpp */, - A9EE09C328FDD2550013FF99 /* inline_exhaustive_pass.h */, - A9EE09C428FDD2550013FF99 /* constants.h */, - A9EE09C528FDD2550013FF99 /* eliminate_dead_members_pass.cpp */, - A9EE09C628FDD2550013FF99 /* strength_reduction_pass.cpp */, - A9EE09C728FDD2550013FF99 /* desc_sroa.cpp */, - A9EE09C828FDD2550013FF99 /* block_merge_util.cpp */, - A9EE09C928FDD2550013FF99 /* upgrade_memory_model.h */, - A9EE09CA28FDD2550013FF99 /* copy_prop_arrays.cpp */, - A9EE09CB28FDD2550013FF99 /* pass_manager.cpp */, - A9EE09CC28FDD2550013FF99 /* inline_exhaustive_pass.cpp */, - A9EE09CD28FDD2550013FF99 /* loop_fission.h */, - A9EE09CE28FDD2550013FF99 /* workaround1209.h */, - A9EE09CF28FDD2550013FF99 /* loop_fusion_pass.cpp */, - A9EE09D028FDD2550013FF99 /* log.h */, - A9EE09D128FDD2550013FF99 /* copy_prop_arrays.h */, - A9EE09D228FDD2550013FF99 /* eliminate_dead_constant_pass.h */, - A9EE09D328FDD2550013FF99 /* dead_insert_elim_pass.cpp */, - A9EE09D428FDD2550013FF99 /* ssa_rewrite_pass.h */, - A9EE09D528FDD2550013FF99 /* scalar_analysis.cpp */, - A9EE09D628FDD2550013FF99 /* dead_variable_elimination.h */, - A9EE09D728FDD2550013FF99 /* block_merge_pass.cpp */, - A9EE09D828FDD2550013FF99 /* dominator_analysis.h */, - A9EE09D928FDD2550013FF99 /* convert_to_sampled_image_pass.cpp */, - A9EE09DA28FDD2550013FF99 /* pass.h */, - A9EE09DB28FDD2550013FF99 /* folding_rules.h */, - A9EE09DC28FDD2550013FF99 /* eliminate_dead_functions_pass.h */, - A9EE09DD28FDD2550013FF99 /* eliminate_dead_functions_util.h */, - A9EE09DE28FDD2550013FF99 /* fold.h */, - A9EE09DF28FDD2550013FF99 /* local_single_store_elim_pass.cpp */, - A9EE09E028FDD2550013FF99 /* dead_branch_elim_pass.h */, - A9EE09E128FDD2550013FF99 /* private_to_local_pass.cpp */, - A9EE09E228FDD2550013FF99 /* scalar_analysis_nodes.h */, - A9EE09E328FDD2550013FF99 /* propagator.cpp */, - A9EE09E428FDD2550013FF99 /* fix_storage_class.h */, - A9EE09E528FDD2550013FF99 /* loop_dependence_helpers.cpp */, - A9EE09E628FDD2550013FF99 /* set_spec_constant_default_value_pass.cpp */, - A9EE09E728FDD2550013FF99 /* passes.h */, - A9EE09E828FDD2550013FF99 /* fold.cpp */, - A9EE09E928FDD2550013FF99 /* amd_ext_to_khr.cpp */, - A9EE09EA28FDD2550013FF99 /* scalar_replacement_pass.cpp */, - A9EE09EB28FDD2550013FF99 /* simplification_pass.h */, - A9EE09EC28FDD2550013FF99 /* interface_var_sroa.cpp */, - A9EE09ED28FDD2550013FF99 /* remove_duplicates_pass.h */, - A9EE09EE28FDD2550013FF99 /* desc_sroa_util.h */, - A9EE09EF28FDD2550013FF99 /* redundancy_elimination.cpp */, - A9EE09F028FDD2550013FF99 /* reflect.h */, - A9EE09F128FDD2550013FF99 /* workaround1209.cpp */, - A9EE09F228FDD2550013FF99 /* null_pass.h */, - A9EE09F328FDD2550013FF99 /* relax_float_ops_pass.cpp */, - A9EE09F428FDD2550013FF99 /* const_folding_rules.h */, - A9EE09F528FDD2550013FF99 /* scalar_replacement_pass.h */, - A9EE09F628FDD2550013FF99 /* instruction.cpp */, - A9EE09F728FDD2550013FF99 /* pch_source_opt.h */, - A9EE09F828FDD2550013FF99 /* reduce_load_size.cpp */, - A9EE09F928FDD2550013FF99 /* redundancy_elimination.h */, - A9EE09FA28FDD2550013FF99 /* fix_storage_class.cpp */, - A9EE09FB28FDD2550013FF99 /* value_number_table.cpp */, - A9EE09FC28FDD2550013FF99 /* remove_unused_interface_variables_pass.cpp */, - A9EE09FD28FDD2550013FF99 /* inline_opaque_pass.cpp */, - A9EE09FE28FDD2550013FF99 /* replace_invalid_opc.cpp */, - A9EE09FF28FDD2550013FF99 /* loop_utils.h */, - A9EE0A0028FDD2550013FF99 /* module.h */, - A9EE0A0128FDD2550013FF99 /* dominator_analysis.cpp */, - A9EE0A0228FDD2550013FF99 /* ir_builder.h */, - A9EE0A0328FDD2550013FF99 /* replace_desc_array_access_using_var_index.cpp */, - A9EE0A0428FDD2550013FF99 /* loop_unswitch_pass.h */, - A9EE0A0528FDD2550013FF99 /* cfg.h */, - A9EE0A0628FDD2550013FF99 /* code_sink.h */, - A9EE0A0728FDD2550013FF99 /* dataflow.cpp */, - A9EE0A0828FDD2550013FF99 /* loop_descriptor.h */, - A9EE0A0928FDD2550013FF99 /* instruction.h */, - A9EE0A0A28FDD2550013FF99 /* aggressive_dead_code_elim_pass.h */, - A9EE0A0B28FDD2550013FF99 /* struct_cfg_analysis.cpp */, - A9EE0A0C28FDD2550013FF99 /* remove_dontinline_pass.cpp */, - A9EE0A0D28FDD2550013FF99 /* vector_dce.h */, - A9EE0A0E28FDD2550013FF99 /* combine_access_chains.h */, - A9EE0A0F28FDD2550013FF99 /* pass_manager.h */, - A9EE0A1028FDD2550013FF99 /* spread_volatile_semantics.h */, - A9EE0A1128FDD2550013FF99 /* local_access_chain_convert_pass.cpp */, - A9EE0A1228FDD2550013FF99 /* interp_fixup_pass.cpp */, - A9EE0A1328FDD2550013FF99 /* basic_block.cpp */, - A9EE0A1428FDD2550013FF99 /* iterator.h */, - A9EE0A1528FDD2550013FF99 /* licm_pass.h */, - A9EE0A1628FDD2550013FF99 /* build_module.h */, - A9EE0A1728FDD2550013FF99 /* ccp_pass.h */, - A9EE0A1828FDD2550013FF99 /* graphics_robust_access_pass.cpp */, - A9EE0A1928FDD2550013FF99 /* function.h */, - A9EE0A1A28FDD2550013FF99 /* fix_func_call_arguments.h */, - A9EE0A1B28FDD2550013FF99 /* loop_fusion.cpp */, - A9EE0A1C28FDD2550013FF99 /* eliminate_dead_input_components_pass.cpp */, - A9EE0A1D28FDD2550013FF99 /* upgrade_memory_model.cpp */, - A9EE0A1E28FDD2550013FF99 /* feature_manager.h */, - A9EE0A1F28FDD2550013FF99 /* dataflow.h */, - A9EE0A2028FDD2550013FF99 /* inst_bindless_check_pass.h */, - A9EE0A2128FDD2550013FF99 /* scalar_analysis_simplification.cpp */, - A9EE0A2228FDD2550013FF99 /* set_spec_constant_default_value_pass.h */, - A9EE0A2328FDD2550013FF99 /* dominator_tree.h */, - A9EE0A2428FDD2550013FF99 /* remove_unused_interface_variables_pass.h */, - A9EE0A2528FDD2550013FF99 /* type_manager.h */, - A9EE0A2628FDD2550013FF99 /* compact_ids_pass.cpp */, - A9EE0A2728FDD2550013FF99 /* loop_peeling.cpp */, + A9F7B09E29425A1700B30DA7 /* optimizer.cpp */, + A9F7B09F29425A1700B30DA7 /* if_conversion.h */, + A9F7B0A029425A1700B30DA7 /* register_pressure.cpp */, + A9F7B0A129425A1700B30DA7 /* loop_utils.cpp */, + A9F7B0A229425A1700B30DA7 /* strip_nonsemantic_info_pass.h */, + A9F7B0A329425A1700B30DA7 /* spread_volatile_semantics.cpp */, + A9F7B0A429425A1700B30DA7 /* merge_return_pass.h */, + A9F7B0A529425A1700B30DA7 /* inline_opaque_pass.h */, + A9F7B0A629425A1700B30DA7 /* loop_fusion.h */, + A9F7B0A729425A1700B30DA7 /* combine_access_chains.cpp */, + A9F7B0A829425A1700B30DA7 /* build_module.cpp */, + A9F7B0A929425A1700B30DA7 /* eliminate_dead_output_stores_pass.cpp */, + A9F7B0AA29425A1700B30DA7 /* composite.h */, + A9F7B0AB29425A1700B30DA7 /* liveness.cpp */, + A9F7B0AC29425A1700B30DA7 /* compact_ids_pass.h */, + A9F7B0AD29425A1700B30DA7 /* register_pressure.h */, + A9F7B0AE29425A1700B30DA7 /* tree_iterator.h */, + A9F7B0AF29425A1700B30DA7 /* interface_var_sroa.h */, + A9F7B0B029425A1700B30DA7 /* graphics_robust_access_pass.h */, + A9F7B0B129425A1700B30DA7 /* local_single_store_elim_pass.h */, + A9F7B0B229425A1700B30DA7 /* reduce_load_size.h */, + A9F7B0B329425A1700B30DA7 /* code_sink.cpp */, + A9F7B0B429425A1700B30DA7 /* types.cpp */, + A9F7B0B529425A1700B30DA7 /* scalar_analysis.h */, + A9F7B0B629425A1700B30DA7 /* strip_debug_info_pass.h */, + A9F7B0B729425A1700B30DA7 /* replace_desc_array_access_using_var_index.h */, + A9F7B0B829425A1700B30DA7 /* cfg.cpp */, + A9F7B0B929425A1700B30DA7 /* decoration_manager.cpp */, + A9F7B0BA29425A1700B30DA7 /* local_single_block_elim_pass.cpp */, + A9F7B0BB29425A1700B30DA7 /* freeze_spec_constant_value_pass.cpp */, + A9F7B0BC29425A1700B30DA7 /* replace_invalid_opc.h */, + A9F7B0BD29425A1700B30DA7 /* eliminate_dead_output_stores_pass.h */, + A9F7B0BE29425A1700B30DA7 /* local_access_chain_convert_pass.h */, + A9F7B0BF29425A1700B30DA7 /* inst_bindless_check_pass.cpp */, + A9F7B0C029425A1700B30DA7 /* local_redundancy_elimination.cpp */, + A9F7B0C129425A1700B30DA7 /* CMakeLists.txt */, + A9F7B0C229425A1700B30DA7 /* instrument_pass.cpp */, + A9F7B0C329425A1700B30DA7 /* propagator.h */, + A9F7B0C429425A1700B30DA7 /* instruction_list.h */, + A9F7B0C529425A1700B30DA7 /* feature_manager.cpp */, + A9F7B0C629425A1700B30DA7 /* pass.cpp */, + A9F7B0C729425A1700B30DA7 /* loop_fission.cpp */, + A9F7B0C829425A1700B30DA7 /* dominator_tree.cpp */, + A9F7B0C929425A1700B30DA7 /* amd_ext_to_khr.h */, + A9F7B0CA29425A1700B30DA7 /* merge_return_pass.cpp */, + A9F7B0CB29425A1700B30DA7 /* ir_context.h */, + A9F7B0CC29425A1700B30DA7 /* eliminate_dead_constant_pass.cpp */, + A9F7B0CD29425A1700B30DA7 /* control_dependence.h */, + A9F7B0CE29425A1700B30DA7 /* cfg_cleanup_pass.cpp */, + A9F7B0CF29425A1700B30DA7 /* wrap_opkill.cpp */, + A9F7B0D029425A1700B30DA7 /* eliminate_dead_io_components_pass.cpp */, + A9F7B0D129425A1700B30DA7 /* const_folding_rules.cpp */, + A9F7B0D229425A1700B30DA7 /* liveness.h */, + A9F7B0D329425A1700B30DA7 /* loop_unroller.h */, + A9F7B0D429425A1700B30DA7 /* strip_debug_info_pass.cpp */, + A9F7B0D529425A1700B30DA7 /* ssa_rewrite_pass.cpp */, + A9F7B0D629425A1700B30DA7 /* loop_dependence.cpp */, + A9F7B0D729425A1700B30DA7 /* unify_const_pass.h */, + A9F7B0D829425A1700B30DA7 /* ir_loader.h */, + A9F7B0D929425A1700B30DA7 /* inst_debug_printf_pass.cpp */, + A9F7B0DA29425A1700B30DA7 /* types.h */, + A9F7B0DB29425A1700B30DA7 /* fold_spec_constant_op_and_composite_pass.h */, + A9F7B0DC29425A1700B30DA7 /* mem_pass.cpp */, + A9F7B0DD29425A1700B30DA7 /* basic_block.h */, + A9F7B0DE29425A1700B30DA7 /* remove_duplicates_pass.cpp */, + A9F7B0DF29425A1700B30DA7 /* dead_variable_elimination.cpp */, + A9F7B0E029425A1700B30DA7 /* block_merge_pass.h */, + A9F7B0E129425A1700B30DA7 /* module.cpp */, + A9F7B0E229425A1700B30DA7 /* debug_info_manager.h */, + A9F7B0E329425A1700B30DA7 /* fold_spec_constant_op_and_composite_pass.cpp */, + A9F7B0E429425A1700B30DA7 /* loop_unswitch_pass.cpp */, + A9F7B0E529425A1700B30DA7 /* unify_const_pass.cpp */, + A9F7B0E629425A1700B30DA7 /* type_manager.cpp */, + A9F7B0E729425A1700B30DA7 /* private_to_local_pass.h */, + A9F7B0E829425A1700B30DA7 /* convert_to_half_pass.h */, + A9F7B0E929425A1700B30DA7 /* remove_dontinline_pass.h */, + A9F7B0EA29425A1700B30DA7 /* relax_float_ops_pass.h */, + A9F7B0EB29425A1700B30DA7 /* inline_pass.cpp */, + A9F7B0EC29425A1700B30DA7 /* def_use_manager.h */, + A9F7B0ED29425A1700B30DA7 /* ir_loader.cpp */, + A9F7B0EE29425A1700B30DA7 /* convert_to_sampled_image_pass.h */, + A9F7B0EF29425A1700B30DA7 /* cfg_cleanup_pass.h */, + A9F7B0F029425A1700B30DA7 /* licm_pass.cpp */, + A9F7B0F129425A1700B30DA7 /* eliminate_dead_functions_pass.cpp */, + A9F7B0F229425A1700B30DA7 /* local_redundancy_elimination.h */, + A9F7B0F329425A1700B30DA7 /* loop_peeling.h */, + A9F7B0F429425A1700B30DA7 /* vector_dce.cpp */, + A9F7B0F529425A1700B30DA7 /* block_merge_util.h */, + A9F7B0F629425A1700B30DA7 /* loop_unroller.cpp */, + A9F7B0F729425A1700B30DA7 /* desc_sroa.h */, + A9F7B0F829425A1700B30DA7 /* constants.cpp */, + A9F7B0F929425A1700B30DA7 /* loop_fusion_pass.h */, + A9F7B0FA29425A1700B30DA7 /* struct_cfg_analysis.h */, + A9F7B0FB29425A1700B30DA7 /* desc_sroa_util.cpp */, + A9F7B0FC29425A1700B30DA7 /* inst_buff_addr_check_pass.cpp */, + A9F7B0FD29425A1700B30DA7 /* def_use_manager.cpp */, + A9F7B0FE29425A1700B30DA7 /* wrap_opkill.h */, + A9F7B0FF29425A1800B30DA7 /* empty_pass.h */, + A9F7B10029425A1800B30DA7 /* decoration_manager.h */, + A9F7B10129425A1800B30DA7 /* ccp_pass.cpp */, + A9F7B10229425A1800B30DA7 /* local_single_block_elim_pass.h */, + A9F7B10329425A1800B30DA7 /* interp_fixup_pass.h */, + A9F7B10429425A1800B30DA7 /* eliminate_dead_io_components_pass.h */, + A9F7B10529425A1800B30DA7 /* pch_source_opt.cpp */, + A9F7B10629425A1800B30DA7 /* inst_buff_addr_check_pass.h */, + A9F7B10729425A1800B30DA7 /* strength_reduction_pass.h */, + A9F7B10829425A1800B30DA7 /* aggressive_dead_code_elim_pass.cpp */, + A9F7B10929425A1800B30DA7 /* eliminate_dead_functions_util.cpp */, + A9F7B10A29425A1800B30DA7 /* inst_debug_printf_pass.h */, + A9F7B10B29425A1800B30DA7 /* simplification_pass.cpp */, + A9F7B10C29425A1800B30DA7 /* dead_branch_elim_pass.cpp */, + A9F7B10D29425A1800B30DA7 /* flatten_decoration_pass.cpp */, + A9F7B10E29425A1800B30DA7 /* dead_insert_elim_pass.h */, + A9F7B10F29425A1800B30DA7 /* folding_rules.cpp */, + A9F7B11029425A1800B30DA7 /* freeze_spec_constant_value_pass.h */, + A9F7B11129425A1800B30DA7 /* ir_context.cpp */, + A9F7B11229425A1800B30DA7 /* instrument_pass.h */, + A9F7B11329425A1800B30DA7 /* mem_pass.h */, + A9F7B11429425A1800B30DA7 /* loop_descriptor.cpp */, + A9F7B11529425A1800B30DA7 /* eliminate_dead_members_pass.h */, + A9F7B11629425A1800B30DA7 /* function.cpp */, + A9F7B11729425A1800B30DA7 /* instruction_list.cpp */, + A9F7B11829425A1800B30DA7 /* control_dependence.cpp */, + A9F7B11929425A1800B30DA7 /* composite.cpp */, + A9F7B11A29425A1800B30DA7 /* convert_to_half_pass.cpp */, + A9F7B11B29425A1800B30DA7 /* inline_pass.h */, + A9F7B11C29425A1800B30DA7 /* loop_dependence.h */, + A9F7B11D29425A1800B30DA7 /* value_number_table.h */, + A9F7B11E29425A1800B30DA7 /* strip_nonsemantic_info_pass.cpp */, + A9F7B11F29425A1800B30DA7 /* flatten_decoration_pass.h */, + A9F7B12029425A1800B30DA7 /* if_conversion.cpp */, + A9F7B12129425A1800B30DA7 /* fix_func_call_arguments.cpp */, + A9F7B12229425A1800B30DA7 /* debug_info_manager.cpp */, + A9F7B12329425A1800B30DA7 /* inline_exhaustive_pass.h */, + A9F7B12429425A1800B30DA7 /* constants.h */, + A9F7B12529425A1800B30DA7 /* eliminate_dead_members_pass.cpp */, + A9F7B12629425A1800B30DA7 /* strength_reduction_pass.cpp */, + A9F7B12729425A1800B30DA7 /* desc_sroa.cpp */, + A9F7B12829425A1800B30DA7 /* block_merge_util.cpp */, + A9F7B12929425A1800B30DA7 /* upgrade_memory_model.h */, + A9F7B12A29425A1800B30DA7 /* copy_prop_arrays.cpp */, + A9F7B12B29425A1800B30DA7 /* analyze_live_input_pass.h */, + A9F7B12C29425A1800B30DA7 /* pass_manager.cpp */, + A9F7B12D29425A1800B30DA7 /* inline_exhaustive_pass.cpp */, + A9F7B12E29425A1800B30DA7 /* loop_fission.h */, + A9F7B12F29425A1800B30DA7 /* workaround1209.h */, + A9F7B13029425A1800B30DA7 /* loop_fusion_pass.cpp */, + A9F7B13129425A1800B30DA7 /* log.h */, + A9F7B13229425A1800B30DA7 /* copy_prop_arrays.h */, + A9F7B13329425A1800B30DA7 /* eliminate_dead_constant_pass.h */, + A9F7B13429425A1800B30DA7 /* dead_insert_elim_pass.cpp */, + A9F7B13529425A1800B30DA7 /* ssa_rewrite_pass.h */, + A9F7B13629425A1800B30DA7 /* scalar_analysis.cpp */, + A9F7B13729425A1800B30DA7 /* dead_variable_elimination.h */, + A9F7B13829425A1800B30DA7 /* block_merge_pass.cpp */, + A9F7B13929425A1800B30DA7 /* dominator_analysis.h */, + A9F7B13A29425A1800B30DA7 /* convert_to_sampled_image_pass.cpp */, + A9F7B13B29425A1800B30DA7 /* pass.h */, + A9F7B13C29425A1800B30DA7 /* folding_rules.h */, + A9F7B13D29425A1800B30DA7 /* eliminate_dead_functions_pass.h */, + A9F7B13E29425A1800B30DA7 /* eliminate_dead_functions_util.h */, + A9F7B13F29425A1800B30DA7 /* fold.h */, + A9F7B14029425A1800B30DA7 /* local_single_store_elim_pass.cpp */, + A9F7B14129425A1800B30DA7 /* dead_branch_elim_pass.h */, + A9F7B14229425A1800B30DA7 /* private_to_local_pass.cpp */, + A9F7B14329425A1800B30DA7 /* scalar_analysis_nodes.h */, + A9F7B14429425A1800B30DA7 /* propagator.cpp */, + A9F7B14529425A1800B30DA7 /* fix_storage_class.h */, + A9F7B14629425A1800B30DA7 /* loop_dependence_helpers.cpp */, + A9F7B14729425A1800B30DA7 /* set_spec_constant_default_value_pass.cpp */, + A9F7B14829425A1800B30DA7 /* passes.h */, + A9F7B14929425A1800B30DA7 /* fold.cpp */, + A9F7B14A29425A1800B30DA7 /* amd_ext_to_khr.cpp */, + A9F7B14B29425A1800B30DA7 /* scalar_replacement_pass.cpp */, + A9F7B14C29425A1800B30DA7 /* simplification_pass.h */, + A9F7B14D29425A1800B30DA7 /* interface_var_sroa.cpp */, + A9F7B14E29425A1800B30DA7 /* remove_duplicates_pass.h */, + A9F7B14F29425A1800B30DA7 /* desc_sroa_util.h */, + A9F7B15029425A1800B30DA7 /* redundancy_elimination.cpp */, + A9F7B15129425A1800B30DA7 /* reflect.h */, + A9F7B15229425A1800B30DA7 /* workaround1209.cpp */, + A9F7B15329425A1800B30DA7 /* null_pass.h */, + A9F7B15429425A1800B30DA7 /* relax_float_ops_pass.cpp */, + A9F7B15529425A1800B30DA7 /* const_folding_rules.h */, + A9F7B15629425A1800B30DA7 /* scalar_replacement_pass.h */, + A9F7B15729425A1800B30DA7 /* instruction.cpp */, + A9F7B15829425A1800B30DA7 /* pch_source_opt.h */, + A9F7B15929425A1800B30DA7 /* reduce_load_size.cpp */, + A9F7B15A29425A1800B30DA7 /* redundancy_elimination.h */, + A9F7B15B29425A1800B30DA7 /* fix_storage_class.cpp */, + A9F7B15C29425A1800B30DA7 /* value_number_table.cpp */, + A9F7B15D29425A1800B30DA7 /* remove_unused_interface_variables_pass.cpp */, + A9F7B15E29425A1800B30DA7 /* inline_opaque_pass.cpp */, + A9F7B15F29425A1800B30DA7 /* replace_invalid_opc.cpp */, + A9F7B16029425A1800B30DA7 /* loop_utils.h */, + A9F7B16129425A1800B30DA7 /* module.h */, + A9F7B16229425A1800B30DA7 /* dominator_analysis.cpp */, + A9F7B16329425A1800B30DA7 /* ir_builder.h */, + A9F7B16429425A1800B30DA7 /* replace_desc_array_access_using_var_index.cpp */, + A9F7B16529425A1800B30DA7 /* loop_unswitch_pass.h */, + A9F7B16629425A1800B30DA7 /* cfg.h */, + A9F7B16729425A1800B30DA7 /* code_sink.h */, + A9F7B16829425A1800B30DA7 /* dataflow.cpp */, + A9F7B16929425A1800B30DA7 /* loop_descriptor.h */, + A9F7B16A29425A1800B30DA7 /* instruction.h */, + A9F7B16B29425A1800B30DA7 /* aggressive_dead_code_elim_pass.h */, + A9F7B16C29425A1800B30DA7 /* struct_cfg_analysis.cpp */, + A9F7B16D29425A1800B30DA7 /* remove_dontinline_pass.cpp */, + A9F7B16E29425A1800B30DA7 /* vector_dce.h */, + A9F7B16F29425A1800B30DA7 /* combine_access_chains.h */, + A9F7B17029425A1800B30DA7 /* pass_manager.h */, + A9F7B17129425A1800B30DA7 /* spread_volatile_semantics.h */, + A9F7B17229425A1800B30DA7 /* local_access_chain_convert_pass.cpp */, + A9F7B17329425A1800B30DA7 /* interp_fixup_pass.cpp */, + A9F7B17429425A1800B30DA7 /* basic_block.cpp */, + A9F7B17529425A1800B30DA7 /* iterator.h */, + A9F7B17629425A1800B30DA7 /* licm_pass.h */, + A9F7B17729425A1800B30DA7 /* build_module.h */, + A9F7B17829425A1800B30DA7 /* ccp_pass.h */, + A9F7B17929425A1800B30DA7 /* graphics_robust_access_pass.cpp */, + A9F7B17A29425A1800B30DA7 /* function.h */, + A9F7B17B29425A1800B30DA7 /* fix_func_call_arguments.h */, + A9F7B17C29425A1800B30DA7 /* loop_fusion.cpp */, + A9F7B17D29425A1800B30DA7 /* analyze_live_input_pass.cpp */, + A9F7B17E29425A1800B30DA7 /* upgrade_memory_model.cpp */, + A9F7B17F29425A1800B30DA7 /* feature_manager.h */, + A9F7B18029425A1800B30DA7 /* dataflow.h */, + A9F7B18129425A1800B30DA7 /* inst_bindless_check_pass.h */, + A9F7B18229425A1800B30DA7 /* scalar_analysis_simplification.cpp */, + A9F7B18329425A1800B30DA7 /* set_spec_constant_default_value_pass.h */, + A9F7B18429425A1800B30DA7 /* dominator_tree.h */, + A9F7B18529425A1800B30DA7 /* remove_unused_interface_variables_pass.h */, + A9F7B18629425A1800B30DA7 /* type_manager.h */, + A9F7B18729425A1800B30DA7 /* compact_ids_pass.cpp */, + A9F7B18829425A1800B30DA7 /* loop_peeling.cpp */, ); path = opt; sourceTree = ""; }; - A9EE0BC228FDD2560013FF99 /* val */ = { + A9F7B32329425A1800B30DA7 /* val */ = { isa = PBXGroup; children = ( - A9EE0BC328FDD2560013FF99 /* validate_annotation.cpp */, - A9EE0BC428FDD2560013FF99 /* validate_misc.cpp */, - A9EE0BC528FDD2560013FF99 /* validate_cfg.cpp */, - A9EE0BC628FDD2560013FF99 /* validate_capability.cpp */, - A9EE0BC728FDD2560013FF99 /* construct.h */, - A9EE0BC828FDD2560013FF99 /* validate_barriers.cpp */, - A9EE0BC928FDD2560013FF99 /* validate_non_uniform.cpp */, - A9EE0BCA28FDD2560013FF99 /* validate_ray_query.cpp */, - A9EE0BCB28FDD2560013FF99 /* validate_ray_tracing.cpp */, - A9EE0BCC28FDD2560013FF99 /* validate_scopes.cpp */, - A9EE0BCD28FDD2560013FF99 /* validate_atomics.cpp */, - A9EE0BCE28FDD2560013FF99 /* basic_block.h */, - A9EE0BCF28FDD2560013FF99 /* validate_instruction.cpp */, - A9EE0BD028FDD2560013FF99 /* validate_decorations.cpp */, - A9EE0BD128FDD2560013FF99 /* validate_debug.cpp */, - A9EE0BD228FDD2560013FF99 /* validate_builtins.cpp */, - A9EE0BD328FDD2560013FF99 /* validate_interfaces.cpp */, - A9EE0BD428FDD2560013FF99 /* validate.cpp */, - A9EE0BD528FDD2560013FF99 /* validation_state.h */, - A9EE0BD628FDD2560013FF99 /* validate_constants.cpp */, - A9EE0BD728FDD2560013FF99 /* validate_bitwise.cpp */, - A9EE0BD828FDD2560013FF99 /* validate_extensions.cpp */, - A9EE0BD928FDD2560013FF99 /* construct.cpp */, - A9EE0BDA28FDD2560013FF99 /* function.cpp */, - A9EE0BDB28FDD2560013FF99 /* validate.h */, - A9EE0BDC28FDD2560013FF99 /* validate_adjacency.cpp */, - A9EE0BDD28FDD2560013FF99 /* validate_conversion.cpp */, - A9EE0BDE28FDD2560013FF99 /* validate_small_type_uses.cpp */, - A9EE0BDF28FDD2560013FF99 /* validate_scopes.h */, - A9EE0BE028FDD2560013FF99 /* validate_id.cpp */, - A9EE0BE128FDD2560013FF99 /* validate_memory_semantics.h */, - A9EE0BE228FDD2560013FF99 /* validate_arithmetics.cpp */, - A9EE0BE328FDD2560013FF99 /* validate_mode_setting.cpp */, - A9EE0BE428FDD2560013FF99 /* validate_memory_semantics.cpp */, - A9EE0BE528FDD2560013FF99 /* validate_logicals.cpp */, - A9EE0BE628FDD2560013FF99 /* validate_derivatives.cpp */, - A9EE0BE728FDD2560013FF99 /* validate_memory.cpp */, - A9EE0BE828FDD2560013FF99 /* validate_image.cpp */, - A9EE0BE928FDD2560013FF99 /* validate_literals.cpp */, - A9EE0BEA28FDD2560013FF99 /* instruction.cpp */, - A9EE0BEB28FDD2560013FF99 /* validate_type.cpp */, - A9EE0BEC28FDD2560013FF99 /* instruction.h */, - A9EE0BED28FDD2560013FF99 /* validate_mesh_shading.cpp */, - A9EE0BEE28FDD2560013FF99 /* validate_execution_limitations.cpp */, - A9EE0BEF28FDD2560013FF99 /* validate_layout.cpp */, - A9EE0BF028FDD2560013FF99 /* basic_block.cpp */, - A9EE0BF128FDD2560013FF99 /* validate_function.cpp */, - A9EE0BF228FDD2560013FF99 /* function.h */, - A9EE0BF328FDD2560013FF99 /* validate_composites.cpp */, - A9EE0BF428FDD2560013FF99 /* validation_state.cpp */, - A9EE0BF528FDD2560013FF99 /* validate_primitives.cpp */, - A9EE0BF628FDD2560013FF99 /* decoration.h */, + A9F7B32429425A1800B30DA7 /* validate_annotation.cpp */, + A9F7B32529425A1800B30DA7 /* validate_misc.cpp */, + A9F7B32629425A1800B30DA7 /* validate_cfg.cpp */, + A9F7B32729425A1800B30DA7 /* validate_capability.cpp */, + A9F7B32829425A1800B30DA7 /* construct.h */, + A9F7B32929425A1800B30DA7 /* validate_barriers.cpp */, + A9F7B32A29425A1800B30DA7 /* validate_non_uniform.cpp */, + A9F7B32B29425A1800B30DA7 /* validate_ray_query.cpp */, + A9F7B32C29425A1800B30DA7 /* validate_ray_tracing.cpp */, + A9F7B32D29425A1800B30DA7 /* validate_scopes.cpp */, + A9F7B32E29425A1800B30DA7 /* validate_atomics.cpp */, + A9F7B32F29425A1800B30DA7 /* basic_block.h */, + A9F7B33029425A1800B30DA7 /* validate_instruction.cpp */, + A9F7B33129425A1800B30DA7 /* validate_ray_tracing_reorder.cpp */, + A9F7B33229425A1800B30DA7 /* validate_decorations.cpp */, + A9F7B33329425A1800B30DA7 /* validate_debug.cpp */, + A9F7B33429425A1800B30DA7 /* validate_builtins.cpp */, + A9F7B33529425A1800B30DA7 /* validate_interfaces.cpp */, + A9F7B33629425A1800B30DA7 /* validate.cpp */, + A9F7B33729425A1800B30DA7 /* validation_state.h */, + A9F7B33829425A1800B30DA7 /* validate_constants.cpp */, + A9F7B33929425A1800B30DA7 /* validate_bitwise.cpp */, + A9F7B33A29425A1800B30DA7 /* validate_extensions.cpp */, + A9F7B33B29425A1800B30DA7 /* construct.cpp */, + A9F7B33C29425A1800B30DA7 /* function.cpp */, + A9F7B33D29425A1800B30DA7 /* validate.h */, + A9F7B33E29425A1800B30DA7 /* validate_adjacency.cpp */, + A9F7B33F29425A1800B30DA7 /* validate_conversion.cpp */, + A9F7B34029425A1800B30DA7 /* validate_small_type_uses.cpp */, + A9F7B34129425A1800B30DA7 /* validate_scopes.h */, + A9F7B34229425A1800B30DA7 /* validate_id.cpp */, + A9F7B34329425A1800B30DA7 /* validate_memory_semantics.h */, + A9F7B34429425A1800B30DA7 /* validate_arithmetics.cpp */, + A9F7B34529425A1800B30DA7 /* validate_mode_setting.cpp */, + A9F7B34629425A1800B30DA7 /* validate_memory_semantics.cpp */, + A9F7B34729425A1800B30DA7 /* validate_logicals.cpp */, + A9F7B34829425A1800B30DA7 /* validate_derivatives.cpp */, + A9F7B34929425A1800B30DA7 /* validate_memory.cpp */, + A9F7B34A29425A1800B30DA7 /* validate_image.cpp */, + A9F7B34B29425A1800B30DA7 /* validate_literals.cpp */, + A9F7B34C29425A1800B30DA7 /* instruction.cpp */, + A9F7B34D29425A1800B30DA7 /* validate_type.cpp */, + A9F7B34E29425A1800B30DA7 /* instruction.h */, + A9F7B34F29425A1800B30DA7 /* validate_mesh_shading.cpp */, + A9F7B35029425A1800B30DA7 /* validate_execution_limitations.cpp */, + A9F7B35129425A1800B30DA7 /* validate_layout.cpp */, + A9F7B35229425A1800B30DA7 /* basic_block.cpp */, + A9F7B35329425A1800B30DA7 /* validate_function.cpp */, + A9F7B35429425A1800B30DA7 /* function.h */, + A9F7B35529425A1800B30DA7 /* validate_composites.cpp */, + A9F7B35629425A1800B30DA7 /* validation_state.cpp */, + A9F7B35729425A1800B30DA7 /* validate_primitives.cpp */, + A9F7B35829425A1800B30DA7 /* decoration.h */, ); path = val; sourceTree = ""; }; - A9F55D24198BE6A7004EC31B = { - isa = PBXGroup; - children = ( - A9C2104521D14FD7006BA2D3 /* fetchDependencies */, - A9C2104721D15843006BA2D3 /* ExternalRevisions */, - A90FD9E921CC519E00B92BB2 /* External */, - A9679AAB21D2699800856BF7 /* Scripts */, - A972AD2421CEE30F0013AB25 /* Products */, - ); - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -3184,210 +3219,213 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A9EE0DCF28FDD2560013FF99 /* replace_invalid_opc.h in Headers */, - A9EE0E1728FDD2560013FF99 /* ir_loader.h in Headers */, - A9EE0D4E28FDD2560013FF99 /* text_handler.h in Headers */, - A9EE0C2228FDD2560013FF99 /* parse_number.h in Headers */, - A9EE0C2828FDD2560013FF99 /* make_unique.h in Headers */, - A9EE0E6E28FDD2570013FF99 /* block_merge_util.h in Headers */, - A9EE0DBA28FDD2560013FF99 /* scalar_analysis.h in Headers */, - A9EE0D9C28FDD2560013FF99 /* composite.h in Headers */, - A9EE0F2228FDD2570013FF99 /* copy_prop_arrays.h in Headers */, - A9EE14CB28FDD2590013FF99 /* instruction.h in Headers */, - A9EE0E4728FDD2560013FF99 /* convert_to_half_pass.h in Headers */, - A9EE0C1028FDD2560013FF99 /* enum_set.h in Headers */, - A9EE0EAD28FDD2570013FF99 /* inst_debug_printf_pass.h in Headers */, - A9EE14E028FDD2590013FF99 /* binary.h in Headers */, - A9EE0FC728FDD2570013FF99 /* loop_descriptor.h in Headers */, - A9EE0FCA28FDD2570013FF99 /* instruction.h in Headers */, - A9EE101E28FDD2570013FF99 /* type_manager.h in Headers */, - A9EE0E6828FDD2570013FF99 /* loop_peeling.h in Headers */, - A9EE0EB928FDD2570013FF99 /* dead_insert_elim_pass.h in Headers */, - A9EE0C0A28FDD2560013FF99 /* lints.h in Headers */, - A9EE0CDC28FDD2560013FF99 /* reduction_opportunity.h in Headers */, - A9EE0FAF28FDD2570013FF99 /* module.h in Headers */, - A9EE0F3728FDD2570013FF99 /* dominator_analysis.h in Headers */, - A9EE0D9028FDD2560013FF99 /* inline_opaque_pass.h in Headers */, - A9EE0F7928FDD2570013FF99 /* desc_sroa_util.h in Headers */, - A9EE0E2028FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.h in Headers */, - A9EE0E5928FDD2570013FF99 /* convert_to_sampled_image_pass.h in Headers */, - A9EE14D728FDD2590013FF99 /* latest_version_glsl_std_450_header.h in Headers */, - A9EE0DD228FDD2560013FF99 /* local_access_chain_convert_pass.h in Headers */, - A9EE0E8C28FDD2570013FF99 /* empty_pass.h in Headers */, - A9EE100F28FDD2570013FF99 /* inst_bindless_check_pass.h in Headers */, - A9EE0D1828FDD2560013FF99 /* pch_source.h in Headers */, - A9EE153A28FDD2590013FF99 /* validate_scopes.h in Headers */, - A9EE0DAB28FDD2560013FF99 /* graphics_robust_access_pass.h in Headers */, - A9EE0E4428FDD2560013FF99 /* private_to_local_pass.h in Headers */, - A9EE100928FDD2570013FF99 /* feature_manager.h in Headers */, - A9EE0C6A28FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.h in Headers */, - A9EE14D128FDD2590013FF99 /* opcode.h in Headers */, - A9EE0E9828FDD2570013FF99 /* local_single_block_elim_pass.h in Headers */, - A9EE0F5528FDD2570013FF99 /* scalar_analysis_nodes.h in Headers */, - A9EE0D8728FDD2560013FF99 /* strip_nonsemantic_info_pass.h in Headers */, - A9EE0E2628FDD2560013FF99 /* basic_block.h in Headers */, - A9EE0EFB28FDD2570013FF99 /* constants.h in Headers */, - A9EE0C6428FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.h in Headers */, - A9EE14F228FDD2590013FF99 /* construct.h in Headers */, - A9EE0C4F28FDD2560013FF99 /* spirv_target_env.h in Headers */, - A9EE0E1D28FDD2560013FF99 /* types.h in Headers */, - A9EE0FD628FDD2570013FF99 /* vector_dce.h in Headers */, - A9EE0D9328FDD2560013FF99 /* loop_fusion.h in Headers */, - A9EE0EC828FDD2570013FF99 /* mem_pass.h in Headers */, - A9EE0FDC28FDD2570013FF99 /* pass_manager.h in Headers */, - A9EE0D7228FDD2560013FF99 /* print.h in Headers */, - A9EE150728FDD2590013FF99 /* basic_block.h in Headers */, - A9EE0C9D28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.h in Headers */, - A9EE0EE628FDD2570013FF99 /* value_number_table.h in Headers */, - A9EE0F7F28FDD2570013FF99 /* reflect.h in Headers */, - A9EE151C28FDD2590013FF99 /* validation_state.h in Headers */, - A9EE0E5C28FDD2570013FF99 /* cfg_cleanup_pass.h in Headers */, - A9EE0FDF28FDD2570013FF99 /* spread_volatile_semantics.h in Headers */, - A9EE0F3D28FDD2570013FF99 /* pass.h in Headers */, - A9EE0DA528FDD2560013FF99 /* tree_iterator.h in Headers */, - A9EE0F2528FDD2570013FF99 /* eliminate_dead_constant_pass.h in Headers */, - A9EE14BF28FDD2590013FF99 /* ext_inst.h in Headers */, - A9EE0C9128FDD2560013FF99 /* remove_struct_member_reduction_opportunity.h in Headers */, - A9EE0C3128FDD2560013FF99 /* hash_combine.h in Headers */, - A9EE0CDF28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */, - A9EE0DBD28FDD2560013FF99 /* strip_debug_info_pass.h in Headers */, - A9EE0E8928FDD2570013FF99 /* wrap_opkill.h in Headers */, - A9EE0CB528FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.h in Headers */, - A9EE0FF428FDD2570013FF99 /* ccp_pass.h in Headers */, - A9EE0F9A28FDD2570013FF99 /* redundancy_elimination.h in Headers */, - A9EE0E9228FDD2570013FF99 /* decoration_manager.h in Headers */, - A9EE0D0C28FDD2560013FF99 /* reduction_pass.h in Headers */, - A9EE0DAE28FDD2560013FF99 /* local_single_store_elim_pass.h in Headers */, - A9EE0D0F28FDD2560013FF99 /* latest_version_opencl_std_header.h in Headers */, - A9EE0C5B28FDD2560013FF99 /* remove_block_reduction_opportunity.h in Headers */, - A9EE0F1628FDD2570013FF99 /* loop_fission.h in Headers */, - A9EE0CCA28FDD2560013FF99 /* remove_function_reduction_opportunity_finder.h in Headers */, - A9EE0F8528FDD2570013FF99 /* null_pass.h in Headers */, - A9EE0C3D28FDD2560013FF99 /* bit_vector.h in Headers */, - A9EE0EA128FDD2570013FF99 /* inst_buff_addr_check_pass.h in Headers */, - A9EE0BFE28FDD2560013FF99 /* assembly_grammar.h in Headers */, - A9EE0E1428FDD2560013FF99 /* unify_const_pass.h in Headers */, - A9EE0C7628FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */, - A9EE0CF128FDD2560013FF99 /* reduction_util.h in Headers */, - A9EE14C528FDD2590013FF99 /* latest_version_spirv_header.h in Headers */, - A9EE0CEB28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.h in Headers */, - A9EE101528FDD2570013FF99 /* set_spec_constant_default_value_pass.h in Headers */, - A9EE0C5E28FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */, - A9EE0EE028FDD2570013FF99 /* inline_pass.h in Headers */, - A9EE0F2B28FDD2570013FF99 /* ssa_rewrite_pass.h in Headers */, - A9EE0D3028FDD2560013FF99 /* operand.h in Headers */, - A9EE0F0A28FDD2570013FF99 /* upgrade_memory_model.h in Headers */, - A9EE0F7028FDD2570013FF99 /* simplification_pass.h in Headers */, - A9EE0FAC28FDD2570013FF99 /* loop_utils.h in Headers */, - A9EE0D7828FDD2560013FF99 /* disassemble.h in Headers */, - A9EE0F4F28FDD2570013FF99 /* dead_branch_elim_pass.h in Headers */, - A9EE0CA328FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */, - A9EE0C2E28FDD2560013FF99 /* small_vector.h in Headers */, - A9EE0C2528FDD2560013FF99 /* ilist_node.h in Headers */, - A9EE0DF628FDD2560013FF99 /* ir_context.h in Headers */, - A9EE101B28FDD2570013FF99 /* remove_unused_interface_variables_pass.h in Headers */, - A9EE0DA828FDD2560013FF99 /* interface_var_sroa.h in Headers */, - A9EE0C7028FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */, - A9EE0FFD28FDD2570013FF99 /* fix_func_call_arguments.h in Headers */, - A9EE102728FDD2570013FF99 /* table.h in Headers */, - A9EE0E4D28FDD2560013FF99 /* relax_float_ops_pass.h in Headers */, - A9EE0F1F28FDD2570013FF99 /* log.h in Headers */, - A9EE0CAC28FDD2560013FF99 /* remove_selection_reduction_opportunity.h in Headers */, - A9EE0C1928FDD2560013FF99 /* text.h in Headers */, - A9EE0F4328FDD2570013FF99 /* eliminate_dead_functions_pass.h in Headers */, - A9EE157F28FDD2590013FF99 /* decoration.h in Headers */, - A9EE0C2B28FDD2560013FF99 /* string_utils.h in Headers */, - A9EE0CA628FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.h in Headers */, - A9EE0D4228FDD2560013FF99 /* lcs.h in Headers */, - A9EE0F8B28FDD2570013FF99 /* const_folding_rules.h in Headers */, - A9EE0C4C28FDD2560013FF99 /* ilist.h in Headers */, - A9EE0CA928FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */, - A9EE0DB128FDD2560013FF99 /* reduce_load_size.h in Headers */, - A9EE0DFC28FDD2560013FF99 /* control_dependence.h in Headers */, - A9EE101828FDD2570013FF99 /* dominator_tree.h in Headers */, - A9EE0D5D28FDD2560013FF99 /* diagnostic.h in Headers */, - A9EE0CF428FDD2560013FF99 /* merge_blocks_reduction_opportunity.h in Headers */, - A9EE0FCD28FDD2570013FF99 /* aggressive_dead_code_elim_pass.h in Headers */, - A9EE0D2128FDD2560013FF99 /* spirv_reducer_options.h in Headers */, - A9EE0FF128FDD2570013FF99 /* build_module.h in Headers */, - A9EE0FBE28FDD2570013FF99 /* cfg.h in Headers */, - A9EE0CCD28FDD2560013FF99 /* pch_source_reduce.h in Headers */, - A9EE0D5428FDD2560013FF99 /* name_mapper.h in Headers */, - A9EE0E0828FDD2560013FF99 /* loop_unroller.h in Headers */, - A9EE14DA28FDD2590013FF99 /* extensions.h in Headers */, - A9EE152E28FDD2590013FF99 /* validate.h in Headers */, - A9EE0DE128FDD2560013FF99 /* instruction_list.h in Headers */, - A9EE0FB528FDD2570013FF99 /* ir_builder.h in Headers */, - A9EE0DDE28FDD2560013FF99 /* propagator.h in Headers */, - A9EE0C9428FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */, - A9EE0E7A28FDD2570013FF99 /* loop_fusion_pass.h in Headers */, - A9EE0D3F28FDD2560013FF99 /* diff.h in Headers */, - A9EE0E4A28FDD2560013FF99 /* remove_dontinline_pass.h in Headers */, - A9EE0F3128FDD2570013FF99 /* dead_variable_elimination.h in Headers */, - A9EE0FD928FDD2570013FF99 /* combine_access_chains.h in Headers */, - A9EE0CBE28FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */, - A9EE156128FDD2590013FF99 /* instruction.h in Headers */, - A9EE0D1B28FDD2560013FF99 /* enum_string_mapping.h in Headers */, - A9EE0F4628FDD2570013FF99 /* eliminate_dead_functions_util.h in Headers */, - A9EE0C4328FDD2560013FF99 /* hex_float.h in Headers */, - A9EE0F7628FDD2570013FF99 /* remove_duplicates_pass.h in Headers */, - A9EE0E9B28FDD2570013FF99 /* interp_fixup_pass.h in Headers */, - A9EE0D4828FDD2560013FF99 /* spirv_validator_options.h in Headers */, - A9EE0CB228FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.h in Headers */, - A9EE0D2D28FDD2560013FF99 /* spirv_definition.h in Headers */, - A9EE0CA028FDD2560013FF99 /* remove_function_reduction_opportunity.h in Headers */, - A9EE0CD628FDD2560013FF99 /* reducer.h in Headers */, - A9EE0D6928FDD2560013FF99 /* common_debug_info.h in Headers */, - A9EE0D6028FDD2560013FF99 /* spirv_endian.h in Headers */, - A9EE0EA428FDD2570013FF99 /* strength_reduction_pass.h in Headers */, - A9EE0F4928FDD2570013FF99 /* fold.h in Headers */, - A9EE0FC128FDD2570013FF99 /* code_sink.h in Headers */, - A9EE0F9428FDD2570013FF99 /* pch_source_opt.h in Headers */, - A9EE0FBB28FDD2570013FF99 /* loop_unswitch_pass.h in Headers */, - A9EE0CE528FDD2560013FF99 /* reduction_opportunity_finder.h in Headers */, - A9EE0C0D28FDD2560013FF99 /* divergence_analysis.h in Headers */, - A9EE157328FDD2590013FF99 /* function.h in Headers */, - A9EE0FFA28FDD2570013FF99 /* function.h in Headers */, - A9EE0E2F28FDD2560013FF99 /* block_merge_pass.h in Headers */, - A9EE0C4028FDD2560013FF99 /* bitutils.h in Headers */, - A9EE0F5B28FDD2570013FF99 /* fix_storage_class.h in Headers */, - A9EE0F4028FDD2570013FF99 /* folding_rules.h in Headers */, - A9EE0D5128FDD2560013FF99 /* parsed_operand.h in Headers */, - A9EE0D3928FDD2560013FF99 /* spirv_constant.h in Headers */, - A9EE0D8D28FDD2560013FF99 /* merge_return_pass.h in Headers */, - A9EE0E7D28FDD2570013FF99 /* struct_cfg_analysis.h in Headers */, - A9EE0CE828FDD2560013FF99 /* change_operand_reduction_opportunity.h in Headers */, - A9EE0ECE28FDD2570013FF99 /* eliminate_dead_members_pass.h in Headers */, - A9EE0E8F28FDD2570013FF99 /* eliminate_dead_input_components_pass.h in Headers */, - A9EE0D1528FDD2560013FF99 /* cfa.h in Headers */, - A9EE0E7428FDD2570013FF99 /* desc_sroa.h in Headers */, - A9EE0DC028FDD2560013FF99 /* replace_desc_array_access_using_var_index.h in Headers */, - A9EE0FEE28FDD2570013FF99 /* licm_pass.h in Headers */, - A9EE154028FDD2590013FF99 /* validate_memory_semantics.h in Headers */, - A9EE0E6528FDD2570013FF99 /* local_redundancy_elimination.h in Headers */, - A9EE0EEC28FDD2570013FF99 /* flatten_decoration_pass.h in Headers */, - A9EE0EBF28FDD2570013FF99 /* freeze_spec_constant_value_pass.h in Headers */, - A9EE0DF028FDD2560013FF99 /* amd_ext_to_khr.h in Headers */, - A9EE0D9F28FDD2560013FF99 /* compact_ids_pass.h in Headers */, - A9EE0D3628FDD2560013FF99 /* macro.h in Headers */, - A9EE0C3728FDD2560013FF99 /* timer.h in Headers */, - A9EE0EE328FDD2570013FF99 /* loop_dependence.h in Headers */, - A9EE14CE28FDD2590013FF99 /* spirv_optimizer_options.h in Headers */, - A9EE0C7C28FDD2560013FF99 /* remove_instruction_reduction_opportunity.h in Headers */, - A9EE0F1928FDD2570013FF99 /* workaround1209.h in Headers */, - A9EE0EC528FDD2570013FF99 /* instrument_pass.h in Headers */, - A9EE0E5328FDD2570013FF99 /* def_use_manager.h in Headers */, - A9EE0E3528FDD2560013FF99 /* debug_info_manager.h in Headers */, - A9EE0C7F28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */, - A9EE100C28FDD2570013FF99 /* dataflow.h in Headers */, - A9EE0DA228FDD2560013FF99 /* register_pressure.h in Headers */, - A9EE0F8E28FDD2570013FF99 /* scalar_replacement_pass.h in Headers */, - A9EE0EF828FDD2570013FF99 /* inline_exhaustive_pass.h in Headers */, - A9EE0F6428FDD2570013FF99 /* passes.h in Headers */, - A9EE0FEB28FDD2570013FF99 /* iterator.h in Headers */, - A9EE0C5528FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.h in Headers */, - A9EE0BFB28FDD2560013FF99 /* spirv_fuzzer_options.h in Headers */, - A9EE0D7E28FDD2560013FF99 /* if_conversion.h in Headers */, + A9F7B53729425A1900B30DA7 /* replace_invalid_opc.h in Headers */, + A9F7B5CA29425A1900B30DA7 /* convert_to_sampled_image_pass.h in Headers */, + A9F7B4B029425A1900B30DA7 /* text_handler.h in Headers */, + A9F7B58E29425A1900B30DA7 /* types.h in Headers */, + A9F7B62A29425A1900B30DA7 /* dead_insert_elim_pass.h in Headers */, + A9F7B38429425A1800B30DA7 /* parse_number.h in Headers */, + A9F7B38A29425A1800B30DA7 /* make_unique.h in Headers */, + A9F7B76E29425A1900B30DA7 /* function.h in Headers */, + A9F7B61E29425A1900B30DA7 /* inst_debug_printf_pass.h in Headers */, + A9F7B5A029425A1900B30DA7 /* block_merge_pass.h in Headers */, + A9F7B52229425A1900B30DA7 /* scalar_analysis.h in Headers */, + A9F7B50129425A1900B30DA7 /* composite.h in Headers */, + A9F7B37229425A1800B30DA7 /* enum_set.h in Headers */, + A9F7B36C29425A1800B30DA7 /* lints.h in Headers */, + A9F7B63029425A1900B30DA7 /* freeze_spec_constant_value_pass.h in Headers */, + A9F7B43E29425A1800B30DA7 /* reduction_opportunity.h in Headers */, + A9F7B56129425A1900B30DA7 /* ir_context.h in Headers */, + A9F7B72029425A1900B30DA7 /* loop_utils.h in Headers */, + A9F7B5BE29425A1900B30DA7 /* relax_float_ops_pass.h in Headers */, + A9F7B6B129425A1900B30DA7 /* pass.h in Headers */, + A9F7B4F229425A1900B30DA7 /* inline_opaque_pass.h in Headers */, + A9F7B61529425A1900B30DA7 /* strength_reduction_pass.h in Headers */, + A9F7B47A29425A1800B30DA7 /* pch_source.h in Headers */, + A9F7B51329425A1900B30DA7 /* graphics_robust_access_pass.h in Headers */, + A9F7B6C929425A1900B30DA7 /* scalar_analysis_nodes.h in Headers */, + A9F7B3CC29425A1800B30DA7 /* operand_to_const_reduction_opportunity_finder.h in Headers */, + A9F7B59729425A1900B30DA7 /* basic_block.h in Headers */, + A9F7B4E929425A1900B30DA7 /* strip_nonsemantic_info_pass.h in Headers */, + A9F7B6BD29425A1900B30DA7 /* fold.h in Headers */, + A9F7BCD829425A1B00B30DA7 /* instruction.h in Headers */, + A9F7B58529425A1900B30DA7 /* unify_const_pass.h in Headers */, + A9F7B74A29425A1900B30DA7 /* vector_dce.h in Headers */, + A9F7B3C629425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity.h in Headers */, + A9F7B3B129425A1800B30DA7 /* spirv_target_env.h in Headers */, + A9F7B4F529425A1900B30DA7 /* loop_fusion.h in Headers */, + A9F7B4D429425A1900B30DA7 /* print.h in Headers */, + A9F7B3FF29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity.h in Headers */, + A9F7B78C29425A1900B30DA7 /* dominator_tree.h in Headers */, + A9F7B6C329425A1900B30DA7 /* dead_branch_elim_pass.h in Headers */, + A9F7B76829425A1900B30DA7 /* ccp_pass.h in Headers */, + A9F7BCA529425A1B00B30DA7 /* validate.h in Headers */, + A9F7BC6629425A1B00B30DA7 /* construct.h in Headers */, + A9F7B6F929425A1900B30DA7 /* null_pass.h in Headers */, + A9F7B66C29425A1900B30DA7 /* constants.h in Headers */, + A9F7BC9329425A1B00B30DA7 /* validation_state.h in Headers */, + A9F7B73E29425A1900B30DA7 /* instruction.h in Headers */, + A9F7B72F29425A1900B30DA7 /* loop_unswitch_pass.h in Headers */, + A9F7B50D29425A1900B30DA7 /* tree_iterator.h in Headers */, + A9F7B3F329425A1800B30DA7 /* remove_struct_member_reduction_opportunity.h in Headers */, + A9F7BCB129425A1B00B30DA7 /* validate_scopes.h in Headers */, + A9F7B6D829425A1900B30DA7 /* passes.h in Headers */, + A9F7B60929425A1900B30DA7 /* interp_fixup_pass.h in Headers */, + A9F7BCB729425A1B00B30DA7 /* validate_memory_semantics.h in Headers */, + A9F7B39329425A1800B30DA7 /* hash_combine.h in Headers */, + A9F7B44129425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */, + A9F7B52529425A1900B30DA7 /* strip_debug_info_pass.h in Headers */, + A9F7B70829425A1900B30DA7 /* pch_source_opt.h in Headers */, + A9F7B41729425A1800B30DA7 /* merge_blocks_reduction_opportunity_finder.h in Headers */, + A9F7B46E29425A1800B30DA7 /* reduction_pass.h in Headers */, + A9F7B51629425A1900B30DA7 /* local_single_store_elim_pass.h in Headers */, + A9F7B47129425A1800B30DA7 /* latest_version_opencl_std_header.h in Headers */, + A9F7B3BD29425A1800B30DA7 /* remove_block_reduction_opportunity.h in Headers */, + A9F7B42C29425A1800B30DA7 /* remove_function_reduction_opportunity_finder.h in Headers */, + A9F7BC3F29425A1B00B30DA7 /* instruction.h in Headers */, + A9F7B6B729425A1900B30DA7 /* eliminate_dead_functions_pass.h in Headers */, + A9F7B39F29425A1800B30DA7 /* bit_vector.h in Headers */, + A9F7B36029425A1800B30DA7 /* assembly_grammar.h in Headers */, + A9F7B65429425A1900B30DA7 /* loop_dependence.h in Headers */, + A9F7B3D829425A1800B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */, + A9F7B6B429425A1900B30DA7 /* folding_rules.h in Headers */, + A9F7B63F29425A1900B30DA7 /* eliminate_dead_members_pass.h in Headers */, + A9F7B45329425A1800B30DA7 /* reduction_util.h in Headers */, + A9F7B79B29425A1900B30DA7 /* table.h in Headers */, + A9F7BC7B29425A1B00B30DA7 /* basic_block.h in Headers */, + A9F7B44D29425A1800B30DA7 /* remove_block_reduction_opportunity_finder.h in Headers */, + A9F7B5BB29425A1900B30DA7 /* remove_dontinline_pass.h in Headers */, + A9F7B3C029425A1800B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */, + A9F7B49229425A1800B30DA7 /* operand.h in Headers */, + A9F7B4DA29425A1900B30DA7 /* disassemble.h in Headers */, + A9F7B40529425A1800B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */, + A9F7B65729425A1900B30DA7 /* value_number_table.h in Headers */, + A9F7B39029425A1800B30DA7 /* small_vector.h in Headers */, + A9F7B69329425A1900B30DA7 /* log.h in Headers */, + A9F7B38729425A1800B30DA7 /* ilist_node.h in Headers */, + A9F7B77D29425A1900B30DA7 /* feature_manager.h in Headers */, + A9F7B68A29425A1900B30DA7 /* loop_fission.h in Headers */, + A9F7B51029425A1900B30DA7 /* interface_var_sroa.h in Headers */, + A9F7B76229425A1900B30DA7 /* licm_pass.h in Headers */, + A9F7B5B829425A1900B30DA7 /* convert_to_half_pass.h in Headers */, + A9F7B3D229425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */, + A9F7B59129425A1900B30DA7 /* fold_spec_constant_op_and_composite_pass.h in Headers */, + A9F7B73229425A1900B30DA7 /* cfg.h in Headers */, + A9F7B40E29425A1800B30DA7 /* remove_selection_reduction_opportunity.h in Headers */, + A9F7BC4529425A1B00B30DA7 /* opcode.h in Headers */, + A9F7B65D29425A1900B30DA7 /* flatten_decoration_pass.h in Headers */, + A9F7B5B529425A1900B30DA7 /* private_to_local_pass.h in Headers */, + A9F7B5FA29425A1900B30DA7 /* wrap_opkill.h in Headers */, + A9F7B37B29425A1800B30DA7 /* text.h in Headers */, + A9F7B38D29425A1800B30DA7 /* string_utils.h in Headers */, + A9F7B5A629425A1900B30DA7 /* debug_info_manager.h in Headers */, + A9F7B6CF29425A1900B30DA7 /* fix_storage_class.h in Headers */, + A9F7B69629425A1900B30DA7 /* copy_prop_arrays.h in Headers */, + A9F7B40829425A1800B30DA7 /* change_operand_to_undef_reduction_opportunity.h in Headers */, + A9F7B4A429425A1900B30DA7 /* lcs.h in Headers */, + A9F7B3AE29425A1800B30DA7 /* ilist.h in Headers */, + A9F7B40B29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */, + A9F7BCEA29425A1B00B30DA7 /* function.h in Headers */, + A9F7B69929425A1900B30DA7 /* eliminate_dead_constant_pass.h in Headers */, + A9F7B51929425A1900B30DA7 /* reduce_load_size.h in Headers */, + A9F7B78929425A1900B30DA7 /* set_spec_constant_default_value_pass.h in Headers */, + A9F7B4BF29425A1900B30DA7 /* diagnostic.h in Headers */, + A9F7B78029425A1900B30DA7 /* dataflow.h in Headers */, + A9F7B45629425A1800B30DA7 /* merge_blocks_reduction_opportunity.h in Headers */, + A9F7B72329425A1900B30DA7 /* module.h in Headers */, + A9F7BC4229425A1B00B30DA7 /* spirv_optimizer_options.h in Headers */, + A9F7BC3329425A1B00B30DA7 /* ext_inst.h in Headers */, + A9F7B48329425A1800B30DA7 /* spirv_reducer_options.h in Headers */, + A9F7BCF629425A1B00B30DA7 /* decoration.h in Headers */, + A9F7B61229425A1900B30DA7 /* inst_buff_addr_check_pass.h in Headers */, + A9F7B75F29425A1900B30DA7 /* iterator.h in Headers */, + A9F7BC4B29425A1B00B30DA7 /* latest_version_glsl_std_450_header.h in Headers */, + A9F7B42F29425A1800B30DA7 /* pch_source_reduce.h in Headers */, + A9F7B4B629425A1900B30DA7 /* name_mapper.h in Headers */, + A9F7B57629425A1900B30DA7 /* liveness.h in Headers */, + A9F7B5D629425A1900B30DA7 /* local_redundancy_elimination.h in Headers */, + A9F7B3F629425A1800B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */, + A9F7B54C29425A1900B30DA7 /* instruction_list.h in Headers */, + A9F7B4A129425A1900B30DA7 /* diff.h in Headers */, + A9F7B63629425A1900B30DA7 /* instrument_pass.h in Headers */, + A9F7BC5429425A1B00B30DA7 /* binary.h in Headers */, + A9F7B65129425A1900B30DA7 /* inline_pass.h in Headers */, + A9F7B5EB29425A1900B30DA7 /* loop_fusion_pass.h in Headers */, + A9F7B6A529425A1900B30DA7 /* dead_variable_elimination.h in Headers */, + A9F7B78F29425A1900B30DA7 /* remove_unused_interface_variables_pass.h in Headers */, + A9F7B42029425A1800B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */, + A9F7B6E429425A1900B30DA7 /* simplification_pass.h in Headers */, + A9F7B6EA29425A1900B30DA7 /* remove_duplicates_pass.h in Headers */, + A9F7B60C29425A1900B30DA7 /* eliminate_dead_io_components_pass.h in Headers */, + A9F7B47D29425A1800B30DA7 /* enum_string_mapping.h in Headers */, + A9F7B3A529425A1800B30DA7 /* hex_float.h in Headers */, + A9F7B4AA29425A1900B30DA7 /* spirv_validator_options.h in Headers */, + A9F7B6ED29425A1900B30DA7 /* desc_sroa_util.h in Headers */, + A9F7B41429425A1800B30DA7 /* remove_selection_reduction_opportunity_finder.h in Headers */, + A9F7B75029425A1900B30DA7 /* pass_manager.h in Headers */, + A9F7B6AB29425A1900B30DA7 /* dominator_analysis.h in Headers */, + A9F7B48F29425A1800B30DA7 /* spirv_definition.h in Headers */, + A9F7B5DF29425A1900B30DA7 /* block_merge_util.h in Headers */, + A9F7B40229425A1800B30DA7 /* remove_function_reduction_opportunity.h in Headers */, + A9F7B43829425A1800B30DA7 /* reducer.h in Headers */, + A9F7B5C429425A1900B30DA7 /* def_use_manager.h in Headers */, + A9F7B79229425A1900B30DA7 /* type_manager.h in Headers */, + A9F7B4CB29425A1900B30DA7 /* common_debug_info.h in Headers */, + A9F7B5CD29425A1900B30DA7 /* cfg_cleanup_pass.h in Headers */, + A9F7B5E529425A1900B30DA7 /* desc_sroa.h in Headers */, + A9F7B60629425A1900B30DA7 /* local_single_block_elim_pass.h in Headers */, + A9F7B4C229425A1900B30DA7 /* spirv_endian.h in Headers */, + A9F7B70E29425A1900B30DA7 /* redundancy_elimination.h in Headers */, + A9F7B74D29425A1900B30DA7 /* combine_access_chains.h in Headers */, + A9F7BC3929425A1B00B30DA7 /* latest_version_spirv_header.h in Headers */, + A9F7B53A29425A1900B30DA7 /* eliminate_dead_output_stores_pass.h in Headers */, + A9F7B75329425A1900B30DA7 /* spread_volatile_semantics.h in Headers */, + A9F7B72929425A1900B30DA7 /* ir_builder.h in Headers */, + A9F7B76529425A1900B30DA7 /* build_module.h in Headers */, + A9F7B66929425A1900B30DA7 /* inline_exhaustive_pass.h in Headers */, + A9F7B44729425A1800B30DA7 /* reduction_opportunity_finder.h in Headers */, + A9F7B36F29425A1800B30DA7 /* divergence_analysis.h in Headers */, + A9F7B67B29425A1900B30DA7 /* upgrade_memory_model.h in Headers */, + A9F7B3A229425A1800B30DA7 /* bitutils.h in Headers */, + A9F7B4B329425A1900B30DA7 /* parsed_operand.h in Headers */, + A9F7B49B29425A1800B30DA7 /* spirv_constant.h in Headers */, + A9F7B77129425A1900B30DA7 /* fix_func_call_arguments.h in Headers */, + A9F7B6BA29425A1900B30DA7 /* eliminate_dead_functions_util.h in Headers */, + A9F7B57929425A1900B30DA7 /* loop_unroller.h in Headers */, + A9F7B69F29425A1900B30DA7 /* ssa_rewrite_pass.h in Headers */, + A9F7B54929425A1900B30DA7 /* propagator.h in Headers */, + A9F7B73B29425A1900B30DA7 /* loop_descriptor.h in Headers */, + A9F7B4EF29425A1900B30DA7 /* merge_return_pass.h in Headers */, + A9F7B5FD29425A1900B30DA7 /* empty_pass.h in Headers */, + A9F7B70229425A1900B30DA7 /* scalar_replacement_pass.h in Headers */, + A9F7B73529425A1900B30DA7 /* code_sink.h in Headers */, + A9F7B44A29425A1800B30DA7 /* change_operand_reduction_opportunity.h in Headers */, + A9F7B68129425A1900B30DA7 /* analyze_live_input_pass.h in Headers */, + A9F7B47729425A1800B30DA7 /* cfa.h in Headers */, + A9F7B55B29425A1900B30DA7 /* amd_ext_to_khr.h in Headers */, + A9F7B60029425A1900B30DA7 /* decoration_manager.h in Headers */, + A9F7B5D929425A1900B30DA7 /* loop_peeling.h in Headers */, + A9F7B52829425A1900B30DA7 /* replace_desc_array_access_using_var_index.h in Headers */, + A9F7B6F329425A1900B30DA7 /* reflect.h in Headers */, + A9F7B50729425A1900B30DA7 /* compact_ids_pass.h in Headers */, + A9F7B49829425A1800B30DA7 /* macro.h in Headers */, + A9F7B39929425A1800B30DA7 /* timer.h in Headers */, + A9F7BC4E29425A1B00B30DA7 /* extensions.h in Headers */, + A9F7B63929425A1900B30DA7 /* mem_pass.h in Headers */, + A9F7B53D29425A1900B30DA7 /* local_access_chain_convert_pass.h in Headers */, + A9F7B3DE29425A1800B30DA7 /* remove_instruction_reduction_opportunity.h in Headers */, + A9F7B56729425A1900B30DA7 /* control_dependence.h in Headers */, + A9F7B58829425A1900B30DA7 /* ir_loader.h in Headers */, + A9F7B3E129425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */, + A9F7B68D29425A1900B30DA7 /* workaround1209.h in Headers */, + A9F7B50A29425A1900B30DA7 /* register_pressure.h in Headers */, + A9F7B3B729425A1800B30DA7 /* operand_to_undef_reduction_opportunity_finder.h in Headers */, + A9F7B5EE29425A1900B30DA7 /* struct_cfg_analysis.h in Headers */, + A9F7B35D29425A1800B30DA7 /* spirv_fuzzer_options.h in Headers */, + A9F7B6FF29425A1900B30DA7 /* const_folding_rules.h in Headers */, + A9F7B78329425A1900B30DA7 /* inst_bindless_check_pass.h in Headers */, + A9F7B74129425A1900B30DA7 /* aggressive_dead_code_elim_pass.h in Headers */, + A9F7B4E029425A1900B30DA7 /* if_conversion.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3414,210 +3452,213 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A9EE0DCE28FDD2560013FF99 /* replace_invalid_opc.h in Headers */, - A9EE0E1628FDD2560013FF99 /* ir_loader.h in Headers */, - A9EE0D4D28FDD2560013FF99 /* text_handler.h in Headers */, - A9EE0C2128FDD2560013FF99 /* parse_number.h in Headers */, - A9EE0C2728FDD2560013FF99 /* make_unique.h in Headers */, - A9EE0E6D28FDD2570013FF99 /* block_merge_util.h in Headers */, - A9EE0DB928FDD2560013FF99 /* scalar_analysis.h in Headers */, - A9EE0D9B28FDD2560013FF99 /* composite.h in Headers */, - A9EE0F2128FDD2570013FF99 /* copy_prop_arrays.h in Headers */, - A9EE14CA28FDD2590013FF99 /* instruction.h in Headers */, - A9EE0E4628FDD2560013FF99 /* convert_to_half_pass.h in Headers */, - A9EE0C0F28FDD2560013FF99 /* enum_set.h in Headers */, - A9EE0EAC28FDD2570013FF99 /* inst_debug_printf_pass.h in Headers */, - A9EE14DF28FDD2590013FF99 /* binary.h in Headers */, - A9EE0FC628FDD2570013FF99 /* loop_descriptor.h in Headers */, - A9EE0FC928FDD2570013FF99 /* instruction.h in Headers */, - A9EE101D28FDD2570013FF99 /* type_manager.h in Headers */, - A9EE0E6728FDD2570013FF99 /* loop_peeling.h in Headers */, - A9EE0EB828FDD2570013FF99 /* dead_insert_elim_pass.h in Headers */, - A9EE0C0928FDD2560013FF99 /* lints.h in Headers */, - A9EE0CDB28FDD2560013FF99 /* reduction_opportunity.h in Headers */, - A9EE0FAE28FDD2570013FF99 /* module.h in Headers */, - A9EE0F3628FDD2570013FF99 /* dominator_analysis.h in Headers */, - A9EE0D8F28FDD2560013FF99 /* inline_opaque_pass.h in Headers */, - A9EE0F7828FDD2570013FF99 /* desc_sroa_util.h in Headers */, - A9EE0E1F28FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.h in Headers */, - A9EE0E5828FDD2570013FF99 /* convert_to_sampled_image_pass.h in Headers */, - A9EE14D628FDD2590013FF99 /* latest_version_glsl_std_450_header.h in Headers */, - A9EE0DD128FDD2560013FF99 /* local_access_chain_convert_pass.h in Headers */, - A9EE0E8B28FDD2570013FF99 /* empty_pass.h in Headers */, - A9EE100E28FDD2570013FF99 /* inst_bindless_check_pass.h in Headers */, - A9EE0D1728FDD2560013FF99 /* pch_source.h in Headers */, - A9EE153928FDD2590013FF99 /* validate_scopes.h in Headers */, - A9EE0DAA28FDD2560013FF99 /* graphics_robust_access_pass.h in Headers */, - A9EE0E4328FDD2560013FF99 /* private_to_local_pass.h in Headers */, - A9EE100828FDD2570013FF99 /* feature_manager.h in Headers */, - A9EE0C6928FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.h in Headers */, - A9EE14D028FDD2590013FF99 /* opcode.h in Headers */, - A9EE0E9728FDD2570013FF99 /* local_single_block_elim_pass.h in Headers */, - A9EE0F5428FDD2570013FF99 /* scalar_analysis_nodes.h in Headers */, - A9EE0D8628FDD2560013FF99 /* strip_nonsemantic_info_pass.h in Headers */, - A9EE0E2528FDD2560013FF99 /* basic_block.h in Headers */, - A9EE0EFA28FDD2570013FF99 /* constants.h in Headers */, - A9EE0C6328FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.h in Headers */, - A9EE14F128FDD2590013FF99 /* construct.h in Headers */, - A9EE0C4E28FDD2560013FF99 /* spirv_target_env.h in Headers */, - A9EE0E1C28FDD2560013FF99 /* types.h in Headers */, - A9EE0FD528FDD2570013FF99 /* vector_dce.h in Headers */, - A9EE0D9228FDD2560013FF99 /* loop_fusion.h in Headers */, - A9EE0EC728FDD2570013FF99 /* mem_pass.h in Headers */, - A9EE0FDB28FDD2570013FF99 /* pass_manager.h in Headers */, - A9EE0D7128FDD2560013FF99 /* print.h in Headers */, - A9EE150628FDD2590013FF99 /* basic_block.h in Headers */, - A9EE0C9C28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.h in Headers */, - A9EE0EE528FDD2570013FF99 /* value_number_table.h in Headers */, - A9EE0F7E28FDD2570013FF99 /* reflect.h in Headers */, - A9EE151B28FDD2590013FF99 /* validation_state.h in Headers */, - A9EE0E5B28FDD2570013FF99 /* cfg_cleanup_pass.h in Headers */, - A9EE0FDE28FDD2570013FF99 /* spread_volatile_semantics.h in Headers */, - A9EE0F3C28FDD2570013FF99 /* pass.h in Headers */, - A9EE0DA428FDD2560013FF99 /* tree_iterator.h in Headers */, - A9EE0F2428FDD2570013FF99 /* eliminate_dead_constant_pass.h in Headers */, - A9EE14BE28FDD2590013FF99 /* ext_inst.h in Headers */, - A9EE0C9028FDD2560013FF99 /* remove_struct_member_reduction_opportunity.h in Headers */, - A9EE0C3028FDD2560013FF99 /* hash_combine.h in Headers */, - A9EE0CDE28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */, - A9EE0DBC28FDD2560013FF99 /* strip_debug_info_pass.h in Headers */, - A9EE0E8828FDD2570013FF99 /* wrap_opkill.h in Headers */, - A9EE0CB428FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.h in Headers */, - A9EE0FF328FDD2570013FF99 /* ccp_pass.h in Headers */, - A9EE0F9928FDD2570013FF99 /* redundancy_elimination.h in Headers */, - A9EE0E9128FDD2570013FF99 /* decoration_manager.h in Headers */, - A9EE0D0B28FDD2560013FF99 /* reduction_pass.h in Headers */, - A9EE0DAD28FDD2560013FF99 /* local_single_store_elim_pass.h in Headers */, - A9EE0D0E28FDD2560013FF99 /* latest_version_opencl_std_header.h in Headers */, - A9EE0C5A28FDD2560013FF99 /* remove_block_reduction_opportunity.h in Headers */, - A9EE0F1528FDD2570013FF99 /* loop_fission.h in Headers */, - A9EE0CC928FDD2560013FF99 /* remove_function_reduction_opportunity_finder.h in Headers */, - A9EE0F8428FDD2570013FF99 /* null_pass.h in Headers */, - A9EE0C3C28FDD2560013FF99 /* bit_vector.h in Headers */, - A9EE0EA028FDD2570013FF99 /* inst_buff_addr_check_pass.h in Headers */, - A9EE0BFD28FDD2560013FF99 /* assembly_grammar.h in Headers */, - A9EE0E1328FDD2560013FF99 /* unify_const_pass.h in Headers */, - A9EE0C7528FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */, - A9EE0CF028FDD2560013FF99 /* reduction_util.h in Headers */, - A9EE14C428FDD2590013FF99 /* latest_version_spirv_header.h in Headers */, - A9EE0CEA28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.h in Headers */, - A9EE101428FDD2570013FF99 /* set_spec_constant_default_value_pass.h in Headers */, - A9EE0C5D28FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */, - A9EE0EDF28FDD2570013FF99 /* inline_pass.h in Headers */, - A9EE0F2A28FDD2570013FF99 /* ssa_rewrite_pass.h in Headers */, - A9EE0D2F28FDD2560013FF99 /* operand.h in Headers */, - A9EE0F0928FDD2570013FF99 /* upgrade_memory_model.h in Headers */, - A9EE0F6F28FDD2570013FF99 /* simplification_pass.h in Headers */, - A9EE0FAB28FDD2570013FF99 /* loop_utils.h in Headers */, - A9EE0D7728FDD2560013FF99 /* disassemble.h in Headers */, - A9EE0F4E28FDD2570013FF99 /* dead_branch_elim_pass.h in Headers */, - A9EE0CA228FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */, - A9EE0C2D28FDD2560013FF99 /* small_vector.h in Headers */, - A9EE0C2428FDD2560013FF99 /* ilist_node.h in Headers */, - A9EE0DF528FDD2560013FF99 /* ir_context.h in Headers */, - A9EE101A28FDD2570013FF99 /* remove_unused_interface_variables_pass.h in Headers */, - A9EE0DA728FDD2560013FF99 /* interface_var_sroa.h in Headers */, - A9EE0C6F28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */, - A9EE0FFC28FDD2570013FF99 /* fix_func_call_arguments.h in Headers */, - A9EE102628FDD2570013FF99 /* table.h in Headers */, - A9EE0E4C28FDD2560013FF99 /* relax_float_ops_pass.h in Headers */, - A9EE0F1E28FDD2570013FF99 /* log.h in Headers */, - A9EE0CAB28FDD2560013FF99 /* remove_selection_reduction_opportunity.h in Headers */, - A9EE0C1828FDD2560013FF99 /* text.h in Headers */, - A9EE0F4228FDD2570013FF99 /* eliminate_dead_functions_pass.h in Headers */, - A9EE157E28FDD2590013FF99 /* decoration.h in Headers */, - A9EE0C2A28FDD2560013FF99 /* string_utils.h in Headers */, - A9EE0CA528FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.h in Headers */, - A9EE0D4128FDD2560013FF99 /* lcs.h in Headers */, - A9EE0F8A28FDD2570013FF99 /* const_folding_rules.h in Headers */, - A9EE0C4B28FDD2560013FF99 /* ilist.h in Headers */, - A9EE0CA828FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */, - A9EE0DB028FDD2560013FF99 /* reduce_load_size.h in Headers */, - A9EE0DFB28FDD2560013FF99 /* control_dependence.h in Headers */, - A9EE101728FDD2570013FF99 /* dominator_tree.h in Headers */, - A9EE0D5C28FDD2560013FF99 /* diagnostic.h in Headers */, - A9EE0CF328FDD2560013FF99 /* merge_blocks_reduction_opportunity.h in Headers */, - A9EE0FCC28FDD2570013FF99 /* aggressive_dead_code_elim_pass.h in Headers */, - A9EE0D2028FDD2560013FF99 /* spirv_reducer_options.h in Headers */, - A9EE0FF028FDD2570013FF99 /* build_module.h in Headers */, - A9EE0FBD28FDD2570013FF99 /* cfg.h in Headers */, - A9EE0CCC28FDD2560013FF99 /* pch_source_reduce.h in Headers */, - A9EE0D5328FDD2560013FF99 /* name_mapper.h in Headers */, - A9EE0E0728FDD2560013FF99 /* loop_unroller.h in Headers */, - A9EE14D928FDD2590013FF99 /* extensions.h in Headers */, - A9EE152D28FDD2590013FF99 /* validate.h in Headers */, - A9EE0DE028FDD2560013FF99 /* instruction_list.h in Headers */, - A9EE0FB428FDD2570013FF99 /* ir_builder.h in Headers */, - A9EE0DDD28FDD2560013FF99 /* propagator.h in Headers */, - A9EE0C9328FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */, - A9EE0E7928FDD2570013FF99 /* loop_fusion_pass.h in Headers */, - A9EE0D3E28FDD2560013FF99 /* diff.h in Headers */, - A9EE0E4928FDD2560013FF99 /* remove_dontinline_pass.h in Headers */, - A9EE0F3028FDD2570013FF99 /* dead_variable_elimination.h in Headers */, - A9EE0FD828FDD2570013FF99 /* combine_access_chains.h in Headers */, - A9EE0CBD28FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */, - A9EE156028FDD2590013FF99 /* instruction.h in Headers */, - A9EE0D1A28FDD2560013FF99 /* enum_string_mapping.h in Headers */, - A9EE0F4528FDD2570013FF99 /* eliminate_dead_functions_util.h in Headers */, - A9EE0C4228FDD2560013FF99 /* hex_float.h in Headers */, - A9EE0F7528FDD2570013FF99 /* remove_duplicates_pass.h in Headers */, - A9EE0E9A28FDD2570013FF99 /* interp_fixup_pass.h in Headers */, - A9EE0D4728FDD2560013FF99 /* spirv_validator_options.h in Headers */, - A9EE0CB128FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.h in Headers */, - A9EE0D2C28FDD2560013FF99 /* spirv_definition.h in Headers */, - A9EE0C9F28FDD2560013FF99 /* remove_function_reduction_opportunity.h in Headers */, - A9EE0CD528FDD2560013FF99 /* reducer.h in Headers */, - A9EE0D6828FDD2560013FF99 /* common_debug_info.h in Headers */, - A9EE0D5F28FDD2560013FF99 /* spirv_endian.h in Headers */, - A9EE0EA328FDD2570013FF99 /* strength_reduction_pass.h in Headers */, - A9EE0F4828FDD2570013FF99 /* fold.h in Headers */, - A9EE0FC028FDD2570013FF99 /* code_sink.h in Headers */, - A9EE0F9328FDD2570013FF99 /* pch_source_opt.h in Headers */, - A9EE0FBA28FDD2570013FF99 /* loop_unswitch_pass.h in Headers */, - A9EE0CE428FDD2560013FF99 /* reduction_opportunity_finder.h in Headers */, - A9EE0C0C28FDD2560013FF99 /* divergence_analysis.h in Headers */, - A9EE157228FDD2590013FF99 /* function.h in Headers */, - A9EE0FF928FDD2570013FF99 /* function.h in Headers */, - A9EE0E2E28FDD2560013FF99 /* block_merge_pass.h in Headers */, - A9EE0C3F28FDD2560013FF99 /* bitutils.h in Headers */, - A9EE0F5A28FDD2570013FF99 /* fix_storage_class.h in Headers */, - A9EE0F3F28FDD2570013FF99 /* folding_rules.h in Headers */, - A9EE0D5028FDD2560013FF99 /* parsed_operand.h in Headers */, - A9EE0D3828FDD2560013FF99 /* spirv_constant.h in Headers */, - A9EE0D8C28FDD2560013FF99 /* merge_return_pass.h in Headers */, - A9EE0E7C28FDD2570013FF99 /* struct_cfg_analysis.h in Headers */, - A9EE0CE728FDD2560013FF99 /* change_operand_reduction_opportunity.h in Headers */, - A9EE0ECD28FDD2570013FF99 /* eliminate_dead_members_pass.h in Headers */, - A9EE0E8E28FDD2570013FF99 /* eliminate_dead_input_components_pass.h in Headers */, - A9EE0D1428FDD2560013FF99 /* cfa.h in Headers */, - A9EE0E7328FDD2570013FF99 /* desc_sroa.h in Headers */, - A9EE0DBF28FDD2560013FF99 /* replace_desc_array_access_using_var_index.h in Headers */, - A9EE0FED28FDD2570013FF99 /* licm_pass.h in Headers */, - A9EE153F28FDD2590013FF99 /* validate_memory_semantics.h in Headers */, - A9EE0E6428FDD2570013FF99 /* local_redundancy_elimination.h in Headers */, - A9EE0EEB28FDD2570013FF99 /* flatten_decoration_pass.h in Headers */, - A9EE0EBE28FDD2570013FF99 /* freeze_spec_constant_value_pass.h in Headers */, - A9EE0DEF28FDD2560013FF99 /* amd_ext_to_khr.h in Headers */, - A9EE0D9E28FDD2560013FF99 /* compact_ids_pass.h in Headers */, - A9EE0D3528FDD2560013FF99 /* macro.h in Headers */, - A9EE0C3628FDD2560013FF99 /* timer.h in Headers */, - A9EE0EE228FDD2570013FF99 /* loop_dependence.h in Headers */, - A9EE14CD28FDD2590013FF99 /* spirv_optimizer_options.h in Headers */, - A9EE0C7B28FDD2560013FF99 /* remove_instruction_reduction_opportunity.h in Headers */, - A9EE0F1828FDD2570013FF99 /* workaround1209.h in Headers */, - A9EE0EC428FDD2570013FF99 /* instrument_pass.h in Headers */, - A9EE0E5228FDD2570013FF99 /* def_use_manager.h in Headers */, - A9EE0E3428FDD2560013FF99 /* debug_info_manager.h in Headers */, - A9EE0C7E28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */, - A9EE100B28FDD2570013FF99 /* dataflow.h in Headers */, - A9EE0DA128FDD2560013FF99 /* register_pressure.h in Headers */, - A9EE0F8D28FDD2570013FF99 /* scalar_replacement_pass.h in Headers */, - A9EE0EF728FDD2570013FF99 /* inline_exhaustive_pass.h in Headers */, - A9EE0F6328FDD2570013FF99 /* passes.h in Headers */, - A9EE0FEA28FDD2570013FF99 /* iterator.h in Headers */, - A9EE0C5428FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.h in Headers */, - A9EE0BFA28FDD2560013FF99 /* spirv_fuzzer_options.h in Headers */, - A9EE0D7D28FDD2560013FF99 /* if_conversion.h in Headers */, + A9F7B53629425A1900B30DA7 /* replace_invalid_opc.h in Headers */, + A9F7B5C929425A1900B30DA7 /* convert_to_sampled_image_pass.h in Headers */, + A9F7B4AF29425A1900B30DA7 /* text_handler.h in Headers */, + A9F7B58D29425A1900B30DA7 /* types.h in Headers */, + A9F7B62929425A1900B30DA7 /* dead_insert_elim_pass.h in Headers */, + A9F7B38329425A1800B30DA7 /* parse_number.h in Headers */, + A9F7B38929425A1800B30DA7 /* make_unique.h in Headers */, + A9F7B76D29425A1900B30DA7 /* function.h in Headers */, + A9F7B61D29425A1900B30DA7 /* inst_debug_printf_pass.h in Headers */, + A9F7B59F29425A1900B30DA7 /* block_merge_pass.h in Headers */, + A9F7B52129425A1900B30DA7 /* scalar_analysis.h in Headers */, + A9F7B50029425A1900B30DA7 /* composite.h in Headers */, + A9F7B37129425A1800B30DA7 /* enum_set.h in Headers */, + A9F7B36B29425A1800B30DA7 /* lints.h in Headers */, + A9F7B62F29425A1900B30DA7 /* freeze_spec_constant_value_pass.h in Headers */, + A9F7B43D29425A1800B30DA7 /* reduction_opportunity.h in Headers */, + A9F7B56029425A1900B30DA7 /* ir_context.h in Headers */, + A9F7B71F29425A1900B30DA7 /* loop_utils.h in Headers */, + A9F7B5BD29425A1900B30DA7 /* relax_float_ops_pass.h in Headers */, + A9F7B6B029425A1900B30DA7 /* pass.h in Headers */, + A9F7B4F129425A1900B30DA7 /* inline_opaque_pass.h in Headers */, + A9F7B61429425A1900B30DA7 /* strength_reduction_pass.h in Headers */, + A9F7B47929425A1800B30DA7 /* pch_source.h in Headers */, + A9F7B51229425A1900B30DA7 /* graphics_robust_access_pass.h in Headers */, + A9F7B6C829425A1900B30DA7 /* scalar_analysis_nodes.h in Headers */, + A9F7B3CB29425A1800B30DA7 /* operand_to_const_reduction_opportunity_finder.h in Headers */, + A9F7B59629425A1900B30DA7 /* basic_block.h in Headers */, + A9F7B4E829425A1900B30DA7 /* strip_nonsemantic_info_pass.h in Headers */, + A9F7B6BC29425A1900B30DA7 /* fold.h in Headers */, + A9F7BCD729425A1B00B30DA7 /* instruction.h in Headers */, + A9F7B58429425A1900B30DA7 /* unify_const_pass.h in Headers */, + A9F7B74929425A1900B30DA7 /* vector_dce.h in Headers */, + A9F7B3C529425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity.h in Headers */, + A9F7B3B029425A1800B30DA7 /* spirv_target_env.h in Headers */, + A9F7B4F429425A1900B30DA7 /* loop_fusion.h in Headers */, + A9F7B4D329425A1900B30DA7 /* print.h in Headers */, + A9F7B3FE29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity.h in Headers */, + A9F7B78B29425A1900B30DA7 /* dominator_tree.h in Headers */, + A9F7B6C229425A1900B30DA7 /* dead_branch_elim_pass.h in Headers */, + A9F7B76729425A1900B30DA7 /* ccp_pass.h in Headers */, + A9F7BCA429425A1B00B30DA7 /* validate.h in Headers */, + A9F7BC6529425A1B00B30DA7 /* construct.h in Headers */, + A9F7B6F829425A1900B30DA7 /* null_pass.h in Headers */, + A9F7B66B29425A1900B30DA7 /* constants.h in Headers */, + A9F7BC9229425A1B00B30DA7 /* validation_state.h in Headers */, + A9F7B73D29425A1900B30DA7 /* instruction.h in Headers */, + A9F7B72E29425A1900B30DA7 /* loop_unswitch_pass.h in Headers */, + A9F7B50C29425A1900B30DA7 /* tree_iterator.h in Headers */, + A9F7B3F229425A1800B30DA7 /* remove_struct_member_reduction_opportunity.h in Headers */, + A9F7BCB029425A1B00B30DA7 /* validate_scopes.h in Headers */, + A9F7B6D729425A1900B30DA7 /* passes.h in Headers */, + A9F7B60829425A1900B30DA7 /* interp_fixup_pass.h in Headers */, + A9F7BCB629425A1B00B30DA7 /* validate_memory_semantics.h in Headers */, + A9F7B39229425A1800B30DA7 /* hash_combine.h in Headers */, + A9F7B44029425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */, + A9F7B52429425A1900B30DA7 /* strip_debug_info_pass.h in Headers */, + A9F7B70729425A1900B30DA7 /* pch_source_opt.h in Headers */, + A9F7B41629425A1800B30DA7 /* merge_blocks_reduction_opportunity_finder.h in Headers */, + A9F7B46D29425A1800B30DA7 /* reduction_pass.h in Headers */, + A9F7B51529425A1900B30DA7 /* local_single_store_elim_pass.h in Headers */, + A9F7B47029425A1800B30DA7 /* latest_version_opencl_std_header.h in Headers */, + A9F7B3BC29425A1800B30DA7 /* remove_block_reduction_opportunity.h in Headers */, + A9F7B42B29425A1800B30DA7 /* remove_function_reduction_opportunity_finder.h in Headers */, + A9F7BC3E29425A1B00B30DA7 /* instruction.h in Headers */, + A9F7B6B629425A1900B30DA7 /* eliminate_dead_functions_pass.h in Headers */, + A9F7B39E29425A1800B30DA7 /* bit_vector.h in Headers */, + A9F7B35F29425A1800B30DA7 /* assembly_grammar.h in Headers */, + A9F7B65329425A1900B30DA7 /* loop_dependence.h in Headers */, + A9F7B3D729425A1800B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */, + A9F7B6B329425A1900B30DA7 /* folding_rules.h in Headers */, + A9F7B63E29425A1900B30DA7 /* eliminate_dead_members_pass.h in Headers */, + A9F7B45229425A1800B30DA7 /* reduction_util.h in Headers */, + A9F7B79A29425A1900B30DA7 /* table.h in Headers */, + A9F7BC7A29425A1B00B30DA7 /* basic_block.h in Headers */, + A9F7B44C29425A1800B30DA7 /* remove_block_reduction_opportunity_finder.h in Headers */, + A9F7B5BA29425A1900B30DA7 /* remove_dontinline_pass.h in Headers */, + A9F7B3BF29425A1800B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */, + A9F7B49129425A1800B30DA7 /* operand.h in Headers */, + A9F7B4D929425A1900B30DA7 /* disassemble.h in Headers */, + A9F7B40429425A1800B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */, + A9F7B65629425A1900B30DA7 /* value_number_table.h in Headers */, + A9F7B38F29425A1800B30DA7 /* small_vector.h in Headers */, + A9F7B69229425A1900B30DA7 /* log.h in Headers */, + A9F7B38629425A1800B30DA7 /* ilist_node.h in Headers */, + A9F7B77C29425A1900B30DA7 /* feature_manager.h in Headers */, + A9F7B68929425A1900B30DA7 /* loop_fission.h in Headers */, + A9F7B50F29425A1900B30DA7 /* interface_var_sroa.h in Headers */, + A9F7B76129425A1900B30DA7 /* licm_pass.h in Headers */, + A9F7B5B729425A1900B30DA7 /* convert_to_half_pass.h in Headers */, + A9F7B3D129425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */, + A9F7B59029425A1900B30DA7 /* fold_spec_constant_op_and_composite_pass.h in Headers */, + A9F7B73129425A1900B30DA7 /* cfg.h in Headers */, + A9F7B40D29425A1800B30DA7 /* remove_selection_reduction_opportunity.h in Headers */, + A9F7BC4429425A1B00B30DA7 /* opcode.h in Headers */, + A9F7B65C29425A1900B30DA7 /* flatten_decoration_pass.h in Headers */, + A9F7B5B429425A1900B30DA7 /* private_to_local_pass.h in Headers */, + A9F7B5F929425A1900B30DA7 /* wrap_opkill.h in Headers */, + A9F7B37A29425A1800B30DA7 /* text.h in Headers */, + A9F7B38C29425A1800B30DA7 /* string_utils.h in Headers */, + A9F7B5A529425A1900B30DA7 /* debug_info_manager.h in Headers */, + A9F7B6CE29425A1900B30DA7 /* fix_storage_class.h in Headers */, + A9F7B69529425A1900B30DA7 /* copy_prop_arrays.h in Headers */, + A9F7B40729425A1800B30DA7 /* change_operand_to_undef_reduction_opportunity.h in Headers */, + A9F7B4A329425A1900B30DA7 /* lcs.h in Headers */, + A9F7B3AD29425A1800B30DA7 /* ilist.h in Headers */, + A9F7B40A29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */, + A9F7BCE929425A1B00B30DA7 /* function.h in Headers */, + A9F7B69829425A1900B30DA7 /* eliminate_dead_constant_pass.h in Headers */, + A9F7B51829425A1900B30DA7 /* reduce_load_size.h in Headers */, + A9F7B78829425A1900B30DA7 /* set_spec_constant_default_value_pass.h in Headers */, + A9F7B4BE29425A1900B30DA7 /* diagnostic.h in Headers */, + A9F7B77F29425A1900B30DA7 /* dataflow.h in Headers */, + A9F7B45529425A1800B30DA7 /* merge_blocks_reduction_opportunity.h in Headers */, + A9F7B72229425A1900B30DA7 /* module.h in Headers */, + A9F7BC4129425A1B00B30DA7 /* spirv_optimizer_options.h in Headers */, + A9F7BC3229425A1B00B30DA7 /* ext_inst.h in Headers */, + A9F7B48229425A1800B30DA7 /* spirv_reducer_options.h in Headers */, + A9F7BCF529425A1B00B30DA7 /* decoration.h in Headers */, + A9F7B61129425A1900B30DA7 /* inst_buff_addr_check_pass.h in Headers */, + A9F7B75E29425A1900B30DA7 /* iterator.h in Headers */, + A9F7BC4A29425A1B00B30DA7 /* latest_version_glsl_std_450_header.h in Headers */, + A9F7B42E29425A1800B30DA7 /* pch_source_reduce.h in Headers */, + A9F7B4B529425A1900B30DA7 /* name_mapper.h in Headers */, + A9F7B57529425A1900B30DA7 /* liveness.h in Headers */, + A9F7B5D529425A1900B30DA7 /* local_redundancy_elimination.h in Headers */, + A9F7B3F529425A1800B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */, + A9F7B54B29425A1900B30DA7 /* instruction_list.h in Headers */, + A9F7B4A029425A1900B30DA7 /* diff.h in Headers */, + A9F7B63529425A1900B30DA7 /* instrument_pass.h in Headers */, + A9F7BC5329425A1B00B30DA7 /* binary.h in Headers */, + A9F7B65029425A1900B30DA7 /* inline_pass.h in Headers */, + A9F7B5EA29425A1900B30DA7 /* loop_fusion_pass.h in Headers */, + A9F7B6A429425A1900B30DA7 /* dead_variable_elimination.h in Headers */, + A9F7B78E29425A1900B30DA7 /* remove_unused_interface_variables_pass.h in Headers */, + A9F7B41F29425A1800B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */, + A9F7B6E329425A1900B30DA7 /* simplification_pass.h in Headers */, + A9F7B6E929425A1900B30DA7 /* remove_duplicates_pass.h in Headers */, + A9F7B60B29425A1900B30DA7 /* eliminate_dead_io_components_pass.h in Headers */, + A9F7B47C29425A1800B30DA7 /* enum_string_mapping.h in Headers */, + A9F7B3A429425A1800B30DA7 /* hex_float.h in Headers */, + A9F7B4A929425A1900B30DA7 /* spirv_validator_options.h in Headers */, + A9F7B6EC29425A1900B30DA7 /* desc_sroa_util.h in Headers */, + A9F7B41329425A1800B30DA7 /* remove_selection_reduction_opportunity_finder.h in Headers */, + A9F7B74F29425A1900B30DA7 /* pass_manager.h in Headers */, + A9F7B6AA29425A1900B30DA7 /* dominator_analysis.h in Headers */, + A9F7B48E29425A1800B30DA7 /* spirv_definition.h in Headers */, + A9F7B5DE29425A1900B30DA7 /* block_merge_util.h in Headers */, + A9F7B40129425A1800B30DA7 /* remove_function_reduction_opportunity.h in Headers */, + A9F7B43729425A1800B30DA7 /* reducer.h in Headers */, + A9F7B5C329425A1900B30DA7 /* def_use_manager.h in Headers */, + A9F7B79129425A1900B30DA7 /* type_manager.h in Headers */, + A9F7B4CA29425A1900B30DA7 /* common_debug_info.h in Headers */, + A9F7B5CC29425A1900B30DA7 /* cfg_cleanup_pass.h in Headers */, + A9F7B5E429425A1900B30DA7 /* desc_sroa.h in Headers */, + A9F7B60529425A1900B30DA7 /* local_single_block_elim_pass.h in Headers */, + A9F7B4C129425A1900B30DA7 /* spirv_endian.h in Headers */, + A9F7B70D29425A1900B30DA7 /* redundancy_elimination.h in Headers */, + A9F7B74C29425A1900B30DA7 /* combine_access_chains.h in Headers */, + A9F7BC3829425A1B00B30DA7 /* latest_version_spirv_header.h in Headers */, + A9F7B53929425A1900B30DA7 /* eliminate_dead_output_stores_pass.h in Headers */, + A9F7B75229425A1900B30DA7 /* spread_volatile_semantics.h in Headers */, + A9F7B72829425A1900B30DA7 /* ir_builder.h in Headers */, + A9F7B76429425A1900B30DA7 /* build_module.h in Headers */, + A9F7B66829425A1900B30DA7 /* inline_exhaustive_pass.h in Headers */, + A9F7B44629425A1800B30DA7 /* reduction_opportunity_finder.h in Headers */, + A9F7B36E29425A1800B30DA7 /* divergence_analysis.h in Headers */, + A9F7B67A29425A1900B30DA7 /* upgrade_memory_model.h in Headers */, + A9F7B3A129425A1800B30DA7 /* bitutils.h in Headers */, + A9F7B4B229425A1900B30DA7 /* parsed_operand.h in Headers */, + A9F7B49A29425A1800B30DA7 /* spirv_constant.h in Headers */, + A9F7B77029425A1900B30DA7 /* fix_func_call_arguments.h in Headers */, + A9F7B6B929425A1900B30DA7 /* eliminate_dead_functions_util.h in Headers */, + A9F7B57829425A1900B30DA7 /* loop_unroller.h in Headers */, + A9F7B69E29425A1900B30DA7 /* ssa_rewrite_pass.h in Headers */, + A9F7B54829425A1900B30DA7 /* propagator.h in Headers */, + A9F7B73A29425A1900B30DA7 /* loop_descriptor.h in Headers */, + A9F7B4EE29425A1900B30DA7 /* merge_return_pass.h in Headers */, + A9F7B5FC29425A1900B30DA7 /* empty_pass.h in Headers */, + A9F7B70129425A1900B30DA7 /* scalar_replacement_pass.h in Headers */, + A9F7B73429425A1900B30DA7 /* code_sink.h in Headers */, + A9F7B44929425A1800B30DA7 /* change_operand_reduction_opportunity.h in Headers */, + A9F7B68029425A1900B30DA7 /* analyze_live_input_pass.h in Headers */, + A9F7B47629425A1800B30DA7 /* cfa.h in Headers */, + A9F7B55A29425A1900B30DA7 /* amd_ext_to_khr.h in Headers */, + A9F7B5FF29425A1900B30DA7 /* decoration_manager.h in Headers */, + A9F7B5D829425A1900B30DA7 /* loop_peeling.h in Headers */, + A9F7B52729425A1900B30DA7 /* replace_desc_array_access_using_var_index.h in Headers */, + A9F7B6F229425A1900B30DA7 /* reflect.h in Headers */, + A9F7B50629425A1900B30DA7 /* compact_ids_pass.h in Headers */, + A9F7B49729425A1800B30DA7 /* macro.h in Headers */, + A9F7B39829425A1800B30DA7 /* timer.h in Headers */, + A9F7BC4D29425A1B00B30DA7 /* extensions.h in Headers */, + A9F7B63829425A1900B30DA7 /* mem_pass.h in Headers */, + A9F7B53C29425A1900B30DA7 /* local_access_chain_convert_pass.h in Headers */, + A9F7B3DD29425A1800B30DA7 /* remove_instruction_reduction_opportunity.h in Headers */, + A9F7B56629425A1900B30DA7 /* control_dependence.h in Headers */, + A9F7B58729425A1900B30DA7 /* ir_loader.h in Headers */, + A9F7B3E029425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */, + A9F7B68C29425A1900B30DA7 /* workaround1209.h in Headers */, + A9F7B50929425A1900B30DA7 /* register_pressure.h in Headers */, + A9F7B3B629425A1800B30DA7 /* operand_to_undef_reduction_opportunity_finder.h in Headers */, + A9F7B5ED29425A1900B30DA7 /* struct_cfg_analysis.h in Headers */, + A9F7B35C29425A1800B30DA7 /* spirv_fuzzer_options.h in Headers */, + A9F7B6FE29425A1900B30DA7 /* const_folding_rules.h in Headers */, + A9F7B78229425A1900B30DA7 /* inst_bindless_check_pass.h in Headers */, + A9F7B74029425A1900B30DA7 /* aggressive_dead_code_elim_pass.h in Headers */, + A9F7B4DF29425A1900B30DA7 /* if_conversion.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3625,210 +3666,213 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A9EE0DD028FDD2560013FF99 /* replace_invalid_opc.h in Headers */, - A9EE0E1828FDD2560013FF99 /* ir_loader.h in Headers */, - A9EE0D4F28FDD2560013FF99 /* text_handler.h in Headers */, - A9EE0C2328FDD2560013FF99 /* parse_number.h in Headers */, - A9EE0C2928FDD2560013FF99 /* make_unique.h in Headers */, - A9EE0E6F28FDD2570013FF99 /* block_merge_util.h in Headers */, - A9EE0DBB28FDD2560013FF99 /* scalar_analysis.h in Headers */, - A9EE0D9D28FDD2560013FF99 /* composite.h in Headers */, - A9EE0F2328FDD2570013FF99 /* copy_prop_arrays.h in Headers */, - A9EE14CC28FDD2590013FF99 /* instruction.h in Headers */, - A9EE0E4828FDD2560013FF99 /* convert_to_half_pass.h in Headers */, - A9EE0C1128FDD2560013FF99 /* enum_set.h in Headers */, - A9EE0EAE28FDD2570013FF99 /* inst_debug_printf_pass.h in Headers */, - A9EE14E128FDD2590013FF99 /* binary.h in Headers */, - A9EE0FC828FDD2570013FF99 /* loop_descriptor.h in Headers */, - A9EE0FCB28FDD2570013FF99 /* instruction.h in Headers */, - A9EE101F28FDD2570013FF99 /* type_manager.h in Headers */, - A9EE0E6928FDD2570013FF99 /* loop_peeling.h in Headers */, - A9EE0EBA28FDD2570013FF99 /* dead_insert_elim_pass.h in Headers */, - A9EE0C0B28FDD2560013FF99 /* lints.h in Headers */, - A9EE0CDD28FDD2560013FF99 /* reduction_opportunity.h in Headers */, - A9EE0FB028FDD2570013FF99 /* module.h in Headers */, - A9EE0F3828FDD2570013FF99 /* dominator_analysis.h in Headers */, - A9EE0D9128FDD2560013FF99 /* inline_opaque_pass.h in Headers */, - A9EE0F7A28FDD2570013FF99 /* desc_sroa_util.h in Headers */, - A9EE0E2128FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.h in Headers */, - A9EE0E5A28FDD2570013FF99 /* convert_to_sampled_image_pass.h in Headers */, - A9EE14D828FDD2590013FF99 /* latest_version_glsl_std_450_header.h in Headers */, - A9EE0DD328FDD2560013FF99 /* local_access_chain_convert_pass.h in Headers */, - A9EE0E8D28FDD2570013FF99 /* empty_pass.h in Headers */, - A9EE101028FDD2570013FF99 /* inst_bindless_check_pass.h in Headers */, - A9EE0D1928FDD2560013FF99 /* pch_source.h in Headers */, - A9EE153B28FDD2590013FF99 /* validate_scopes.h in Headers */, - A9EE0DAC28FDD2560013FF99 /* graphics_robust_access_pass.h in Headers */, - A9EE0E4528FDD2560013FF99 /* private_to_local_pass.h in Headers */, - A9EE100A28FDD2570013FF99 /* feature_manager.h in Headers */, - A9EE0C6B28FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.h in Headers */, - A9EE14D228FDD2590013FF99 /* opcode.h in Headers */, - A9EE0E9928FDD2570013FF99 /* local_single_block_elim_pass.h in Headers */, - A9EE0F5628FDD2570013FF99 /* scalar_analysis_nodes.h in Headers */, - A9EE0D8828FDD2560013FF99 /* strip_nonsemantic_info_pass.h in Headers */, - A9EE0E2728FDD2560013FF99 /* basic_block.h in Headers */, - A9EE0EFC28FDD2570013FF99 /* constants.h in Headers */, - A9EE0C6528FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.h in Headers */, - A9EE14F328FDD2590013FF99 /* construct.h in Headers */, - A9EE0C5028FDD2560013FF99 /* spirv_target_env.h in Headers */, - A9EE0E1E28FDD2560013FF99 /* types.h in Headers */, - A9EE0FD728FDD2570013FF99 /* vector_dce.h in Headers */, - A9EE0D9428FDD2560013FF99 /* loop_fusion.h in Headers */, - A9EE0EC928FDD2570013FF99 /* mem_pass.h in Headers */, - A9EE0FDD28FDD2570013FF99 /* pass_manager.h in Headers */, - A9EE0D7328FDD2560013FF99 /* print.h in Headers */, - A9EE150828FDD2590013FF99 /* basic_block.h in Headers */, - A9EE0C9E28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.h in Headers */, - A9EE0EE728FDD2570013FF99 /* value_number_table.h in Headers */, - A9EE0F8028FDD2570013FF99 /* reflect.h in Headers */, - A9EE151D28FDD2590013FF99 /* validation_state.h in Headers */, - A9EE0E5D28FDD2570013FF99 /* cfg_cleanup_pass.h in Headers */, - A9EE0FE028FDD2570013FF99 /* spread_volatile_semantics.h in Headers */, - A9EE0F3E28FDD2570013FF99 /* pass.h in Headers */, - A9EE0DA628FDD2560013FF99 /* tree_iterator.h in Headers */, - A9EE0F2628FDD2570013FF99 /* eliminate_dead_constant_pass.h in Headers */, - A9EE14C028FDD2590013FF99 /* ext_inst.h in Headers */, - A9EE0C9228FDD2560013FF99 /* remove_struct_member_reduction_opportunity.h in Headers */, - A9EE0C3228FDD2560013FF99 /* hash_combine.h in Headers */, - A9EE0CE028FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */, - A9EE0DBE28FDD2560013FF99 /* strip_debug_info_pass.h in Headers */, - A9EE0E8A28FDD2570013FF99 /* wrap_opkill.h in Headers */, - A9EE0CB628FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.h in Headers */, - A9EE0FF528FDD2570013FF99 /* ccp_pass.h in Headers */, - A9EE0F9B28FDD2570013FF99 /* redundancy_elimination.h in Headers */, - A9EE0E9328FDD2570013FF99 /* decoration_manager.h in Headers */, - A9EE0D0D28FDD2560013FF99 /* reduction_pass.h in Headers */, - A9EE0DAF28FDD2560013FF99 /* local_single_store_elim_pass.h in Headers */, - A9EE0D1028FDD2560013FF99 /* latest_version_opencl_std_header.h in Headers */, - A9EE0C5C28FDD2560013FF99 /* remove_block_reduction_opportunity.h in Headers */, - A9EE0F1728FDD2570013FF99 /* loop_fission.h in Headers */, - A9EE0CCB28FDD2560013FF99 /* remove_function_reduction_opportunity_finder.h in Headers */, - A9EE0F8628FDD2570013FF99 /* null_pass.h in Headers */, - A9EE0C3E28FDD2560013FF99 /* bit_vector.h in Headers */, - A9EE0EA228FDD2570013FF99 /* inst_buff_addr_check_pass.h in Headers */, - A9EE0BFF28FDD2560013FF99 /* assembly_grammar.h in Headers */, - A9EE0E1528FDD2560013FF99 /* unify_const_pass.h in Headers */, - A9EE0C7728FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */, - A9EE0CF228FDD2560013FF99 /* reduction_util.h in Headers */, - A9EE14C628FDD2590013FF99 /* latest_version_spirv_header.h in Headers */, - A9EE0CEC28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.h in Headers */, - A9EE101628FDD2570013FF99 /* set_spec_constant_default_value_pass.h in Headers */, - A9EE0C5F28FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */, - A9EE0EE128FDD2570013FF99 /* inline_pass.h in Headers */, - A9EE0F2C28FDD2570013FF99 /* ssa_rewrite_pass.h in Headers */, - A9EE0D3128FDD2560013FF99 /* operand.h in Headers */, - A9EE0F0B28FDD2570013FF99 /* upgrade_memory_model.h in Headers */, - A9EE0F7128FDD2570013FF99 /* simplification_pass.h in Headers */, - A9EE0FAD28FDD2570013FF99 /* loop_utils.h in Headers */, - A9EE0D7928FDD2560013FF99 /* disassemble.h in Headers */, - A9EE0F5028FDD2570013FF99 /* dead_branch_elim_pass.h in Headers */, - A9EE0CA428FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */, - A9EE0C2F28FDD2560013FF99 /* small_vector.h in Headers */, - A9EE0C2628FDD2560013FF99 /* ilist_node.h in Headers */, - A9EE0DF728FDD2560013FF99 /* ir_context.h in Headers */, - A9EE101C28FDD2570013FF99 /* remove_unused_interface_variables_pass.h in Headers */, - A9EE0DA928FDD2560013FF99 /* interface_var_sroa.h in Headers */, - A9EE0C7128FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */, - A9EE0FFE28FDD2570013FF99 /* fix_func_call_arguments.h in Headers */, - A9EE102828FDD2570013FF99 /* table.h in Headers */, - A9EE0E4E28FDD2560013FF99 /* relax_float_ops_pass.h in Headers */, - A9EE0F2028FDD2570013FF99 /* log.h in Headers */, - A9EE0CAD28FDD2560013FF99 /* remove_selection_reduction_opportunity.h in Headers */, - A9EE0C1A28FDD2560013FF99 /* text.h in Headers */, - A9EE0F4428FDD2570013FF99 /* eliminate_dead_functions_pass.h in Headers */, - A9EE158028FDD2590013FF99 /* decoration.h in Headers */, - A9EE0C2C28FDD2560013FF99 /* string_utils.h in Headers */, - A9EE0CA728FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.h in Headers */, - A9EE0D4328FDD2560013FF99 /* lcs.h in Headers */, - A9EE0F8C28FDD2570013FF99 /* const_folding_rules.h in Headers */, - A9EE0C4D28FDD2560013FF99 /* ilist.h in Headers */, - A9EE0CAA28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */, - A9EE0DB228FDD2560013FF99 /* reduce_load_size.h in Headers */, - A9EE0DFD28FDD2560013FF99 /* control_dependence.h in Headers */, - A9EE101928FDD2570013FF99 /* dominator_tree.h in Headers */, - A9EE0D5E28FDD2560013FF99 /* diagnostic.h in Headers */, - A9EE0CF528FDD2560013FF99 /* merge_blocks_reduction_opportunity.h in Headers */, - A9EE0FCE28FDD2570013FF99 /* aggressive_dead_code_elim_pass.h in Headers */, - A9EE0D2228FDD2560013FF99 /* spirv_reducer_options.h in Headers */, - A9EE0FF228FDD2570013FF99 /* build_module.h in Headers */, - A9EE0FBF28FDD2570013FF99 /* cfg.h in Headers */, - A9EE0CCE28FDD2560013FF99 /* pch_source_reduce.h in Headers */, - A9EE0D5528FDD2560013FF99 /* name_mapper.h in Headers */, - A9EE0E0928FDD2560013FF99 /* loop_unroller.h in Headers */, - A9EE14DB28FDD2590013FF99 /* extensions.h in Headers */, - A9EE152F28FDD2590013FF99 /* validate.h in Headers */, - A9EE0DE228FDD2560013FF99 /* instruction_list.h in Headers */, - A9EE0FB628FDD2570013FF99 /* ir_builder.h in Headers */, - A9EE0DDF28FDD2560013FF99 /* propagator.h in Headers */, - A9EE0C9528FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */, - A9EE0E7B28FDD2570013FF99 /* loop_fusion_pass.h in Headers */, - A9EE0D4028FDD2560013FF99 /* diff.h in Headers */, - A9EE0E4B28FDD2560013FF99 /* remove_dontinline_pass.h in Headers */, - A9EE0F3228FDD2570013FF99 /* dead_variable_elimination.h in Headers */, - A9EE0FDA28FDD2570013FF99 /* combine_access_chains.h in Headers */, - A9EE0CBF28FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */, - A9EE156228FDD2590013FF99 /* instruction.h in Headers */, - A9EE0D1C28FDD2560013FF99 /* enum_string_mapping.h in Headers */, - A9EE0F4728FDD2570013FF99 /* eliminate_dead_functions_util.h in Headers */, - A9EE0C4428FDD2560013FF99 /* hex_float.h in Headers */, - A9EE0F7728FDD2570013FF99 /* remove_duplicates_pass.h in Headers */, - A9EE0E9C28FDD2570013FF99 /* interp_fixup_pass.h in Headers */, - A9EE0D4928FDD2560013FF99 /* spirv_validator_options.h in Headers */, - A9EE0CB328FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.h in Headers */, - A9EE0D2E28FDD2560013FF99 /* spirv_definition.h in Headers */, - A9EE0CA128FDD2560013FF99 /* remove_function_reduction_opportunity.h in Headers */, - A9EE0CD728FDD2560013FF99 /* reducer.h in Headers */, - A9EE0D6A28FDD2560013FF99 /* common_debug_info.h in Headers */, - A9EE0D6128FDD2560013FF99 /* spirv_endian.h in Headers */, - A9EE0EA528FDD2570013FF99 /* strength_reduction_pass.h in Headers */, - A9EE0F4A28FDD2570013FF99 /* fold.h in Headers */, - A9EE0FC228FDD2570013FF99 /* code_sink.h in Headers */, - A9EE0F9528FDD2570013FF99 /* pch_source_opt.h in Headers */, - A9EE0FBC28FDD2570013FF99 /* loop_unswitch_pass.h in Headers */, - A9EE0CE628FDD2560013FF99 /* reduction_opportunity_finder.h in Headers */, - A9EE0C0E28FDD2560013FF99 /* divergence_analysis.h in Headers */, - A9EE157428FDD2590013FF99 /* function.h in Headers */, - A9EE0FFB28FDD2570013FF99 /* function.h in Headers */, - A9EE0E3028FDD2560013FF99 /* block_merge_pass.h in Headers */, - A9EE0C4128FDD2560013FF99 /* bitutils.h in Headers */, - A9EE0F5C28FDD2570013FF99 /* fix_storage_class.h in Headers */, - A9EE0F4128FDD2570013FF99 /* folding_rules.h in Headers */, - A9EE0D5228FDD2560013FF99 /* parsed_operand.h in Headers */, - A9EE0D3A28FDD2560013FF99 /* spirv_constant.h in Headers */, - A9EE0D8E28FDD2560013FF99 /* merge_return_pass.h in Headers */, - A9EE0E7E28FDD2570013FF99 /* struct_cfg_analysis.h in Headers */, - A9EE0CE928FDD2560013FF99 /* change_operand_reduction_opportunity.h in Headers */, - A9EE0ECF28FDD2570013FF99 /* eliminate_dead_members_pass.h in Headers */, - A9EE0E9028FDD2570013FF99 /* eliminate_dead_input_components_pass.h in Headers */, - A9EE0D1628FDD2560013FF99 /* cfa.h in Headers */, - A9EE0E7528FDD2570013FF99 /* desc_sroa.h in Headers */, - A9EE0DC128FDD2560013FF99 /* replace_desc_array_access_using_var_index.h in Headers */, - A9EE0FEF28FDD2570013FF99 /* licm_pass.h in Headers */, - A9EE154128FDD2590013FF99 /* validate_memory_semantics.h in Headers */, - A9EE0E6628FDD2570013FF99 /* local_redundancy_elimination.h in Headers */, - A9EE0EED28FDD2570013FF99 /* flatten_decoration_pass.h in Headers */, - A9EE0EC028FDD2570013FF99 /* freeze_spec_constant_value_pass.h in Headers */, - A9EE0DF128FDD2560013FF99 /* amd_ext_to_khr.h in Headers */, - A9EE0DA028FDD2560013FF99 /* compact_ids_pass.h in Headers */, - A9EE0D3728FDD2560013FF99 /* macro.h in Headers */, - A9EE0C3828FDD2560013FF99 /* timer.h in Headers */, - A9EE0EE428FDD2570013FF99 /* loop_dependence.h in Headers */, - A9EE14CF28FDD2590013FF99 /* spirv_optimizer_options.h in Headers */, - A9EE0C7D28FDD2560013FF99 /* remove_instruction_reduction_opportunity.h in Headers */, - A9EE0F1A28FDD2570013FF99 /* workaround1209.h in Headers */, - A9EE0EC628FDD2570013FF99 /* instrument_pass.h in Headers */, - A9EE0E5428FDD2570013FF99 /* def_use_manager.h in Headers */, - A9EE0E3628FDD2560013FF99 /* debug_info_manager.h in Headers */, - A9EE0C8028FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */, - A9EE100D28FDD2570013FF99 /* dataflow.h in Headers */, - A9EE0DA328FDD2560013FF99 /* register_pressure.h in Headers */, - A9EE0F8F28FDD2570013FF99 /* scalar_replacement_pass.h in Headers */, - A9EE0EF928FDD2570013FF99 /* inline_exhaustive_pass.h in Headers */, - A9EE0F6528FDD2570013FF99 /* passes.h in Headers */, - A9EE0FEC28FDD2570013FF99 /* iterator.h in Headers */, - A9EE0C5628FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.h in Headers */, - A9EE0BFC28FDD2560013FF99 /* spirv_fuzzer_options.h in Headers */, - A9EE0D7F28FDD2560013FF99 /* if_conversion.h in Headers */, + A9F7B53829425A1900B30DA7 /* replace_invalid_opc.h in Headers */, + A9F7B5CB29425A1900B30DA7 /* convert_to_sampled_image_pass.h in Headers */, + A9F7B4B129425A1900B30DA7 /* text_handler.h in Headers */, + A9F7B58F29425A1900B30DA7 /* types.h in Headers */, + A9F7B62B29425A1900B30DA7 /* dead_insert_elim_pass.h in Headers */, + A9F7B38529425A1800B30DA7 /* parse_number.h in Headers */, + A9F7B38B29425A1800B30DA7 /* make_unique.h in Headers */, + A9F7B76F29425A1900B30DA7 /* function.h in Headers */, + A9F7B61F29425A1900B30DA7 /* inst_debug_printf_pass.h in Headers */, + A9F7B5A129425A1900B30DA7 /* block_merge_pass.h in Headers */, + A9F7B52329425A1900B30DA7 /* scalar_analysis.h in Headers */, + A9F7B50229425A1900B30DA7 /* composite.h in Headers */, + A9F7B37329425A1800B30DA7 /* enum_set.h in Headers */, + A9F7B36D29425A1800B30DA7 /* lints.h in Headers */, + A9F7B63129425A1900B30DA7 /* freeze_spec_constant_value_pass.h in Headers */, + A9F7B43F29425A1800B30DA7 /* reduction_opportunity.h in Headers */, + A9F7B56229425A1900B30DA7 /* ir_context.h in Headers */, + A9F7B72129425A1900B30DA7 /* loop_utils.h in Headers */, + A9F7B5BF29425A1900B30DA7 /* relax_float_ops_pass.h in Headers */, + A9F7B6B229425A1900B30DA7 /* pass.h in Headers */, + A9F7B4F329425A1900B30DA7 /* inline_opaque_pass.h in Headers */, + A9F7B61629425A1900B30DA7 /* strength_reduction_pass.h in Headers */, + A9F7B47B29425A1800B30DA7 /* pch_source.h in Headers */, + A9F7B51429425A1900B30DA7 /* graphics_robust_access_pass.h in Headers */, + A9F7B6CA29425A1900B30DA7 /* scalar_analysis_nodes.h in Headers */, + A9F7B3CD29425A1800B30DA7 /* operand_to_const_reduction_opportunity_finder.h in Headers */, + A9F7B59829425A1900B30DA7 /* basic_block.h in Headers */, + A9F7B4EA29425A1900B30DA7 /* strip_nonsemantic_info_pass.h in Headers */, + A9F7B6BE29425A1900B30DA7 /* fold.h in Headers */, + A9F7BCD929425A1B00B30DA7 /* instruction.h in Headers */, + A9F7B58629425A1900B30DA7 /* unify_const_pass.h in Headers */, + A9F7B74B29425A1900B30DA7 /* vector_dce.h in Headers */, + A9F7B3C729425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity.h in Headers */, + A9F7B3B229425A1800B30DA7 /* spirv_target_env.h in Headers */, + A9F7B4F629425A1900B30DA7 /* loop_fusion.h in Headers */, + A9F7B4D529425A1900B30DA7 /* print.h in Headers */, + A9F7B40029425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity.h in Headers */, + A9F7B78D29425A1900B30DA7 /* dominator_tree.h in Headers */, + A9F7B6C429425A1900B30DA7 /* dead_branch_elim_pass.h in Headers */, + A9F7B76929425A1900B30DA7 /* ccp_pass.h in Headers */, + A9F7BCA629425A1B00B30DA7 /* validate.h in Headers */, + A9F7BC6729425A1B00B30DA7 /* construct.h in Headers */, + A9F7B6FA29425A1900B30DA7 /* null_pass.h in Headers */, + A9F7B66D29425A1900B30DA7 /* constants.h in Headers */, + A9F7BC9429425A1B00B30DA7 /* validation_state.h in Headers */, + A9F7B73F29425A1900B30DA7 /* instruction.h in Headers */, + A9F7B73029425A1900B30DA7 /* loop_unswitch_pass.h in Headers */, + A9F7B50E29425A1900B30DA7 /* tree_iterator.h in Headers */, + A9F7B3F429425A1800B30DA7 /* remove_struct_member_reduction_opportunity.h in Headers */, + A9F7BCB229425A1B00B30DA7 /* validate_scopes.h in Headers */, + A9F7B6D929425A1900B30DA7 /* passes.h in Headers */, + A9F7B60A29425A1900B30DA7 /* interp_fixup_pass.h in Headers */, + A9F7BCB829425A1B00B30DA7 /* validate_memory_semantics.h in Headers */, + A9F7B39429425A1800B30DA7 /* hash_combine.h in Headers */, + A9F7B44229425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.h in Headers */, + A9F7B52629425A1900B30DA7 /* strip_debug_info_pass.h in Headers */, + A9F7B70929425A1900B30DA7 /* pch_source_opt.h in Headers */, + A9F7B41829425A1800B30DA7 /* merge_blocks_reduction_opportunity_finder.h in Headers */, + A9F7B46F29425A1800B30DA7 /* reduction_pass.h in Headers */, + A9F7B51729425A1900B30DA7 /* local_single_store_elim_pass.h in Headers */, + A9F7B47229425A1800B30DA7 /* latest_version_opencl_std_header.h in Headers */, + A9F7B3BE29425A1800B30DA7 /* remove_block_reduction_opportunity.h in Headers */, + A9F7B42D29425A1800B30DA7 /* remove_function_reduction_opportunity_finder.h in Headers */, + A9F7BC4029425A1B00B30DA7 /* instruction.h in Headers */, + A9F7B6B829425A1900B30DA7 /* eliminate_dead_functions_pass.h in Headers */, + A9F7B3A029425A1800B30DA7 /* bit_vector.h in Headers */, + A9F7B36129425A1800B30DA7 /* assembly_grammar.h in Headers */, + A9F7B65529425A1900B30DA7 /* loop_dependence.h in Headers */, + A9F7B3D929425A1800B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.h in Headers */, + A9F7B6B529425A1900B30DA7 /* folding_rules.h in Headers */, + A9F7B64029425A1900B30DA7 /* eliminate_dead_members_pass.h in Headers */, + A9F7B45429425A1800B30DA7 /* reduction_util.h in Headers */, + A9F7B79C29425A1900B30DA7 /* table.h in Headers */, + A9F7BC7C29425A1B00B30DA7 /* basic_block.h in Headers */, + A9F7B44E29425A1800B30DA7 /* remove_block_reduction_opportunity_finder.h in Headers */, + A9F7B5BC29425A1900B30DA7 /* remove_dontinline_pass.h in Headers */, + A9F7B3C129425A1800B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.h in Headers */, + A9F7B49329425A1800B30DA7 /* operand.h in Headers */, + A9F7B4DB29425A1900B30DA7 /* disassemble.h in Headers */, + A9F7B40629425A1800B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.h in Headers */, + A9F7B65829425A1900B30DA7 /* value_number_table.h in Headers */, + A9F7B39129425A1800B30DA7 /* small_vector.h in Headers */, + A9F7B69429425A1900B30DA7 /* log.h in Headers */, + A9F7B38829425A1800B30DA7 /* ilist_node.h in Headers */, + A9F7B77E29425A1900B30DA7 /* feature_manager.h in Headers */, + A9F7B68B29425A1900B30DA7 /* loop_fission.h in Headers */, + A9F7B51129425A1900B30DA7 /* interface_var_sroa.h in Headers */, + A9F7B76329425A1900B30DA7 /* licm_pass.h in Headers */, + A9F7B5B929425A1900B30DA7 /* convert_to_half_pass.h in Headers */, + A9F7B3D329425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.h in Headers */, + A9F7B59229425A1900B30DA7 /* fold_spec_constant_op_and_composite_pass.h in Headers */, + A9F7B73329425A1900B30DA7 /* cfg.h in Headers */, + A9F7B40F29425A1800B30DA7 /* remove_selection_reduction_opportunity.h in Headers */, + A9F7BC4629425A1B00B30DA7 /* opcode.h in Headers */, + A9F7B65E29425A1900B30DA7 /* flatten_decoration_pass.h in Headers */, + A9F7B5B629425A1900B30DA7 /* private_to_local_pass.h in Headers */, + A9F7B5FB29425A1900B30DA7 /* wrap_opkill.h in Headers */, + A9F7B37C29425A1800B30DA7 /* text.h in Headers */, + A9F7B38E29425A1800B30DA7 /* string_utils.h in Headers */, + A9F7B5A729425A1900B30DA7 /* debug_info_manager.h in Headers */, + A9F7B6D029425A1900B30DA7 /* fix_storage_class.h in Headers */, + A9F7B69729425A1900B30DA7 /* copy_prop_arrays.h in Headers */, + A9F7B40929425A1800B30DA7 /* change_operand_to_undef_reduction_opportunity.h in Headers */, + A9F7B4A529425A1900B30DA7 /* lcs.h in Headers */, + A9F7B3AF29425A1800B30DA7 /* ilist.h in Headers */, + A9F7B40C29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.h in Headers */, + A9F7BCEB29425A1B00B30DA7 /* function.h in Headers */, + A9F7B69A29425A1900B30DA7 /* eliminate_dead_constant_pass.h in Headers */, + A9F7B51A29425A1900B30DA7 /* reduce_load_size.h in Headers */, + A9F7B78A29425A1900B30DA7 /* set_spec_constant_default_value_pass.h in Headers */, + A9F7B4C029425A1900B30DA7 /* diagnostic.h in Headers */, + A9F7B78129425A1900B30DA7 /* dataflow.h in Headers */, + A9F7B45729425A1800B30DA7 /* merge_blocks_reduction_opportunity.h in Headers */, + A9F7B72429425A1900B30DA7 /* module.h in Headers */, + A9F7BC4329425A1B00B30DA7 /* spirv_optimizer_options.h in Headers */, + A9F7BC3429425A1B00B30DA7 /* ext_inst.h in Headers */, + A9F7B48429425A1800B30DA7 /* spirv_reducer_options.h in Headers */, + A9F7BCF729425A1B00B30DA7 /* decoration.h in Headers */, + A9F7B61329425A1900B30DA7 /* inst_buff_addr_check_pass.h in Headers */, + A9F7B76029425A1900B30DA7 /* iterator.h in Headers */, + A9F7BC4C29425A1B00B30DA7 /* latest_version_glsl_std_450_header.h in Headers */, + A9F7B43029425A1800B30DA7 /* pch_source_reduce.h in Headers */, + A9F7B4B729425A1900B30DA7 /* name_mapper.h in Headers */, + A9F7B57729425A1900B30DA7 /* liveness.h in Headers */, + A9F7B5D729425A1900B30DA7 /* local_redundancy_elimination.h in Headers */, + A9F7B3F729425A1800B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.h in Headers */, + A9F7B54D29425A1900B30DA7 /* instruction_list.h in Headers */, + A9F7B4A229425A1900B30DA7 /* diff.h in Headers */, + A9F7B63729425A1900B30DA7 /* instrument_pass.h in Headers */, + A9F7BC5529425A1B00B30DA7 /* binary.h in Headers */, + A9F7B65229425A1900B30DA7 /* inline_pass.h in Headers */, + A9F7B5EC29425A1900B30DA7 /* loop_fusion_pass.h in Headers */, + A9F7B6A629425A1900B30DA7 /* dead_variable_elimination.h in Headers */, + A9F7B79029425A1900B30DA7 /* remove_unused_interface_variables_pass.h in Headers */, + A9F7B42129425A1800B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.h in Headers */, + A9F7B6E529425A1900B30DA7 /* simplification_pass.h in Headers */, + A9F7B6EB29425A1900B30DA7 /* remove_duplicates_pass.h in Headers */, + A9F7B60D29425A1900B30DA7 /* eliminate_dead_io_components_pass.h in Headers */, + A9F7B47E29425A1800B30DA7 /* enum_string_mapping.h in Headers */, + A9F7B3A629425A1800B30DA7 /* hex_float.h in Headers */, + A9F7B4AB29425A1900B30DA7 /* spirv_validator_options.h in Headers */, + A9F7B6EE29425A1900B30DA7 /* desc_sroa_util.h in Headers */, + A9F7B41529425A1800B30DA7 /* remove_selection_reduction_opportunity_finder.h in Headers */, + A9F7B75129425A1900B30DA7 /* pass_manager.h in Headers */, + A9F7B6AC29425A1900B30DA7 /* dominator_analysis.h in Headers */, + A9F7B49029425A1800B30DA7 /* spirv_definition.h in Headers */, + A9F7B5E029425A1900B30DA7 /* block_merge_util.h in Headers */, + A9F7B40329425A1800B30DA7 /* remove_function_reduction_opportunity.h in Headers */, + A9F7B43929425A1800B30DA7 /* reducer.h in Headers */, + A9F7B5C529425A1900B30DA7 /* def_use_manager.h in Headers */, + A9F7B79329425A1900B30DA7 /* type_manager.h in Headers */, + A9F7B4CC29425A1900B30DA7 /* common_debug_info.h in Headers */, + A9F7B5CE29425A1900B30DA7 /* cfg_cleanup_pass.h in Headers */, + A9F7B5E629425A1900B30DA7 /* desc_sroa.h in Headers */, + A9F7B60729425A1900B30DA7 /* local_single_block_elim_pass.h in Headers */, + A9F7B4C329425A1900B30DA7 /* spirv_endian.h in Headers */, + A9F7B70F29425A1900B30DA7 /* redundancy_elimination.h in Headers */, + A9F7B74E29425A1900B30DA7 /* combine_access_chains.h in Headers */, + A9F7BC3A29425A1B00B30DA7 /* latest_version_spirv_header.h in Headers */, + A9F7B53B29425A1900B30DA7 /* eliminate_dead_output_stores_pass.h in Headers */, + A9F7B75429425A1900B30DA7 /* spread_volatile_semantics.h in Headers */, + A9F7B72A29425A1900B30DA7 /* ir_builder.h in Headers */, + A9F7B76629425A1900B30DA7 /* build_module.h in Headers */, + A9F7B66A29425A1900B30DA7 /* inline_exhaustive_pass.h in Headers */, + A9F7B44829425A1800B30DA7 /* reduction_opportunity_finder.h in Headers */, + A9F7B37029425A1800B30DA7 /* divergence_analysis.h in Headers */, + A9F7B67C29425A1900B30DA7 /* upgrade_memory_model.h in Headers */, + A9F7B3A329425A1800B30DA7 /* bitutils.h in Headers */, + A9F7B4B429425A1900B30DA7 /* parsed_operand.h in Headers */, + A9F7B49C29425A1900B30DA7 /* spirv_constant.h in Headers */, + A9F7B77229425A1900B30DA7 /* fix_func_call_arguments.h in Headers */, + A9F7B6BB29425A1900B30DA7 /* eliminate_dead_functions_util.h in Headers */, + A9F7B57A29425A1900B30DA7 /* loop_unroller.h in Headers */, + A9F7B6A029425A1900B30DA7 /* ssa_rewrite_pass.h in Headers */, + A9F7B54A29425A1900B30DA7 /* propagator.h in Headers */, + A9F7B73C29425A1900B30DA7 /* loop_descriptor.h in Headers */, + A9F7B4F029425A1900B30DA7 /* merge_return_pass.h in Headers */, + A9F7B5FE29425A1900B30DA7 /* empty_pass.h in Headers */, + A9F7B70329425A1900B30DA7 /* scalar_replacement_pass.h in Headers */, + A9F7B73629425A1900B30DA7 /* code_sink.h in Headers */, + A9F7B44B29425A1800B30DA7 /* change_operand_reduction_opportunity.h in Headers */, + A9F7B68229425A1900B30DA7 /* analyze_live_input_pass.h in Headers */, + A9F7B47829425A1800B30DA7 /* cfa.h in Headers */, + A9F7B55C29425A1900B30DA7 /* amd_ext_to_khr.h in Headers */, + A9F7B60129425A1900B30DA7 /* decoration_manager.h in Headers */, + A9F7B5DA29425A1900B30DA7 /* loop_peeling.h in Headers */, + A9F7B52929425A1900B30DA7 /* replace_desc_array_access_using_var_index.h in Headers */, + A9F7B6F429425A1900B30DA7 /* reflect.h in Headers */, + A9F7B50829425A1900B30DA7 /* compact_ids_pass.h in Headers */, + A9F7B49929425A1800B30DA7 /* macro.h in Headers */, + A9F7B39A29425A1800B30DA7 /* timer.h in Headers */, + A9F7BC4F29425A1B00B30DA7 /* extensions.h in Headers */, + A9F7B63A29425A1900B30DA7 /* mem_pass.h in Headers */, + A9F7B53E29425A1900B30DA7 /* local_access_chain_convert_pass.h in Headers */, + A9F7B3DF29425A1800B30DA7 /* remove_instruction_reduction_opportunity.h in Headers */, + A9F7B56829425A1900B30DA7 /* control_dependence.h in Headers */, + A9F7B58929425A1900B30DA7 /* ir_loader.h in Headers */, + A9F7B3E229425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.h in Headers */, + A9F7B68E29425A1900B30DA7 /* workaround1209.h in Headers */, + A9F7B50B29425A1900B30DA7 /* register_pressure.h in Headers */, + A9F7B3B829425A1800B30DA7 /* operand_to_undef_reduction_opportunity_finder.h in Headers */, + A9F7B5EF29425A1900B30DA7 /* struct_cfg_analysis.h in Headers */, + A9F7B35E29425A1800B30DA7 /* spirv_fuzzer_options.h in Headers */, + A9F7B70029425A1900B30DA7 /* const_folding_rules.h in Headers */, + A9F7B78429425A1900B30DA7 /* inst_bindless_check_pass.h in Headers */, + A9F7B74229425A1900B30DA7 /* aggressive_dead_code_elim_pass.h in Headers */, + A9F7B4E129425A1900B30DA7 /* if_conversion.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4518,224 +4562,228 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A9EE0DD528FDD2560013FF99 /* inst_bindless_check_pass.cpp in Sources */, - A9EE153728FDD2590013FF99 /* validate_small_type_uses.cpp in Sources */, - A9EE0EB328FDD2570013FF99 /* dead_branch_elim_pass.cpp in Sources */, - A9EE0F5828FDD2570013FF99 /* propagator.cpp in Sources */, - A9EE0E5628FDD2570013FF99 /* ir_loader.cpp in Sources */, - A9EE151F28FDD2590013FF99 /* validate_constants.cpp in Sources */, - A9EE0D5728FDD2560013FF99 /* spirv_reducer_options.cpp in Sources */, - A9EE0DE728FDD2560013FF99 /* pass.cpp in Sources */, - A9EE151628FDD2590013FF99 /* validate_interfaces.cpp in Sources */, - A9EE0D8128FDD2560013FF99 /* register_pressure.cpp in Sources */, - A9EE0E2C28FDD2560013FF99 /* dead_variable_elimination.cpp in Sources */, - A9EE0D6F28FDD2560013FF99 /* opcode.cpp in Sources */, - A9EE0FA628FDD2570013FF99 /* inline_opaque_pass.cpp in Sources */, - A9EE157028FDD2590013FF99 /* validate_function.cpp in Sources */, - A9EE152528FDD2590013FF99 /* validate_extensions.cpp in Sources */, - A9EE0C5228FDD2560013FF99 /* table.cpp in Sources */, - A9EE155528FDD2590013FF99 /* validate_image.cpp in Sources */, - A9EE102428FDD2570013FF99 /* loop_peeling.cpp in Sources */, - A9EE102128FDD2570013FF99 /* compact_ids_pass.cpp in Sources */, - A9EE0CD928FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */, - A9EE0FE228FDD2570013FF99 /* local_access_chain_convert_pass.cpp in Sources */, - A9EE0DC628FDD2560013FF99 /* decoration_manager.cpp in Sources */, - A9EE0C4928FDD2560013FF99 /* bit_vector.cpp in Sources */, - A9EE0F4C28FDD2570013FF99 /* local_single_store_elim_pass.cpp in Sources */, - A9EE0C7328FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */, - A9EE0F3428FDD2570013FF99 /* block_merge_pass.cpp in Sources */, - A9EE0F6128FDD2570013FF99 /* set_spec_constant_default_value_pass.cpp in Sources */, - A9EE0F3A28FDD2570013FF99 /* convert_to_sampled_image_pass.cpp in Sources */, - A9EE0EB628FDD2570013FF99 /* flatten_decoration_pass.cpp in Sources */, - A9EE0E2328FDD2560013FF99 /* mem_pass.cpp in Sources */, - A9EE0FF728FDD2570013FF99 /* graphics_robust_access_pass.cpp in Sources */, - A9EE0EE928FDD2570013FF99 /* strip_nonsemantic_info_pass.cpp in Sources */, - A9EE0CC428FDD2560013FF99 /* reducer.cpp in Sources */, - A9EE0DF328FDD2560013FF99 /* merge_return_pass.cpp in Sources */, - A9EE0EDA28FDD2570013FF99 /* composite.cpp in Sources */, - A9EE0C8528FDD2560013FF99 /* remove_function_reduction_opportunity.cpp in Sources */, - A9EE0C6728FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */, - A9EE0D4B28FDD2560013FF99 /* enum_string_mapping.cpp in Sources */, - A9EE0EB028FDD2570013FF99 /* simplification_pass.cpp in Sources */, - A9EE0D3C28FDD2560013FF99 /* binary.cpp in Sources */, - A9EE0D9928FDD2560013FF99 /* build_module.cpp in Sources */, - A9EE14FB28FDD2590013FF99 /* validate_ray_query.cpp in Sources */, - A9EE0F9D28FDD2570013FF99 /* fix_storage_class.cpp in Sources */, - A9EE153428FDD2590013FF99 /* validate_conversion.cpp in Sources */, - A9EE0E5028FDD2570013FF99 /* inline_pass.cpp in Sources */, - A9EE150D28FDD2590013FF99 /* validate_decorations.cpp in Sources */, - A9EE152828FDD2590013FF99 /* construct.cpp in Sources */, - A9EE0D1E28FDD2560013FF99 /* spirv_fuzzer_options.cpp in Sources */, - A9EE0E1128FDD2560013FF99 /* loop_dependence.cpp in Sources */, - A9EE0E0B28FDD2560013FF99 /* strip_debug_info_pass.cpp in Sources */, - A9EE0F6728FDD2570013FF99 /* fold.cpp in Sources */, - A9EE151928FDD2590013FF99 /* validate.cpp in Sources */, - A9EE154628FDD2590013FF99 /* validate_mode_setting.cpp in Sources */, - A9EE0FA028FDD2570013FF99 /* value_number_table.cpp in Sources */, - A9EE0C4628FDD2560013FF99 /* parse_number.cpp in Sources */, - A9EE100628FDD2570013FF99 /* upgrade_memory_model.cpp in Sources */, - A9EE14E328FDD2590013FF99 /* text_handler.cpp in Sources */, - A9EE0C0128FDD2560013FF99 /* lint_divergent_derivatives.cpp in Sources */, - A9EE0DE428FDD2560013FF99 /* feature_manager.cpp in Sources */, - A9EE0ED428FDD2570013FF99 /* instruction_list.cpp in Sources */, - A9EE0E6228FDD2570013FF99 /* eliminate_dead_functions_pass.cpp in Sources */, - A9EE0E1A28FDD2560013FF99 /* inst_debug_printf_pass.cpp in Sources */, - A9EE0CBB28FDD2560013FF99 /* remove_struct_member_reduction_opportunity.cpp in Sources */, - A9EE150128FDD2590013FF99 /* validate_scopes.cpp in Sources */, - A9EE0E9528FDD2570013FF99 /* ccp_pass.cpp in Sources */, - A9EE0F1C28FDD2570013FF99 /* loop_fusion_pass.cpp in Sources */, - A9EE0DED28FDD2560013FF99 /* dominator_tree.cpp in Sources */, - A9EE0C7928FDD2560013FF99 /* remove_function_reduction_opportunity_finder.cpp in Sources */, - A9EE0FC428FDD2570013FF99 /* dataflow.cpp in Sources */, - A9EE0E2928FDD2560013FF99 /* remove_duplicates_pass.cpp in Sources */, - A9EE0F8228FDD2570013FF99 /* workaround1209.cpp in Sources */, - A9EE0C9728FDD2560013FF99 /* merge_blocks_reduction_opportunity.cpp in Sources */, - A9EE0F2E28FDD2570013FF99 /* scalar_analysis.cpp in Sources */, - A9EE0F1328FDD2570013FF99 /* inline_exhaustive_pass.cpp in Sources */, - A9EE0E6B28FDD2570013FF99 /* vector_dce.cpp in Sources */, - A9EE0DB728FDD2560013FF99 /* types.cpp in Sources */, - A9EE0D0028FDD2560013FF99 /* remove_block_reduction_opportunity.cpp in Sources */, - A9EE14EC28FDD2590013FF99 /* validate_cfg.cpp in Sources */, - A9EE100328FDD2570013FF99 /* eliminate_dead_input_components_pass.cpp in Sources */, - A9EE0ED128FDD2570013FF99 /* function.cpp in Sources */, - A9EE0BF828FDD2560013FF99 /* spirv_target_env.cpp in Sources */, - A9EE152B28FDD2590013FF99 /* function.cpp in Sources */, - A9EE0F9728FDD2570013FF99 /* reduce_load_size.cpp in Sources */, - A9EE0EF228FDD2570013FF99 /* fix_func_call_arguments.cpp in Sources */, - A9EE14FE28FDD2590013FF99 /* validate_ray_tracing.cpp in Sources */, - A9EE0CEE28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.cpp in Sources */, - A9EE0C8B28FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.cpp in Sources */, - A9EE156D28FDD2590013FF99 /* basic_block.cpp in Sources */, - A9EE0F0428FDD2570013FF99 /* desc_sroa.cpp in Sources */, - A9EE0DD828FDD2560013FF99 /* local_redundancy_elimination.cpp in Sources */, - A9EE0F0D28FDD2570013FF99 /* copy_prop_arrays.cpp in Sources */, - A9EE0D5A28FDD2560013FF99 /* parsed_operand.cpp in Sources */, - A9EE0D6328FDD2560013FF99 /* name_mapper.cpp in Sources */, - A9EE151328FDD2590013FF99 /* validate_builtins.cpp in Sources */, - A9EE14C228FDD2590013FF99 /* diagnostic.cpp in Sources */, - A9EE0EC228FDD2570013FF99 /* ir_context.cpp in Sources */, - A9EE101228FDD2570013FF99 /* scalar_analysis_simplification.cpp in Sources */, - A9EE0E3828FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */, - A9EE0F2828FDD2570013FF99 /* dead_insert_elim_pass.cpp in Sources */, - A9EE154C28FDD2590013FF99 /* validate_logicals.cpp in Sources */, - A9EE0F0128FDD2570013FF99 /* strength_reduction_pass.cpp in Sources */, - A9EE0C9A28FDD2560013FF99 /* change_operand_reduction_opportunity.cpp in Sources */, - A9EE154328FDD2590013FF99 /* validate_arithmetics.cpp in Sources */, - A9EE0D6628FDD2560013FF99 /* linker.cpp in Sources */, - A9EE0C3A28FDD2560013FF99 /* string_utils.cpp in Sources */, - A9EE0C1F28FDD2560013FF99 /* pch_source.cpp in Sources */, - A9EE157C28FDD2590013FF99 /* validate_primitives.cpp in Sources */, - A9EE0E8628FDD2570013FF99 /* def_use_manager.cpp in Sources */, - A9EE0EF528FDD2570013FF99 /* debug_info_manager.cpp in Sources */, - A9EE0FA928FDD2570013FF99 /* replace_invalid_opc.cpp in Sources */, - A9EE0D2A28FDD2560013FF99 /* print.cpp in Sources */, - A9EE0F6A28FDD2570013FF99 /* amd_ext_to_khr.cpp in Sources */, - A9EE0E3228FDD2560013FF99 /* module.cpp in Sources */, - A9EE154F28FDD2590013FF99 /* validate_derivatives.cpp in Sources */, - A9EE0F9128FDD2570013FF99 /* instruction.cpp in Sources */, - A9EE0CF728FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */, - A9EE0DC328FDD2560013FF99 /* cfg.cpp in Sources */, - A9EE0FE828FDD2570013FF99 /* basic_block.cpp in Sources */, - A9EE0DF928FDD2560013FF99 /* eliminate_dead_constant_pass.cpp in Sources */, - A9EE0FD328FDD2570013FF99 /* remove_dontinline_pass.cpp in Sources */, - A9EE0C0428FDD2560013FF99 /* linter.cpp in Sources */, - A9EE14F828FDD2590013FF99 /* validate_non_uniform.cpp in Sources */, - A9EE0E7728FDD2570013FF99 /* constants.cpp in Sources */, - A9EE0DDB28FDD2560013FF99 /* instrument_pass.cpp in Sources */, - A9EE0DEA28FDD2560013FF99 /* loop_fission.cpp in Sources */, - A9EE0FB828FDD2570013FF99 /* replace_desc_array_access_using_var_index.cpp in Sources */, - A9EE0C8228FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */, - A9EE0D1228FDD2560013FF99 /* spirv_optimizer_options.cpp in Sources */, - A9EE0FE528FDD2570013FF99 /* interp_fixup_pass.cpp in Sources */, - A9EE0CB828FDD2560013FF99 /* pch_source_reduce.cpp in Sources */, - A9EE0C8E28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */, - A9EE14E628FDD2590013FF99 /* validate_annotation.cpp in Sources */, - A9EE155828FDD2590013FF99 /* validate_literals.cpp in Sources */, - A9EE0F5E28FDD2570013FF99 /* loop_dependence_helpers.cpp in Sources */, - A9EE0D7528FDD2560013FF99 /* ext_inst.cpp in Sources */, - A9EE0EA728FDD2570013FF99 /* aggressive_dead_code_elim_pass.cpp in Sources */, - A9EE157928FDD2590013FF99 /* validation_state.cpp in Sources */, - A9EE0CE228FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */, - A9EE14E928FDD2590013FF99 /* validate_misc.cpp in Sources */, - A9EE0DCC28FDD2560013FF99 /* freeze_spec_constant_value_pass.cpp in Sources */, - A9EE157628FDD2590013FF99 /* validate_composites.cpp in Sources */, - A9EE0D4528FDD2560013FF99 /* diff.cpp in Sources */, - A9EE155228FDD2590013FF99 /* validate_memory.cpp in Sources */, - A9EE0EEF28FDD2570013FF99 /* if_conversion.cpp in Sources */, - A9EE0EDD28FDD2570013FF99 /* convert_to_half_pass.cpp in Sources */, - A9EE0D9628FDD2560013FF99 /* combine_access_chains.cpp in Sources */, - A9EE0C6D28FDD2560013FF99 /* reduction_util.cpp in Sources */, - A9EE0E8328FDD2570013FF99 /* inst_buff_addr_check_pass.cpp in Sources */, - A9EE0ED728FDD2570013FF99 /* control_dependence.cpp in Sources */, - A9EE0F6D28FDD2570013FF99 /* scalar_replacement_pass.cpp in Sources */, - A9EE0E5F28FDD2570013FF99 /* licm_pass.cpp in Sources */, - A9EE14C828FDD2590013FF99 /* libspirv.cpp in Sources */, - A9EE0E9E28FDD2570013FF99 /* pch_source_opt.cpp in Sources */, - A9EE0C5828FDD2560013FF99 /* remove_selection_reduction_opportunity.cpp in Sources */, - A9EE14D428FDD2590013FF99 /* operand.cpp in Sources */, - A9EE0D0928FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */, - A9EE0E3B28FDD2560013FF99 /* loop_unswitch_pass.cpp in Sources */, - A9EE0D0628FDD2560013FF99 /* reduction_opportunity_finder.cpp in Sources */, - A9EE0C1328FDD2560013FF99 /* text.cpp in Sources */, - A9EE0CC128FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */, - A9EE0DFF28FDD2560013FF99 /* cfg_cleanup_pass.cpp in Sources */, - A9EE0C6128FDD2560013FF99 /* reduction_pass.cpp in Sources */, - A9EE154928FDD2590013FF99 /* validate_memory_semantics.cpp in Sources */, - A9EE14F528FDD2590013FF99 /* validate_barriers.cpp in Sources */, - A9EE156428FDD2590013FF99 /* validate_mesh_shading.cpp in Sources */, - A9EE0F8828FDD2570013FF99 /* relax_float_ops_pass.cpp in Sources */, - A9EE0CFA28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */, - A9EE0E0528FDD2560013FF99 /* const_folding_rules.cpp in Sources */, - A9EE0EFE28FDD2570013FF99 /* eliminate_dead_members_pass.cpp in Sources */, - A9EE0ECB28FDD2570013FF99 /* loop_descriptor.cpp in Sources */, - A9EE0D2428FDD2560013FF99 /* spirv_validator_options.cpp in Sources */, - A9EE0C0728FDD2560013FF99 /* divergence_analysis.cpp in Sources */, - A9EE0FD028FDD2570013FF99 /* struct_cfg_analysis.cpp in Sources */, - A9EE14DD28FDD2590013FF99 /* disassemble.cpp in Sources */, - A9EE0EAA28FDD2570013FF99 /* eliminate_dead_functions_util.cpp in Sources */, - A9EE0D8428FDD2560013FF99 /* loop_utils.cpp in Sources */, - A9EE152228FDD2590013FF99 /* validate_bitwise.cpp in Sources */, - A9EE0D8A28FDD2560013FF99 /* spread_volatile_semantics.cpp in Sources */, - A9EE14EF28FDD2590013FF99 /* validate_capability.cpp in Sources */, - A9EE0E8028FDD2570013FF99 /* desc_sroa_util.cpp in Sources */, - A9EE0F1028FDD2570013FF99 /* pass_manager.cpp in Sources */, - A9EE0CD028FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */, - A9EE0DC928FDD2560013FF99 /* local_single_block_elim_pass.cpp in Sources */, - A9EE0F7328FDD2570013FF99 /* interface_var_sroa.cpp in Sources */, - A9EE0F5228FDD2570013FF99 /* private_to_local_pass.cpp in Sources */, - A9EE0D6C28FDD2560013FF99 /* software_version.cpp in Sources */, - A9EE153128FDD2590013FF99 /* validate_adjacency.cpp in Sources */, - A9EE155E28FDD2590013FF99 /* validate_type.cpp in Sources */, - A9EE0C1628FDD2560013FF99 /* assembly_grammar.cpp in Sources */, - A9EE0D7B28FDD2560013FF99 /* optimizer.cpp in Sources */, - A9EE0E0228FDD2560013FF99 /* wrap_opkill.cpp in Sources */, - A9EE0F0728FDD2570013FF99 /* block_merge_util.cpp in Sources */, - A9EE0EBC28FDD2570013FF99 /* folding_rules.cpp in Sources */, - A9EE0C1C28FDD2560013FF99 /* extensions.cpp in Sources */, - A9EE151028FDD2590013FF99 /* validate_debug.cpp in Sources */, - A9EE150A28FDD2590013FF99 /* validate_instruction.cpp in Sources */, - A9EE156728FDD2590013FF99 /* validate_execution_limitations.cpp in Sources */, - A9EE150428FDD2590013FF99 /* validate_atomics.cpp in Sources */, - A9EE0CD328FDD2560013FF99 /* reduction_opportunity.cpp in Sources */, - A9EE0E3E28FDD2560013FF99 /* unify_const_pass.cpp in Sources */, - A9EE100028FDD2570013FF99 /* loop_fusion.cpp in Sources */, - A9EE0FB228FDD2570013FF99 /* dominator_analysis.cpp in Sources */, - A9EE0E0E28FDD2560013FF99 /* ssa_rewrite_pass.cpp in Sources */, - A9EE0DB428FDD2560013FF99 /* code_sink.cpp in Sources */, - A9EE0D0328FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */, - A9EE0F7C28FDD2570013FF99 /* redundancy_elimination.cpp in Sources */, - A9EE0C3428FDD2560013FF99 /* timer.cpp in Sources */, - A9EE0D3328FDD2560013FF99 /* spirv_endian.cpp in Sources */, - A9EE0E7128FDD2570013FF99 /* loop_unroller.cpp in Sources */, - A9EE153D28FDD2590013FF99 /* validate_id.cpp in Sources */, - A9EE0CC728FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */, - A9EE0CFD28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */, - A9EE0E4128FDD2560013FF99 /* type_manager.cpp in Sources */, - A9EE0C8828FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */, - A9EE0FA328FDD2570013FF99 /* remove_unused_interface_variables_pass.cpp in Sources */, - A9EE0CAF28FDD2560013FF99 /* remove_instruction_reduction_opportunity.cpp in Sources */, - A9EE155B28FDD2590013FF99 /* instruction.cpp in Sources */, - A9EE156A28FDD2590013FF99 /* validate_layout.cpp in Sources */, + A9F7B4B929425A1900B30DA7 /* spirv_reducer_options.cpp in Sources */, + A9F7B4E329425A1900B30DA7 /* register_pressure.cpp in Sources */, + A9F7B79829425A1900B30DA7 /* loop_peeling.cpp in Sources */, + A9F7B6A829425A1900B30DA7 /* block_merge_pass.cpp in Sources */, + A9F7B4D129425A1900B30DA7 /* opcode.cpp in Sources */, + A9F7BC8A29425A1B00B30DA7 /* validate_builtins.cpp in Sources */, + A9F7BC6C29425A1B00B30DA7 /* validate_non_uniform.cpp in Sources */, + A9F7B3B429425A1800B30DA7 /* table.cpp in Sources */, + A9F7BCC329425A1B00B30DA7 /* validate_logicals.cpp in Sources */, + A9F7B43B29425A1800B30DA7 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */, + A9F7B3AB29425A1800B30DA7 /* bit_vector.cpp in Sources */, + A9F7B63329425A1900B30DA7 /* ir_context.cpp in Sources */, + A9F7B3D529425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */, + A9F7B66029425A1900B30DA7 /* if_conversion.cpp in Sources */, + A9F7B74729425A1900B30DA7 /* remove_dontinline_pass.cpp in Sources */, + A9F7B6AE29425A1900B30DA7 /* convert_to_sampled_image_pass.cpp in Sources */, + A9F7B55E29425A1900B30DA7 /* merge_return_pass.cpp in Sources */, + A9F7B42629425A1800B30DA7 /* reducer.cpp in Sources */, + A9F7B3E729425A1800B30DA7 /* remove_function_reduction_opportunity.cpp in Sources */, + A9F7BC5129425A1B00B30DA7 /* disassemble.cpp in Sources */, + A9F7B64B29425A1900B30DA7 /* composite.cpp in Sources */, + A9F7BCAB29425A1B00B30DA7 /* validate_conversion.cpp in Sources */, + A9F7BCD229425A1B00B30DA7 /* instruction.cpp in Sources */, + A9F7BC6F29425A1B00B30DA7 /* validate_ray_query.cpp in Sources */, + A9F7BC4829425A1B00B30DA7 /* operand.cpp in Sources */, + A9F7B5AF29425A1900B30DA7 /* unify_const_pass.cpp in Sources */, + A9F7B3C929425A1800B30DA7 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */, + A9F7B4AD29425A1900B30DA7 /* enum_string_mapping.cpp in Sources */, + A9F7BCBD29425A1B00B30DA7 /* validate_mode_setting.cpp in Sources */, + A9F7B49E29425A1900B30DA7 /* binary.cpp in Sources */, + A9F7B74429425A1900B30DA7 /* struct_cfg_analysis.cpp in Sources */, + A9F7BC6329425A1B00B30DA7 /* validate_capability.cpp in Sources */, + A9F7BC3629425A1B00B30DA7 /* diagnostic.cpp in Sources */, + A9F7BC3C29425A1B00B30DA7 /* libspirv.cpp in Sources */, + A9F7BCDB29425A1B00B30DA7 /* validate_mesh_shading.cpp in Sources */, + A9F7B4FB29425A1900B30DA7 /* build_module.cpp in Sources */, + A9F7B56A29425A1900B30DA7 /* cfg_cleanup_pass.cpp in Sources */, + A9F7B48029425A1800B30DA7 /* spirv_fuzzer_options.cpp in Sources */, + A9F7BCA829425A1B00B30DA7 /* validate_adjacency.cpp in Sources */, + A9F7BCB429425A1B00B30DA7 /* validate_id.cpp in Sources */, + A9F7B3A829425A1800B30DA7 /* parse_number.cpp in Sources */, + A9F7B6A229425A1900B30DA7 /* scalar_analysis.cpp in Sources */, + A9F7B36329425A1800B30DA7 /* lint_divergent_derivatives.cpp in Sources */, + A9F7B41D29425A1800B30DA7 /* remove_struct_member_reduction_opportunity.cpp in Sources */, + A9F7BC7529425A1B00B30DA7 /* validate_scopes.cpp in Sources */, + A9F7B57C29425A1900B30DA7 /* strip_debug_info_pass.cpp in Sources */, + A9F7B61B29425A1900B30DA7 /* eliminate_dead_functions_util.cpp in Sources */, + A9F7B3DB29425A1800B30DA7 /* remove_function_reduction_opportunity_finder.cpp in Sources */, + A9F7B57F29425A1900B30DA7 /* ssa_rewrite_pass.cpp in Sources */, + A9F7BCCC29425A1B00B30DA7 /* validate_image.cpp in Sources */, + A9F7B5A329425A1900B30DA7 /* module.cpp in Sources */, + A9F7B3F929425A1800B30DA7 /* merge_blocks_reduction_opportunity.cpp in Sources */, + A9F7B5E829425A1900B30DA7 /* constants.cpp in Sources */, + A9F7B46229425A1800B30DA7 /* remove_block_reduction_opportunity.cpp in Sources */, + A9F7B35A29425A1800B30DA7 /* spirv_target_env.cpp in Sources */, + A9F7B55529425A1900B30DA7 /* loop_fission.cpp in Sources */, + A9F7B45029425A1800B30DA7 /* remove_block_reduction_opportunity_finder.cpp in Sources */, + A9F7B3ED29425A1800B30DA7 /* remove_selection_reduction_opportunity_finder.cpp in Sources */, + A9F7B6DB29425A1900B30DA7 /* fold.cpp in Sources */, + A9F7B5F729425A1900B30DA7 /* def_use_manager.cpp in Sources */, + A9F7B4BC29425A1900B30DA7 /* parsed_operand.cpp in Sources */, + A9F7B66F29425A1900B30DA7 /* eliminate_dead_members_pass.cpp in Sources */, + A9F7B70529425A1900B30DA7 /* instruction.cpp in Sources */, + A9F7B4C529425A1900B30DA7 /* name_mapper.cpp in Sources */, + A9F7B77729425A1900B30DA7 /* analyze_live_input_pass.cpp in Sources */, + A9F7BC6029425A1B00B30DA7 /* validate_cfg.cpp in Sources */, + A9F7B3FC29425A1800B30DA7 /* change_operand_reduction_opportunity.cpp in Sources */, + A9F7BC7E29425A1B00B30DA7 /* validate_instruction.cpp in Sources */, + A9F7B54629425A1900B30DA7 /* instrument_pass.cpp in Sources */, + A9F7BC7229425A1B00B30DA7 /* validate_ray_tracing.cpp in Sources */, + A9F7B55229425A1900B30DA7 /* pass.cpp in Sources */, + A9F7B60329425A1900B30DA7 /* ccp_pass.cpp in Sources */, + A9F7B5F129425A1900B30DA7 /* desc_sroa_util.cpp in Sources */, + A9F7BC9929425A1B00B30DA7 /* validate_bitwise.cpp in Sources */, + A9F7B67829425A1900B30DA7 /* block_merge_util.cpp in Sources */, + A9F7BC8729425A1B00B30DA7 /* validate_debug.cpp in Sources */, + A9F7B63C29425A1900B30DA7 /* loop_descriptor.cpp in Sources */, + A9F7B4C829425A1900B30DA7 /* linker.cpp in Sources */, + A9F7B53429425A1900B30DA7 /* freeze_spec_constant_value_pass.cpp in Sources */, + A9F7B39C29425A1800B30DA7 /* string_utils.cpp in Sources */, + A9F7BCC029425A1B00B30DA7 /* validate_memory_semantics.cpp in Sources */, + A9F7B51F29425A1900B30DA7 /* types.cpp in Sources */, + A9F7B38129425A1800B30DA7 /* pch_source.cpp in Sources */, + A9F7B48C29425A1800B30DA7 /* print.cpp in Sources */, + A9F7BCA229425A1B00B30DA7 /* function.cpp in Sources */, + A9F7B68729425A1900B30DA7 /* inline_exhaustive_pass.cpp in Sources */, + A9F7B56429425A1900B30DA7 /* eliminate_dead_constant_pass.cpp in Sources */, + A9F7B71A29425A1900B30DA7 /* inline_opaque_pass.cpp in Sources */, + A9F7B45929425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */, + A9F7B36629425A1800B30DA7 /* linter.cpp in Sources */, + A9F7B4FE29425A1900B30DA7 /* eliminate_dead_output_stores_pass.cpp in Sources */, + A9F7B79529425A1900B30DA7 /* compact_ids_pass.cpp in Sources */, + A9F7B62D29425A1900B30DA7 /* folding_rules.cpp in Sources */, + A9F7B65A29425A1900B30DA7 /* strip_nonsemantic_info_pass.cpp in Sources */, + A9F7B6C629425A1900B30DA7 /* private_to_local_pass.cpp in Sources */, + A9F7B5A929425A1900B30DA7 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */, + A9F7BC8129425A1B00B30DA7 /* validate_ray_tracing_reorder.cpp in Sources */, + A9F7BCC629425A1B00B30DA7 /* validate_derivatives.cpp in Sources */, + A9F7B3E429425A1800B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */, + A9F7B64829425A1900B30DA7 /* control_dependence.cpp in Sources */, + A9F7B47429425A1800B30DA7 /* spirv_optimizer_options.cpp in Sources */, + A9F7B41A29425A1800B30DA7 /* pch_source_reduce.cpp in Sources */, + A9F7B59D29425A1900B30DA7 /* dead_variable_elimination.cpp in Sources */, + A9F7B3F029425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */, + A9F7B67229425A1900B30DA7 /* strength_reduction_pass.cpp in Sources */, + A9F7B78629425A1900B30DA7 /* scalar_analysis_simplification.cpp in Sources */, + A9F7BC8D29425A1B00B30DA7 /* validate_interfaces.cpp in Sources */, + A9F7BC7829425A1B00B30DA7 /* validate_atomics.cpp in Sources */, + A9F7B4D729425A1900B30DA7 /* ext_inst.cpp in Sources */, + A9F7B44429425A1800B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */, + A9F7B52E29425A1900B30DA7 /* decoration_manager.cpp in Sources */, + A9F7B6F629425A1900B30DA7 /* workaround1209.cpp in Sources */, + A9F7B75929425A1900B30DA7 /* interp_fixup_pass.cpp in Sources */, + A9F7BCCF29425A1B00B30DA7 /* validate_literals.cpp in Sources */, + A9F7B4A729425A1900B30DA7 /* diff.cpp in Sources */, + A9F7B55829425A1900B30DA7 /* dominator_tree.cpp in Sources */, + A9F7B6E729425A1900B30DA7 /* interface_var_sroa.cpp in Sources */, + A9F7B77A29425A1900B30DA7 /* upgrade_memory_model.cpp in Sources */, + A9F7B4F829425A1900B30DA7 /* combine_access_chains.cpp in Sources */, + A9F7B64529425A1900B30DA7 /* instruction_list.cpp in Sources */, + A9F7B61829425A1900B30DA7 /* aggressive_dead_code_elim_pass.cpp in Sources */, + A9F7B3CF29425A1800B30DA7 /* reduction_util.cpp in Sources */, + A9F7B5D329425A1900B30DA7 /* eliminate_dead_functions_pass.cpp in Sources */, + A9F7BCAE29425A1B00B30DA7 /* validate_small_type_uses.cpp in Sources */, + A9F7BC5D29425A1B00B30DA7 /* validate_misc.cpp in Sources */, + A9F7B51C29425A1900B30DA7 /* code_sink.cpp in Sources */, + A9F7B68429425A1900B30DA7 /* pass_manager.cpp in Sources */, + A9F7B54F29425A1900B30DA7 /* feature_manager.cpp in Sources */, + A9F7B56D29425A1900B30DA7 /* wrap_opkill.cpp in Sources */, + A9F7B73829425A1900B30DA7 /* dataflow.cpp in Sources */, + A9F7BCD529425A1B00B30DA7 /* validate_type.cpp in Sources */, + A9F7B6D529425A1900B30DA7 /* set_spec_constant_default_value_pass.cpp in Sources */, + A9F7B3BA29425A1800B30DA7 /* remove_selection_reduction_opportunity.cpp in Sources */, + A9F7BC9629425A1B00B30DA7 /* validate_constants.cpp in Sources */, + A9F7BCE129425A1B00B30DA7 /* validate_layout.cpp in Sources */, + A9F7B57329425A1900B30DA7 /* const_folding_rules.cpp in Sources */, + A9F7B71D29425A1900B30DA7 /* replace_invalid_opc.cpp in Sources */, + A9F7B57029425A1900B30DA7 /* eliminate_dead_io_components_pass.cpp in Sources */, + A9F7B46B29425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */, + A9F7B46829425A1800B30DA7 /* reduction_opportunity_finder.cpp in Sources */, + A9F7B50429425A1900B30DA7 /* liveness.cpp in Sources */, + A9F7B66629425A1900B30DA7 /* debug_info_manager.cpp in Sources */, + A9F7B6FC29425A1900B30DA7 /* relax_float_ops_pass.cpp in Sources */, + A9F7B71429425A1900B30DA7 /* value_number_table.cpp in Sources */, + A9F7B37529425A1800B30DA7 /* text.cpp in Sources */, + A9F7B6C029425A1900B30DA7 /* local_single_store_elim_pass.cpp in Sources */, + A9F7B42329425A1800B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */, + A9F7B3C329425A1800B30DA7 /* reduction_pass.cpp in Sources */, + A9F7B64E29425A1900B30DA7 /* convert_to_half_pass.cpp in Sources */, + A9F7B70B29425A1900B30DA7 /* reduce_load_size.cpp in Sources */, + A9F7B75629425A1900B30DA7 /* local_access_chain_convert_pass.cpp in Sources */, + A9F7B54029425A1900B30DA7 /* inst_bindless_check_pass.cpp in Sources */, + A9F7B53129425A1900B30DA7 /* local_single_block_elim_pass.cpp in Sources */, + A9F7BCDE29425A1B00B30DA7 /* validate_execution_limitations.cpp in Sources */, + A9F7B64229425A1900B30DA7 /* function.cpp in Sources */, + A9F7B66329425A1900B30DA7 /* fix_func_call_arguments.cpp in Sources */, + A9F7B45C29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */, + A9F7B76B29425A1900B30DA7 /* graphics_robust_access_pass.cpp in Sources */, + A9F7BC9F29425A1B00B30DA7 /* construct.cpp in Sources */, + A9F7B5E229425A1900B30DA7 /* loop_unroller.cpp in Sources */, + A9F7B48629425A1800B30DA7 /* spirv_validator_options.cpp in Sources */, + A9F7B36929425A1800B30DA7 /* divergence_analysis.cpp in Sources */, + A9F7B4E629425A1900B30DA7 /* loop_utils.cpp in Sources */, + A9F7B4EC29425A1900B30DA7 /* spread_volatile_semantics.cpp in Sources */, + A9F7B67529425A1900B30DA7 /* desc_sroa.cpp in Sources */, + A9F7B69C29425A1900B30DA7 /* dead_insert_elim_pass.cpp in Sources */, + A9F7BC8429425A1B00B30DA7 /* validate_decorations.cpp in Sources */, + A9F7B69029425A1900B30DA7 /* loop_fusion_pass.cpp in Sources */, + A9F7B43229425A1800B30DA7 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */, + A9F7B62729425A1900B30DA7 /* flatten_decoration_pass.cpp in Sources */, + A9F7B71129425A1900B30DA7 /* fix_storage_class.cpp in Sources */, + A9F7B4CE29425A1900B30DA7 /* software_version.cpp in Sources */, + A9F7B37829425A1800B30DA7 /* assembly_grammar.cpp in Sources */, + A9F7B6DE29425A1900B30DA7 /* amd_ext_to_khr.cpp in Sources */, + A9F7BC5729425A1B00B30DA7 /* text_handler.cpp in Sources */, + A9F7B4DD29425A1900B30DA7 /* optimizer.cpp in Sources */, + A9F7BCF029425A1B00B30DA7 /* validation_state.cpp in Sources */, + A9F7B59429425A1900B30DA7 /* mem_pass.cpp in Sources */, + A9F7B72C29425A1900B30DA7 /* replace_desc_array_access_using_var_index.cpp in Sources */, + A9F7B5C729425A1900B30DA7 /* ir_loader.cpp in Sources */, + A9F7B37E29425A1800B30DA7 /* extensions.cpp in Sources */, + A9F7B5B229425A1900B30DA7 /* type_manager.cpp in Sources */, + A9F7B6E129425A1900B30DA7 /* scalar_replacement_pass.cpp in Sources */, + A9F7B5AC29425A1900B30DA7 /* loop_unswitch_pass.cpp in Sources */, + A9F7B43529425A1800B30DA7 /* reduction_opportunity.cpp in Sources */, + A9F7BC9C29425A1B00B30DA7 /* validate_extensions.cpp in Sources */, + A9F7B46529425A1800B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */, + A9F7B39629425A1800B30DA7 /* timer.cpp in Sources */, + A9F7B60F29425A1900B30DA7 /* pch_source_opt.cpp in Sources */, + A9F7B5C129425A1900B30DA7 /* inline_pass.cpp in Sources */, + A9F7B5F429425A1900B30DA7 /* inst_buff_addr_check_pass.cpp in Sources */, + A9F7BC6929425A1B00B30DA7 /* validate_barriers.cpp in Sources */, + A9F7B6F029425A1900B30DA7 /* redundancy_elimination.cpp in Sources */, + A9F7B49529425A1800B30DA7 /* spirv_endian.cpp in Sources */, + A9F7B52B29425A1900B30DA7 /* cfg.cpp in Sources */, + A9F7B59A29425A1900B30DA7 /* remove_duplicates_pass.cpp in Sources */, + A9F7BC5A29425A1B00B30DA7 /* validate_annotation.cpp in Sources */, + A9F7B6D229425A1900B30DA7 /* loop_dependence_helpers.cpp in Sources */, + A9F7B75C29425A1900B30DA7 /* basic_block.cpp in Sources */, + A9F7B58229425A1900B30DA7 /* loop_dependence.cpp in Sources */, + A9F7B5D029425A1900B30DA7 /* licm_pass.cpp in Sources */, + A9F7B42929425A1800B30DA7 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */, + A9F7B62429425A1900B30DA7 /* dead_branch_elim_pass.cpp in Sources */, + A9F7B58B29425A1900B30DA7 /* inst_debug_printf_pass.cpp in Sources */, + A9F7B54329425A1900B30DA7 /* local_redundancy_elimination.cpp in Sources */, + A9F7BCC929425A1B00B30DA7 /* validate_memory.cpp in Sources */, + A9F7B72629425A1900B30DA7 /* dominator_analysis.cpp in Sources */, + A9F7BC9029425A1B00B30DA7 /* validate.cpp in Sources */, + A9F7B67E29425A1900B30DA7 /* copy_prop_arrays.cpp in Sources */, + A9F7B45F29425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */, + A9F7BCED29425A1B00B30DA7 /* validate_composites.cpp in Sources */, + A9F7B77429425A1900B30DA7 /* loop_fusion.cpp in Sources */, + A9F7BCE429425A1B00B30DA7 /* basic_block.cpp in Sources */, + A9F7B71729425A1900B30DA7 /* remove_unused_interface_variables_pass.cpp in Sources */, + A9F7BCE729425A1B00B30DA7 /* validate_function.cpp in Sources */, + A9F7B5DC29425A1900B30DA7 /* vector_dce.cpp in Sources */, + A9F7BCF329425A1B00B30DA7 /* validate_primitives.cpp in Sources */, + A9F7B62129425A1900B30DA7 /* simplification_pass.cpp in Sources */, + A9F7B6CC29425A1900B30DA7 /* propagator.cpp in Sources */, + A9F7B3EA29425A1800B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */, + A9F7B41129425A1800B30DA7 /* remove_instruction_reduction_opportunity.cpp in Sources */, + A9F7BCBA29425A1B00B30DA7 /* validate_arithmetics.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4757,224 +4805,228 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A9EE0DD428FDD2560013FF99 /* inst_bindless_check_pass.cpp in Sources */, - A9EE153628FDD2590013FF99 /* validate_small_type_uses.cpp in Sources */, - A9EE0EB228FDD2570013FF99 /* dead_branch_elim_pass.cpp in Sources */, - A9EE0F5728FDD2570013FF99 /* propagator.cpp in Sources */, - A9EE0E5528FDD2570013FF99 /* ir_loader.cpp in Sources */, - A9EE151E28FDD2590013FF99 /* validate_constants.cpp in Sources */, - A9EE0D5628FDD2560013FF99 /* spirv_reducer_options.cpp in Sources */, - A9EE0DE628FDD2560013FF99 /* pass.cpp in Sources */, - A9EE151528FDD2590013FF99 /* validate_interfaces.cpp in Sources */, - A9EE0D8028FDD2560013FF99 /* register_pressure.cpp in Sources */, - A9EE0E2B28FDD2560013FF99 /* dead_variable_elimination.cpp in Sources */, - A9EE0D6E28FDD2560013FF99 /* opcode.cpp in Sources */, - A9EE0FA528FDD2570013FF99 /* inline_opaque_pass.cpp in Sources */, - A9EE156F28FDD2590013FF99 /* validate_function.cpp in Sources */, - A9EE152428FDD2590013FF99 /* validate_extensions.cpp in Sources */, - A9EE0C5128FDD2560013FF99 /* table.cpp in Sources */, - A9EE155428FDD2590013FF99 /* validate_image.cpp in Sources */, - A9EE102328FDD2570013FF99 /* loop_peeling.cpp in Sources */, - A9EE102028FDD2570013FF99 /* compact_ids_pass.cpp in Sources */, - A9EE0CD828FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */, - A9EE0FE128FDD2570013FF99 /* local_access_chain_convert_pass.cpp in Sources */, - A9EE0DC528FDD2560013FF99 /* decoration_manager.cpp in Sources */, - A9EE0C4828FDD2560013FF99 /* bit_vector.cpp in Sources */, - A9EE0F4B28FDD2570013FF99 /* local_single_store_elim_pass.cpp in Sources */, - A9EE0C7228FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */, - A9EE0F3328FDD2570013FF99 /* block_merge_pass.cpp in Sources */, - A9EE0F6028FDD2570013FF99 /* set_spec_constant_default_value_pass.cpp in Sources */, - A9EE0F3928FDD2570013FF99 /* convert_to_sampled_image_pass.cpp in Sources */, - A9EE0EB528FDD2570013FF99 /* flatten_decoration_pass.cpp in Sources */, - A9EE0E2228FDD2560013FF99 /* mem_pass.cpp in Sources */, - A9EE0FF628FDD2570013FF99 /* graphics_robust_access_pass.cpp in Sources */, - A9EE0EE828FDD2570013FF99 /* strip_nonsemantic_info_pass.cpp in Sources */, - A9EE0CC328FDD2560013FF99 /* reducer.cpp in Sources */, - A9EE0DF228FDD2560013FF99 /* merge_return_pass.cpp in Sources */, - A9EE0ED928FDD2570013FF99 /* composite.cpp in Sources */, - A9EE0C8428FDD2560013FF99 /* remove_function_reduction_opportunity.cpp in Sources */, - A9EE0C6628FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */, - A9EE0D4A28FDD2560013FF99 /* enum_string_mapping.cpp in Sources */, - A9EE0EAF28FDD2570013FF99 /* simplification_pass.cpp in Sources */, - A9EE0D3B28FDD2560013FF99 /* binary.cpp in Sources */, - A9EE0D9828FDD2560013FF99 /* build_module.cpp in Sources */, - A9EE14FA28FDD2590013FF99 /* validate_ray_query.cpp in Sources */, - A9EE0F9C28FDD2570013FF99 /* fix_storage_class.cpp in Sources */, - A9EE153328FDD2590013FF99 /* validate_conversion.cpp in Sources */, - A9EE0E4F28FDD2570013FF99 /* inline_pass.cpp in Sources */, - A9EE150C28FDD2590013FF99 /* validate_decorations.cpp in Sources */, - A9EE152728FDD2590013FF99 /* construct.cpp in Sources */, - A9EE0D1D28FDD2560013FF99 /* spirv_fuzzer_options.cpp in Sources */, - A9EE0E1028FDD2560013FF99 /* loop_dependence.cpp in Sources */, - A9EE0E0A28FDD2560013FF99 /* strip_debug_info_pass.cpp in Sources */, - A9EE0F6628FDD2570013FF99 /* fold.cpp in Sources */, - A9EE151828FDD2590013FF99 /* validate.cpp in Sources */, - A9EE154528FDD2590013FF99 /* validate_mode_setting.cpp in Sources */, - A9EE0F9F28FDD2570013FF99 /* value_number_table.cpp in Sources */, - A9EE0C4528FDD2560013FF99 /* parse_number.cpp in Sources */, - A9EE100528FDD2570013FF99 /* upgrade_memory_model.cpp in Sources */, - A9EE14E228FDD2590013FF99 /* text_handler.cpp in Sources */, - A9EE0C0028FDD2560013FF99 /* lint_divergent_derivatives.cpp in Sources */, - A9EE0DE328FDD2560013FF99 /* feature_manager.cpp in Sources */, - A9EE0ED328FDD2570013FF99 /* instruction_list.cpp in Sources */, - A9EE0E6128FDD2570013FF99 /* eliminate_dead_functions_pass.cpp in Sources */, - A9EE0E1928FDD2560013FF99 /* inst_debug_printf_pass.cpp in Sources */, - A9EE0CBA28FDD2560013FF99 /* remove_struct_member_reduction_opportunity.cpp in Sources */, - A9EE150028FDD2590013FF99 /* validate_scopes.cpp in Sources */, - A9EE0E9428FDD2570013FF99 /* ccp_pass.cpp in Sources */, - A9EE0F1B28FDD2570013FF99 /* loop_fusion_pass.cpp in Sources */, - A9EE0DEC28FDD2560013FF99 /* dominator_tree.cpp in Sources */, - A9EE0C7828FDD2560013FF99 /* remove_function_reduction_opportunity_finder.cpp in Sources */, - A9EE0FC328FDD2570013FF99 /* dataflow.cpp in Sources */, - A9EE0E2828FDD2560013FF99 /* remove_duplicates_pass.cpp in Sources */, - A9EE0F8128FDD2570013FF99 /* workaround1209.cpp in Sources */, - A9EE0C9628FDD2560013FF99 /* merge_blocks_reduction_opportunity.cpp in Sources */, - A9EE0F2D28FDD2570013FF99 /* scalar_analysis.cpp in Sources */, - A9EE0F1228FDD2570013FF99 /* inline_exhaustive_pass.cpp in Sources */, - A9EE0E6A28FDD2570013FF99 /* vector_dce.cpp in Sources */, - A9EE0DB628FDD2560013FF99 /* types.cpp in Sources */, - A9EE0CFF28FDD2560013FF99 /* remove_block_reduction_opportunity.cpp in Sources */, - A9EE14EB28FDD2590013FF99 /* validate_cfg.cpp in Sources */, - A9EE100228FDD2570013FF99 /* eliminate_dead_input_components_pass.cpp in Sources */, - A9EE0ED028FDD2570013FF99 /* function.cpp in Sources */, - A9EE0BF728FDD2560013FF99 /* spirv_target_env.cpp in Sources */, - A9EE152A28FDD2590013FF99 /* function.cpp in Sources */, - A9EE0F9628FDD2570013FF99 /* reduce_load_size.cpp in Sources */, - A9EE0EF128FDD2570013FF99 /* fix_func_call_arguments.cpp in Sources */, - A9EE14FD28FDD2590013FF99 /* validate_ray_tracing.cpp in Sources */, - A9EE0CED28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.cpp in Sources */, - A9EE0C8A28FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.cpp in Sources */, - A9EE156C28FDD2590013FF99 /* basic_block.cpp in Sources */, - A9EE0F0328FDD2570013FF99 /* desc_sroa.cpp in Sources */, - A9EE0DD728FDD2560013FF99 /* local_redundancy_elimination.cpp in Sources */, - A9EE0F0C28FDD2570013FF99 /* copy_prop_arrays.cpp in Sources */, - A9EE0D5928FDD2560013FF99 /* parsed_operand.cpp in Sources */, - A9EE0D6228FDD2560013FF99 /* name_mapper.cpp in Sources */, - A9EE151228FDD2590013FF99 /* validate_builtins.cpp in Sources */, - A9EE14C128FDD2590013FF99 /* diagnostic.cpp in Sources */, - A9EE0EC128FDD2570013FF99 /* ir_context.cpp in Sources */, - A9EE101128FDD2570013FF99 /* scalar_analysis_simplification.cpp in Sources */, - A9EE0E3728FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */, - A9EE0F2728FDD2570013FF99 /* dead_insert_elim_pass.cpp in Sources */, - A9EE154B28FDD2590013FF99 /* validate_logicals.cpp in Sources */, - A9EE0F0028FDD2570013FF99 /* strength_reduction_pass.cpp in Sources */, - A9EE0C9928FDD2560013FF99 /* change_operand_reduction_opportunity.cpp in Sources */, - A9EE154228FDD2590013FF99 /* validate_arithmetics.cpp in Sources */, - A9EE0D6528FDD2560013FF99 /* linker.cpp in Sources */, - A9EE0C3928FDD2560013FF99 /* string_utils.cpp in Sources */, - A9EE0C1E28FDD2560013FF99 /* pch_source.cpp in Sources */, - A9EE157B28FDD2590013FF99 /* validate_primitives.cpp in Sources */, - A9EE0E8528FDD2570013FF99 /* def_use_manager.cpp in Sources */, - A9EE0EF428FDD2570013FF99 /* debug_info_manager.cpp in Sources */, - A9EE0FA828FDD2570013FF99 /* replace_invalid_opc.cpp in Sources */, - A9EE0D2928FDD2560013FF99 /* print.cpp in Sources */, - A9EE0F6928FDD2570013FF99 /* amd_ext_to_khr.cpp in Sources */, - A9EE0E3128FDD2560013FF99 /* module.cpp in Sources */, - A9EE154E28FDD2590013FF99 /* validate_derivatives.cpp in Sources */, - A9EE0F9028FDD2570013FF99 /* instruction.cpp in Sources */, - A9EE0CF628FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */, - A9EE0DC228FDD2560013FF99 /* cfg.cpp in Sources */, - A9EE0FE728FDD2570013FF99 /* basic_block.cpp in Sources */, - A9EE0DF828FDD2560013FF99 /* eliminate_dead_constant_pass.cpp in Sources */, - A9EE0FD228FDD2570013FF99 /* remove_dontinline_pass.cpp in Sources */, - A9EE0C0328FDD2560013FF99 /* linter.cpp in Sources */, - A9EE14F728FDD2590013FF99 /* validate_non_uniform.cpp in Sources */, - A9EE0E7628FDD2570013FF99 /* constants.cpp in Sources */, - A9EE0DDA28FDD2560013FF99 /* instrument_pass.cpp in Sources */, - A9EE0DE928FDD2560013FF99 /* loop_fission.cpp in Sources */, - A9EE0FB728FDD2570013FF99 /* replace_desc_array_access_using_var_index.cpp in Sources */, - A9EE0C8128FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */, - A9EE0D1128FDD2560013FF99 /* spirv_optimizer_options.cpp in Sources */, - A9EE0FE428FDD2570013FF99 /* interp_fixup_pass.cpp in Sources */, - A9EE0CB728FDD2560013FF99 /* pch_source_reduce.cpp in Sources */, - A9EE0C8D28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */, - A9EE14E528FDD2590013FF99 /* validate_annotation.cpp in Sources */, - A9EE155728FDD2590013FF99 /* validate_literals.cpp in Sources */, - A9EE0F5D28FDD2570013FF99 /* loop_dependence_helpers.cpp in Sources */, - A9EE0D7428FDD2560013FF99 /* ext_inst.cpp in Sources */, - A9EE0EA628FDD2570013FF99 /* aggressive_dead_code_elim_pass.cpp in Sources */, - A9EE157828FDD2590013FF99 /* validation_state.cpp in Sources */, - A9EE0CE128FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */, - A9EE14E828FDD2590013FF99 /* validate_misc.cpp in Sources */, - A9EE0DCB28FDD2560013FF99 /* freeze_spec_constant_value_pass.cpp in Sources */, - A9EE157528FDD2590013FF99 /* validate_composites.cpp in Sources */, - A9EE0D4428FDD2560013FF99 /* diff.cpp in Sources */, - A9EE155128FDD2590013FF99 /* validate_memory.cpp in Sources */, - A9EE0EEE28FDD2570013FF99 /* if_conversion.cpp in Sources */, - A9EE0EDC28FDD2570013FF99 /* convert_to_half_pass.cpp in Sources */, - A9EE0D9528FDD2560013FF99 /* combine_access_chains.cpp in Sources */, - A9EE0C6C28FDD2560013FF99 /* reduction_util.cpp in Sources */, - A9EE0E8228FDD2570013FF99 /* inst_buff_addr_check_pass.cpp in Sources */, - A9EE0ED628FDD2570013FF99 /* control_dependence.cpp in Sources */, - A9EE0F6C28FDD2570013FF99 /* scalar_replacement_pass.cpp in Sources */, - A9EE0E5E28FDD2570013FF99 /* licm_pass.cpp in Sources */, - A9EE14C728FDD2590013FF99 /* libspirv.cpp in Sources */, - A9EE0E9D28FDD2570013FF99 /* pch_source_opt.cpp in Sources */, - A9EE0C5728FDD2560013FF99 /* remove_selection_reduction_opportunity.cpp in Sources */, - A9EE14D328FDD2590013FF99 /* operand.cpp in Sources */, - A9EE0D0828FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */, - A9EE0E3A28FDD2560013FF99 /* loop_unswitch_pass.cpp in Sources */, - A9EE0D0528FDD2560013FF99 /* reduction_opportunity_finder.cpp in Sources */, - A9EE0C1228FDD2560013FF99 /* text.cpp in Sources */, - A9EE0CC028FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */, - A9EE0DFE28FDD2560013FF99 /* cfg_cleanup_pass.cpp in Sources */, - A9EE0C6028FDD2560013FF99 /* reduction_pass.cpp in Sources */, - A9EE154828FDD2590013FF99 /* validate_memory_semantics.cpp in Sources */, - A9EE14F428FDD2590013FF99 /* validate_barriers.cpp in Sources */, - A9EE156328FDD2590013FF99 /* validate_mesh_shading.cpp in Sources */, - A9EE0F8728FDD2570013FF99 /* relax_float_ops_pass.cpp in Sources */, - A9EE0CF928FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */, - A9EE0E0428FDD2560013FF99 /* const_folding_rules.cpp in Sources */, - A9EE0EFD28FDD2570013FF99 /* eliminate_dead_members_pass.cpp in Sources */, - A9EE0ECA28FDD2570013FF99 /* loop_descriptor.cpp in Sources */, - A9EE0D2328FDD2560013FF99 /* spirv_validator_options.cpp in Sources */, - A9EE0C0628FDD2560013FF99 /* divergence_analysis.cpp in Sources */, - A9EE0FCF28FDD2570013FF99 /* struct_cfg_analysis.cpp in Sources */, - A9EE14DC28FDD2590013FF99 /* disassemble.cpp in Sources */, - A9EE0EA928FDD2570013FF99 /* eliminate_dead_functions_util.cpp in Sources */, - A9EE0D8328FDD2560013FF99 /* loop_utils.cpp in Sources */, - A9EE152128FDD2590013FF99 /* validate_bitwise.cpp in Sources */, - A9EE0D8928FDD2560013FF99 /* spread_volatile_semantics.cpp in Sources */, - A9EE14EE28FDD2590013FF99 /* validate_capability.cpp in Sources */, - A9EE0E7F28FDD2570013FF99 /* desc_sroa_util.cpp in Sources */, - A9EE0F0F28FDD2570013FF99 /* pass_manager.cpp in Sources */, - A9EE0CCF28FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */, - A9EE0DC828FDD2560013FF99 /* local_single_block_elim_pass.cpp in Sources */, - A9EE0F7228FDD2570013FF99 /* interface_var_sroa.cpp in Sources */, - A9EE0F5128FDD2570013FF99 /* private_to_local_pass.cpp in Sources */, - A9EE0D6B28FDD2560013FF99 /* software_version.cpp in Sources */, - A9EE153028FDD2590013FF99 /* validate_adjacency.cpp in Sources */, - A9EE155D28FDD2590013FF99 /* validate_type.cpp in Sources */, - A9EE0C1528FDD2560013FF99 /* assembly_grammar.cpp in Sources */, - A9EE0D7A28FDD2560013FF99 /* optimizer.cpp in Sources */, - A9EE0E0128FDD2560013FF99 /* wrap_opkill.cpp in Sources */, - A9EE0F0628FDD2570013FF99 /* block_merge_util.cpp in Sources */, - A9EE0EBB28FDD2570013FF99 /* folding_rules.cpp in Sources */, - A9EE0C1B28FDD2560013FF99 /* extensions.cpp in Sources */, - A9EE150F28FDD2590013FF99 /* validate_debug.cpp in Sources */, - A9EE150928FDD2590013FF99 /* validate_instruction.cpp in Sources */, - A9EE156628FDD2590013FF99 /* validate_execution_limitations.cpp in Sources */, - A9EE150328FDD2590013FF99 /* validate_atomics.cpp in Sources */, - A9EE0CD228FDD2560013FF99 /* reduction_opportunity.cpp in Sources */, - A9EE0E3D28FDD2560013FF99 /* unify_const_pass.cpp in Sources */, - A9EE0FFF28FDD2570013FF99 /* loop_fusion.cpp in Sources */, - A9EE0FB128FDD2570013FF99 /* dominator_analysis.cpp in Sources */, - A9EE0E0D28FDD2560013FF99 /* ssa_rewrite_pass.cpp in Sources */, - A9EE0DB328FDD2560013FF99 /* code_sink.cpp in Sources */, - A9EE0D0228FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */, - A9EE0F7B28FDD2570013FF99 /* redundancy_elimination.cpp in Sources */, - A9EE0C3328FDD2560013FF99 /* timer.cpp in Sources */, - A9EE0D3228FDD2560013FF99 /* spirv_endian.cpp in Sources */, - A9EE0E7028FDD2570013FF99 /* loop_unroller.cpp in Sources */, - A9EE153C28FDD2590013FF99 /* validate_id.cpp in Sources */, - A9EE0CC628FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */, - A9EE0CFC28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */, - A9EE0E4028FDD2560013FF99 /* type_manager.cpp in Sources */, - A9EE0C8728FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */, - A9EE0FA228FDD2570013FF99 /* remove_unused_interface_variables_pass.cpp in Sources */, - A9EE0CAE28FDD2560013FF99 /* remove_instruction_reduction_opportunity.cpp in Sources */, - A9EE155A28FDD2590013FF99 /* instruction.cpp in Sources */, - A9EE156928FDD2590013FF99 /* validate_layout.cpp in Sources */, + A9F7B4B829425A1900B30DA7 /* spirv_reducer_options.cpp in Sources */, + A9F7B4E229425A1900B30DA7 /* register_pressure.cpp in Sources */, + A9F7B79729425A1900B30DA7 /* loop_peeling.cpp in Sources */, + A9F7B6A729425A1900B30DA7 /* block_merge_pass.cpp in Sources */, + A9F7B4D029425A1900B30DA7 /* opcode.cpp in Sources */, + A9F7BC8929425A1B00B30DA7 /* validate_builtins.cpp in Sources */, + A9F7BC6B29425A1B00B30DA7 /* validate_non_uniform.cpp in Sources */, + A9F7B3B329425A1800B30DA7 /* table.cpp in Sources */, + A9F7BCC229425A1B00B30DA7 /* validate_logicals.cpp in Sources */, + A9F7B43A29425A1800B30DA7 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */, + A9F7B3AA29425A1800B30DA7 /* bit_vector.cpp in Sources */, + A9F7B63229425A1900B30DA7 /* ir_context.cpp in Sources */, + A9F7B3D429425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */, + A9F7B65F29425A1900B30DA7 /* if_conversion.cpp in Sources */, + A9F7B74629425A1900B30DA7 /* remove_dontinline_pass.cpp in Sources */, + A9F7B6AD29425A1900B30DA7 /* convert_to_sampled_image_pass.cpp in Sources */, + A9F7B55D29425A1900B30DA7 /* merge_return_pass.cpp in Sources */, + A9F7B42529425A1800B30DA7 /* reducer.cpp in Sources */, + A9F7B3E629425A1800B30DA7 /* remove_function_reduction_opportunity.cpp in Sources */, + A9F7BC5029425A1B00B30DA7 /* disassemble.cpp in Sources */, + A9F7B64A29425A1900B30DA7 /* composite.cpp in Sources */, + A9F7BCAA29425A1B00B30DA7 /* validate_conversion.cpp in Sources */, + A9F7BCD129425A1B00B30DA7 /* instruction.cpp in Sources */, + A9F7BC6E29425A1B00B30DA7 /* validate_ray_query.cpp in Sources */, + A9F7BC4729425A1B00B30DA7 /* operand.cpp in Sources */, + A9F7B5AE29425A1900B30DA7 /* unify_const_pass.cpp in Sources */, + A9F7B3C829425A1800B30DA7 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */, + A9F7B4AC29425A1900B30DA7 /* enum_string_mapping.cpp in Sources */, + A9F7BCBC29425A1B00B30DA7 /* validate_mode_setting.cpp in Sources */, + A9F7B49D29425A1900B30DA7 /* binary.cpp in Sources */, + A9F7B74329425A1900B30DA7 /* struct_cfg_analysis.cpp in Sources */, + A9F7BC6229425A1B00B30DA7 /* validate_capability.cpp in Sources */, + A9F7BC3529425A1B00B30DA7 /* diagnostic.cpp in Sources */, + A9F7BC3B29425A1B00B30DA7 /* libspirv.cpp in Sources */, + A9F7BCDA29425A1B00B30DA7 /* validate_mesh_shading.cpp in Sources */, + A9F7B4FA29425A1900B30DA7 /* build_module.cpp in Sources */, + A9F7B56929425A1900B30DA7 /* cfg_cleanup_pass.cpp in Sources */, + A9F7B47F29425A1800B30DA7 /* spirv_fuzzer_options.cpp in Sources */, + A9F7BCA729425A1B00B30DA7 /* validate_adjacency.cpp in Sources */, + A9F7BCB329425A1B00B30DA7 /* validate_id.cpp in Sources */, + A9F7B3A729425A1800B30DA7 /* parse_number.cpp in Sources */, + A9F7B6A129425A1900B30DA7 /* scalar_analysis.cpp in Sources */, + A9F7B36229425A1800B30DA7 /* lint_divergent_derivatives.cpp in Sources */, + A9F7B41C29425A1800B30DA7 /* remove_struct_member_reduction_opportunity.cpp in Sources */, + A9F7BC7429425A1B00B30DA7 /* validate_scopes.cpp in Sources */, + A9F7B57B29425A1900B30DA7 /* strip_debug_info_pass.cpp in Sources */, + A9F7B61A29425A1900B30DA7 /* eliminate_dead_functions_util.cpp in Sources */, + A9F7B3DA29425A1800B30DA7 /* remove_function_reduction_opportunity_finder.cpp in Sources */, + A9F7B57E29425A1900B30DA7 /* ssa_rewrite_pass.cpp in Sources */, + A9F7BCCB29425A1B00B30DA7 /* validate_image.cpp in Sources */, + A9F7B5A229425A1900B30DA7 /* module.cpp in Sources */, + A9F7B3F829425A1800B30DA7 /* merge_blocks_reduction_opportunity.cpp in Sources */, + A9F7B5E729425A1900B30DA7 /* constants.cpp in Sources */, + A9F7B46129425A1800B30DA7 /* remove_block_reduction_opportunity.cpp in Sources */, + A9F7B35929425A1800B30DA7 /* spirv_target_env.cpp in Sources */, + A9F7B55429425A1900B30DA7 /* loop_fission.cpp in Sources */, + A9F7B44F29425A1800B30DA7 /* remove_block_reduction_opportunity_finder.cpp in Sources */, + A9F7B3EC29425A1800B30DA7 /* remove_selection_reduction_opportunity_finder.cpp in Sources */, + A9F7B6DA29425A1900B30DA7 /* fold.cpp in Sources */, + A9F7B5F629425A1900B30DA7 /* def_use_manager.cpp in Sources */, + A9F7B4BB29425A1900B30DA7 /* parsed_operand.cpp in Sources */, + A9F7B66E29425A1900B30DA7 /* eliminate_dead_members_pass.cpp in Sources */, + A9F7B70429425A1900B30DA7 /* instruction.cpp in Sources */, + A9F7B4C429425A1900B30DA7 /* name_mapper.cpp in Sources */, + A9F7B77629425A1900B30DA7 /* analyze_live_input_pass.cpp in Sources */, + A9F7BC5F29425A1B00B30DA7 /* validate_cfg.cpp in Sources */, + A9F7B3FB29425A1800B30DA7 /* change_operand_reduction_opportunity.cpp in Sources */, + A9F7BC7D29425A1B00B30DA7 /* validate_instruction.cpp in Sources */, + A9F7B54529425A1900B30DA7 /* instrument_pass.cpp in Sources */, + A9F7BC7129425A1B00B30DA7 /* validate_ray_tracing.cpp in Sources */, + A9F7B55129425A1900B30DA7 /* pass.cpp in Sources */, + A9F7B60229425A1900B30DA7 /* ccp_pass.cpp in Sources */, + A9F7B5F029425A1900B30DA7 /* desc_sroa_util.cpp in Sources */, + A9F7BC9829425A1B00B30DA7 /* validate_bitwise.cpp in Sources */, + A9F7B67729425A1900B30DA7 /* block_merge_util.cpp in Sources */, + A9F7BC8629425A1B00B30DA7 /* validate_debug.cpp in Sources */, + A9F7B63B29425A1900B30DA7 /* loop_descriptor.cpp in Sources */, + A9F7B4C729425A1900B30DA7 /* linker.cpp in Sources */, + A9F7B53329425A1900B30DA7 /* freeze_spec_constant_value_pass.cpp in Sources */, + A9F7B39B29425A1800B30DA7 /* string_utils.cpp in Sources */, + A9F7BCBF29425A1B00B30DA7 /* validate_memory_semantics.cpp in Sources */, + A9F7B51E29425A1900B30DA7 /* types.cpp in Sources */, + A9F7B38029425A1800B30DA7 /* pch_source.cpp in Sources */, + A9F7B48B29425A1800B30DA7 /* print.cpp in Sources */, + A9F7BCA129425A1B00B30DA7 /* function.cpp in Sources */, + A9F7B68629425A1900B30DA7 /* inline_exhaustive_pass.cpp in Sources */, + A9F7B56329425A1900B30DA7 /* eliminate_dead_constant_pass.cpp in Sources */, + A9F7B71929425A1900B30DA7 /* inline_opaque_pass.cpp in Sources */, + A9F7B45829425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */, + A9F7B36529425A1800B30DA7 /* linter.cpp in Sources */, + A9F7B4FD29425A1900B30DA7 /* eliminate_dead_output_stores_pass.cpp in Sources */, + A9F7B79429425A1900B30DA7 /* compact_ids_pass.cpp in Sources */, + A9F7B62C29425A1900B30DA7 /* folding_rules.cpp in Sources */, + A9F7B65929425A1900B30DA7 /* strip_nonsemantic_info_pass.cpp in Sources */, + A9F7B6C529425A1900B30DA7 /* private_to_local_pass.cpp in Sources */, + A9F7B5A829425A1900B30DA7 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */, + A9F7BC8029425A1B00B30DA7 /* validate_ray_tracing_reorder.cpp in Sources */, + A9F7BCC529425A1B00B30DA7 /* validate_derivatives.cpp in Sources */, + A9F7B3E329425A1800B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */, + A9F7B64729425A1900B30DA7 /* control_dependence.cpp in Sources */, + A9F7B47329425A1800B30DA7 /* spirv_optimizer_options.cpp in Sources */, + A9F7B41929425A1800B30DA7 /* pch_source_reduce.cpp in Sources */, + A9F7B59C29425A1900B30DA7 /* dead_variable_elimination.cpp in Sources */, + A9F7B3EF29425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */, + A9F7B67129425A1900B30DA7 /* strength_reduction_pass.cpp in Sources */, + A9F7B78529425A1900B30DA7 /* scalar_analysis_simplification.cpp in Sources */, + A9F7BC8C29425A1B00B30DA7 /* validate_interfaces.cpp in Sources */, + A9F7BC7729425A1B00B30DA7 /* validate_atomics.cpp in Sources */, + A9F7B4D629425A1900B30DA7 /* ext_inst.cpp in Sources */, + A9F7B44329425A1800B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */, + A9F7B52D29425A1900B30DA7 /* decoration_manager.cpp in Sources */, + A9F7B6F529425A1900B30DA7 /* workaround1209.cpp in Sources */, + A9F7B75829425A1900B30DA7 /* interp_fixup_pass.cpp in Sources */, + A9F7BCCE29425A1B00B30DA7 /* validate_literals.cpp in Sources */, + A9F7B4A629425A1900B30DA7 /* diff.cpp in Sources */, + A9F7B55729425A1900B30DA7 /* dominator_tree.cpp in Sources */, + A9F7B6E629425A1900B30DA7 /* interface_var_sroa.cpp in Sources */, + A9F7B77929425A1900B30DA7 /* upgrade_memory_model.cpp in Sources */, + A9F7B4F729425A1900B30DA7 /* combine_access_chains.cpp in Sources */, + A9F7B64429425A1900B30DA7 /* instruction_list.cpp in Sources */, + A9F7B61729425A1900B30DA7 /* aggressive_dead_code_elim_pass.cpp in Sources */, + A9F7B3CE29425A1800B30DA7 /* reduction_util.cpp in Sources */, + A9F7B5D229425A1900B30DA7 /* eliminate_dead_functions_pass.cpp in Sources */, + A9F7BCAD29425A1B00B30DA7 /* validate_small_type_uses.cpp in Sources */, + A9F7BC5C29425A1B00B30DA7 /* validate_misc.cpp in Sources */, + A9F7B51B29425A1900B30DA7 /* code_sink.cpp in Sources */, + A9F7B68329425A1900B30DA7 /* pass_manager.cpp in Sources */, + A9F7B54E29425A1900B30DA7 /* feature_manager.cpp in Sources */, + A9F7B56C29425A1900B30DA7 /* wrap_opkill.cpp in Sources */, + A9F7B73729425A1900B30DA7 /* dataflow.cpp in Sources */, + A9F7BCD429425A1B00B30DA7 /* validate_type.cpp in Sources */, + A9F7B6D429425A1900B30DA7 /* set_spec_constant_default_value_pass.cpp in Sources */, + A9F7B3B929425A1800B30DA7 /* remove_selection_reduction_opportunity.cpp in Sources */, + A9F7BC9529425A1B00B30DA7 /* validate_constants.cpp in Sources */, + A9F7BCE029425A1B00B30DA7 /* validate_layout.cpp in Sources */, + A9F7B57229425A1900B30DA7 /* const_folding_rules.cpp in Sources */, + A9F7B71C29425A1900B30DA7 /* replace_invalid_opc.cpp in Sources */, + A9F7B56F29425A1900B30DA7 /* eliminate_dead_io_components_pass.cpp in Sources */, + A9F7B46A29425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */, + A9F7B46729425A1800B30DA7 /* reduction_opportunity_finder.cpp in Sources */, + A9F7B50329425A1900B30DA7 /* liveness.cpp in Sources */, + A9F7B66529425A1900B30DA7 /* debug_info_manager.cpp in Sources */, + A9F7B6FB29425A1900B30DA7 /* relax_float_ops_pass.cpp in Sources */, + A9F7B71329425A1900B30DA7 /* value_number_table.cpp in Sources */, + A9F7B37429425A1800B30DA7 /* text.cpp in Sources */, + A9F7B6BF29425A1900B30DA7 /* local_single_store_elim_pass.cpp in Sources */, + A9F7B42229425A1800B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */, + A9F7B3C229425A1800B30DA7 /* reduction_pass.cpp in Sources */, + A9F7B64D29425A1900B30DA7 /* convert_to_half_pass.cpp in Sources */, + A9F7B70A29425A1900B30DA7 /* reduce_load_size.cpp in Sources */, + A9F7B75529425A1900B30DA7 /* local_access_chain_convert_pass.cpp in Sources */, + A9F7B53F29425A1900B30DA7 /* inst_bindless_check_pass.cpp in Sources */, + A9F7B53029425A1900B30DA7 /* local_single_block_elim_pass.cpp in Sources */, + A9F7BCDD29425A1B00B30DA7 /* validate_execution_limitations.cpp in Sources */, + A9F7B64129425A1900B30DA7 /* function.cpp in Sources */, + A9F7B66229425A1900B30DA7 /* fix_func_call_arguments.cpp in Sources */, + A9F7B45B29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */, + A9F7B76A29425A1900B30DA7 /* graphics_robust_access_pass.cpp in Sources */, + A9F7BC9E29425A1B00B30DA7 /* construct.cpp in Sources */, + A9F7B5E129425A1900B30DA7 /* loop_unroller.cpp in Sources */, + A9F7B48529425A1800B30DA7 /* spirv_validator_options.cpp in Sources */, + A9F7B36829425A1800B30DA7 /* divergence_analysis.cpp in Sources */, + A9F7B4E529425A1900B30DA7 /* loop_utils.cpp in Sources */, + A9F7B4EB29425A1900B30DA7 /* spread_volatile_semantics.cpp in Sources */, + A9F7B67429425A1900B30DA7 /* desc_sroa.cpp in Sources */, + A9F7B69B29425A1900B30DA7 /* dead_insert_elim_pass.cpp in Sources */, + A9F7BC8329425A1B00B30DA7 /* validate_decorations.cpp in Sources */, + A9F7B68F29425A1900B30DA7 /* loop_fusion_pass.cpp in Sources */, + A9F7B43129425A1800B30DA7 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */, + A9F7B62629425A1900B30DA7 /* flatten_decoration_pass.cpp in Sources */, + A9F7B71029425A1900B30DA7 /* fix_storage_class.cpp in Sources */, + A9F7B4CD29425A1900B30DA7 /* software_version.cpp in Sources */, + A9F7B37729425A1800B30DA7 /* assembly_grammar.cpp in Sources */, + A9F7B6DD29425A1900B30DA7 /* amd_ext_to_khr.cpp in Sources */, + A9F7BC5629425A1B00B30DA7 /* text_handler.cpp in Sources */, + A9F7B4DC29425A1900B30DA7 /* optimizer.cpp in Sources */, + A9F7BCEF29425A1B00B30DA7 /* validation_state.cpp in Sources */, + A9F7B59329425A1900B30DA7 /* mem_pass.cpp in Sources */, + A9F7B72B29425A1900B30DA7 /* replace_desc_array_access_using_var_index.cpp in Sources */, + A9F7B5C629425A1900B30DA7 /* ir_loader.cpp in Sources */, + A9F7B37D29425A1800B30DA7 /* extensions.cpp in Sources */, + A9F7B5B129425A1900B30DA7 /* type_manager.cpp in Sources */, + A9F7B6E029425A1900B30DA7 /* scalar_replacement_pass.cpp in Sources */, + A9F7B5AB29425A1900B30DA7 /* loop_unswitch_pass.cpp in Sources */, + A9F7B43429425A1800B30DA7 /* reduction_opportunity.cpp in Sources */, + A9F7BC9B29425A1B00B30DA7 /* validate_extensions.cpp in Sources */, + A9F7B46429425A1800B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */, + A9F7B39529425A1800B30DA7 /* timer.cpp in Sources */, + A9F7B60E29425A1900B30DA7 /* pch_source_opt.cpp in Sources */, + A9F7B5C029425A1900B30DA7 /* inline_pass.cpp in Sources */, + A9F7B5F329425A1900B30DA7 /* inst_buff_addr_check_pass.cpp in Sources */, + A9F7BC6829425A1B00B30DA7 /* validate_barriers.cpp in Sources */, + A9F7B6EF29425A1900B30DA7 /* redundancy_elimination.cpp in Sources */, + A9F7B49429425A1800B30DA7 /* spirv_endian.cpp in Sources */, + A9F7B52A29425A1900B30DA7 /* cfg.cpp in Sources */, + A9F7B59929425A1900B30DA7 /* remove_duplicates_pass.cpp in Sources */, + A9F7BC5929425A1B00B30DA7 /* validate_annotation.cpp in Sources */, + A9F7B6D129425A1900B30DA7 /* loop_dependence_helpers.cpp in Sources */, + A9F7B75B29425A1900B30DA7 /* basic_block.cpp in Sources */, + A9F7B58129425A1900B30DA7 /* loop_dependence.cpp in Sources */, + A9F7B5CF29425A1900B30DA7 /* licm_pass.cpp in Sources */, + A9F7B42829425A1800B30DA7 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */, + A9F7B62329425A1900B30DA7 /* dead_branch_elim_pass.cpp in Sources */, + A9F7B58A29425A1900B30DA7 /* inst_debug_printf_pass.cpp in Sources */, + A9F7B54229425A1900B30DA7 /* local_redundancy_elimination.cpp in Sources */, + A9F7BCC829425A1B00B30DA7 /* validate_memory.cpp in Sources */, + A9F7B72529425A1900B30DA7 /* dominator_analysis.cpp in Sources */, + A9F7BC8F29425A1B00B30DA7 /* validate.cpp in Sources */, + A9F7B67D29425A1900B30DA7 /* copy_prop_arrays.cpp in Sources */, + A9F7B45E29425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */, + A9F7BCEC29425A1B00B30DA7 /* validate_composites.cpp in Sources */, + A9F7B77329425A1900B30DA7 /* loop_fusion.cpp in Sources */, + A9F7BCE329425A1B00B30DA7 /* basic_block.cpp in Sources */, + A9F7B71629425A1900B30DA7 /* remove_unused_interface_variables_pass.cpp in Sources */, + A9F7BCE629425A1B00B30DA7 /* validate_function.cpp in Sources */, + A9F7B5DB29425A1900B30DA7 /* vector_dce.cpp in Sources */, + A9F7BCF229425A1B00B30DA7 /* validate_primitives.cpp in Sources */, + A9F7B62029425A1900B30DA7 /* simplification_pass.cpp in Sources */, + A9F7B6CB29425A1900B30DA7 /* propagator.cpp in Sources */, + A9F7B3E929425A1800B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */, + A9F7B41029425A1800B30DA7 /* remove_instruction_reduction_opportunity.cpp in Sources */, + A9F7BCB929425A1B00B30DA7 /* validate_arithmetics.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4982,224 +5034,228 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A9EE0DD628FDD2560013FF99 /* inst_bindless_check_pass.cpp in Sources */, - A9EE153828FDD2590013FF99 /* validate_small_type_uses.cpp in Sources */, - A9EE0EB428FDD2570013FF99 /* dead_branch_elim_pass.cpp in Sources */, - A9EE0F5928FDD2570013FF99 /* propagator.cpp in Sources */, - A9EE0E5728FDD2570013FF99 /* ir_loader.cpp in Sources */, - A9EE152028FDD2590013FF99 /* validate_constants.cpp in Sources */, - A9EE0D5828FDD2560013FF99 /* spirv_reducer_options.cpp in Sources */, - A9EE0DE828FDD2560013FF99 /* pass.cpp in Sources */, - A9EE151728FDD2590013FF99 /* validate_interfaces.cpp in Sources */, - A9EE0D8228FDD2560013FF99 /* register_pressure.cpp in Sources */, - A9EE0E2D28FDD2560013FF99 /* dead_variable_elimination.cpp in Sources */, - A9EE0D7028FDD2560013FF99 /* opcode.cpp in Sources */, - A9EE0FA728FDD2570013FF99 /* inline_opaque_pass.cpp in Sources */, - A9EE157128FDD2590013FF99 /* validate_function.cpp in Sources */, - A9EE152628FDD2590013FF99 /* validate_extensions.cpp in Sources */, - A9EE0C5328FDD2560013FF99 /* table.cpp in Sources */, - A9EE155628FDD2590013FF99 /* validate_image.cpp in Sources */, - A9EE102528FDD2570013FF99 /* loop_peeling.cpp in Sources */, - A9EE102228FDD2570013FF99 /* compact_ids_pass.cpp in Sources */, - A9EE0CDA28FDD2560013FF99 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */, - A9EE0FE328FDD2570013FF99 /* local_access_chain_convert_pass.cpp in Sources */, - A9EE0DC728FDD2560013FF99 /* decoration_manager.cpp in Sources */, - A9EE0C4A28FDD2560013FF99 /* bit_vector.cpp in Sources */, - A9EE0F4D28FDD2570013FF99 /* local_single_store_elim_pass.cpp in Sources */, - A9EE0C7428FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */, - A9EE0F3528FDD2570013FF99 /* block_merge_pass.cpp in Sources */, - A9EE0F6228FDD2570013FF99 /* set_spec_constant_default_value_pass.cpp in Sources */, - A9EE0F3B28FDD2570013FF99 /* convert_to_sampled_image_pass.cpp in Sources */, - A9EE0EB728FDD2570013FF99 /* flatten_decoration_pass.cpp in Sources */, - A9EE0E2428FDD2560013FF99 /* mem_pass.cpp in Sources */, - A9EE0FF828FDD2570013FF99 /* graphics_robust_access_pass.cpp in Sources */, - A9EE0EEA28FDD2570013FF99 /* strip_nonsemantic_info_pass.cpp in Sources */, - A9EE0CC528FDD2560013FF99 /* reducer.cpp in Sources */, - A9EE0DF428FDD2560013FF99 /* merge_return_pass.cpp in Sources */, - A9EE0EDB28FDD2570013FF99 /* composite.cpp in Sources */, - A9EE0C8628FDD2560013FF99 /* remove_function_reduction_opportunity.cpp in Sources */, - A9EE0C6828FDD2560013FF99 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */, - A9EE0D4C28FDD2560013FF99 /* enum_string_mapping.cpp in Sources */, - A9EE0EB128FDD2570013FF99 /* simplification_pass.cpp in Sources */, - A9EE0D3D28FDD2560013FF99 /* binary.cpp in Sources */, - A9EE0D9A28FDD2560013FF99 /* build_module.cpp in Sources */, - A9EE14FC28FDD2590013FF99 /* validate_ray_query.cpp in Sources */, - A9EE0F9E28FDD2570013FF99 /* fix_storage_class.cpp in Sources */, - A9EE153528FDD2590013FF99 /* validate_conversion.cpp in Sources */, - A9EE0E5128FDD2570013FF99 /* inline_pass.cpp in Sources */, - A9EE150E28FDD2590013FF99 /* validate_decorations.cpp in Sources */, - A9EE152928FDD2590013FF99 /* construct.cpp in Sources */, - A9EE0D1F28FDD2560013FF99 /* spirv_fuzzer_options.cpp in Sources */, - A9EE0E1228FDD2560013FF99 /* loop_dependence.cpp in Sources */, - A9EE0E0C28FDD2560013FF99 /* strip_debug_info_pass.cpp in Sources */, - A9EE0F6828FDD2570013FF99 /* fold.cpp in Sources */, - A9EE151A28FDD2590013FF99 /* validate.cpp in Sources */, - A9EE154728FDD2590013FF99 /* validate_mode_setting.cpp in Sources */, - A9EE0FA128FDD2570013FF99 /* value_number_table.cpp in Sources */, - A9EE0C4728FDD2560013FF99 /* parse_number.cpp in Sources */, - A9EE100728FDD2570013FF99 /* upgrade_memory_model.cpp in Sources */, - A9EE14E428FDD2590013FF99 /* text_handler.cpp in Sources */, - A9EE0C0228FDD2560013FF99 /* lint_divergent_derivatives.cpp in Sources */, - A9EE0DE528FDD2560013FF99 /* feature_manager.cpp in Sources */, - A9EE0ED528FDD2570013FF99 /* instruction_list.cpp in Sources */, - A9EE0E6328FDD2570013FF99 /* eliminate_dead_functions_pass.cpp in Sources */, - A9EE0E1B28FDD2560013FF99 /* inst_debug_printf_pass.cpp in Sources */, - A9EE0CBC28FDD2560013FF99 /* remove_struct_member_reduction_opportunity.cpp in Sources */, - A9EE150228FDD2590013FF99 /* validate_scopes.cpp in Sources */, - A9EE0E9628FDD2570013FF99 /* ccp_pass.cpp in Sources */, - A9EE0F1D28FDD2570013FF99 /* loop_fusion_pass.cpp in Sources */, - A9EE0DEE28FDD2560013FF99 /* dominator_tree.cpp in Sources */, - A9EE0C7A28FDD2560013FF99 /* remove_function_reduction_opportunity_finder.cpp in Sources */, - A9EE0FC528FDD2570013FF99 /* dataflow.cpp in Sources */, - A9EE0E2A28FDD2560013FF99 /* remove_duplicates_pass.cpp in Sources */, - A9EE0F8328FDD2570013FF99 /* workaround1209.cpp in Sources */, - A9EE0C9828FDD2560013FF99 /* merge_blocks_reduction_opportunity.cpp in Sources */, - A9EE0F2F28FDD2570013FF99 /* scalar_analysis.cpp in Sources */, - A9EE0F1428FDD2570013FF99 /* inline_exhaustive_pass.cpp in Sources */, - A9EE0E6C28FDD2570013FF99 /* vector_dce.cpp in Sources */, - A9EE0DB828FDD2560013FF99 /* types.cpp in Sources */, - A9EE0D0128FDD2560013FF99 /* remove_block_reduction_opportunity.cpp in Sources */, - A9EE14ED28FDD2590013FF99 /* validate_cfg.cpp in Sources */, - A9EE100428FDD2570013FF99 /* eliminate_dead_input_components_pass.cpp in Sources */, - A9EE0ED228FDD2570013FF99 /* function.cpp in Sources */, - A9EE0BF928FDD2560013FF99 /* spirv_target_env.cpp in Sources */, - A9EE152C28FDD2590013FF99 /* function.cpp in Sources */, - A9EE0F9828FDD2570013FF99 /* reduce_load_size.cpp in Sources */, - A9EE0EF328FDD2570013FF99 /* fix_func_call_arguments.cpp in Sources */, - A9EE14FF28FDD2590013FF99 /* validate_ray_tracing.cpp in Sources */, - A9EE0CEF28FDD2560013FF99 /* remove_block_reduction_opportunity_finder.cpp in Sources */, - A9EE0C8C28FDD2560013FF99 /* remove_selection_reduction_opportunity_finder.cpp in Sources */, - A9EE156E28FDD2590013FF99 /* basic_block.cpp in Sources */, - A9EE0F0528FDD2570013FF99 /* desc_sroa.cpp in Sources */, - A9EE0DD928FDD2560013FF99 /* local_redundancy_elimination.cpp in Sources */, - A9EE0F0E28FDD2570013FF99 /* copy_prop_arrays.cpp in Sources */, - A9EE0D5B28FDD2560013FF99 /* parsed_operand.cpp in Sources */, - A9EE0D6428FDD2560013FF99 /* name_mapper.cpp in Sources */, - A9EE151428FDD2590013FF99 /* validate_builtins.cpp in Sources */, - A9EE14C328FDD2590013FF99 /* diagnostic.cpp in Sources */, - A9EE0EC328FDD2570013FF99 /* ir_context.cpp in Sources */, - A9EE101328FDD2570013FF99 /* scalar_analysis_simplification.cpp in Sources */, - A9EE0E3928FDD2560013FF99 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */, - A9EE0F2928FDD2570013FF99 /* dead_insert_elim_pass.cpp in Sources */, - A9EE154D28FDD2590013FF99 /* validate_logicals.cpp in Sources */, - A9EE0F0228FDD2570013FF99 /* strength_reduction_pass.cpp in Sources */, - A9EE0C9B28FDD2560013FF99 /* change_operand_reduction_opportunity.cpp in Sources */, - A9EE154428FDD2590013FF99 /* validate_arithmetics.cpp in Sources */, - A9EE0D6728FDD2560013FF99 /* linker.cpp in Sources */, - A9EE0C3B28FDD2560013FF99 /* string_utils.cpp in Sources */, - A9EE0C2028FDD2560013FF99 /* pch_source.cpp in Sources */, - A9EE157D28FDD2590013FF99 /* validate_primitives.cpp in Sources */, - A9EE0E8728FDD2570013FF99 /* def_use_manager.cpp in Sources */, - A9EE0EF628FDD2570013FF99 /* debug_info_manager.cpp in Sources */, - A9EE0FAA28FDD2570013FF99 /* replace_invalid_opc.cpp in Sources */, - A9EE0D2B28FDD2560013FF99 /* print.cpp in Sources */, - A9EE0F6B28FDD2570013FF99 /* amd_ext_to_khr.cpp in Sources */, - A9EE0E3328FDD2560013FF99 /* module.cpp in Sources */, - A9EE155028FDD2590013FF99 /* validate_derivatives.cpp in Sources */, - A9EE0F9228FDD2570013FF99 /* instruction.cpp in Sources */, - A9EE0CF828FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */, - A9EE0DC428FDD2560013FF99 /* cfg.cpp in Sources */, - A9EE0FE928FDD2570013FF99 /* basic_block.cpp in Sources */, - A9EE0DFA28FDD2560013FF99 /* eliminate_dead_constant_pass.cpp in Sources */, - A9EE0FD428FDD2570013FF99 /* remove_dontinline_pass.cpp in Sources */, - A9EE0C0528FDD2560013FF99 /* linter.cpp in Sources */, - A9EE14F928FDD2590013FF99 /* validate_non_uniform.cpp in Sources */, - A9EE0E7828FDD2570013FF99 /* constants.cpp in Sources */, - A9EE0DDC28FDD2560013FF99 /* instrument_pass.cpp in Sources */, - A9EE0DEB28FDD2560013FF99 /* loop_fission.cpp in Sources */, - A9EE0FB928FDD2570013FF99 /* replace_desc_array_access_using_var_index.cpp in Sources */, - A9EE0C8328FDD2560013FF99 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */, - A9EE0D1328FDD2560013FF99 /* spirv_optimizer_options.cpp in Sources */, - A9EE0FE628FDD2570013FF99 /* interp_fixup_pass.cpp in Sources */, - A9EE0CB928FDD2560013FF99 /* pch_source_reduce.cpp in Sources */, - A9EE0C8F28FDD2560013FF99 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */, - A9EE14E728FDD2590013FF99 /* validate_annotation.cpp in Sources */, - A9EE155928FDD2590013FF99 /* validate_literals.cpp in Sources */, - A9EE0F5F28FDD2570013FF99 /* loop_dependence_helpers.cpp in Sources */, - A9EE0D7628FDD2560013FF99 /* ext_inst.cpp in Sources */, - A9EE0EA828FDD2570013FF99 /* aggressive_dead_code_elim_pass.cpp in Sources */, - A9EE157A28FDD2590013FF99 /* validation_state.cpp in Sources */, - A9EE0CE328FDD2560013FF99 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */, - A9EE14EA28FDD2590013FF99 /* validate_misc.cpp in Sources */, - A9EE0DCD28FDD2560013FF99 /* freeze_spec_constant_value_pass.cpp in Sources */, - A9EE157728FDD2590013FF99 /* validate_composites.cpp in Sources */, - A9EE0D4628FDD2560013FF99 /* diff.cpp in Sources */, - A9EE155328FDD2590013FF99 /* validate_memory.cpp in Sources */, - A9EE0EF028FDD2570013FF99 /* if_conversion.cpp in Sources */, - A9EE0EDE28FDD2570013FF99 /* convert_to_half_pass.cpp in Sources */, - A9EE0D9728FDD2560013FF99 /* combine_access_chains.cpp in Sources */, - A9EE0C6E28FDD2560013FF99 /* reduction_util.cpp in Sources */, - A9EE0E8428FDD2570013FF99 /* inst_buff_addr_check_pass.cpp in Sources */, - A9EE0ED828FDD2570013FF99 /* control_dependence.cpp in Sources */, - A9EE0F6E28FDD2570013FF99 /* scalar_replacement_pass.cpp in Sources */, - A9EE0E6028FDD2570013FF99 /* licm_pass.cpp in Sources */, - A9EE14C928FDD2590013FF99 /* libspirv.cpp in Sources */, - A9EE0E9F28FDD2570013FF99 /* pch_source_opt.cpp in Sources */, - A9EE0C5928FDD2560013FF99 /* remove_selection_reduction_opportunity.cpp in Sources */, - A9EE14D528FDD2590013FF99 /* operand.cpp in Sources */, - A9EE0D0A28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */, - A9EE0E3C28FDD2560013FF99 /* loop_unswitch_pass.cpp in Sources */, - A9EE0D0728FDD2560013FF99 /* reduction_opportunity_finder.cpp in Sources */, - A9EE0C1428FDD2560013FF99 /* text.cpp in Sources */, - A9EE0CC228FDD2560013FF99 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */, - A9EE0E0028FDD2560013FF99 /* cfg_cleanup_pass.cpp in Sources */, - A9EE0C6228FDD2560013FF99 /* reduction_pass.cpp in Sources */, - A9EE154A28FDD2590013FF99 /* validate_memory_semantics.cpp in Sources */, - A9EE14F628FDD2590013FF99 /* validate_barriers.cpp in Sources */, - A9EE156528FDD2590013FF99 /* validate_mesh_shading.cpp in Sources */, - A9EE0F8928FDD2570013FF99 /* relax_float_ops_pass.cpp in Sources */, - A9EE0CFB28FDD2560013FF99 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */, - A9EE0E0628FDD2560013FF99 /* const_folding_rules.cpp in Sources */, - A9EE0EFF28FDD2570013FF99 /* eliminate_dead_members_pass.cpp in Sources */, - A9EE0ECC28FDD2570013FF99 /* loop_descriptor.cpp in Sources */, - A9EE0D2528FDD2560013FF99 /* spirv_validator_options.cpp in Sources */, - A9EE0C0828FDD2560013FF99 /* divergence_analysis.cpp in Sources */, - A9EE0FD128FDD2570013FF99 /* struct_cfg_analysis.cpp in Sources */, - A9EE14DE28FDD2590013FF99 /* disassemble.cpp in Sources */, - A9EE0EAB28FDD2570013FF99 /* eliminate_dead_functions_util.cpp in Sources */, - A9EE0D8528FDD2560013FF99 /* loop_utils.cpp in Sources */, - A9EE152328FDD2590013FF99 /* validate_bitwise.cpp in Sources */, - A9EE0D8B28FDD2560013FF99 /* spread_volatile_semantics.cpp in Sources */, - A9EE14F028FDD2590013FF99 /* validate_capability.cpp in Sources */, - A9EE0E8128FDD2570013FF99 /* desc_sroa_util.cpp in Sources */, - A9EE0F1128FDD2570013FF99 /* pass_manager.cpp in Sources */, - A9EE0CD128FDD2560013FF99 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */, - A9EE0DCA28FDD2560013FF99 /* local_single_block_elim_pass.cpp in Sources */, - A9EE0F7428FDD2570013FF99 /* interface_var_sroa.cpp in Sources */, - A9EE0F5328FDD2570013FF99 /* private_to_local_pass.cpp in Sources */, - A9EE0D6D28FDD2560013FF99 /* software_version.cpp in Sources */, - A9EE153228FDD2590013FF99 /* validate_adjacency.cpp in Sources */, - A9EE155F28FDD2590013FF99 /* validate_type.cpp in Sources */, - A9EE0C1728FDD2560013FF99 /* assembly_grammar.cpp in Sources */, - A9EE0D7C28FDD2560013FF99 /* optimizer.cpp in Sources */, - A9EE0E0328FDD2560013FF99 /* wrap_opkill.cpp in Sources */, - A9EE0F0828FDD2570013FF99 /* block_merge_util.cpp in Sources */, - A9EE0EBD28FDD2570013FF99 /* folding_rules.cpp in Sources */, - A9EE0C1D28FDD2560013FF99 /* extensions.cpp in Sources */, - A9EE151128FDD2590013FF99 /* validate_debug.cpp in Sources */, - A9EE150B28FDD2590013FF99 /* validate_instruction.cpp in Sources */, - A9EE156828FDD2590013FF99 /* validate_execution_limitations.cpp in Sources */, - A9EE150528FDD2590013FF99 /* validate_atomics.cpp in Sources */, - A9EE0CD428FDD2560013FF99 /* reduction_opportunity.cpp in Sources */, - A9EE0E3F28FDD2560013FF99 /* unify_const_pass.cpp in Sources */, - A9EE100128FDD2570013FF99 /* loop_fusion.cpp in Sources */, - A9EE0FB328FDD2570013FF99 /* dominator_analysis.cpp in Sources */, - A9EE0E0F28FDD2560013FF99 /* ssa_rewrite_pass.cpp in Sources */, - A9EE0DB528FDD2560013FF99 /* code_sink.cpp in Sources */, - A9EE0D0428FDD2560013FF99 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */, - A9EE0F7D28FDD2570013FF99 /* redundancy_elimination.cpp in Sources */, - A9EE0C3528FDD2560013FF99 /* timer.cpp in Sources */, - A9EE0D3428FDD2560013FF99 /* spirv_endian.cpp in Sources */, - A9EE0E7228FDD2570013FF99 /* loop_unroller.cpp in Sources */, - A9EE153E28FDD2590013FF99 /* validate_id.cpp in Sources */, - A9EE0CC828FDD2560013FF99 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */, - A9EE0CFE28FDD2560013FF99 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */, - A9EE0E4228FDD2560013FF99 /* type_manager.cpp in Sources */, - A9EE0C8928FDD2560013FF99 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */, - A9EE0FA428FDD2570013FF99 /* remove_unused_interface_variables_pass.cpp in Sources */, - A9EE0CB028FDD2560013FF99 /* remove_instruction_reduction_opportunity.cpp in Sources */, - A9EE155C28FDD2590013FF99 /* instruction.cpp in Sources */, - A9EE156B28FDD2590013FF99 /* validate_layout.cpp in Sources */, + A9F7B4BA29425A1900B30DA7 /* spirv_reducer_options.cpp in Sources */, + A9F7B4E429425A1900B30DA7 /* register_pressure.cpp in Sources */, + A9F7B79929425A1900B30DA7 /* loop_peeling.cpp in Sources */, + A9F7B6A929425A1900B30DA7 /* block_merge_pass.cpp in Sources */, + A9F7B4D229425A1900B30DA7 /* opcode.cpp in Sources */, + A9F7BC8B29425A1B00B30DA7 /* validate_builtins.cpp in Sources */, + A9F7BC6D29425A1B00B30DA7 /* validate_non_uniform.cpp in Sources */, + A9F7B3B529425A1800B30DA7 /* table.cpp in Sources */, + A9F7BCC429425A1B00B30DA7 /* validate_logicals.cpp in Sources */, + A9F7B43C29425A1800B30DA7 /* change_operand_to_undef_reduction_opportunity.cpp in Sources */, + A9F7B3AC29425A1800B30DA7 /* bit_vector.cpp in Sources */, + A9F7B63429425A1900B30DA7 /* ir_context.cpp in Sources */, + A9F7B3D629425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity_finder.cpp in Sources */, + A9F7B66129425A1900B30DA7 /* if_conversion.cpp in Sources */, + A9F7B74829425A1900B30DA7 /* remove_dontinline_pass.cpp in Sources */, + A9F7B6AF29425A1900B30DA7 /* convert_to_sampled_image_pass.cpp in Sources */, + A9F7B55F29425A1900B30DA7 /* merge_return_pass.cpp in Sources */, + A9F7B42729425A1800B30DA7 /* reducer.cpp in Sources */, + A9F7B3E829425A1800B30DA7 /* remove_function_reduction_opportunity.cpp in Sources */, + A9F7BC5229425A1B00B30DA7 /* disassemble.cpp in Sources */, + A9F7B64C29425A1900B30DA7 /* composite.cpp in Sources */, + A9F7BCAC29425A1B00B30DA7 /* validate_conversion.cpp in Sources */, + A9F7BCD329425A1B00B30DA7 /* instruction.cpp in Sources */, + A9F7BC7029425A1B00B30DA7 /* validate_ray_query.cpp in Sources */, + A9F7BC4929425A1B00B30DA7 /* operand.cpp in Sources */, + A9F7B5B029425A1900B30DA7 /* unify_const_pass.cpp in Sources */, + A9F7B3CA29425A1800B30DA7 /* operand_to_const_reduction_opportunity_finder.cpp in Sources */, + A9F7B4AE29425A1900B30DA7 /* enum_string_mapping.cpp in Sources */, + A9F7BCBE29425A1B00B30DA7 /* validate_mode_setting.cpp in Sources */, + A9F7B49F29425A1900B30DA7 /* binary.cpp in Sources */, + A9F7B74529425A1900B30DA7 /* struct_cfg_analysis.cpp in Sources */, + A9F7BC6429425A1B00B30DA7 /* validate_capability.cpp in Sources */, + A9F7BC3729425A1B00B30DA7 /* diagnostic.cpp in Sources */, + A9F7BC3D29425A1B00B30DA7 /* libspirv.cpp in Sources */, + A9F7BCDC29425A1B00B30DA7 /* validate_mesh_shading.cpp in Sources */, + A9F7B4FC29425A1900B30DA7 /* build_module.cpp in Sources */, + A9F7B56B29425A1900B30DA7 /* cfg_cleanup_pass.cpp in Sources */, + A9F7B48129425A1800B30DA7 /* spirv_fuzzer_options.cpp in Sources */, + A9F7BCA929425A1B00B30DA7 /* validate_adjacency.cpp in Sources */, + A9F7BCB529425A1B00B30DA7 /* validate_id.cpp in Sources */, + A9F7B3A929425A1800B30DA7 /* parse_number.cpp in Sources */, + A9F7B6A329425A1900B30DA7 /* scalar_analysis.cpp in Sources */, + A9F7B36429425A1800B30DA7 /* lint_divergent_derivatives.cpp in Sources */, + A9F7B41E29425A1800B30DA7 /* remove_struct_member_reduction_opportunity.cpp in Sources */, + A9F7BC7629425A1B00B30DA7 /* validate_scopes.cpp in Sources */, + A9F7B57D29425A1900B30DA7 /* strip_debug_info_pass.cpp in Sources */, + A9F7B61C29425A1900B30DA7 /* eliminate_dead_functions_util.cpp in Sources */, + A9F7B3DC29425A1800B30DA7 /* remove_function_reduction_opportunity_finder.cpp in Sources */, + A9F7B58029425A1900B30DA7 /* ssa_rewrite_pass.cpp in Sources */, + A9F7BCCD29425A1B00B30DA7 /* validate_image.cpp in Sources */, + A9F7B5A429425A1900B30DA7 /* module.cpp in Sources */, + A9F7B3FA29425A1800B30DA7 /* merge_blocks_reduction_opportunity.cpp in Sources */, + A9F7B5E929425A1900B30DA7 /* constants.cpp in Sources */, + A9F7B46329425A1800B30DA7 /* remove_block_reduction_opportunity.cpp in Sources */, + A9F7B35B29425A1800B30DA7 /* spirv_target_env.cpp in Sources */, + A9F7B55629425A1900B30DA7 /* loop_fission.cpp in Sources */, + A9F7B45129425A1800B30DA7 /* remove_block_reduction_opportunity_finder.cpp in Sources */, + A9F7B3EE29425A1800B30DA7 /* remove_selection_reduction_opportunity_finder.cpp in Sources */, + A9F7B6DC29425A1900B30DA7 /* fold.cpp in Sources */, + A9F7B5F829425A1900B30DA7 /* def_use_manager.cpp in Sources */, + A9F7B4BD29425A1900B30DA7 /* parsed_operand.cpp in Sources */, + A9F7B67029425A1900B30DA7 /* eliminate_dead_members_pass.cpp in Sources */, + A9F7B70629425A1900B30DA7 /* instruction.cpp in Sources */, + A9F7B4C629425A1900B30DA7 /* name_mapper.cpp in Sources */, + A9F7B77829425A1900B30DA7 /* analyze_live_input_pass.cpp in Sources */, + A9F7BC6129425A1B00B30DA7 /* validate_cfg.cpp in Sources */, + A9F7B3FD29425A1800B30DA7 /* change_operand_reduction_opportunity.cpp in Sources */, + A9F7BC7F29425A1B00B30DA7 /* validate_instruction.cpp in Sources */, + A9F7B54729425A1900B30DA7 /* instrument_pass.cpp in Sources */, + A9F7BC7329425A1B00B30DA7 /* validate_ray_tracing.cpp in Sources */, + A9F7B55329425A1900B30DA7 /* pass.cpp in Sources */, + A9F7B60429425A1900B30DA7 /* ccp_pass.cpp in Sources */, + A9F7B5F229425A1900B30DA7 /* desc_sroa_util.cpp in Sources */, + A9F7BC9A29425A1B00B30DA7 /* validate_bitwise.cpp in Sources */, + A9F7B67929425A1900B30DA7 /* block_merge_util.cpp in Sources */, + A9F7BC8829425A1B00B30DA7 /* validate_debug.cpp in Sources */, + A9F7B63D29425A1900B30DA7 /* loop_descriptor.cpp in Sources */, + A9F7B4C929425A1900B30DA7 /* linker.cpp in Sources */, + A9F7B53529425A1900B30DA7 /* freeze_spec_constant_value_pass.cpp in Sources */, + A9F7B39D29425A1800B30DA7 /* string_utils.cpp in Sources */, + A9F7BCC129425A1B00B30DA7 /* validate_memory_semantics.cpp in Sources */, + A9F7B52029425A1900B30DA7 /* types.cpp in Sources */, + A9F7B38229425A1800B30DA7 /* pch_source.cpp in Sources */, + A9F7B48D29425A1800B30DA7 /* print.cpp in Sources */, + A9F7BCA329425A1B00B30DA7 /* function.cpp in Sources */, + A9F7B68829425A1900B30DA7 /* inline_exhaustive_pass.cpp in Sources */, + A9F7B56529425A1900B30DA7 /* eliminate_dead_constant_pass.cpp in Sources */, + A9F7B71B29425A1900B30DA7 /* inline_opaque_pass.cpp in Sources */, + A9F7B45A29425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp in Sources */, + A9F7B36729425A1800B30DA7 /* linter.cpp in Sources */, + A9F7B4FF29425A1900B30DA7 /* eliminate_dead_output_stores_pass.cpp in Sources */, + A9F7B79629425A1900B30DA7 /* compact_ids_pass.cpp in Sources */, + A9F7B62E29425A1900B30DA7 /* folding_rules.cpp in Sources */, + A9F7B65B29425A1900B30DA7 /* strip_nonsemantic_info_pass.cpp in Sources */, + A9F7B6C729425A1900B30DA7 /* private_to_local_pass.cpp in Sources */, + A9F7B5AA29425A1900B30DA7 /* fold_spec_constant_op_and_composite_pass.cpp in Sources */, + A9F7BC8229425A1B00B30DA7 /* validate_ray_tracing_reorder.cpp in Sources */, + A9F7BCC729425A1B00B30DA7 /* validate_derivatives.cpp in Sources */, + A9F7B3E529425A1800B30DA7 /* simple_conditional_branch_to_branch_reduction_opportunity.cpp in Sources */, + A9F7B64929425A1900B30DA7 /* control_dependence.cpp in Sources */, + A9F7B47529425A1800B30DA7 /* spirv_optimizer_options.cpp in Sources */, + A9F7B41B29425A1800B30DA7 /* pch_source_reduce.cpp in Sources */, + A9F7B59E29425A1900B30DA7 /* dead_variable_elimination.cpp in Sources */, + A9F7B3F129425A1800B30DA7 /* conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp in Sources */, + A9F7B67329425A1900B30DA7 /* strength_reduction_pass.cpp in Sources */, + A9F7B78729425A1900B30DA7 /* scalar_analysis_simplification.cpp in Sources */, + A9F7BC8E29425A1B00B30DA7 /* validate_interfaces.cpp in Sources */, + A9F7BC7929425A1B00B30DA7 /* validate_atomics.cpp in Sources */, + A9F7B4D829425A1900B30DA7 /* ext_inst.cpp in Sources */, + A9F7B44529425A1800B30DA7 /* operand_to_dominating_id_reduction_opportunity_finder.cpp in Sources */, + A9F7B52F29425A1900B30DA7 /* decoration_manager.cpp in Sources */, + A9F7B6F729425A1900B30DA7 /* workaround1209.cpp in Sources */, + A9F7B75A29425A1900B30DA7 /* interp_fixup_pass.cpp in Sources */, + A9F7BCD029425A1B00B30DA7 /* validate_literals.cpp in Sources */, + A9F7B4A829425A1900B30DA7 /* diff.cpp in Sources */, + A9F7B55929425A1900B30DA7 /* dominator_tree.cpp in Sources */, + A9F7B6E829425A1900B30DA7 /* interface_var_sroa.cpp in Sources */, + A9F7B77B29425A1900B30DA7 /* upgrade_memory_model.cpp in Sources */, + A9F7B4F929425A1900B30DA7 /* combine_access_chains.cpp in Sources */, + A9F7B64629425A1900B30DA7 /* instruction_list.cpp in Sources */, + A9F7B61929425A1900B30DA7 /* aggressive_dead_code_elim_pass.cpp in Sources */, + A9F7B3D029425A1800B30DA7 /* reduction_util.cpp in Sources */, + A9F7B5D429425A1900B30DA7 /* eliminate_dead_functions_pass.cpp in Sources */, + A9F7BCAF29425A1B00B30DA7 /* validate_small_type_uses.cpp in Sources */, + A9F7BC5E29425A1B00B30DA7 /* validate_misc.cpp in Sources */, + A9F7B51D29425A1900B30DA7 /* code_sink.cpp in Sources */, + A9F7B68529425A1900B30DA7 /* pass_manager.cpp in Sources */, + A9F7B55029425A1900B30DA7 /* feature_manager.cpp in Sources */, + A9F7B56E29425A1900B30DA7 /* wrap_opkill.cpp in Sources */, + A9F7B73929425A1900B30DA7 /* dataflow.cpp in Sources */, + A9F7BCD629425A1B00B30DA7 /* validate_type.cpp in Sources */, + A9F7B6D629425A1900B30DA7 /* set_spec_constant_default_value_pass.cpp in Sources */, + A9F7B3BB29425A1800B30DA7 /* remove_selection_reduction_opportunity.cpp in Sources */, + A9F7BC9729425A1B00B30DA7 /* validate_constants.cpp in Sources */, + A9F7BCE229425A1B00B30DA7 /* validate_layout.cpp in Sources */, + A9F7B57429425A1900B30DA7 /* const_folding_rules.cpp in Sources */, + A9F7B71E29425A1900B30DA7 /* replace_invalid_opc.cpp in Sources */, + A9F7B57129425A1900B30DA7 /* eliminate_dead_io_components_pass.cpp in Sources */, + A9F7B46C29425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity_finder.cpp in Sources */, + A9F7B46929425A1800B30DA7 /* reduction_opportunity_finder.cpp in Sources */, + A9F7B50529425A1900B30DA7 /* liveness.cpp in Sources */, + A9F7B66729425A1900B30DA7 /* debug_info_manager.cpp in Sources */, + A9F7B6FD29425A1900B30DA7 /* relax_float_ops_pass.cpp in Sources */, + A9F7B71529425A1900B30DA7 /* value_number_table.cpp in Sources */, + A9F7B37629425A1800B30DA7 /* text.cpp in Sources */, + A9F7B6C129425A1900B30DA7 /* local_single_store_elim_pass.cpp in Sources */, + A9F7B42429425A1800B30DA7 /* remove_unused_instruction_reduction_opportunity_finder.cpp in Sources */, + A9F7B3C429425A1800B30DA7 /* reduction_pass.cpp in Sources */, + A9F7B64F29425A1900B30DA7 /* convert_to_half_pass.cpp in Sources */, + A9F7B70C29425A1900B30DA7 /* reduce_load_size.cpp in Sources */, + A9F7B75729425A1900B30DA7 /* local_access_chain_convert_pass.cpp in Sources */, + A9F7B54129425A1900B30DA7 /* inst_bindless_check_pass.cpp in Sources */, + A9F7B53229425A1900B30DA7 /* local_single_block_elim_pass.cpp in Sources */, + A9F7BCDF29425A1B00B30DA7 /* validate_execution_limitations.cpp in Sources */, + A9F7B64329425A1900B30DA7 /* function.cpp in Sources */, + A9F7B66429425A1900B30DA7 /* fix_func_call_arguments.cpp in Sources */, + A9F7B45D29425A1800B30DA7 /* structured_loop_to_selection_reduction_opportunity.cpp in Sources */, + A9F7B76C29425A1900B30DA7 /* graphics_robust_access_pass.cpp in Sources */, + A9F7BCA029425A1B00B30DA7 /* construct.cpp in Sources */, + A9F7B5E329425A1900B30DA7 /* loop_unroller.cpp in Sources */, + A9F7B48729425A1800B30DA7 /* spirv_validator_options.cpp in Sources */, + A9F7B36A29425A1800B30DA7 /* divergence_analysis.cpp in Sources */, + A9F7B4E729425A1900B30DA7 /* loop_utils.cpp in Sources */, + A9F7B4ED29425A1900B30DA7 /* spread_volatile_semantics.cpp in Sources */, + A9F7B67629425A1900B30DA7 /* desc_sroa.cpp in Sources */, + A9F7B69D29425A1900B30DA7 /* dead_insert_elim_pass.cpp in Sources */, + A9F7BC8529425A1B00B30DA7 /* validate_decorations.cpp in Sources */, + A9F7B69129425A1900B30DA7 /* loop_fusion_pass.cpp in Sources */, + A9F7B43329425A1800B30DA7 /* merge_blocks_reduction_opportunity_finder.cpp in Sources */, + A9F7B62829425A1900B30DA7 /* flatten_decoration_pass.cpp in Sources */, + A9F7B71229425A1900B30DA7 /* fix_storage_class.cpp in Sources */, + A9F7B4CF29425A1900B30DA7 /* software_version.cpp in Sources */, + A9F7B37929425A1800B30DA7 /* assembly_grammar.cpp in Sources */, + A9F7B6DF29425A1900B30DA7 /* amd_ext_to_khr.cpp in Sources */, + A9F7BC5829425A1B00B30DA7 /* text_handler.cpp in Sources */, + A9F7B4DE29425A1900B30DA7 /* optimizer.cpp in Sources */, + A9F7BCF129425A1B00B30DA7 /* validation_state.cpp in Sources */, + A9F7B59529425A1900B30DA7 /* mem_pass.cpp in Sources */, + A9F7B72D29425A1900B30DA7 /* replace_desc_array_access_using_var_index.cpp in Sources */, + A9F7B5C829425A1900B30DA7 /* ir_loader.cpp in Sources */, + A9F7B37F29425A1800B30DA7 /* extensions.cpp in Sources */, + A9F7B5B329425A1900B30DA7 /* type_manager.cpp in Sources */, + A9F7B6E229425A1900B30DA7 /* scalar_replacement_pass.cpp in Sources */, + A9F7B5AD29425A1900B30DA7 /* loop_unswitch_pass.cpp in Sources */, + A9F7B43629425A1800B30DA7 /* reduction_opportunity.cpp in Sources */, + A9F7BC9D29425A1B00B30DA7 /* validate_extensions.cpp in Sources */, + A9F7B46629425A1800B30DA7 /* remove_unused_struct_member_reduction_opportunity_finder.cpp in Sources */, + A9F7B39729425A1800B30DA7 /* timer.cpp in Sources */, + A9F7B61029425A1900B30DA7 /* pch_source_opt.cpp in Sources */, + A9F7B5C229425A1900B30DA7 /* inline_pass.cpp in Sources */, + A9F7B5F529425A1900B30DA7 /* inst_buff_addr_check_pass.cpp in Sources */, + A9F7BC6A29425A1B00B30DA7 /* validate_barriers.cpp in Sources */, + A9F7B6F129425A1900B30DA7 /* redundancy_elimination.cpp in Sources */, + A9F7B49629425A1800B30DA7 /* spirv_endian.cpp in Sources */, + A9F7B52C29425A1900B30DA7 /* cfg.cpp in Sources */, + A9F7B59B29425A1900B30DA7 /* remove_duplicates_pass.cpp in Sources */, + A9F7BC5B29425A1B00B30DA7 /* validate_annotation.cpp in Sources */, + A9F7B6D329425A1900B30DA7 /* loop_dependence_helpers.cpp in Sources */, + A9F7B75D29425A1900B30DA7 /* basic_block.cpp in Sources */, + A9F7B58329425A1900B30DA7 /* loop_dependence.cpp in Sources */, + A9F7B5D129425A1900B30DA7 /* licm_pass.cpp in Sources */, + A9F7B42A29425A1800B30DA7 /* operand_to_undef_reduction_opportunity_finder.cpp in Sources */, + A9F7B62529425A1900B30DA7 /* dead_branch_elim_pass.cpp in Sources */, + A9F7B58C29425A1900B30DA7 /* inst_debug_printf_pass.cpp in Sources */, + A9F7B54429425A1900B30DA7 /* local_redundancy_elimination.cpp in Sources */, + A9F7BCCA29425A1B00B30DA7 /* validate_memory.cpp in Sources */, + A9F7B72729425A1900B30DA7 /* dominator_analysis.cpp in Sources */, + A9F7BC9129425A1B00B30DA7 /* validate.cpp in Sources */, + A9F7B67F29425A1900B30DA7 /* copy_prop_arrays.cpp in Sources */, + A9F7B46029425A1800B30DA7 /* structured_construct_to_block_reduction_opportunity.cpp in Sources */, + A9F7BCEE29425A1B00B30DA7 /* validate_composites.cpp in Sources */, + A9F7B77529425A1900B30DA7 /* loop_fusion.cpp in Sources */, + A9F7BCE529425A1B00B30DA7 /* basic_block.cpp in Sources */, + A9F7B71829425A1900B30DA7 /* remove_unused_interface_variables_pass.cpp in Sources */, + A9F7BCE829425A1B00B30DA7 /* validate_function.cpp in Sources */, + A9F7B5DD29425A1900B30DA7 /* vector_dce.cpp in Sources */, + A9F7BCF429425A1B00B30DA7 /* validate_primitives.cpp in Sources */, + A9F7B62229425A1900B30DA7 /* simplification_pass.cpp in Sources */, + A9F7B6CD29425A1900B30DA7 /* propagator.cpp in Sources */, + A9F7B3EB29425A1800B30DA7 /* simple_conditional_branch_to_branch_opportunity_finder.cpp in Sources */, + A9F7B41229425A1800B30DA7 /* remove_instruction_reduction_opportunity.cpp in Sources */, + A9F7BCBB29425A1B00B30DA7 /* validate_arithmetics.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ExternalRevisions/Vulkan-Headers_repo_revision b/ExternalRevisions/Vulkan-Headers_repo_revision index ad9c875b0..28fd6f1c3 100644 --- a/ExternalRevisions/Vulkan-Headers_repo_revision +++ b/ExternalRevisions/Vulkan-Headers_repo_revision @@ -1 +1 @@ -98f440ce6868c94f5ec6e198cc1adda4760e8849 +b75e5a02b6933caf86c5822d019067b335492c85 diff --git a/ExternalRevisions/Vulkan-Tools_repo_revision b/ExternalRevisions/Vulkan-Tools_repo_revision index ac6d358f2..2ed5fd2cb 100644 --- a/ExternalRevisions/Vulkan-Tools_repo_revision +++ b/ExternalRevisions/Vulkan-Tools_repo_revision @@ -1 +1 @@ -e52fa1cf2d95503d28f9d020800cbab15aaa304b +ce45337c51ed53e6f1b337aa746a5a96c5018f86 diff --git a/ExternalRevisions/glslang_repo_revision b/ExternalRevisions/glslang_repo_revision index e2bc9b2c5..d09f4f21a 100644 --- a/ExternalRevisions/glslang_repo_revision +++ b/ExternalRevisions/glslang_repo_revision @@ -1 +1 @@ -5755de46b07e4374c05fb1081f65f7ae1f8cca81 +77551c429f86c0e077f26552b7c1c0f12a9f235e diff --git a/Templates/spirv-tools/build.zip b/Templates/spirv-tools/build.zip index 3934e8d52ab44fbf40325fb48d20bcf931d23564..d4bfc39707deeff0653c96d2e93a7fe8b0975189 100644 GIT binary patch delta 39892 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

CgrM@P_#Xsy@xShxAu8I>ZPOxIJA+;%iS?r) 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�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­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 delta 38720 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 k^*p@^KxmjhQK* Date: Thu, 8 Dec 2022 18:38:49 -0500 Subject: [PATCH 34/72] Fix crash when buffer binding updates only offset while it is overridden. MVKMTLBufferBinding don't allow justOffset if binding was overridden. --- Docs/Whats_New.md | 1 + MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 985dba7d6..9968bd4ec 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -22,6 +22,7 @@ Released 2022/12/08 - `VK_KHR_copy_commands2` - Fix crash on descriptor update with out-of-bounds descriptor count data. - Fix Metal buffer index binding overrides for push constants and attachment clearing. +- Fix crash when buffer binding updates only offset while it is overridden. - Fix app performance regression triggered by the previous introduction of `VK_KHR_shader_float_controls`. - Work around `MTLCounterSet` crash on additional Intel Iris Plus Graphics devices. - Fix mistaken YCBCR format support indication. diff --git a/MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h b/MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h index 1af1b184e..443786735 100644 --- a/MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h +++ b/MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h @@ -86,7 +86,7 @@ typedef struct MVKMTLBufferBinding { isDirty = true; } else if (offset != other.offset) { offset = other.offset; - justOffset = !isDirty || justOffset; + justOffset = !isOverridden && (!isDirty || justOffset); isOverridden = false; isDirty = true; } From e102ce1102dcdfd4d59df3fd5f3f381cb9a4ab81 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Sun, 11 Dec 2022 19:11:38 -0500 Subject: [PATCH 35/72] Fix excessive Metal tile memory preallocation when rendering without attachments. Metal uses MTLRenderPassDescriptor properties renderTargetWidth, renderTargetHeight, and renderTargetArrayLength to preallocate tile memory storage on machines using tiled rendering. This memory preallocation is not necessary if we are not rendering to attachments, and some apps actively define extremely oversized framebuffers when they know they are not rendering to actual attachments, making this internal tile memory allocation even more wasteful, occasionally to the point of triggering OOM crashes. Update MoltenVK version to 1.2.2. --- Docs/Whats_New.md | 10 ++++++++++ MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm | 17 +++++++++++++---- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 9968bd4ec..07c371e89 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -13,6 +13,15 @@ Copyright (c) 2015-2022 [The Brenwill Workshop Ltd.](http://www.brenwill.com) +MoltenVK 1.2.2 +-------------- + +Released TBD + +- Fix excessive Metal tile memory preallocation when rendering without attachments. + + + MoltenVK 1.2.1 -------------- @@ -53,6 +62,7 @@ Released 2022/12/08 - Fix MSL Access Chain. + MoltenVK 1.2.0 -------------- diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index 51a605fcb..6aef84a3a 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -51,7 +51,7 @@ typedef unsigned long MTLArgumentBuffersTier; */ #define MVK_VERSION_MAJOR 1 #define MVK_VERSION_MINOR 2 -#define MVK_VERSION_PATCH 1 +#define MVK_VERSION_PATCH 2 #define MVK_MAKE_VERSION(major, minor, patch) (((major) * 10000) + ((minor) * 100) + (patch)) #define MVK_VERSION MVK_MAKE_VERSION(MVK_VERSION_MAJOR, MVK_VERSION_MINOR, MVK_VERSION_PATCH) diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm index 2c014c779..0bbc51852 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm @@ -523,9 +523,18 @@ mtlRPDesc.visibilityResultBuffer = _pEncodingContext->visibilityResultBuffer->_mtlBuffer; } - VkExtent2D fbExtent = getFramebufferExtent(); - mtlRPDesc.renderTargetWidthMVK = max(min(_renderArea.offset.x + _renderArea.extent.width, fbExtent.width), 1u); - mtlRPDesc.renderTargetHeightMVK = max(min(_renderArea.offset.y + _renderArea.extent.height, fbExtent.height), 1u); + // Metal uses MTLRenderPassDescriptor properties renderTargetWidth, renderTargetHeight, + // and renderTargetArrayLength to preallocate tile memory storage on machines using tiled + // rendering. This memory preallocation is not necessary if we are not rendering to + // attachments, and some apps actively define extremely oversized framebuffers when they + // know they are not rendering to actual attachments, making this internal tile memory + // allocation even more wasteful, occasionally to the point of triggering OOM crashes. + bool hasAttachments = _attachments.size() > 0; + if (hasAttachments) { + VkExtent2D fbExtent = getFramebufferExtent(); + mtlRPDesc.renderTargetWidthMVK = max(min(_renderArea.offset.x + _renderArea.extent.width, fbExtent.width), 1u); + mtlRPDesc.renderTargetHeightMVK = max(min(_renderArea.offset.y + _renderArea.extent.height, fbExtent.height), 1u); + } if (_canUseLayeredRendering) { uint32_t renderTargetArrayLength; bool found3D = false, found2D = false; @@ -548,7 +557,7 @@ renderTargetArrayLength = getFramebufferLayerCount(); } // Metal does not allow layered render passes where some RTs are 3D and others are 2D. - if (!(found3D && found2D) || renderTargetArrayLength > 1) { + if (hasAttachments && (!(found3D && found2D) || renderTargetArrayLength > 1)) { mtlRPDesc.renderTargetArrayLengthMVK = renderTargetArrayLength; } } From b09ee9d37093eb6c0f27b41ee16d62808ec999c1 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Tue, 27 Dec 2022 14:09:24 -0500 Subject: [PATCH 36/72] Revert commit e102ce1102dcdfd4d59df3fd5f3f381cb9a4ab81. The now-reverted commit had caused fragment shader not to run at all when no render attachment was available. --- Docs/Whats_New.md | 9 --------- MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm | 17 ++++------------- 3 files changed, 5 insertions(+), 23 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 07c371e89..1f361df52 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -13,15 +13,6 @@ Copyright (c) 2015-2022 [The Brenwill Workshop Ltd.](http://www.brenwill.com) -MoltenVK 1.2.2 --------------- - -Released TBD - -- Fix excessive Metal tile memory preallocation when rendering without attachments. - - - MoltenVK 1.2.1 -------------- diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index 6aef84a3a..51a605fcb 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -51,7 +51,7 @@ typedef unsigned long MTLArgumentBuffersTier; */ #define MVK_VERSION_MAJOR 1 #define MVK_VERSION_MINOR 2 -#define MVK_VERSION_PATCH 2 +#define MVK_VERSION_PATCH 1 #define MVK_MAKE_VERSION(major, minor, patch) (((major) * 10000) + ((minor) * 100) + (patch)) #define MVK_VERSION MVK_MAKE_VERSION(MVK_VERSION_MAJOR, MVK_VERSION_MINOR, MVK_VERSION_PATCH) diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm index 0bbc51852..2c014c779 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm @@ -523,18 +523,9 @@ mtlRPDesc.visibilityResultBuffer = _pEncodingContext->visibilityResultBuffer->_mtlBuffer; } - // Metal uses MTLRenderPassDescriptor properties renderTargetWidth, renderTargetHeight, - // and renderTargetArrayLength to preallocate tile memory storage on machines using tiled - // rendering. This memory preallocation is not necessary if we are not rendering to - // attachments, and some apps actively define extremely oversized framebuffers when they - // know they are not rendering to actual attachments, making this internal tile memory - // allocation even more wasteful, occasionally to the point of triggering OOM crashes. - bool hasAttachments = _attachments.size() > 0; - if (hasAttachments) { - VkExtent2D fbExtent = getFramebufferExtent(); - mtlRPDesc.renderTargetWidthMVK = max(min(_renderArea.offset.x + _renderArea.extent.width, fbExtent.width), 1u); - mtlRPDesc.renderTargetHeightMVK = max(min(_renderArea.offset.y + _renderArea.extent.height, fbExtent.height), 1u); - } + VkExtent2D fbExtent = getFramebufferExtent(); + mtlRPDesc.renderTargetWidthMVK = max(min(_renderArea.offset.x + _renderArea.extent.width, fbExtent.width), 1u); + mtlRPDesc.renderTargetHeightMVK = max(min(_renderArea.offset.y + _renderArea.extent.height, fbExtent.height), 1u); if (_canUseLayeredRendering) { uint32_t renderTargetArrayLength; bool found3D = false, found2D = false; @@ -557,7 +548,7 @@ renderTargetArrayLength = getFramebufferLayerCount(); } // Metal does not allow layered render passes where some RTs are 3D and others are 2D. - if (hasAttachments && (!(found3D && found2D) || renderTargetArrayLength > 1)) { + if (!(found3D && found2D) || renderTargetArrayLength > 1) { mtlRPDesc.renderTargetArrayLengthMVK = renderTargetArrayLength; } } From be51089f25f8aaf134b5b3dbdfe00deb4f689f26 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Thu, 29 Dec 2022 21:50:04 -0500 Subject: [PATCH 37/72] Fix small memory issues with MVKPresentableSwapchainImage. - Fix Metal validation error caused by CAMetalDrawable released before MTLCommandBuffer is finished using it. - When presenting, MVKPresentableSwapchainImage retains in-flight CAMetalDrawable until MTLCommandBuffer completion. - Fix memory leak of MVKFences and MVKSemaphores when a swapchain image is acquired more than it is presented. - Force MVKPresentableSwapchainImage to untrack any tracked fences or semaphores when it is destroyed. - Update MoltenVK version to 1.2.2. --- Docs/Whats_New.md | 12 ++++++++++++ MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKImage.h | 1 + MoltenVK/MoltenVK/GPUObjects/MVKImage.mm | 20 +++++++++++++++++++- 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 1f361df52..95be3e72e 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -13,6 +13,18 @@ Copyright (c) 2015-2022 [The Brenwill Workshop Ltd.](http://www.brenwill.com) +MoltenVK 1.2.2 +-------------- + +Released TBD + +- Fix Metal validation error caused by `CAMetalDrawable` released before + `MTLCommandBuffer` is finished using it. +- Fix memory leak of `MVKFences` and `MVKSemaphores` when + a swapchain image is acquired more than it is presented. + + + MoltenVK 1.2.1 -------------- diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index 51a605fcb..6aef84a3a 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -51,7 +51,7 @@ typedef unsigned long MTLArgumentBuffersTier; */ #define MVK_VERSION_MAJOR 1 #define MVK_VERSION_MINOR 2 -#define MVK_VERSION_PATCH 1 +#define MVK_VERSION_PATCH 2 #define MVK_MAKE_VERSION(major, minor, patch) (((major) * 10000) + ((minor) * 100) + (patch)) #define MVK_VERSION MVK_MAKE_VERSION(MVK_VERSION_MAJOR, MVK_VERSION_MINOR, MVK_VERSION_PATCH) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKImage.h b/MoltenVK/MoltenVK/GPUObjects/MVKImage.h index fc9e5fd26..2c19af45d 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKImage.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKImage.h @@ -473,6 +473,7 @@ class MVKPresentableSwapchainImage : public MVKSwapchainImage { void signalPresentationSemaphore(const MVKSwapchainSignaler& signaler, id mtlCmdBuff); static void markAsTracked(const MVKSwapchainSignaler& signaler); static void unmarkAsTracked(const MVKSwapchainSignaler& signaler); + void untrackAllSignalers(); void renderWatermark(id mtlCmdBuff); id _mtlDrawable; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm index 2cbb20357..8b05bbdc6 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm @@ -1287,6 +1287,18 @@ if (signaler.fence) { signaler.fence->release(); } } +// Untrack any signalers that are still tracking, releasing the fences and semaphores. +void MVKPresentableSwapchainImage::untrackAllSignalers() { + lock_guard lock(_availabilityLock); + + if ( !_availability.isAvailable ) { + unmarkAsTracked(_preSignaler); + for (auto& sig : _availabilitySignalers) { + unmarkAsTracked(sig); + } + } +} + #pragma mark Metal @@ -1345,9 +1357,12 @@ _availabilitySignalers.erase(sigIter); } - // Ensure this image is not destroyed while awaiting MTLCommandBuffer completion + // Ensure this image and the drawable are not destroyed while awaiting MTLCommandBuffer completion. + // We retain the drawable separately because new drawable might be acquired by this image by then. retain(); + [mtlDrwbl retain]; [mtlCmdBuff addCompletedHandler: ^(id mcb) { + [mtlDrwbl release]; makeAvailable(signaler); release(); }]; @@ -1405,8 +1420,11 @@ _preSignaler = MVKSwapchainSignaler{nullptr, nullptr, 0}; } +// Unsignaled signalers will exist if this image is acquired more than it is presented. +// Ensure they are untracked so the fences and semaphores will be released. MVKPresentableSwapchainImage::~MVKPresentableSwapchainImage() { releaseMetalDrawable(); + untrackAllSignalers(); } From b6b51aa1f3fd05aac33b3047935229798defe902 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Fri, 30 Dec 2022 10:14:19 -0500 Subject: [PATCH 38/72] Remove some old unused commented-out debug log calls. --- MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm | 4 ---- MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm | 2 -- MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm | 7 ------- 3 files changed, 13 deletions(-) diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm b/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm index 08c72b1d7..c36f687d1 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm @@ -43,8 +43,6 @@ } void MVKCmdDispatch::encode(MVKCommandEncoder* cmdEncoder) { -// MVKLogDebug("vkCmdDispatch() dispatching (%d, %d, %d) threadgroups.", _x, _y, _z); - MTLRegion mtlThreadgroupCount = MTLRegionMake3D(_baseGroupX, _baseGroupY, _baseGroupZ, _groupCountX, _groupCountY, _groupCountZ); cmdEncoder->finalizeDispatchState(); // Ensure all updated state has been submitted to Metal id mtlEncoder = cmdEncoder->getMTLComputeEncoder(kMVKCommandUseDispatch); @@ -77,8 +75,6 @@ } void MVKCmdDispatchIndirect::encode(MVKCommandEncoder* cmdEncoder) { -// MVKLogDebug("vkCmdDispatchIndirect() dispatching indirectly."); - cmdEncoder->finalizeDispatchState(); // Ensure all updated state has been submitted to Metal [cmdEncoder->getMTLComputeEncoder(kMVKCommandUseDispatch) dispatchThreadgroupsWithIndirectBuffer: _mtlIndirectBuffer indirectBufferOffset: _mtlIndirectBufferOffset diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm index 967c905ab..ad16bf49a 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm @@ -84,7 +84,6 @@ template void MVKCmdBeginRenderPass::encode(MVKCommandEncoder* cmdEncoder) { -// MVKLogDebug("Encoding vkCmdBeginRenderPass(). Elapsed time: %.6f ms.", mvkGetElapsedMilliseconds()); // Convert the sample position array of arrays to an array of array-references, // so that it can be passed to the command encoder. @@ -157,7 +156,6 @@ } void MVKCmdEndRenderPass::encode(MVKCommandEncoder* cmdEncoder) { -// MVKLogDebug("Encoding vkCmdEndRenderPass(). Elapsed time: %.6f ms.", mvkGetElapsedMilliseconds()); if (cmdEncoder->getMultiviewPassIndex() + 1 < cmdEncoder->getSubpass()->getMultiviewMetalPassCount()) cmdEncoder->beginNextMultiviewPass(); else diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm index 735829a2b..8c30533d9 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm @@ -304,8 +304,6 @@ void MVKQueueCommandBufferSubmission::execute() { -// MVKLogDebug("Executing submission %p.", this); - _queue->_submissionCaptureScope->beginScope(); // If using encoded semaphore waiting, do so now. @@ -448,8 +446,6 @@ // and the app immediately destroys objects. Rare, but it has been encountered. void MVKQueueCommandBufferSubmission::finish() { -// MVKLogDebug("Finishing submission %p. Submission count %u.", this, _subCount--); - // Performed here instead of as part of execute() for rare case where app destroys queue // immediately after a waitIdle() is cleared by fence below, taking the capture scope with it. _queue->_submissionCaptureScope->endScope(); @@ -509,9 +505,6 @@ if (_fence) { _fence->retain(); } _activeMTLCommandBuffer = nil; - -// static std::atomic _subCount; -// MVKLogDebug("Creating submission %p. Submission count %u.", this, ++_subCount); } MVKQueueCommandBufferSubmission::~MVKQueueCommandBufferSubmission() { From 682906976df3f2f658c745bbbfa2ab56f2aeec73 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Tue, 10 Jan 2023 07:22:05 -0500 Subject: [PATCH 39/72] Fix linking issues with dynamic Vulkan functions. - Ensure Vulkan public symbols are not stripped from the library when statically linked to an app that calls all Vulkan functions dynamically. - Per Vulkan 1.2 spec, support calling vkGetInstanceProcAddr() with a null instance, when vkGetInstanceProcAddr itself is the function name. - Replace uses of strcmp() with mvkStringsAreEqual() to protect against null pointers, and provide a direct bool output (unrelated cleanup). --- Common/MVKCommonEnvironment.h | 3 +-- Docs/Whats_New.md | 4 ++++ MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm | 1 - MoltenVK/MoltenVK/Layers/MVKExtensions.mm | 4 ++-- MoltenVK/MoltenVK/Layers/MVKLayers.mm | 2 +- MoltenVK/MoltenVK/Utility/MVKFoundation.h | 9 +++++++++ MoltenVK/MoltenVK/Vulkan/vulkan.mm | 17 +++++++++-------- 7 files changed, 26 insertions(+), 14 deletions(-) diff --git a/Common/MVKCommonEnvironment.h b/Common/MVKCommonEnvironment.h index d91397933..ae4c6e348 100644 --- a/Common/MVKCommonEnvironment.h +++ b/Common/MVKCommonEnvironment.h @@ -102,8 +102,7 @@ extern "C" { #endif /** Directive to identify public symbols. */ -#define MVK_PUBLIC_SYMBOL __attribute__((visibility("default"))) - +#define MVK_PUBLIC_SYMBOL __attribute__((visibility("default"))) __attribute__((used)) /** Directive to make a public alias of another symbol. */ #define MVK_PUBLIC_ALIAS(ALIAS, TARGET) asm(".globl _" #ALIAS "\n\t_" #ALIAS " = _" #TARGET) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 95be3e72e..4c1a7130b 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -22,6 +22,10 @@ Released TBD `MTLCommandBuffer` is finished using it. - Fix memory leak of `MVKFences` and `MVKSemaphores` when a swapchain image is acquired more than it is presented. +- Ensure Vulkan public symbols are not stripped from the library when + statically linked to an app that calls all Vulkan functions dynamically. +- Per Vulkan 1.2 spec, support calling `vkGetInstanceProcAddr()` with a + null instance, when `vkGetInstanceProcAddr` itself is the function name. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm index 2bb5e4078..05fb750ae 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm @@ -449,7 +449,6 @@ ADD_INST_ENTRY_POINT(vkGetPhysicalDeviceProperties); ADD_INST_ENTRY_POINT(vkGetPhysicalDeviceQueueFamilyProperties); ADD_INST_ENTRY_POINT(vkGetPhysicalDeviceMemoryProperties); - ADD_INST_ENTRY_POINT(vkGetInstanceProcAddr); ADD_INST_ENTRY_POINT(vkCreateDevice); ADD_INST_ENTRY_POINT(vkEnumerateDeviceExtensionProperties); ADD_INST_ENTRY_POINT(vkEnumerateDeviceLayerProperties); diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.mm b/MoltenVK/MoltenVK/Layers/MVKExtensions.mm index c11262273..7a4aa18f7 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.mm +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.mm @@ -141,7 +141,7 @@ static bool mvkIsSupportedOnPlatform(VkExtensionProperties* pProperties) { const MVKExtension* extnAry = &extensionArray; for (uint32_t extnIdx = 0; extnIdx < extnCnt; extnIdx++) { const MVKExtension& extn = extnAry[extnIdx]; - if ( strcmp(extn.pProperties->extensionName, extnName) == 0 ) { + if (mvkStringsAreEqual(extn.pProperties->extensionName, extnName)) { return extn.enabled; } } @@ -153,7 +153,7 @@ static bool mvkIsSupportedOnPlatform(VkExtensionProperties* pProperties) { MVKExtension* extnAry = &extensionArray; for (uint32_t extnIdx = 0; extnIdx < extnCnt; extnIdx++) { MVKExtension& extn = extnAry[extnIdx]; - if ( strcmp(extn.pProperties->extensionName, extnName) == 0 ) { + if (mvkStringsAreEqual(extn.pProperties->extensionName, extnName)) { extn.enabled = true; return; } diff --git a/MoltenVK/MoltenVK/Layers/MVKLayers.mm b/MoltenVK/MoltenVK/Layers/MVKLayers.mm index 2613cee29..94f73f0ee 100644 --- a/MoltenVK/MoltenVK/Layers/MVKLayers.mm +++ b/MoltenVK/MoltenVK/Layers/MVKLayers.mm @@ -65,7 +65,7 @@ uint32_t layCnt = (uint32_t)_layers.size(); for (uint32_t layIdx = 0; layIdx < layCnt; layIdx++) { MVKLayer* pLayer = &_layers[layIdx]; - if ( strcmp(pLayer->getName(), pLayerName) == 0 ) { return pLayer; } + if (mvkStringsAreEqual(pLayer->getName(), pLayerName)) { return pLayer; } } return VK_NULL_HANDLE; } diff --git a/MoltenVK/MoltenVK/Utility/MVKFoundation.h b/MoltenVK/MoltenVK/Utility/MVKFoundation.h index 30d0a4bfb..a0ad5ed85 100644 --- a/MoltenVK/MoltenVK/Utility/MVKFoundation.h +++ b/MoltenVK/MoltenVK/Utility/MVKFoundation.h @@ -549,6 +549,15 @@ bool mvkAreEqual(const T* pV1, const T* pV2, size_t count = 1) { return (pV1 && pV2) ? (memcmp(pV1, pV2, sizeof(T) * count) == 0) : false; } +/** + * If both pV1 and pV2 are not null, returns whether the contents of the two strings are equal, + * otherwise returns false. This functionality is different than the char version of mvkAreEqual(), + * which works on individual chars or char arrays, not strings. + */ +static inline bool mvkStringsAreEqual(const char* pV1, const char* pV2, size_t count = 1) { + return (pV1 && pV2) ? (strcmp(pV1, pV2) == 0) : false; +} + /** * Sets the value referenced by the destination pointer with the value referenced by * the source pointer, and returns whether the value was set. diff --git a/MoltenVK/MoltenVK/Vulkan/vulkan.mm b/MoltenVK/MoltenVK/Vulkan/vulkan.mm index 24c75a1e4..01473c20c 100644 --- a/MoltenVK/MoltenVK/Vulkan/vulkan.mm +++ b/MoltenVK/MoltenVK/Vulkan/vulkan.mm @@ -284,17 +284,18 @@ MVK_PUBLIC_VULKAN_SYMBOL PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char* pName) { - MVKTraceVulkanCallStart(); - // Handle the special platform functions where the instance parameter may be NULL. PFN_vkVoidFunction func = nullptr; - if (strcmp(pName, "vkCreateInstance") == 0) { + MVKTraceVulkanCallStart(); + if (mvkStringsAreEqual(pName, "vkGetInstanceProcAddr")) { + func = (PFN_vkVoidFunction)vkGetInstanceProcAddr; + } else if (mvkStringsAreEqual(pName, "vkCreateInstance")) { func = (PFN_vkVoidFunction)vkCreateInstance; - } else if (strcmp(pName, "vkEnumerateInstanceExtensionProperties") == 0) { + } else if (mvkStringsAreEqual(pName, "vkEnumerateInstanceExtensionProperties")) { func = (PFN_vkVoidFunction)vkEnumerateInstanceExtensionProperties; - } else if (strcmp(pName, "vkEnumerateInstanceLayerProperties") == 0) { + } else if (mvkStringsAreEqual(pName, "vkEnumerateInstanceLayerProperties")) { func = (PFN_vkVoidFunction)vkEnumerateInstanceLayerProperties; - } else if (strcmp(pName, "vkEnumerateInstanceVersion") == 0) { + } else if (mvkStringsAreEqual(pName, "vkEnumerateInstanceVersion")) { func = (PFN_vkVoidFunction)vkEnumerateInstanceVersion; } else if (instance) { MVKInstance* mvkInst = MVKInstance::getMVKInstance(instance); @@ -3419,9 +3420,9 @@ MVK_PUBLIC_SYMBOL PFN_vkVoidFunction vk_icdGetInstanceProcAddr( MVKTraceVulkanCallStart(); PFN_vkVoidFunction func = nullptr; - if (strcmp(pName, "vk_icdNegotiateLoaderICDInterfaceVersion") == 0) { + if (mvkStringsAreEqual(pName, "vk_icdNegotiateLoaderICDInterfaceVersion")) { func = (PFN_vkVoidFunction)vk_icdNegotiateLoaderICDInterfaceVersion; - } else if (strcmp(pName, "vk_icdGetPhysicalDeviceProcAddr") == 0) { + } else if (mvkStringsAreEqual(pName, "vk_icdGetPhysicalDeviceProcAddr")) { func = (PFN_vkVoidFunction)vk_icdGetPhysicalDeviceProcAddr; } else { func = vkGetInstanceProcAddr(instance, pName); From 12592abbc950fce43c9dbf586e48b5292f358d50 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Fri, 13 Jan 2023 12:19:37 -0500 Subject: [PATCH 40/72] Update copyright notices to year 2023. --- Common/MVKCommonEnvironment.h | 2 +- Common/MVKOSExtensions.h | 2 +- Common/MVKOSExtensions.mm | 2 +- Common/MVKStrings.h | 2 +- Demos/Cube/iOS/AppDelegate.h | 2 +- Demos/Cube/iOS/AppDelegate.m | 2 +- Demos/Cube/iOS/DemoViewController.h | 2 +- Demos/Cube/iOS/DemoViewController.m | 2 +- Demos/Cube/iOS/main.m | 2 +- Demos/Cube/macOS/AppDelegate.h | 2 +- Demos/Cube/macOS/AppDelegate.m | 2 +- Demos/Cube/macOS/DemoViewController.h | 2 +- Demos/Cube/macOS/DemoViewController.m | 2 +- Demos/Cube/macOS/Info.plist | 2 +- Demos/Cube/macOS/main.m | 2 +- Demos/README.md | 2 +- Docs/MoltenVK_Runtime_UserGuide.md | 2 +- Docs/Whats_New.md | 3 ++- ExternalRevisions/README.md | 2 +- MoltenVK/MoltenVK/API/mvk_datatypes.h | 2 +- MoltenVK/MoltenVK/API/mvk_vulkan.h | 2 +- MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdDebug.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdDebug.mm | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdDispatch.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdDraw.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdDraw.mm | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdPipeline.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdQueries.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdQueries.mm | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm | 2 +- MoltenVK/MoltenVK/Commands/MVKCommand.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm | 2 +- MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm | 2 +- MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.mm | 2 +- .../Commands/MVKCommandPipelineStateFactoryShaderSource.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCommandPool.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCommandPool.mm | 2 +- MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.h | 2 +- MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.mm | 2 +- MoltenVK/MoltenVK/Commands/MVKCommandTypePools.def | 2 +- MoltenVK/MoltenVK/Commands/MVKMTLBufferAllocation.h | 2 +- MoltenVK/MoltenVK/Commands/MVKMTLBufferAllocation.mm | 2 +- MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKBuffer.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKBuffer.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDevice.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKFramebuffer.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKFramebuffer.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKImage.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKImage.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKInstance.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKQueue.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKResource.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKResource.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKSurface.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKSurface.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKSync.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKSync.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKVulkanAPIObject.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKVulkanAPIObject.mm | 2 +- MoltenVK/MoltenVK/Layers/MVKExtensions.def | 2 +- MoltenVK/MoltenVK/Layers/MVKExtensions.h | 2 +- MoltenVK/MoltenVK/Layers/MVKExtensions.mm | 2 +- MoltenVK/MoltenVK/Layers/MVKLayers.h | 2 +- MoltenVK/MoltenVK/Layers/MVKLayers.mm | 2 +- MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h | 2 +- MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.m | 2 +- .../OS/MTLRenderPassDepthAttachmentDescriptor+MoltenVK.h | 2 +- .../OS/MTLRenderPassDepthAttachmentDescriptor+MoltenVK.m | 2 +- MoltenVK/MoltenVK/OS/MTLRenderPassDescriptor+MoltenVK.h | 2 +- MoltenVK/MoltenVK/OS/MTLRenderPassDescriptor+MoltenVK.m | 2 +- .../OS/MTLRenderPassStencilAttachmentDescriptor+MoltenVK.h | 2 +- .../OS/MTLRenderPassStencilAttachmentDescriptor+MoltenVK.m | 2 +- MoltenVK/MoltenVK/OS/MTLRenderPipelineDescriptor+MoltenVK.h | 2 +- MoltenVK/MoltenVK/OS/MTLRenderPipelineDescriptor+MoltenVK.m | 2 +- MoltenVK/MoltenVK/OS/MTLSamplerDescriptor+MoltenVK.h | 2 +- MoltenVK/MoltenVK/OS/MTLSamplerDescriptor+MoltenVK.m | 2 +- MoltenVK/MoltenVK/OS/MTLTextureDescriptor+MoltenVK.h | 2 +- MoltenVK/MoltenVK/OS/MTLTextureDescriptor+MoltenVK.m | 2 +- MoltenVK/MoltenVK/OS/MVKGPUCapture.h | 2 +- MoltenVK/MoltenVK/OS/MVKGPUCapture.mm | 2 +- MoltenVK/MoltenVK/OS/NSString+MoltenVK.h | 2 +- MoltenVK/MoltenVK/OS/NSString+MoltenVK.mm | 2 +- MoltenVK/MoltenVK/Utility/MVKBaseObject.h | 2 +- MoltenVK/MoltenVK/Utility/MVKBaseObject.mm | 2 +- MoltenVK/MoltenVK/Utility/MVKBitArray.h | 2 +- MoltenVK/MoltenVK/Utility/MVKBlockObserver.h | 2 +- MoltenVK/MoltenVK/Utility/MVKBlockObserver.m | 2 +- MoltenVK/MoltenVK/Utility/MVKCodec.cpp | 2 +- MoltenVK/MoltenVK/Utility/MVKCodec.h | 2 +- MoltenVK/MoltenVK/Utility/MVKDXTnCodec.def | 2 +- MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp | 2 +- MoltenVK/MoltenVK/Utility/MVKEnvironment.h | 2 +- MoltenVK/MoltenVK/Utility/MVKFoundation.cpp | 2 +- MoltenVK/MoltenVK/Utility/MVKFoundation.h | 2 +- MoltenVK/MoltenVK/Utility/MVKLogging.h | 2 +- MoltenVK/MoltenVK/Utility/MVKObjectPool.h | 2 +- MoltenVK/MoltenVK/Utility/MVKSmallVector.h | 2 +- MoltenVK/MoltenVK/Utility/MVKSmallVectorAllocator.h | 2 +- MoltenVK/MoltenVK/Utility/MVKWatermark.h | 2 +- MoltenVK/MoltenVK/Utility/MVKWatermark.mm | 2 +- MoltenVK/MoltenVK/Utility/MVKWatermarkShaderSource.h | 2 +- MoltenVK/MoltenVK/Utility/MVKWatermarkTextureContent.h | 2 +- MoltenVK/MoltenVK/Vulkan/mvk_datatypes.hpp | 2 +- MoltenVK/MoltenVK/Vulkan/mvk_datatypes.mm | 2 +- MoltenVK/MoltenVK/Vulkan/vk_mvk_moltenvk.mm | 2 +- MoltenVK/MoltenVK/Vulkan/vulkan.mm | 2 +- MoltenVKShaderConverter/MoltenVKShaderConverter/FileSupport.h | 2 +- MoltenVKShaderConverter/MoltenVKShaderConverter/FileSupport.mm | 2 +- .../MoltenVKShaderConverter/GLSLConversion.h | 2 +- .../MoltenVKShaderConverter/GLSLConversion.mm | 2 +- .../MoltenVKShaderConverter/GLSLToSPIRVConverter.cpp | 2 +- .../MoltenVKShaderConverter/GLSLToSPIRVConverter.h | 2 +- .../MoltenVKShaderConverter/SPIRVConversion.h | 2 +- .../MoltenVKShaderConverter/SPIRVConversion.mm | 2 +- .../MoltenVKShaderConverter/SPIRVReflection.h | 2 +- .../MoltenVKShaderConverter/SPIRVSupport.cpp | 2 +- MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.h | 2 +- .../MoltenVKShaderConverter/SPIRVToMSLConverter.cpp | 2 +- .../MoltenVKShaderConverter/SPIRVToMSLConverter.h | 2 +- .../MoltenVKShaderConverterTool.cpp | 2 +- .../MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.h | 2 +- .../MoltenVKShaderConverterTool/OSSupport.h | 2 +- .../MoltenVKShaderConverterTool/OSSupport.mm | 2 +- MoltenVKShaderConverter/MoltenVKShaderConverterTool/main.cpp | 2 +- README.md | 2 +- Scripts/runcts | 2 +- fetchDependencies | 2 +- 159 files changed, 160 insertions(+), 159 deletions(-) diff --git a/Common/MVKCommonEnvironment.h b/Common/MVKCommonEnvironment.h index ae4c6e348..ca6fe5239 100644 --- a/Common/MVKCommonEnvironment.h +++ b/Common/MVKCommonEnvironment.h @@ -1,7 +1,7 @@ /* * MVKCommonEnvironment.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Common/MVKOSExtensions.h b/Common/MVKOSExtensions.h index 97dc9995e..86d2e8d32 100644 --- a/Common/MVKOSExtensions.h +++ b/Common/MVKOSExtensions.h @@ -1,7 +1,7 @@ /* * MVKOSExtensions.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Common/MVKOSExtensions.mm b/Common/MVKOSExtensions.mm index 006c9ea32..2999870c6 100644 --- a/Common/MVKOSExtensions.mm +++ b/Common/MVKOSExtensions.mm @@ -1,7 +1,7 @@ /* * MVKOSExtensions.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Common/MVKStrings.h b/Common/MVKStrings.h index d5dffa41c..ec78d9ad7 100644 --- a/Common/MVKStrings.h +++ b/Common/MVKStrings.h @@ -1,7 +1,7 @@ /* * MVKStrings.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Demos/Cube/iOS/AppDelegate.h b/Demos/Cube/iOS/AppDelegate.h index cc7ba62d9..5086117de 100644 --- a/Demos/Cube/iOS/AppDelegate.h +++ b/Demos/Cube/iOS/AppDelegate.h @@ -1,7 +1,7 @@ /* * AppDelegate.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Demos/Cube/iOS/AppDelegate.m b/Demos/Cube/iOS/AppDelegate.m index b0fc0cd4e..eafb07ad1 100644 --- a/Demos/Cube/iOS/AppDelegate.m +++ b/Demos/Cube/iOS/AppDelegate.m @@ -1,7 +1,7 @@ /* * AppDelegate.m * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Demos/Cube/iOS/DemoViewController.h b/Demos/Cube/iOS/DemoViewController.h index 39a353f3c..3896cc369 100644 --- a/Demos/Cube/iOS/DemoViewController.h +++ b/Demos/Cube/iOS/DemoViewController.h @@ -1,7 +1,7 @@ /* * DemoViewController.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Demos/Cube/iOS/DemoViewController.m b/Demos/Cube/iOS/DemoViewController.m index 812653f31..9256927a9 100644 --- a/Demos/Cube/iOS/DemoViewController.m +++ b/Demos/Cube/iOS/DemoViewController.m @@ -1,7 +1,7 @@ /* * DemoViewController.m * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Demos/Cube/iOS/main.m b/Demos/Cube/iOS/main.m index 61649e987..6aeb9e56f 100644 --- a/Demos/Cube/iOS/main.m +++ b/Demos/Cube/iOS/main.m @@ -1,7 +1,7 @@ /* * main.m * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Demos/Cube/macOS/AppDelegate.h b/Demos/Cube/macOS/AppDelegate.h index 255d14a0e..f8a1848ca 100644 --- a/Demos/Cube/macOS/AppDelegate.h +++ b/Demos/Cube/macOS/AppDelegate.h @@ -1,7 +1,7 @@ /* * AppDelegate.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Demos/Cube/macOS/AppDelegate.m b/Demos/Cube/macOS/AppDelegate.m index 69ace335b..b376aba1a 100644 --- a/Demos/Cube/macOS/AppDelegate.m +++ b/Demos/Cube/macOS/AppDelegate.m @@ -1,7 +1,7 @@ /* * AppDelegate.m * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Demos/Cube/macOS/DemoViewController.h b/Demos/Cube/macOS/DemoViewController.h index a083159c4..e5f9f1700 100644 --- a/Demos/Cube/macOS/DemoViewController.h +++ b/Demos/Cube/macOS/DemoViewController.h @@ -1,7 +1,7 @@ /* * DemoViewController.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Demos/Cube/macOS/DemoViewController.m b/Demos/Cube/macOS/DemoViewController.m index d04697fd0..9586fa670 100644 --- a/Demos/Cube/macOS/DemoViewController.m +++ b/Demos/Cube/macOS/DemoViewController.m @@ -1,7 +1,7 @@ /* * DemoViewController.m * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Demos/Cube/macOS/Info.plist b/Demos/Cube/macOS/Info.plist index 8d81b12b2..df5c6740d 100644 --- a/Demos/Cube/macOS/Info.plist +++ b/Demos/Cube/macOS/Info.plist @@ -25,7 +25,7 @@ LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright - Copyright (c) 2015-2022 The Brenwill Workshop Ltd. All rights reserved. + Copyright (c) 2015-2023 The Brenwill Workshop Ltd. All rights reserved. NSMainStoryboardFile Main NSPrincipalClass diff --git a/Demos/Cube/macOS/main.m b/Demos/Cube/macOS/main.m index e49b02740..6a465339d 100644 --- a/Demos/Cube/macOS/main.m +++ b/Demos/Cube/macOS/main.m @@ -1,7 +1,7 @@ /* * main.m * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Demos/README.md b/Demos/README.md index 9ab40c864..29fddb101 100644 --- a/Demos/README.md +++ b/Demos/README.md @@ -6,7 +6,7 @@ #MoltenVK Demo Projects -Copyright (c) 2015-2022 [The Brenwill Workshop Ltd.](http://www.brenwill.com) +Copyright (c) 2015-2023 [The Brenwill Workshop Ltd.](http://www.brenwill.com) [comment]: # "This document is written in Markdown (http://en.wikipedia.org/wiki/Markdown) format." [comment]: # "For best results, use a Markdown reader." diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index d78f05b88..ae08b5da6 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -7,7 +7,7 @@ MoltenVK Runtime User Guide =========================== -Copyright (c) 2015-2022 [The Brenwill Workshop Ltd.](http://www.brenwill.com) +Copyright (c) 2015-2023 [The Brenwill Workshop Ltd.](http://www.brenwill.com) [comment]: # "This document is written in Markdown (http://en.wikipedia.org/wiki/Markdown) format." [comment]: # "For best results, use a Markdown reader." diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 4c1a7130b..7c484c75d 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -6,7 +6,7 @@ # What's New in MoltenVK -Copyright (c) 2015-2022 [The Brenwill Workshop Ltd.](http://www.brenwill.com) +Copyright (c) 2015-2023 [The Brenwill Workshop Ltd.](http://www.brenwill.com) [comment]: # "This document is written in Markdown (http://en.wikipedia.org/wiki/Markdown) format." [comment]: # "For best results, use a Markdown reader." @@ -26,6 +26,7 @@ Released TBD statically linked to an app that calls all Vulkan functions dynamically. - Per Vulkan 1.2 spec, support calling `vkGetInstanceProcAddr()` with a null instance, when `vkGetInstanceProcAddr` itself is the function name. +- Update copyright notices to year 2023. diff --git a/ExternalRevisions/README.md b/ExternalRevisions/README.md index b31e58f30..7a8e31a26 100644 --- a/ExternalRevisions/README.md +++ b/ExternalRevisions/README.md @@ -5,7 +5,7 @@ #MoltenVK External Dependencies -Copyright (c) 2015-2022 [The Brenwill Workshop Ltd.](http://www.brenwill.com) +Copyright (c) 2015-2023 [The Brenwill Workshop Ltd.](http://www.brenwill.com) [comment]: # "This document is written in Markdown (http://en.wikipedia.org/wiki/Markdown) format." [comment]: # "For best results, use a Markdown reader." diff --git a/MoltenVK/MoltenVK/API/mvk_datatypes.h b/MoltenVK/MoltenVK/API/mvk_datatypes.h index 6fb71f5a6..27017bc11 100644 --- a/MoltenVK/MoltenVK/API/mvk_datatypes.h +++ b/MoltenVK/MoltenVK/API/mvk_datatypes.h @@ -1,7 +1,7 @@ /* * mvk_datatypes.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/API/mvk_vulkan.h b/MoltenVK/MoltenVK/API/mvk_vulkan.h index 0a918ab1a..3906a673c 100644 --- a/MoltenVK/MoltenVK/API/mvk_vulkan.h +++ b/MoltenVK/MoltenVK/API/mvk_vulkan.h @@ -1,7 +1,7 @@ /* * mvk_vulkan.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index 6aef84a3a..9ee5db30f 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -1,7 +1,7 @@ /* * vk_mvk_moltenvk.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdDebug.h b/MoltenVK/MoltenVK/Commands/MVKCmdDebug.h index e9d700831..4e1ce4e05 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdDebug.h +++ b/MoltenVK/MoltenVK/Commands/MVKCmdDebug.h @@ -1,7 +1,7 @@ /* * MVKCmdDebug.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdDebug.mm b/MoltenVK/MoltenVK/Commands/MVKCmdDebug.mm index bf0d7a63c..46e1a2ff9 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdDebug.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdDebug.mm @@ -1,7 +1,7 @@ /* * MVKCmdDebug.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.h b/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.h index 162039ea9..28406056f 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.h +++ b/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.h @@ -1,7 +1,7 @@ /* * MVKCmdDispatch.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm b/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm index c36f687d1..1125963dd 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm @@ -1,7 +1,7 @@ /* * MVKCmdDispatch.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdDraw.h b/MoltenVK/MoltenVK/Commands/MVKCmdDraw.h index 32274bf50..2c3fca39c 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdDraw.h +++ b/MoltenVK/MoltenVK/Commands/MVKCmdDraw.h @@ -1,7 +1,7 @@ /* * MVKCmdDraw.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdDraw.mm b/MoltenVK/MoltenVK/Commands/MVKCmdDraw.mm index 3f9a52eba..83a48ed56 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdDraw.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdDraw.mm @@ -1,7 +1,7 @@ /* * MVKCmdDraw.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.h b/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.h index ca4d9c46f..8e1772566 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.h +++ b/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.h @@ -1,7 +1,7 @@ /* * MVKCmdPipeline.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm b/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm index beca5e813..2a818c635 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm @@ -1,7 +1,7 @@ /* * MVKCmdPipeline.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdQueries.h b/MoltenVK/MoltenVK/Commands/MVKCmdQueries.h index edbbe5247..baa588634 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdQueries.h +++ b/MoltenVK/MoltenVK/Commands/MVKCmdQueries.h @@ -1,7 +1,7 @@ /* * MVKCmdQueries.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdQueries.mm b/MoltenVK/MoltenVK/Commands/MVKCmdQueries.mm index e64493ad8..bc5ba9c6d 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdQueries.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdQueries.mm @@ -1,7 +1,7 @@ /* * MVKCmdQueries.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.h b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.h index 9b3c14d02..4d6614752 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.h +++ b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.h @@ -1,7 +1,7 @@ /* * MVKCmdRenderPass.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm index ad16bf49a..ee71af434 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm @@ -1,7 +1,7 @@ /* * MVKCmdRenderPass.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h index c0abdc094..cdf6dc331 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h +++ b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h @@ -1,7 +1,7 @@ /* * MVKCmdTransfer.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm index e5e1384c9..8c735dffc 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm @@ -1,7 +1,7 @@ /* * MVKCmdTransfer.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommand.h b/MoltenVK/MoltenVK/Commands/MVKCommand.h index 1ae9a463e..cd48faccf 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommand.h +++ b/MoltenVK/MoltenVK/Commands/MVKCommand.h @@ -1,7 +1,7 @@ /* * MVKCommand.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h index 87ae5997a..3dfe33a2b 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h +++ b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h @@ -1,7 +1,7 @@ /* * MVKCommandBuffer.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm index 2c014c779..bc89288a9 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm @@ -1,7 +1,7 @@ /* * MVKCommandBuffer.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h index 16c84e77c..74e735af9 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h +++ b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h @@ -1,7 +1,7 @@ /* * MVKCommandEncoderState.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm index e03a64be1..555086c55 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm @@ -1,7 +1,7 @@ /* * MVKCommandEncoderState.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.h b/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.h index 67b77d1fb..ba9caf053 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.h +++ b/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.h @@ -1,7 +1,7 @@ /* * MVKCommandEncodingPool.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.mm b/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.mm index 346c0b26a..11e07cec5 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.mm @@ -1,7 +1,7 @@ /* * MVKCommandEncodingPool.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandPipelineStateFactoryShaderSource.h b/MoltenVK/MoltenVK/Commands/MVKCommandPipelineStateFactoryShaderSource.h index 3730d7193..acd492fc9 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandPipelineStateFactoryShaderSource.h +++ b/MoltenVK/MoltenVK/Commands/MVKCommandPipelineStateFactoryShaderSource.h @@ -1,7 +1,7 @@ /* * MVKCommandPipelineStateFactoryShaderSource.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandPool.h b/MoltenVK/MoltenVK/Commands/MVKCommandPool.h index e7b7b0ca8..f2cf1e66e 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandPool.h +++ b/MoltenVK/MoltenVK/Commands/MVKCommandPool.h @@ -1,7 +1,7 @@ /* * MVKCommandPool.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandPool.mm b/MoltenVK/MoltenVK/Commands/MVKCommandPool.mm index 17a8d6358..be4713f36 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandPool.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandPool.mm @@ -1,7 +1,7 @@ /* * MVKCommandPool.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.h b/MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.h index a23dd0d97..bd30da20c 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.h +++ b/MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.h @@ -1,7 +1,7 @@ /* * MVKCommandResourceFactory.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.mm b/MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.mm index fffa8423f..aa91b183b 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.mm @@ -1,7 +1,7 @@ /* * MVKCommandResourceFactory.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandTypePools.def b/MoltenVK/MoltenVK/Commands/MVKCommandTypePools.def index e8cbae6e3..f8f208b63 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandTypePools.def +++ b/MoltenVK/MoltenVK/Commands/MVKCommandTypePools.def @@ -1,7 +1,7 @@ /* * MVKCommandTypePools.def * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKMTLBufferAllocation.h b/MoltenVK/MoltenVK/Commands/MVKMTLBufferAllocation.h index 41cd28f1f..474a0a169 100644 --- a/MoltenVK/MoltenVK/Commands/MVKMTLBufferAllocation.h +++ b/MoltenVK/MoltenVK/Commands/MVKMTLBufferAllocation.h @@ -1,7 +1,7 @@ /* * MVKMTLBufferAllocation.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKMTLBufferAllocation.mm b/MoltenVK/MoltenVK/Commands/MVKMTLBufferAllocation.mm index 659a64225..4e3e65ba2 100644 --- a/MoltenVK/MoltenVK/Commands/MVKMTLBufferAllocation.mm +++ b/MoltenVK/MoltenVK/Commands/MVKMTLBufferAllocation.mm @@ -1,7 +1,7 @@ /* * MVKMTLBufferAllocation.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h b/MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h index 443786735..de72f06dd 100644 --- a/MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h +++ b/MoltenVK/MoltenVK/Commands/MVKMTLResourceBindings.h @@ -1,7 +1,7 @@ /* * MVKMTLResourceBindings.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKBuffer.h b/MoltenVK/MoltenVK/GPUObjects/MVKBuffer.h index 77ff25208..2e338ce7a 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKBuffer.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKBuffer.h @@ -1,7 +1,7 @@ /* * MVKBuffer.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKBuffer.mm b/MoltenVK/MoltenVK/GPUObjects/MVKBuffer.mm index d2ab02804..181b220c5 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKBuffer.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKBuffer.mm @@ -1,7 +1,7 @@ /* * MVKBuffer.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.h b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.h index 449be0369..229b65dc8 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.h @@ -1,7 +1,7 @@ /* * MVKDescriptor.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.mm index 061279b78..172fb0366 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.mm @@ -1,7 +1,7 @@ /* * MVKDescriptor.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.h b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.h index 1f0505544..8964c9019 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.h @@ -1,7 +1,7 @@ /* * MVKDescriptorSet.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm index 5ea4d29b9..5ebeed4b9 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm @@ -1,7 +1,7 @@ /* * MVKDescriptorSet.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h index 5a657cb4e..b6617405b 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h @@ -1,7 +1,7 @@ /* * MVKDevice.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index ed61f91c5..5f0721b45 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -1,7 +1,7 @@ /* * MVKDevice.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def index 3235a2078..35dc9f08f 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def @@ -1,7 +1,7 @@ /* * MVKDeviceFeatureStructs.def * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.h b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.h index 0966dd356..2f428e365 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.h @@ -1,7 +1,7 @@ /* * MVKDeviceMemory.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm index 154eb60ad..0eb447f4a 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm @@ -1,7 +1,7 @@ /* * MVKDeviceMemory.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKFramebuffer.h b/MoltenVK/MoltenVK/GPUObjects/MVKFramebuffer.h index 60aeb429b..ec9b3fdfa 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKFramebuffer.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKFramebuffer.h @@ -1,7 +1,7 @@ /* * MVKFramebuffer.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKFramebuffer.mm b/MoltenVK/MoltenVK/GPUObjects/MVKFramebuffer.mm index 7bf9f475f..c6f56bc75 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKFramebuffer.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKFramebuffer.mm @@ -1,7 +1,7 @@ /* * MVKFramebuffer.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKImage.h b/MoltenVK/MoltenVK/GPUObjects/MVKImage.h index 2c19af45d..3beea0f40 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKImage.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKImage.h @@ -1,7 +1,7 @@ /* * MVKImage.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm index 8b05bbdc6..5c00ea339 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm @@ -1,7 +1,7 @@ /* * MVKImage.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.h b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.h index 06d86bd61..6f9066402 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.h @@ -1,7 +1,7 @@ /* * MVKInstance.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm index 05fb750ae..0036bd15a 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm @@ -1,7 +1,7 @@ /* * MVKInstance.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h index 4b84769b2..f08eb11c2 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h @@ -1,7 +1,7 @@ /* * MVKPipeline.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm index d5105d485..65ef8eeb2 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm @@ -1,7 +1,7 @@ /* * MVKPipeline.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.h b/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.h index 66c762965..37bbf10e6 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.h @@ -1,7 +1,7 @@ /* * MVKPixelFormats.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm index a89416a8c..00c3693f7 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm @@ -1,7 +1,7 @@ /* * MVKPixelFormats.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.h b/MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.h index ace41a158..80c3a3572 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.h @@ -1,7 +1,7 @@ /* * MVKQueryPool.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.mm b/MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.mm index 18f6ae1b1..b5e21b56b 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.mm @@ -1,7 +1,7 @@ /* * MVKQueryPool.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h index 699557e09..48c69bc9f 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h @@ -1,7 +1,7 @@ /* * MVKQueue.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm index 8c30533d9..ea6bafdfa 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm @@ -1,7 +1,7 @@ /* * MVKQueue.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h b/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h index d440b2e1a..85ec750a6 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h @@ -1,7 +1,7 @@ /* * MVKRenderPass.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.mm b/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.mm index 6500c99a7..844ea1eb2 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.mm @@ -1,7 +1,7 @@ /* * MVKRenderPass.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKResource.h b/MoltenVK/MoltenVK/GPUObjects/MVKResource.h index 3c3e63f7e..a1c3da6b2 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKResource.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKResource.h @@ -1,7 +1,7 @@ /* * MVKResource.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKResource.mm b/MoltenVK/MoltenVK/GPUObjects/MVKResource.mm index 30650d458..0e2131dcd 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKResource.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKResource.mm @@ -1,7 +1,7 @@ /* * MVKResource.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h index 430f886cc..2db3f3c77 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h @@ -1,7 +1,7 @@ /* * MVKShaderModule.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm index 8170433a1..3de7df9ea 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm @@ -1,7 +1,7 @@ /* * MVKShaderModule.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSurface.h b/MoltenVK/MoltenVK/GPUObjects/MVKSurface.h index 8ec3eb1a1..544c8dfac 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSurface.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSurface.h @@ -1,7 +1,7 @@ /* * MVKSurface.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSurface.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSurface.mm index a35517798..c3885da1d 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSurface.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSurface.mm @@ -1,7 +1,7 @@ /* * MVKSurface.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h index 76ae1cec6..e13474bde 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h @@ -1,7 +1,7 @@ /* * MVKSwapchain.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm index 2739b8723..bef4dc42c 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm @@ -1,7 +1,7 @@ /* * MVKSwapchain.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSync.h b/MoltenVK/MoltenVK/GPUObjects/MVKSync.h index 0a0349919..c8d9da452 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSync.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSync.h @@ -1,7 +1,7 @@ /* * MVKSync.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSync.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSync.mm index 318e86a15..47bf78a23 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSync.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSync.mm @@ -1,7 +1,7 @@ /* * MVKSync.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKVulkanAPIObject.h b/MoltenVK/MoltenVK/GPUObjects/MVKVulkanAPIObject.h index c82b03642..fdb52ae98 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKVulkanAPIObject.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKVulkanAPIObject.h @@ -1,7 +1,7 @@ /* * MVKVulkanAPIObject.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKVulkanAPIObject.mm b/MoltenVK/MoltenVK/GPUObjects/MVKVulkanAPIObject.mm index ff8f7d53e..e2a1b2e97 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKVulkanAPIObject.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKVulkanAPIObject.mm @@ -1,7 +1,7 @@ /* * MVKVulkanAPIObject.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.def b/MoltenVK/MoltenVK/Layers/MVKExtensions.def index 894744649..17ed1f255 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.def +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.def @@ -1,7 +1,7 @@ /* * MVKExtensions.def * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.h b/MoltenVK/MoltenVK/Layers/MVKExtensions.h index 5ec51533a..64b35e360 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.h +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.h @@ -1,7 +1,7 @@ /* * MVKExtensions.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.mm b/MoltenVK/MoltenVK/Layers/MVKExtensions.mm index 7a4aa18f7..596f5882a 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.mm +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.mm @@ -1,7 +1,7 @@ /* * MVKExtensions.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Layers/MVKLayers.h b/MoltenVK/MoltenVK/Layers/MVKLayers.h index 1a99f4324..8776986d4 100644 --- a/MoltenVK/MoltenVK/Layers/MVKLayers.h +++ b/MoltenVK/MoltenVK/Layers/MVKLayers.h @@ -1,7 +1,7 @@ /* * MVKLayers.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Layers/MVKLayers.mm b/MoltenVK/MoltenVK/Layers/MVKLayers.mm index 94f73f0ee..3405a56e4 100644 --- a/MoltenVK/MoltenVK/Layers/MVKLayers.mm +++ b/MoltenVK/MoltenVK/Layers/MVKLayers.mm @@ -1,7 +1,7 @@ /* * MVKLayers.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h b/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h index 0cf039bd5..55b82f246 100644 --- a/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h +++ b/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h @@ -1,7 +1,7 @@ /* * CAMetalLayer+MoltenVK.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.m b/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.m index 0214e8b48..707b908ac 100644 --- a/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.m +++ b/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.m @@ -1,7 +1,7 @@ /* * CAMetalLayer+MoltenVK.m * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MTLRenderPassDepthAttachmentDescriptor+MoltenVK.h b/MoltenVK/MoltenVK/OS/MTLRenderPassDepthAttachmentDescriptor+MoltenVK.h index 364eeb724..fb180ab3f 100644 --- a/MoltenVK/MoltenVK/OS/MTLRenderPassDepthAttachmentDescriptor+MoltenVK.h +++ b/MoltenVK/MoltenVK/OS/MTLRenderPassDepthAttachmentDescriptor+MoltenVK.h @@ -1,7 +1,7 @@ /* * MTLRenderPassDepthAttachmentDescriptor+MoltenVK.h * - * Copyright (c) 2020-2022 Chip Davis for CodeWeavers + * Copyright (c) 2020-2023 Chip Davis for CodeWeavers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MTLRenderPassDepthAttachmentDescriptor+MoltenVK.m b/MoltenVK/MoltenVK/OS/MTLRenderPassDepthAttachmentDescriptor+MoltenVK.m index 37b083fd1..21cfbeffd 100644 --- a/MoltenVK/MoltenVK/OS/MTLRenderPassDepthAttachmentDescriptor+MoltenVK.m +++ b/MoltenVK/MoltenVK/OS/MTLRenderPassDepthAttachmentDescriptor+MoltenVK.m @@ -1,7 +1,7 @@ /* * MTLRenderPassDepthAttachmentDescriptor+MoltenVK.m * - * Copyright (c) 2020-2022 Chip Davis for CodeWeavers + * Copyright (c) 2020-2023 Chip Davis for CodeWeavers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MTLRenderPassDescriptor+MoltenVK.h b/MoltenVK/MoltenVK/OS/MTLRenderPassDescriptor+MoltenVK.h index aff36d88c..51d72e737 100644 --- a/MoltenVK/MoltenVK/OS/MTLRenderPassDescriptor+MoltenVK.h +++ b/MoltenVK/MoltenVK/OS/MTLRenderPassDescriptor+MoltenVK.h @@ -1,7 +1,7 @@ /* * MTLRenderPassDescriptor+MoltenVK.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MTLRenderPassDescriptor+MoltenVK.m b/MoltenVK/MoltenVK/OS/MTLRenderPassDescriptor+MoltenVK.m index 0a3ee2350..d5a9a1238 100644 --- a/MoltenVK/MoltenVK/OS/MTLRenderPassDescriptor+MoltenVK.m +++ b/MoltenVK/MoltenVK/OS/MTLRenderPassDescriptor+MoltenVK.m @@ -1,7 +1,7 @@ /* * MTLRenderPassDescriptor+MoltenVK.m * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MTLRenderPassStencilAttachmentDescriptor+MoltenVK.h b/MoltenVK/MoltenVK/OS/MTLRenderPassStencilAttachmentDescriptor+MoltenVK.h index 54dfacc27..fe51ad610 100644 --- a/MoltenVK/MoltenVK/OS/MTLRenderPassStencilAttachmentDescriptor+MoltenVK.h +++ b/MoltenVK/MoltenVK/OS/MTLRenderPassStencilAttachmentDescriptor+MoltenVK.h @@ -1,7 +1,7 @@ /* * MTLRenderPassStencilAttachmentDescriptor+MoltenVK.h * - * Copyright (c) 2020-2022 Chip Davis for CodeWeavers + * Copyright (c) 2020-2023 Chip Davis for CodeWeavers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MTLRenderPassStencilAttachmentDescriptor+MoltenVK.m b/MoltenVK/MoltenVK/OS/MTLRenderPassStencilAttachmentDescriptor+MoltenVK.m index 31fd4f570..8a54d4077 100644 --- a/MoltenVK/MoltenVK/OS/MTLRenderPassStencilAttachmentDescriptor+MoltenVK.m +++ b/MoltenVK/MoltenVK/OS/MTLRenderPassStencilAttachmentDescriptor+MoltenVK.m @@ -1,7 +1,7 @@ /* * MTLRenderPassStencilAttachmentDescriptor+MoltenVK.m * - * Copyright (c) 2020-2022 Chip Davis for CodeWeavers + * Copyright (c) 2020-2023 Chip Davis for CodeWeavers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MTLRenderPipelineDescriptor+MoltenVK.h b/MoltenVK/MoltenVK/OS/MTLRenderPipelineDescriptor+MoltenVK.h index 1e01c173d..b8cd92308 100644 --- a/MoltenVK/MoltenVK/OS/MTLRenderPipelineDescriptor+MoltenVK.h +++ b/MoltenVK/MoltenVK/OS/MTLRenderPipelineDescriptor+MoltenVK.h @@ -1,7 +1,7 @@ /* * MTLRenderPipelineDescriptor+MoltenVK.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MTLRenderPipelineDescriptor+MoltenVK.m b/MoltenVK/MoltenVK/OS/MTLRenderPipelineDescriptor+MoltenVK.m index 917d587c6..ab46bcebf 100644 --- a/MoltenVK/MoltenVK/OS/MTLRenderPipelineDescriptor+MoltenVK.m +++ b/MoltenVK/MoltenVK/OS/MTLRenderPipelineDescriptor+MoltenVK.m @@ -1,7 +1,7 @@ /* * MTLRenderPipelineDescriptor+MoltenVK.m * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MTLSamplerDescriptor+MoltenVK.h b/MoltenVK/MoltenVK/OS/MTLSamplerDescriptor+MoltenVK.h index f2a02fec7..4ca01ccab 100644 --- a/MoltenVK/MoltenVK/OS/MTLSamplerDescriptor+MoltenVK.h +++ b/MoltenVK/MoltenVK/OS/MTLSamplerDescriptor+MoltenVK.h @@ -1,7 +1,7 @@ /* * MTLSamplerDescriptor+MoltenVK.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MTLSamplerDescriptor+MoltenVK.m b/MoltenVK/MoltenVK/OS/MTLSamplerDescriptor+MoltenVK.m index 60e735b63..f7474d754 100644 --- a/MoltenVK/MoltenVK/OS/MTLSamplerDescriptor+MoltenVK.m +++ b/MoltenVK/MoltenVK/OS/MTLSamplerDescriptor+MoltenVK.m @@ -1,7 +1,7 @@ /* * MTLSamplerDescriptor+MoltenVK.m * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MTLTextureDescriptor+MoltenVK.h b/MoltenVK/MoltenVK/OS/MTLTextureDescriptor+MoltenVK.h index cbee46804..52f2203dc 100644 --- a/MoltenVK/MoltenVK/OS/MTLTextureDescriptor+MoltenVK.h +++ b/MoltenVK/MoltenVK/OS/MTLTextureDescriptor+MoltenVK.h @@ -1,7 +1,7 @@ /* * MTLTextureDescriptor+MoltenVK.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MTLTextureDescriptor+MoltenVK.m b/MoltenVK/MoltenVK/OS/MTLTextureDescriptor+MoltenVK.m index 0c045326f..46c91aefd 100644 --- a/MoltenVK/MoltenVK/OS/MTLTextureDescriptor+MoltenVK.m +++ b/MoltenVK/MoltenVK/OS/MTLTextureDescriptor+MoltenVK.m @@ -1,7 +1,7 @@ /* * MTLTextureDescriptor+MoltenVK.m * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MVKGPUCapture.h b/MoltenVK/MoltenVK/OS/MVKGPUCapture.h index ca3fbb2a8..6e4c67d8c 100644 --- a/MoltenVK/MoltenVK/OS/MVKGPUCapture.h +++ b/MoltenVK/MoltenVK/OS/MVKGPUCapture.h @@ -1,7 +1,7 @@ /* * MVKGPUCapture.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/MVKGPUCapture.mm b/MoltenVK/MoltenVK/OS/MVKGPUCapture.mm index 9248915bc..785694cd2 100644 --- a/MoltenVK/MoltenVK/OS/MVKGPUCapture.mm +++ b/MoltenVK/MoltenVK/OS/MVKGPUCapture.mm @@ -1,7 +1,7 @@ /* * MVKGPUCapture.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/NSString+MoltenVK.h b/MoltenVK/MoltenVK/OS/NSString+MoltenVK.h index 8173d84fc..8cc02fb80 100644 --- a/MoltenVK/MoltenVK/OS/NSString+MoltenVK.h +++ b/MoltenVK/MoltenVK/OS/NSString+MoltenVK.h @@ -1,7 +1,7 @@ /* * NSString+MoltenVK.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/OS/NSString+MoltenVK.mm b/MoltenVK/MoltenVK/OS/NSString+MoltenVK.mm index 41371d7f4..09506b92a 100644 --- a/MoltenVK/MoltenVK/OS/NSString+MoltenVK.mm +++ b/MoltenVK/MoltenVK/OS/NSString+MoltenVK.mm @@ -1,7 +1,7 @@ /* * NSString+MoltenVK.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKBaseObject.h b/MoltenVK/MoltenVK/Utility/MVKBaseObject.h index f06fe105c..d71a37f89 100644 --- a/MoltenVK/MoltenVK/Utility/MVKBaseObject.h +++ b/MoltenVK/MoltenVK/Utility/MVKBaseObject.h @@ -1,7 +1,7 @@ /* * MVKBaseObject.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKBaseObject.mm b/MoltenVK/MoltenVK/Utility/MVKBaseObject.mm index 7d6806750..d2dc3c91f 100644 --- a/MoltenVK/MoltenVK/Utility/MVKBaseObject.mm +++ b/MoltenVK/MoltenVK/Utility/MVKBaseObject.mm @@ -1,7 +1,7 @@ /* * MVKBaseObject.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKBitArray.h b/MoltenVK/MoltenVK/Utility/MVKBitArray.h index 351c2985f..46bf41cdf 100755 --- a/MoltenVK/MoltenVK/Utility/MVKBitArray.h +++ b/MoltenVK/MoltenVK/Utility/MVKBitArray.h @@ -1,7 +1,7 @@ /* * MVKBitArray.h * - * Copyright (c) 2020-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2020-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKBlockObserver.h b/MoltenVK/MoltenVK/Utility/MVKBlockObserver.h index d71a41c02..c3a9142cf 100644 --- a/MoltenVK/MoltenVK/Utility/MVKBlockObserver.h +++ b/MoltenVK/MoltenVK/Utility/MVKBlockObserver.h @@ -1,7 +1,7 @@ /* * MVKBlockObserver.h * - * Copyright (c) 2019-2022 Chip Davis for CodeWeavers + * Copyright (c) 2019-2023 Chip Davis for CodeWeavers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKBlockObserver.m b/MoltenVK/MoltenVK/Utility/MVKBlockObserver.m index a608fa2fd..7db2f0c22 100644 --- a/MoltenVK/MoltenVK/Utility/MVKBlockObserver.m +++ b/MoltenVK/MoltenVK/Utility/MVKBlockObserver.m @@ -1,7 +1,7 @@ /* * MVKBlockObserver.m * - * Copyright (c) 2019-2022 Chip Davis for CodeWeavers + * Copyright (c) 2019-2023 Chip Davis for CodeWeavers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKCodec.cpp b/MoltenVK/MoltenVK/Utility/MVKCodec.cpp index b30a21726..09669e49e 100644 --- a/MoltenVK/MoltenVK/Utility/MVKCodec.cpp +++ b/MoltenVK/MoltenVK/Utility/MVKCodec.cpp @@ -1,7 +1,7 @@ /* * MVKCodec.cpp * - * Copyright (c) 2018-2022 Chip Davis for CodeWeavers + * Copyright (c) 2018-2023 Chip Davis for CodeWeavers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKCodec.h b/MoltenVK/MoltenVK/Utility/MVKCodec.h index 483e376f6..136f42043 100644 --- a/MoltenVK/MoltenVK/Utility/MVKCodec.h +++ b/MoltenVK/MoltenVK/Utility/MVKCodec.h @@ -1,7 +1,7 @@ /* * MVKCodec.h * - * Copyright (c) 2018-2022 Chip Davis for CodeWeavers + * Copyright (c) 2018-2023 Chip Davis for CodeWeavers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKDXTnCodec.def b/MoltenVK/MoltenVK/Utility/MVKDXTnCodec.def index bbea094cc..aa9051a98 100644 --- a/MoltenVK/MoltenVK/Utility/MVKDXTnCodec.def +++ b/MoltenVK/MoltenVK/Utility/MVKDXTnCodec.def @@ -1,7 +1,7 @@ /* * MVKDXTnCodec.def * - * Copyright (c) 2018-2022 Chip Davis for CodeWeavers + * Copyright (c) 2018-2023 Chip Davis for CodeWeavers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp b/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp index 6e6ac8ad1..7275daaf7 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp @@ -1,7 +1,7 @@ /* * MVKEnvironment.cpp * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h index b2b2b0b7b..908832451 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h @@ -1,7 +1,7 @@ /* * MVKEnvironment.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKFoundation.cpp b/MoltenVK/MoltenVK/Utility/MVKFoundation.cpp index 800857829..0314f6098 100644 --- a/MoltenVK/MoltenVK/Utility/MVKFoundation.cpp +++ b/MoltenVK/MoltenVK/Utility/MVKFoundation.cpp @@ -1,7 +1,7 @@ /* * MVKFoundation.cpp * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKFoundation.h b/MoltenVK/MoltenVK/Utility/MVKFoundation.h index a0ad5ed85..5bcf10f10 100644 --- a/MoltenVK/MoltenVK/Utility/MVKFoundation.h +++ b/MoltenVK/MoltenVK/Utility/MVKFoundation.h @@ -1,7 +1,7 @@ /* * MVKFoundation.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKLogging.h b/MoltenVK/MoltenVK/Utility/MVKLogging.h index 8cfef8333..347f65b3f 100644 --- a/MoltenVK/MoltenVK/Utility/MVKLogging.h +++ b/MoltenVK/MoltenVK/Utility/MVKLogging.h @@ -1,7 +1,7 @@ /* * MVKLogging.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKObjectPool.h b/MoltenVK/MoltenVK/Utility/MVKObjectPool.h index e74ba8956..36cd4419d 100644 --- a/MoltenVK/MoltenVK/Utility/MVKObjectPool.h +++ b/MoltenVK/MoltenVK/Utility/MVKObjectPool.h @@ -1,7 +1,7 @@ /* * MVKObjectPool.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKSmallVector.h b/MoltenVK/MoltenVK/Utility/MVKSmallVector.h index f2625215b..6294f9139 100755 --- a/MoltenVK/MoltenVK/Utility/MVKSmallVector.h +++ b/MoltenVK/MoltenVK/Utility/MVKSmallVector.h @@ -1,7 +1,7 @@ /* * MVKSmallVector.h * - * Copyright (c) 2012-2022 Dr. Torsten Hans (hans@ipacs.de) + * Copyright (c) 2012-2023 Dr. Torsten Hans (hans@ipacs.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKSmallVectorAllocator.h b/MoltenVK/MoltenVK/Utility/MVKSmallVectorAllocator.h index 50303b9a3..1b107c486 100755 --- a/MoltenVK/MoltenVK/Utility/MVKSmallVectorAllocator.h +++ b/MoltenVK/MoltenVK/Utility/MVKSmallVectorAllocator.h @@ -1,7 +1,7 @@ /* * MVKSmallVectorAllocator.h * - * Copyright (c) 2012-2022 Dr. Torsten Hans (hans@ipacs.de) + * Copyright (c) 2012-2023 Dr. Torsten Hans (hans@ipacs.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKWatermark.h b/MoltenVK/MoltenVK/Utility/MVKWatermark.h index c8fb75f88..ddde30854 100644 --- a/MoltenVK/MoltenVK/Utility/MVKWatermark.h +++ b/MoltenVK/MoltenVK/Utility/MVKWatermark.h @@ -1,7 +1,7 @@ /* * MVKWatermark.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKWatermark.mm b/MoltenVK/MoltenVK/Utility/MVKWatermark.mm index 28673e6b9..a016f98fe 100644 --- a/MoltenVK/MoltenVK/Utility/MVKWatermark.mm +++ b/MoltenVK/MoltenVK/Utility/MVKWatermark.mm @@ -1,7 +1,7 @@ /* * MVKWatermark.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKWatermarkShaderSource.h b/MoltenVK/MoltenVK/Utility/MVKWatermarkShaderSource.h index e1d52d569..60cb284d9 100644 --- a/MoltenVK/MoltenVK/Utility/MVKWatermarkShaderSource.h +++ b/MoltenVK/MoltenVK/Utility/MVKWatermarkShaderSource.h @@ -1,7 +1,7 @@ /* * MVKWatermarkShaderSource.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Utility/MVKWatermarkTextureContent.h b/MoltenVK/MoltenVK/Utility/MVKWatermarkTextureContent.h index ff29298f9..8ae690a52 100644 --- a/MoltenVK/MoltenVK/Utility/MVKWatermarkTextureContent.h +++ b/MoltenVK/MoltenVK/Utility/MVKWatermarkTextureContent.h @@ -1,7 +1,7 @@ /* * MVKWatermarkTextureContent.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Vulkan/mvk_datatypes.hpp b/MoltenVK/MoltenVK/Vulkan/mvk_datatypes.hpp index 8ee57bfe4..12afed6e7 100644 --- a/MoltenVK/MoltenVK/Vulkan/mvk_datatypes.hpp +++ b/MoltenVK/MoltenVK/Vulkan/mvk_datatypes.hpp @@ -1,7 +1,7 @@ /* * mvk_datatypes.hpp * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Vulkan/mvk_datatypes.mm b/MoltenVK/MoltenVK/Vulkan/mvk_datatypes.mm index e0c1ce3ed..7998d3e62 100644 --- a/MoltenVK/MoltenVK/Vulkan/mvk_datatypes.mm +++ b/MoltenVK/MoltenVK/Vulkan/mvk_datatypes.mm @@ -1,7 +1,7 @@ /* * mvk_datatypes.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Vulkan/vk_mvk_moltenvk.mm b/MoltenVK/MoltenVK/Vulkan/vk_mvk_moltenvk.mm index 50d751734..c6f7844ce 100644 --- a/MoltenVK/MoltenVK/Vulkan/vk_mvk_moltenvk.mm +++ b/MoltenVK/MoltenVK/Vulkan/vk_mvk_moltenvk.mm @@ -1,7 +1,7 @@ /* * vk_mvk_moltenvk.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVK/MoltenVK/Vulkan/vulkan.mm b/MoltenVK/MoltenVK/Vulkan/vulkan.mm index 01473c20c..d84a35069 100644 --- a/MoltenVK/MoltenVK/Vulkan/vulkan.mm +++ b/MoltenVK/MoltenVK/Vulkan/vulkan.mm @@ -1,7 +1,7 @@ /* * vulkan.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/FileSupport.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/FileSupport.h index 74029fffb..1cd2dab00 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/FileSupport.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/FileSupport.h @@ -1,7 +1,7 @@ /* * FileSupport.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/FileSupport.mm b/MoltenVKShaderConverter/MoltenVKShaderConverter/FileSupport.mm index 34aa5188c..e1f5285d1 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/FileSupport.mm +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/FileSupport.mm @@ -1,7 +1,7 @@ /* * FileSupport.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLConversion.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLConversion.h index ce2b92b51..447389f94 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLConversion.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLConversion.h @@ -1,7 +1,7 @@ /* * GLSLConversion.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLConversion.mm b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLConversion.mm index 9976d2503..128ffb505 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLConversion.mm +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLConversion.mm @@ -1,7 +1,7 @@ /* * GLSLConversion.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.cpp b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.cpp index 1ddc2fe74..bb85a8e42 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.cpp +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.cpp @@ -1,7 +1,7 @@ /* * GLSLToSPIRVConverter.cpp * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.h index ff05831f5..c83443da6 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.h @@ -1,7 +1,7 @@ /* * GLSLToSPIRVConverter.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVConversion.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVConversion.h index fadbf2fda..2f77f3578 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVConversion.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVConversion.h @@ -1,7 +1,7 @@ /* * SPIRVConversion.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVConversion.mm b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVConversion.mm index aab4933e9..3d44b4bd3 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVConversion.mm +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVConversion.mm @@ -1,7 +1,7 @@ /* * SPIRVConversion.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVReflection.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVReflection.h index 8987c227f..105cefff8 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVReflection.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVReflection.h @@ -1,7 +1,7 @@ /* * SPIRVReflection.h * - * Copyright (c) 2019-2022 Chip Davis for Codeweavers + * Copyright (c) 2019-2023 Chip Davis for Codeweavers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.cpp b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.cpp index f5f177000..7fcc587b8 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.cpp +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.cpp @@ -1,7 +1,7 @@ /* * SPIRVSupport.cpp * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.h index ecb0a72a2..52f59ede2 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.h @@ -1,7 +1,7 @@ /* * SPIRVSupport.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.cpp b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.cpp index 6853b91c5..3a7f53f4e 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.cpp +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.cpp @@ -1,7 +1,7 @@ /* * SPIRVToMSLConverter.cpp * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h index 5f00e5044..1acc2bec0 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h @@ -1,7 +1,7 @@ /* * SPIRVToMSLConverter.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp index f720f5194..e38033b9d 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp +++ b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp @@ -1,7 +1,7 @@ /* * MoltenVKShaderConverterTool.cpp * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.h b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.h index 179ce3b41..a23d04a46 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.h @@ -1,7 +1,7 @@ /* * MoltenVKShaderConverterTool.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.h b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.h index 4251619ac..93f138628 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.h @@ -1,7 +1,7 @@ /* * OSSupport.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.mm b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.mm index 06fedcbbf..965d6cb03 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.mm +++ b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.mm @@ -1,7 +1,7 @@ /* * OSSupport.mm * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/main.cpp b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/main.cpp index 1b6650e95..78e687e55 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/main.cpp +++ b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/main.cpp @@ -1,7 +1,7 @@ /* * main.cpp * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index 0a73715eb..20249d647 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ MoltenVK ======== -Copyright (c) 2015-2022 [The Brenwill Workshop Ltd.](http://www.brenwill.com) +Copyright (c) 2015-2023 [The Brenwill Workshop Ltd.](http://www.brenwill.com) [comment]: # "This document is written in Markdown (http://en.wikipedia.org/wiki/Markdown) format." [comment]: # "For best results, use a Markdown reader." diff --git a/Scripts/runcts b/Scripts/runcts index 6a8761d0d..4cc33e788 100755 --- a/Scripts/runcts +++ b/Scripts/runcts @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright (c) 2016-2022 The Brenwill Workshop Ltd. +# Copyright (c) 2016-2023 The Brenwill Workshop Ltd. # # runcts - This script simplifies running Vulkan CTS tests on MoltenVK. # diff --git a/fetchDependencies b/fetchDependencies index 8d0d3f852..052cf6045 100755 --- a/fetchDependencies +++ b/fetchDependencies @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (c) 2016-2022 The Brenwill Workshop Ltd. +# Copyright (c) 2016-2023 The Brenwill Workshop Ltd. # # fetchDependencies - Retrieves the correct versions of all dependencies # From e0333509a1c0729821a79f50f0163704d6a5b856 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Fri, 13 Jan 2023 19:03:00 -0500 Subject: [PATCH 41/72] Set more accurate values for some VkPhysicalDeviceLimits members. - Update maxClipDistances and maxCombinedClipAndCullDistances to more accurate values. - Update maxDrawIndexedIndexValue to acknowledge primitive restart. --- Docs/Whats_New.md | 4 ++++ MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 17 +++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 7c484c75d..3ac6bab6d 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -26,6 +26,10 @@ Released TBD statically linked to an app that calls all Vulkan functions dynamically. - Per Vulkan 1.2 spec, support calling `vkGetInstanceProcAddr()` with a null instance, when `vkGetInstanceProcAddr` itself is the function name. +- Update `VkPhysicalDeviceLimits` members `maxClipDistances` and + `maxCombinedClipAndCullDistances` to more accurate values. +- Update `VkPhysicalDeviceLimits::maxDrawIndexedIndexValue` to + acknowledge automatic primitive restart. - Update copyright notices to year 2023. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 5f0721b45..971dd1b15 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -2239,6 +2239,11 @@ _properties.limits.maxDescriptorSetStorageImages = (_properties.limits.maxPerStageDescriptorStorageImages * 5); _properties.limits.maxDescriptorSetInputAttachments = (_properties.limits.maxPerStageDescriptorInputAttachments * 5); + _properties.limits.maxClipDistances = 8; // Per Apple engineers. + _properties.limits.maxCullDistances = 0; // unsupported + _properties.limits.maxCombinedClipAndCullDistances = max(_properties.limits.maxClipDistances, + _properties.limits.maxCullDistances); // If supported, these consume the same slots. + // Whether handled as a real texture buffer or a 2D texture, this value is likely nowhere near the size of a buffer, // needs to fit in 32 bits, and some apps (I'm looking at you, CTS), assume it is low when doing 32-bit math. _properties.limits.maxTexelBufferElements = _properties.limits.maxImageDimension2D * (4 * KIBI); @@ -2486,7 +2491,8 @@ _properties.limits.minTexelGatherOffset = _properties.limits.minTexelOffset; _properties.limits.maxTexelGatherOffset = _properties.limits.maxTexelOffset; - // Features with no specific limits - default to unlimited int values + + // Features with no specific limits - default to effectively unlimited int values _properties.limits.maxMemoryAllocationCount = kMVKUndefinedLargeUInt32; _properties.limits.maxSamplerAllocationCount = getMaxSamplerCount(); @@ -2496,17 +2502,12 @@ _properties.limits.maxComputeWorkGroupCount[1] = kMVKUndefinedLargeUInt32; _properties.limits.maxComputeWorkGroupCount[2] = kMVKUndefinedLargeUInt32; - _properties.limits.maxDrawIndexedIndexValue = numeric_limits::max(); // Must be (2^32 - 1) to support fullDrawIndexUint32 + _properties.limits.maxDrawIndexedIndexValue = numeric_limits::max() - 1; // Support both fullDrawIndexUint32 and automatic primitive restart. _properties.limits.maxDrawIndirectCount = kMVKUndefinedLargeUInt32; - _properties.limits.maxClipDistances = kMVKUndefinedLargeUInt32; - _properties.limits.maxCullDistances = 0; // unsupported - _properties.limits.maxCombinedClipAndCullDistances = _properties.limits.maxClipDistances + - _properties.limits.maxCullDistances; - // Features with unknown limits - default to Vulkan required limits - + _properties.limits.subPixelPrecisionBits = 4; _properties.limits.subTexelPrecisionBits = 4; _properties.limits.mipmapPrecisionBits = 4; From 8bcbb2eb42b6987ca5ebe76331dcd04051c962df Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 23 Jan 2023 17:57:36 -0500 Subject: [PATCH 42/72] Update dependency libraries to match Vulkan SDK 1.3.239. Update Whats New document. --- Docs/Whats_New.md | 7 +++++-- ExternalRevisions/SPIRV-Cross_repo_revision | 2 +- .../Vulkan-Headers_repo_revision | 2 +- ExternalRevisions/Vulkan-Tools_repo_revision | 2 +- ExternalRevisions/glslang_repo_revision | 2 +- Templates/spirv-tools/build.zip | Bin 52471 -> 52550 bytes 6 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 3ac6bab6d..df0b02fdc 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -16,12 +16,13 @@ Copyright (c) 2015-2023 [The Brenwill Workshop Ltd.](http://www.brenwill.com) MoltenVK 1.2.2 -------------- -Released TBD +Released 2023/01/23 - Fix Metal validation error caused by `CAMetalDrawable` released before `MTLCommandBuffer` is finished using it. - Fix memory leak of `MVKFences` and `MVKSemaphores` when a swapchain image is acquired more than it is presented. +- Fix issue where fragment shader was not run when no render attachment is available. - Ensure Vulkan public symbols are not stripped from the library when statically linked to an app that calls all Vulkan functions dynamically. - Per Vulkan 1.2 spec, support calling `vkGetInstanceProcAddr()` with a @@ -31,7 +32,9 @@ Released TBD - Update `VkPhysicalDeviceLimits::maxDrawIndexedIndexValue` to acknowledge automatic primitive restart. - Update copyright notices to year 2023. - +- Update to latest SPIRV-Cross: + - MSL: Add support for writable images in iOS Tier2 argument buffers. + - MSL: Fix potentially uninitialized warnings. MoltenVK 1.2.1 diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision index 4cff295df..adbf4dc9f 100644 --- a/ExternalRevisions/SPIRV-Cross_repo_revision +++ b/ExternalRevisions/SPIRV-Cross_repo_revision @@ -1 +1 @@ -c77b09b57c27837dc2d41aa371ed3d236ce9ce47 +eb9b2732982b8eea3395216be825a74dd84fe4be diff --git a/ExternalRevisions/Vulkan-Headers_repo_revision b/ExternalRevisions/Vulkan-Headers_repo_revision index 28fd6f1c3..511208ff7 100644 --- a/ExternalRevisions/Vulkan-Headers_repo_revision +++ b/ExternalRevisions/Vulkan-Headers_repo_revision @@ -1 +1 @@ -b75e5a02b6933caf86c5822d019067b335492c85 +1a43b498b8e680d641af0e0a4b4bb47947b7a364 diff --git a/ExternalRevisions/Vulkan-Tools_repo_revision b/ExternalRevisions/Vulkan-Tools_repo_revision index 2ed5fd2cb..69dd3a0dd 100644 --- a/ExternalRevisions/Vulkan-Tools_repo_revision +++ b/ExternalRevisions/Vulkan-Tools_repo_revision @@ -1 +1 @@ -ce45337c51ed53e6f1b337aa746a5a96c5018f86 +36464b5cf9ade4e412aacd06d95cb02857021bba diff --git a/ExternalRevisions/glslang_repo_revision b/ExternalRevisions/glslang_repo_revision index d09f4f21a..fd739be90 100644 --- a/ExternalRevisions/glslang_repo_revision +++ b/ExternalRevisions/glslang_repo_revision @@ -1 +1 @@ -77551c429f86c0e077f26552b7c1c0f12a9f235e +ca8d07d0bc1c6390b83915700439fa7719de6a2a diff --git a/Templates/spirv-tools/build.zip b/Templates/spirv-tools/build.zip index d4bfc39707deeff0653c96d2e93a7fe8b0975189..328300c4d2987e3b069814438799f817654e67cf 100644 GIT binary patch delta 4282 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 Q-vxR)1nCW0sLa5B0PuLJh5!Hn delta 4226 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 From 7e9b5b73de6f1d774fc1efd3c545d76b9eb756f6 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 30 Jan 2023 15:22:33 -0500 Subject: [PATCH 43/72] Fix issue where extension VK_KHR_fragment_shader_barycentric was sometimes incorrectly disabled due to a Metal driver bug. Update MoltenVK version to 1.2.3. --- Docs/Whats_New.md | 10 ++++++++++ MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 10 +++++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index df0b02fdc..21b0d2cdb 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -13,6 +13,16 @@ Copyright (c) 2015-2023 [The Brenwill Workshop Ltd.](http://www.brenwill.com) +MoltenVK 1.2.3 +-------------- + +Released TBA + +- Fix issue where extension `VK_KHR_fragment_shader_barycentric` + was sometimes incorrectly disabled due to a Metal driver bug. + + + MoltenVK 1.2.2 -------------- diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index 9ee5db30f..e78c00fc1 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -51,7 +51,7 @@ typedef unsigned long MTLArgumentBuffersTier; */ #define MVK_VERSION_MAJOR 1 #define MVK_VERSION_MINOR 2 -#define MVK_VERSION_PATCH 2 +#define MVK_VERSION_PATCH 3 #define MVK_MAKE_VERSION(major, minor, patch) (((major) * 10000) + ((minor) * 100) + (patch)) #define MVK_VERSION MVK_MAKE_VERSION(MVK_VERSION_MAJOR, MVK_VERSION_MINOR, MVK_VERSION_PATCH) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 971dd1b15..fdf271edf 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -1822,9 +1822,17 @@ #endif #if (MVK_MACOS && !MVK_MACCAT) || (MVK_MACCAT && MVK_XCODE_14) || (MVK_IOS && MVK_XCODE_12) + // Both current and deprecated properties are retrieved and OR'd together, due to a + // Metal bug that, in some environments, returned true for one and false for the other. + bool bcProp1 = false; + bool bcProp2 = false; if ( [_mtlDevice respondsToSelector: @selector(supportsShaderBarycentricCoordinates)] ) { - _metalFeatures.shaderBarycentricCoordinates = _mtlDevice.supportsShaderBarycentricCoordinates; + bcProp1 = _mtlDevice.supportsShaderBarycentricCoordinates; } + if ( [_mtlDevice respondsToSelector: @selector(areBarycentricCoordsSupported)] ) { + bcProp2 = _mtlDevice.areBarycentricCoordsSupported; + } + _metalFeatures.shaderBarycentricCoordinates = bcProp1 || bcProp2; #endif if ( [_mtlDevice respondsToSelector: @selector(maxBufferLength)] ) { From 007136f2f4ffcc4d25160fd60403b453d3ca8873 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 30 Jan 2023 17:15:44 -0500 Subject: [PATCH 44/72] Remove a couple of large obsolete list content comments in MVKDevice.mm. --- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 182 ---------------------- 1 file changed, 182 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index fdf271edf..4ede8a471 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -2111,67 +2111,6 @@ } - -#pragma mark VkPhysicalDeviceFeatures - List of features available on the device - -//typedef struct VkPhysicalDeviceFeatures { -// VkBool32 robustBufferAccess; // done -// VkBool32 fullDrawIndexUint32; // done -// VkBool32 imageCubeArray; // done -// VkBool32 independentBlend; // done -// VkBool32 geometryShader; -// VkBool32 tessellationShader; // done -// VkBool32 sampleRateShading; // done -// VkBool32 dualSrcBlend; // done -// VkBool32 logicOp; -// VkBool32 multiDrawIndirect; // done -// VkBool32 drawIndirectFirstInstance; // done -// VkBool32 depthClamp; // done -// VkBool32 depthBiasClamp; // done -// VkBool32 fillModeNonSolid; // done -// VkBool32 depthBounds; -// VkBool32 wideLines; -// VkBool32 largePoints; // done -// VkBool32 alphaToOne; // done -// VkBool32 multiViewport; // done -// VkBool32 samplerAnisotropy; // done -// VkBool32 textureCompressionETC2; // done -// VkBool32 textureCompressionASTC_LDR; // done -// VkBool32 textureCompressionBC; // done -// VkBool32 occlusionQueryPrecise; // done -// VkBool32 pipelineStatisticsQuery; -// VkBool32 vertexPipelineStoresAndAtomics; // done -// VkBool32 fragmentStoresAndAtomics; // done -// VkBool32 shaderTessellationAndGeometryPointSize; // done -// VkBool32 shaderImageGatherExtended; // done -// VkBool32 shaderStorageImageExtendedFormats; // done -// VkBool32 shaderStorageImageMultisample; -// VkBool32 shaderStorageImageReadWithoutFormat; // done -// VkBool32 shaderStorageImageWriteWithoutFormat; // done -// VkBool32 shaderUniformBufferArrayDynamicIndexing; // done -// VkBool32 shaderSampledImageArrayDynamicIndexing; // done -// VkBool32 shaderStorageBufferArrayDynamicIndexing; // done -// VkBool32 shaderStorageImageArrayDynamicIndexing; // done -// VkBool32 shaderClipDistance; // done -// VkBool32 shaderCullDistance; -// VkBool32 shaderFloat64; -// VkBool32 shaderInt64; // done -// VkBool32 shaderInt16; // done -// VkBool32 shaderResourceResidency; -// VkBool32 shaderResourceMinLod; // done -// VkBool32 sparseBinding; -// VkBool32 sparseResidencyBuffer; -// VkBool32 sparseResidencyImage2D; -// VkBool32 sparseResidencyImage3D; -// VkBool32 sparseResidency2Samples; -// VkBool32 sparseResidency4Samples; -// VkBool32 sparseResidency8Samples; -// VkBool32 sparseResidency16Samples; -// VkBool32 sparseResidencyAliased; -// VkBool32 variableMultisampleRate; -// VkBool32 inheritedQueries; // done -//} VkPhysicalDeviceFeatures; - // Initializes the physical device property limits. void MVKPhysicalDevice::initLimits() { @@ -2631,127 +2570,6 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope } #endif //MVK_IOS_OR_TVOS -#pragma mark VkPhysicalDeviceLimits - List of feature limits available on the device - -//typedef struct VkPhysicalDeviceLimits { -// uint32_t maxImageDimension1D; // done -// uint32_t maxImageDimension2D; // done -// uint32_t maxImageDimension3D; // done -// uint32_t maxImageDimensionCube; // done -// uint32_t maxImageArrayLayers; // done -// uint32_t maxTexelBufferElements; // done -// uint32_t maxUniformBufferRange; // done -// uint32_t maxStorageBufferRange; // done -// uint32_t maxPushConstantsSize; // done -// uint32_t maxMemoryAllocationCount; // done -// uint32_t maxSamplerAllocationCount; // done -// VkDeviceSize bufferImageGranularity; // done -// VkDeviceSize sparseAddressSpaceSize; // done -// uint32_t maxBoundDescriptorSets; // done -// uint32_t maxPerStageDescriptorSamplers; // done -// uint32_t maxPerStageDescriptorUniformBuffers; // done -// uint32_t maxPerStageDescriptorStorageBuffers; // done -// uint32_t maxPerStageDescriptorSampledImages; // done -// uint32_t maxPerStageDescriptorStorageImages; // done -// uint32_t maxPerStageDescriptorInputAttachments; // done -// uint32_t maxPerStageResources; // done -// uint32_t maxDescriptorSetSamplers; // done -// uint32_t maxDescriptorSetUniformBuffers; // done -// uint32_t maxDescriptorSetUniformBuffersDynamic; // done -// uint32_t maxDescriptorSetStorageBuffers; // done -// uint32_t maxDescriptorSetStorageBuffersDynamic; // done -// uint32_t maxDescriptorSetSampledImages; // done -// uint32_t maxDescriptorSetStorageImages; // done -// uint32_t maxDescriptorSetInputAttachments; // done -// uint32_t maxVertexInputAttributes; // done -// uint32_t maxVertexInputBindings; // done -// uint32_t maxVertexInputAttributeOffset; // done -// uint32_t maxVertexInputBindingStride; // done -// uint32_t maxVertexOutputComponents; // done -// uint32_t maxTessellationGenerationLevel; // done -// uint32_t maxTessellationPatchSize; // done -// uint32_t maxTessellationControlPerVertexInputComponents; // done -// uint32_t maxTessellationControlPerVertexOutputComponents; // done -// uint32_t maxTessellationControlPerPatchOutputComponents; // done -// uint32_t maxTessellationControlTotalOutputComponents; // done -// uint32_t maxTessellationEvaluationInputComponents; // done -// uint32_t maxTessellationEvaluationOutputComponents; // done -// uint32_t maxGeometryShaderInvocations; // done -// uint32_t maxGeometryInputComponents; // done -// uint32_t maxGeometryOutputComponents; // done -// uint32_t maxGeometryOutputVertices; // done -// uint32_t maxGeometryTotalOutputComponents; // done -// uint32_t maxFragmentInputComponents; // done -// uint32_t maxFragmentOutputAttachments; // done -// uint32_t maxFragmentDualSrcAttachments; // done -// uint32_t maxFragmentCombinedOutputResources; // done -// uint32_t maxComputeSharedMemorySize; // done -// uint32_t maxComputeWorkGroupCount[3]; // done -// uint32_t maxComputeWorkGroupInvocations; // done -// uint32_t maxComputeWorkGroupSize[3]; // done -// uint32_t subPixelPrecisionBits; // done -// uint32_t subTexelPrecisionBits; // done -// uint32_t mipmapPrecisionBits; // done -// uint32_t maxDrawIndexedIndexValue; // done -// uint32_t maxDrawIndirectCount; // done -// float maxSamplerLodBias; // done -// float maxSamplerAnisotropy; // done -// uint32_t maxViewports; // done -// uint32_t maxViewportDimensions[2]; // done -// float viewportBoundsRange[2]; // done -// uint32_t viewportSubPixelBits; // done -// size_t minMemoryMapAlignment; // done -// VkDeviceSize minTexelBufferOffsetAlignment; // done -// VkDeviceSize minUniformBufferOffsetAlignment; // done -// VkDeviceSize minStorageBufferOffsetAlignment; // done -// int32_t minTexelOffset; // done -// uint32_t maxTexelOffset; // done -// int32_t minTexelGatherOffset; // done -// uint32_t maxTexelGatherOffset; // done -// float minInterpolationOffset; // done -// float maxInterpolationOffset; // done -// uint32_t subPixelInterpolationOffsetBits; // done -// uint32_t maxFramebufferWidth; // done -// uint32_t maxFramebufferHeight; // done -// uint32_t maxFramebufferLayers; // done -// VkSampleCountFlags framebufferColorSampleCounts; // done -// VkSampleCountFlags framebufferDepthSampleCounts; // done -// VkSampleCountFlags framebufferStencilSampleCounts; // done -// VkSampleCountFlags framebufferNoAttachmentsSampleCounts; // done -// uint32_t maxColorAttachments; // done -// VkSampleCountFlags sampledImageColorSampleCounts; // done -// VkSampleCountFlags sampledImageIntegerSampleCounts; // done -// VkSampleCountFlags sampledImageDepthSampleCounts; // done -// VkSampleCountFlags sampledImageStencilSampleCounts; // done -// VkSampleCountFlags storageImageSampleCounts; // done -// uint32_t maxSampleMaskWords; // done -// VkBool32 timestampComputeAndGraphics; // done -// float timestampPeriod; // done -// uint32_t maxClipDistances; // done -// uint32_t maxCullDistances; // done -// uint32_t maxCombinedClipAndCullDistances; // done -// uint32_t discreteQueuePriorities; // done -// float pointSizeRange[2]; // done -// float lineWidthRange[2]; // done -// float pointSizeGranularity; // done -// float lineWidthGranularity; // done -// VkBool32 strictLines; // done -// VkBool32 standardSampleLocations; // done -// VkDeviceSize optimalBufferCopyOffsetAlignment; // done -// VkDeviceSize optimalBufferCopyRowPitchAlignment; // done -// VkDeviceSize nonCoherentAtomSize; // done -//} VkPhysicalDeviceLimits; - -//typedef struct { -// VkBool32 residencyStandard2DBlockShape; -// VkBool32 residencyStandard2DMSBlockShape; -// VkBool32 residencyStandard3DBlockShape; -// VkBool32 residencyAlignedMipSize; -// VkBool32 residencyNonResident; -// VkBool32 residencyNonResidentStrict; -//} VkPhysicalDeviceSparseProperties; - - void MVKPhysicalDevice::initPipelineCacheUUID() { // Clear the UUID From fabad21405d22ff8d1c81531140fb2947db0064e Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Thu, 2 Feb 2023 23:00:37 -0500 Subject: [PATCH 45/72] Add support for VK_EXT_swapchain_maintenance1 and VK_EXT_surface_maintenance1. - Support querying scaling capabilities and present mode compatibilies when querying surface capabilities. - Rename MVKPresentTimingInfo to MVKImagePresentInfo and add present mode and fence to support dynamic present mode changes and fence signaling. - MVKPresentableSwapchainImage remove static functions from class declaration. - MVKSwapchain support releasing swapchain images on command. - MVKSwapchain support configuring with scaling and gravity info, apply it to CAMetalLayer.and do not return VK_SUBOPTIMAL_KHR if swapchain was configured with scaling info. - Rename MVKSwapchain::acquireNextImageKHR to acquireNextImage. - CAMetalLayer naturalDrawableSizeMVK compute precise drawable size. - CAMetalLayer remove obsolete and unused updatedDrawableSizeMVK method. - Rename MVKConfiguration::swapchainMagFilterUseNearest to swapchainMinMagFilterUseNearest to apply CAMetalLayer size filtering to both magnification and minification, and rename corresponding env var MVK_CONFIG_SWAPCHAIN_MAG_FILTER_USE_NEAREST to MVK_CONFIG_SWAPCHAIN_MIN_MAG_FILTER_USE_NEAREST. - Detect when size of surface has changed under the covers. - Change rounding of surface size provided by Metal from truncation to rounding-with-half-to-even. - Remove MVKLogSizeOf() logging macro as redundant to mvkPrintSizeOf() macro. --- Docs/MoltenVK_Runtime_UserGuide.md | 2 + Docs/Whats_New.md | 6 +- MoltenVK/MoltenVK/API/mvk_datatypes.h | 19 +-- MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 11 +- MoltenVK/MoltenVK/GPUObjects/MVKDevice.h | 9 +- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 159 +++++++++++++++--- .../GPUObjects/MVKDeviceFeatureStructs.def | 1 + MoltenVK/MoltenVK/GPUObjects/MVKImage.h | 24 ++- MoltenVK/MoltenVK/GPUObjects/MVKImage.mm | 122 +++++++------- MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKQueue.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm | 50 ++++-- MoltenVK/MoltenVK/GPUObjects/MVKSurface.mm | 2 - MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h | 67 +++++--- MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm | 126 +++++++++++--- MoltenVK/MoltenVK/Layers/MVKExtensions.def | 2 + MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h | 13 +- MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.m | 14 +- MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp | 3 +- MoltenVK/MoltenVK/Utility/MVKEnvironment.h | 7 +- MoltenVK/MoltenVK/Utility/MVKFoundation.h | 8 +- MoltenVK/MoltenVK/Utility/MVKLogging.h | 3 - MoltenVK/MoltenVK/Vulkan/mvk_datatypes.mm | 18 ++ MoltenVK/MoltenVK/Vulkan/vulkan.mm | 32 ++-- 24 files changed, 476 insertions(+), 226 deletions(-) diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index ae08b5da6..805671a33 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -338,7 +338,9 @@ In addition to core *Vulkan* functionality, **MoltenVK** also supports the foll - `VK_EXT_shader_stencil_export` *(requires Mac GPU family 2 or iOS GPU family 5)* - `VK_EXT_shader_viewport_index_layer` - `VK_EXT_subgroup_size_control` *(requires Metal 2.1 on Mac or Metal 2.2 and Apple family 4 on iOS)* +- `VK_EXT_surface_maintenance1` - `VK_EXT_swapchain_colorspace` +- `VK_EXT_swapchain_maintenance1` - `VK_EXT_vertex_attribute_divisor` - `VK_EXT_texel_buffer_alignment` *(requires Metal 2.0)* - `VK_EXT_texture_compression_astc_hdr` *(iOS and macOS, requires family 6 (A13) or better Apple GPU)* diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 21b0d2cdb..8ac6cf7b7 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -18,9 +18,13 @@ MoltenVK 1.2.3 Released TBA +- Add support for extensions: + - `VK_EXT_swapchain_maintenance1` + - `VK_EXT_surface_maintenance1` - Fix issue where extension `VK_KHR_fragment_shader_barycentric` was sometimes incorrectly disabled due to a Metal driver bug. - +- Detect when size of surface has changed under the covers. +- Change rounding of surface size provided by Metal from truncation to rounding-with-half-to-even. MoltenVK 1.2.2 diff --git a/MoltenVK/MoltenVK/API/mvk_datatypes.h b/MoltenVK/MoltenVK/API/mvk_datatypes.h index 27017bc11..76470233c 100644 --- a/MoltenVK/MoltenVK/API/mvk_datatypes.h +++ b/MoltenVK/MoltenVK/API/mvk_datatypes.h @@ -416,21 +416,14 @@ MTLBarrierScope mvkMTLBarrierScopeFromVkAccessFlags(VkAccessFlags vkAccess); #pragma mark - #pragma mark Geometry conversions -/** Returns a VkExtent2D that corresponds to the specified CGSize. */ -static inline VkExtent2D mvkVkExtent2DFromCGSize(CGSize cgSize) { - VkExtent2D vkExt; - vkExt.width = cgSize.width; - vkExt.height = cgSize.height; - return vkExt; -} +/** + * Returns a VkExtent2D that corresponds to the specified CGSize. + * Rounds to nearest integer using half-to-even rounding. + */ +VkExtent2D mvkVkExtent2DFromCGSize(CGSize cgSize); /** Returns a CGSize that corresponds to the specified VkExtent2D. */ -static inline CGSize mvkCGSizeFromVkExtent2D(VkExtent2D vkExtent) { - CGSize cgSize; - cgSize.width = vkExtent.width; - cgSize.height = vkExtent.height; - return cgSize; -} +CGSize mvkCGSizeFromVkExtent2D(VkExtent2D vkExtent); /** Returns a Metal MTLOrigin constructed from a VkOffset3D. */ static inline MTLOrigin mvkMTLOriginFromVkOffset3D(VkOffset3D vkOffset) { diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index e78c00fc1..f0759ad46 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -322,22 +322,23 @@ typedef struct { VkBool32 presentWithCommandBuffer; /** - * If enabled, swapchain images will use simple Nearest sampling when magnifying the - * swapchain image to fit a physical display surface. If disabled, swapchain images will + * If enabled, swapchain images will use simple Nearest sampling when minifying or magnifying + * the swapchain image to fit a physical display surface. If disabled, swapchain images will * use Linear sampling when magnifying the swapchain image to fit a physical display surface. * Enabling this setting avoids smearing effects when swapchain images are simple interger * multiples of display pixels (eg- macOS Retina, and typical of graphics apps and games), * but may cause aliasing effects when using non-integer display scaling. * - * The value of this parameter may be changed before creating a VkSwapchain, + * The value of this parameter must be changed before creating a VkSwapchain, * for the change to take effect. * * The initial value or this parameter is set by the - * MVK_CONFIG_SWAPCHAIN_MAG_FILTER_USE_NEAREST + * MVK_CONFIG_SWAPCHAIN_MIN_MAG_FILTER_USE_NEAREST * runtime environment variable or MoltenVK compile-time build setting. * If neither is set, the value of this parameter defaults to true. */ - VkBool32 swapchainMagFilterUseNearest; + VkBool32 swapchainMinMagFilterUseNearest; +#define swapchainMagFilterUseNearest swapchainMinMagFilterUseNearest /** * The maximum amount of time, in nanoseconds, to wait for a Metal library, function, or diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h index b6617405b..a37d91eae 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h @@ -181,8 +181,12 @@ class MVKPhysicalDevice : public MVKDispatchableVulkanAPIObject { */ VkResult getSurfaceSupport(uint32_t queueFamilyIndex, MVKSurface* surface, VkBool32* pSupported); - /** Returns the capabilities of the specified surface. */ - VkResult getSurfaceCapabilities(MVKSurface* surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); + /** Returns the capabilities of the surface. */ + VkResult getSurfaceCapabilities(VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); + + /** Returns the capabilities of the surface. */ + VkResult getSurfaceCapabilities(const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + VkSurfaceCapabilities2KHR* pSurfaceCapabilities); /** * Returns the pixel formats supported by the surface. @@ -540,6 +544,7 @@ class MVKDevice : public MVKDispatchableVulkanAPIObject { MVKPresentableSwapchainImage* createPresentableSwapchainImage(const VkImageCreateInfo* pCreateInfo, MVKSwapchain* swapchain, uint32_t swapchainIndex, + bool deferImgMemAlloc, const VkAllocationCallbacks* pAllocator); void destroyPresentableSwapchainImage(MVKPresentableSwapchainImage* mvkImg, const VkAllocationCallbacks* pAllocator); diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 4ede8a471..86cb1dd3f 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -385,6 +385,11 @@ robustness2Features->nullDescriptor = false; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: { + auto* swapchainMaintenance1Features = (VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*)next; + swapchainMaintenance1Features->swapchainMaintenance1 = true; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: { auto* texelBuffAlignFeatures = (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*)next; texelBuffAlignFeatures->texelBufferAlignment = _metalFeatures.texelBuffers && [_mtlDevice respondsToSelector: @selector(minimumLinearTextureAlignmentForPixelFormat:)]; @@ -1075,32 +1080,139 @@ return *pSupported ? VK_SUCCESS : surface->getConfigurationResult(); } -VkResult MVKPhysicalDevice::getSurfaceCapabilities(MVKSurface* surface, +VkResult MVKPhysicalDevice::getSurfaceCapabilities(VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) { + VkPhysicalDeviceSurfaceInfo2KHR surfaceInfo; + surfaceInfo.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR; + surfaceInfo.pNext = nullptr; + surfaceInfo.surface = surface; - // The layer underlying the surface view must be a CAMetalLayer. + VkSurfaceCapabilities2KHR surfaceCaps; + surfaceCaps.sType = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR; + surfaceCaps.pNext = nullptr; + surfaceCaps.surfaceCapabilities = *pSurfaceCapabilities; + + VkResult rslt = getSurfaceCapabilities(&surfaceInfo, &surfaceCaps); + + *pSurfaceCapabilities = surfaceCaps.surfaceCapabilities; + + return rslt; +} + +VkResult MVKPhysicalDevice::getSurfaceCapabilities( const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + VkSurfaceCapabilities2KHR* pSurfaceCapabilities) { + + // Retrieve the present mode if it is supplied in this query. + VkPresentModeKHR presentMode = VK_PRESENT_MODE_MAX_ENUM_KHR; + for (auto* next = (const VkBaseInStructure*)pSurfaceInfo->pNext; next; next = next->pNext) { + switch (next->sType) { + case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT: { + presentMode = ((VkSurfacePresentModeEXT*)next)->presentMode; + break; + } + default: + break; + } + } + + // Retrieve the scaling and present mode compatibility structs if they are supplied in this query. + VkSurfacePresentScalingCapabilitiesEXT* pScalingCaps = nullptr; + VkSurfacePresentModeCompatibilityEXT* pCompatibility = nullptr; + for (auto* next = (VkBaseOutStructure*)pSurfaceCapabilities->pNext; next; next = next->pNext) { + switch (next->sType) { + case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: { + pScalingCaps = (VkSurfacePresentScalingCapabilitiesEXT*)next; + break; + } + case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: { + pCompatibility = (VkSurfacePresentModeCompatibilityEXT*)next; + break; + } + default: + break; + } + } + + // The CAlayer underlying the surface must be a CAMetalLayer. + MVKSurface* surface = (MVKSurface*)pSurfaceInfo->surface; CAMetalLayer* mtlLayer = surface->getCAMetalLayer(); if ( !mtlLayer ) { return surface->getConfigurationResult(); } - VkExtent2D surfExtnt = mvkVkExtent2DFromCGSize(mtlLayer.naturalDrawableSizeMVK); - - pSurfaceCapabilities->minImageCount = _metalFeatures.minSwapchainImageCount; - pSurfaceCapabilities->maxImageCount = _metalFeatures.maxSwapchainImageCount; - - pSurfaceCapabilities->currentExtent = surfExtnt; - pSurfaceCapabilities->minImageExtent = { 1, 1 }; - pSurfaceCapabilities->maxImageExtent = { _properties.limits.maxImageDimension2D, _properties.limits.maxImageDimension2D }; - pSurfaceCapabilities->maxImageArrayLayers = 1; - pSurfaceCapabilities->supportedTransforms = (VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR); - pSurfaceCapabilities->currentTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; - pSurfaceCapabilities->supportedCompositeAlpha = (VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR | - VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR | - VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR); - pSurfaceCapabilities->supportedUsageFlags = (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_STORAGE_BIT | - VK_IMAGE_USAGE_TRANSFER_SRC_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT); + VkSurfaceCapabilitiesKHR& surfCaps = pSurfaceCapabilities->surfaceCapabilities; + surfCaps.minImageCount = _metalFeatures.minSwapchainImageCount; + surfCaps.maxImageCount = _metalFeatures.maxSwapchainImageCount; + surfCaps.currentExtent = mvkVkExtent2DFromCGSize(mtlLayer.naturalDrawableSizeMVK); + surfCaps.minImageExtent = { 1, 1 }; + surfCaps.maxImageExtent = { _properties.limits.maxImageDimension2D, _properties.limits.maxImageDimension2D }; + surfCaps.maxImageArrayLayers = 1; + surfCaps.supportedTransforms = (VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR); + surfCaps.currentTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; + surfCaps.supportedCompositeAlpha = (VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR | + VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR | + VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR); + surfCaps.supportedUsageFlags = (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | + VK_IMAGE_USAGE_STORAGE_BIT | + VK_IMAGE_USAGE_TRANSFER_SRC_BIT | + VK_IMAGE_USAGE_TRANSFER_DST_BIT | + VK_IMAGE_USAGE_SAMPLED_BIT); + + // Swapchain-to-surface scaling capabilities. + if (pScalingCaps) { + pScalingCaps->supportedPresentScaling = (VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT | + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT | + VK_PRESENT_SCALING_STRETCH_BIT_EXT); + pScalingCaps->supportedPresentGravityX = (VK_PRESENT_GRAVITY_MIN_BIT_EXT | + VK_PRESENT_GRAVITY_MAX_BIT_EXT | + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT); + pScalingCaps->supportedPresentGravityY = (VK_PRESENT_GRAVITY_MIN_BIT_EXT | + VK_PRESENT_GRAVITY_MAX_BIT_EXT | + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT); + pScalingCaps->minScaledImageExtent = surfCaps.minImageExtent; + pScalingCaps->maxScaledImageExtent = surfCaps.maxImageExtent; + } + + + // Per spec, always include the queried present mode in returned compatibility results. + MVKSmallVector compatiblePresentModes; + if (presentMode != VK_PRESENT_MODE_MAX_ENUM_KHR) { compatiblePresentModes.push_back(presentMode); } + + // Customize results based on the provided present mode. + switch (presentMode) { + case VK_PRESENT_MODE_FIFO_KHR: + // This could be dodgy, because Metal may not match the Vulkan spec's tight + // requirements for transitioning from FIFO to IMMEDIATE, because the change to + // IMMEDIATE may occur while some FIFO items are still on the GPU queue. + if (_metalFeatures.presentModeImmediate) { + compatiblePresentModes.push_back(VK_PRESENT_MODE_IMMEDIATE_KHR); + } + break; + case VK_PRESENT_MODE_IMMEDIATE_KHR: + compatiblePresentModes.push_back(VK_PRESENT_MODE_FIFO_KHR); + surfCaps.minImageCount = surfCaps.maxImageCount; // Recommend always using max count to avoid visual tearing. + break; + case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR: + case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR: + // Although these are not advertised as supported, per spec, counts must be 1. + surfCaps.minImageCount = 1; + surfCaps.maxImageCount = 1; + break; + + default: + break; + } + + // If compatible present modes are requested, return them, otherwise return the count of them. + if (pCompatibility) { + if (pCompatibility->pPresentModes) { + pCompatibility->presentModeCount = min(pCompatibility->presentModeCount, (uint32_t)compatiblePresentModes.size()); + for (uint32_t pmIdx = 0; pmIdx < pCompatibility->presentModeCount; pmIdx++) { + pCompatibility->pPresentModes[pmIdx] = compatiblePresentModes[pmIdx]; + } + } else { + pCompatibility->presentModeCount = (uint32_t)compatiblePresentModes.size(); + } + } + return VK_SUCCESS; } @@ -3458,8 +3570,11 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope MVKPresentableSwapchainImage* MVKDevice::createPresentableSwapchainImage(const VkImageCreateInfo* pCreateInfo, MVKSwapchain* swapchain, uint32_t swapchainIndex, + bool deferImgMemAlloc, const VkAllocationCallbacks* pAllocator) { - MVKPresentableSwapchainImage* mvkImg = new MVKPresentableSwapchainImage(this, pCreateInfo, swapchain, swapchainIndex); + MVKPresentableSwapchainImage* mvkImg = new MVKPresentableSwapchainImage(this, pCreateInfo, + swapchain, swapchainIndex, + deferImgMemAlloc); for (auto& memoryBinding : mvkImg->_memoryBindings) { addResource(memoryBinding); } diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def index 35dc9f08f..c6de213e1 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def @@ -64,6 +64,7 @@ MVK_DEVICE_FEATURE_EXTN(FragmentShaderBarycentric, FRAGMENT_SHADER_BARYCENTRIC, MVK_DEVICE_FEATURE_EXTN(PortabilitySubset, PORTABILITY_SUBSET, KHR, 15) MVK_DEVICE_FEATURE_EXTN(FragmentShaderInterlock, FRAGMENT_SHADER_INTERLOCK, EXT, 3) MVK_DEVICE_FEATURE_EXTN(Robustness2, ROBUSTNESS_2, EXT, 3) +MVK_DEVICE_FEATURE_EXTN(SwapchainMaintenance1, SWAPCHAIN_MAINTENANCE_1, EXT, 1) MVK_DEVICE_FEATURE_EXTN(TexelBufferAlignment, TEXEL_BUFFER_ALIGNMENT, EXT, 1) MVK_DEVICE_FEATURE_EXTN(VertexAttributeDivisor, VERTEX_ATTRIBUTE_DIVISOR, EXT, 2) MVK_DEVICE_FEATURE_EXTN(ShaderIntegerFunctions2, SHADER_INTEGER_FUNCTIONS_2, INTEL, 1) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKImage.h b/MoltenVK/MoltenVK/GPUObjects/MVKImage.h index 3beea0f40..b6167533d 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKImage.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKImage.h @@ -423,13 +423,15 @@ typedef struct MVKSwapchainImageAvailability { bool operator< (const MVKSwapchainImageAvailability& rhs) const; } MVKSwapchainImageAvailability; -/** VK_GOOGLE_display_timing extension info */ +/** Presentation info. */ typedef struct { MVKPresentableSwapchainImage* presentableImage; - bool hasPresentTime; // Keep track of whether presentation included VK_GOOGLE_display_timing - uint32_t presentID; // VK_GOOGLE_display_timing presentID + MVKFence* fence; // VK_EXT_swapchain_maintenance1 fence signaled when resources can be destroyed uint64_t desiredPresentTime; // VK_GOOGLE_display_timing desired presentation time in nanoseconds -} MVKPresentTimingInfo; + uint32_t presentID; // VK_GOOGLE_display_timing presentID + VkPresentModeKHR presentMode; // VK_EXT_swapchain_maintenance1 present mode specialization + bool hasPresentTime; // Keep track of whether presentation included VK_GOOGLE_display_timing +} MVKImagePresentInfo; /** Tracks a semaphore and fence for later signaling. */ struct MVKSwapchainSignaler { @@ -447,8 +449,7 @@ class MVKPresentableSwapchainImage : public MVKSwapchainImage { #pragma mark Metal /** Presents the contained drawable to the OS. */ - void presentCAMetalDrawable(id mtlCmdBuff, - MVKPresentTimingInfo presentTimingInfo); + void presentCAMetalDrawable(id mtlCmdBuff, MVKImagePresentInfo presentInfo); #pragma mark Construction @@ -456,7 +457,8 @@ class MVKPresentableSwapchainImage : public MVKSwapchainImage { MVKPresentableSwapchainImage(MVKDevice* device, const VkImageCreateInfo* pCreateInfo, MVKSwapchain* swapchain, - uint32_t swapchainIndex); + uint32_t swapchainIndex, + bool deferImgMemAlloc); ~MVKPresentableSwapchainImage() override; @@ -464,16 +466,12 @@ class MVKPresentableSwapchainImage : public MVKSwapchainImage { friend MVKSwapchain; id getCAMetalDrawable() override; - void addPresentedHandler(id mtlDrawable, MVKPresentTimingInfo presentTimingInfo); + void addPresentedHandler(id mtlDrawable, MVKImagePresentInfo presentInfo); void releaseMetalDrawable(); MVKSwapchainImageAvailability getAvailability(); void makeAvailable(const MVKSwapchainSignaler& signaler); + void makeAvailable(); void acquireAndSignalWhenAvailable(MVKSemaphore* semaphore, MVKFence* fence); - void signal(const MVKSwapchainSignaler& signaler, id mtlCmdBuff); - void signalPresentationSemaphore(const MVKSwapchainSignaler& signaler, id mtlCmdBuff); - static void markAsTracked(const MVKSwapchainSignaler& signaler); - static void unmarkAsTracked(const MVKSwapchainSignaler& signaler); - void untrackAllSignalers(); void renderWatermark(id mtlCmdBuff); id _mtlDrawable; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm index 5c00ea339..7cded7b94 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm @@ -1218,13 +1218,30 @@ return _availability; } -// Makes an image available for acquisition by the app. -// If any semaphores are waiting to be signaled when this image becomes available, the -// earliest semaphore is signaled, and this image remains unavailable for other uses. -void MVKPresentableSwapchainImage::makeAvailable(const MVKSwapchainSignaler& signaler) { - lock_guard lock(_availabilityLock); +// If present, signal the semaphore for the first waiter for the given image. +static void signalPresentationSemaphore(const MVKSwapchainSignaler& signaler, id mtlCmdBuff) { + if (signaler.semaphore) { signaler.semaphore->encodeDeferredSignal(mtlCmdBuff, signaler.semaphoreSignalToken); } +} + +// Signal either or both of the semaphore and fence in the specified tracker pair. +static void signal(const MVKSwapchainSignaler& signaler, id mtlCmdBuff) { + if (signaler.semaphore) { signaler.semaphore->encodeDeferredSignal(mtlCmdBuff, signaler.semaphoreSignalToken); } + if (signaler.fence) { signaler.fence->signal(); } +} + +// Tell the semaphore and fence that they are being tracked for future signaling. +static void markAsTracked(const MVKSwapchainSignaler& signaler) { + if (signaler.semaphore) { signaler.semaphore->retain(); } + if (signaler.fence) { signaler.fence->retain(); } +} - // Signal the semaphore and fence, and let them know they are no longer being tracked. +// Tell the semaphore and fence that they are no longer being tracked for future signaling. +static void unmarkAsTracked(const MVKSwapchainSignaler& signaler) { + if (signaler.semaphore) { signaler.semaphore->release(); } + if (signaler.fence) { signaler.fence->release(); } +} + +static void signalAndUnmarkAsTracked(const MVKSwapchainSignaler& signaler) { signal(signaler, nil); unmarkAsTracked(signaler); } @@ -1263,45 +1280,6 @@ markAsTracked(signaler); } -// If present, signal the semaphore for the first waiter for the given image. -void MVKPresentableSwapchainImage::signalPresentationSemaphore(const MVKSwapchainSignaler& signaler, id mtlCmdBuff) { - MVKSemaphore* mvkSem = signaler.semaphore; - if (mvkSem) { mvkSem->encodeDeferredSignal(mtlCmdBuff, signaler.semaphoreSignalToken); } -} - -// Signal either or both of the semaphore and fence in the specified tracker pair. -void MVKPresentableSwapchainImage::signal(const MVKSwapchainSignaler& signaler, id mtlCmdBuff) { - if (signaler.semaphore) { signaler.semaphore->encodeDeferredSignal(mtlCmdBuff, signaler.semaphoreSignalToken); } - if (signaler.fence) { signaler.fence->signal(); } -} - -// Tell the semaphore and fence that they are being tracked for future signaling. -void MVKPresentableSwapchainImage::markAsTracked(const MVKSwapchainSignaler& signaler) { - if (signaler.semaphore) { signaler.semaphore->retain(); } - if (signaler.fence) { signaler.fence->retain(); } -} - -// Tell the semaphore and fence that they are no longer being tracked for future signaling. -void MVKPresentableSwapchainImage::unmarkAsTracked(const MVKSwapchainSignaler& signaler) { - if (signaler.semaphore) { signaler.semaphore->release(); } - if (signaler.fence) { signaler.fence->release(); } -} - -// Untrack any signalers that are still tracking, releasing the fences and semaphores. -void MVKPresentableSwapchainImage::untrackAllSignalers() { - lock_guard lock(_availabilityLock); - - if ( !_availability.isAvailable ) { - unmarkAsTracked(_preSignaler); - for (auto& sig : _availabilitySignalers) { - unmarkAsTracked(sig); - } - } -} - - -#pragma mark Metal - id MVKPresentableSwapchainImage::getCAMetalDrawable() { while ( !_mtlDrawable ) { @autoreleasepool { // Reclaim auto-released drawable object before end of loop @@ -1318,8 +1296,7 @@ // Present the drawable and make myself available only once the command buffer has completed. void MVKPresentableSwapchainImage::presentCAMetalDrawable(id mtlCmdBuff, - MVKPresentTimingInfo presentTimingInfo) { - + MVKImagePresentInfo presentInfo) { lock_guard lock(_availabilityLock); _swapchain->willPresentSurface(getMTLTexture(0), mtlCmdBuff); @@ -1330,10 +1307,15 @@ // Attach present handler before presenting to avoid race condition. id mtlDrwbl = getCAMetalDrawable(); [mtlCmdBuff addScheduledHandler: ^(id mcb) { - if (presentTimingInfo.hasPresentTime) { + // Try to do any present mode transitions as late as possible in an attempt + // to avoid visual disruptions on any presents already on the queue. + if (presentInfo.presentMode != VK_PRESENT_MODE_MAX_ENUM_KHR) { + mtlDrwbl.layer.displaySyncEnabledMVK = (presentInfo.presentMode != VK_PRESENT_MODE_IMMEDIATE_KHR); + } + if (presentInfo.hasPresentTime) { // Convert from nsecs to seconds for Metal - addPresentedHandler(mtlDrwbl, presentTimingInfo); - [mtlDrwbl presentAtTime: (double)presentTimingInfo.desiredPresentTime * 1.0e-9]; + addPresentedHandler(mtlDrwbl, presentInfo); + [mtlDrwbl presentAtTime: (double)presentInfo.desiredPresentTime * 1.0e-9]; } else { [mtlDrwbl present]; } @@ -1349,7 +1331,6 @@ // Because the semaphore or fence will be signaled by more than one image, it will // get out of sync, and the final use of the image would not be signaled as a result. signaler = _preSignaler; - // Save the command buffer in case this image is acquired before presentation is finished. } else { // If this image is not yet available, extract and signal the first semaphore and fence. auto sigIter = _availabilitySignalers.begin(); @@ -1365,13 +1346,14 @@ [mtlDrwbl release]; makeAvailable(signaler); release(); + if (presentInfo.fence) { presentInfo.fence->signal(); } }]; signalPresentationSemaphore(signaler, mtlCmdBuff); } void MVKPresentableSwapchainImage::addPresentedHandler(id mtlDrawable, - MVKPresentTimingInfo presentTimingInfo) { + MVKImagePresentInfo presentInfo) { #if !MVK_OS_SIMULATOR if ([mtlDrawable respondsToSelector: @selector(addPresentedHandler:)]) { retain(); // Ensure this image is not destroyed while awaiting presentation @@ -1379,7 +1361,7 @@ // Since we're in a callback, it's possible that the swapchain has been released by now. // Lock the swapchain, and test if it is present before doing anything with it. lock_guard cblock(_swapchainLock); - if (_swapchain) { _swapchain->recordPresentTime(presentTimingInfo, drawable.presentedTime * 1.0e9); } + if (_swapchain) { _swapchain->recordPresentTime(presentInfo, drawable.presentedTime * 1.0e9); } release(); }]; return; @@ -1392,7 +1374,7 @@ // the swapchain has been released by the time this function runs. // Lock the swapchain, and test if it is present before doing anything with it. lock_guard lock(_swapchainLock); - if (_swapchain) {_swapchain->recordPresentTime(presentTimingInfo); } + if (_swapchain) {_swapchain->recordPresentTime(presentInfo); } } // Resets the MTLTexture and CAMetalDrawable underlying this image. @@ -1404,13 +1386,39 @@ _mtlDrawable = nil; } +// Makes an image available for acquisition by the app. +// If any semaphores are waiting to be signaled when this image becomes available, the +// earliest semaphore is signaled, and this image remains unavailable for other uses. +void MVKPresentableSwapchainImage::makeAvailable(const MVKSwapchainSignaler& signaler) { + lock_guard lock(_availabilityLock); + + signalAndUnmarkAsTracked(signaler); +} + +// Signal, untrack, and release any signalers that are tracking. +void MVKPresentableSwapchainImage::makeAvailable() { + lock_guard lock(_availabilityLock); + + if ( !_availability.isAvailable ) { + signalAndUnmarkAsTracked(_preSignaler); + for (auto& sig : _availabilitySignalers) { + signalAndUnmarkAsTracked(sig); + } + _availabilitySignalers.clear(); + _availability.isAvailable = true; + } +} + #pragma mark Construction +// The deferImgMemAlloc parameter is ignored, because image memory allocation is provided by a MTLDrawable, +// which is retrieved lazily, and hence is already as deferred (or as deferred as we can make it). MVKPresentableSwapchainImage::MVKPresentableSwapchainImage(MVKDevice* device, const VkImageCreateInfo* pCreateInfo, MVKSwapchain* swapchain, - uint32_t swapchainIndex) : + uint32_t swapchainIndex, + bool deferImgMemAlloc) : MVKSwapchainImage(device, pCreateInfo, swapchain, swapchainIndex) { _mtlDrawable = nil; @@ -1421,10 +1429,10 @@ } // Unsignaled signalers will exist if this image is acquired more than it is presented. -// Ensure they are untracked so the fences and semaphores will be released. +// Ensure they are signaled and untracked so the fences and semaphores will be released. MVKPresentableSwapchainImage::~MVKPresentableSwapchainImage() { releaseMetalDrawable(); - untrackAllSignalers(); + makeAvailable(); } diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm index 0036bd15a..dc953db56 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm @@ -729,9 +729,9 @@ ADD_DVC_EXT_ENTRY_POINT(vkSetPrivateDataEXT, EXT_PRIVATE_DATA); ADD_DVC_EXT_ENTRY_POINT(vkGetPhysicalDeviceMultisamplePropertiesEXT, EXT_SAMPLE_LOCATIONS); ADD_DVC_EXT_ENTRY_POINT(vkCmdSetSampleLocationsEXT, EXT_SAMPLE_LOCATIONS); + ADD_DVC_EXT_ENTRY_POINT(vkReleaseSwapchainImagesEXT, EXT_SWAPCHAIN_MAINTENANCE_1); ADD_DVC_EXT_ENTRY_POINT(vkGetRefreshCycleDurationGOOGLE, GOOGLE_DISPLAY_TIMING); ADD_DVC_EXT_ENTRY_POINT(vkGetPastPresentationTimingGOOGLE, GOOGLE_DISPLAY_TIMING); - } void MVKInstance::logVersions() { diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h index 48c69bc9f..54a68595d 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h @@ -272,6 +272,6 @@ class MVKQueuePresentSurfaceSubmission : public MVKQueueSubmission { protected: void stopAutoGPUCapture(); - MVKSmallVector _presentInfo; + MVKSmallVector _presentInfo; }; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm index ea6bafdfa..33c3246a3 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm @@ -538,8 +538,7 @@ [mtlCmdBuff enqueue]; for (auto& ws : _waitSemaphores) { ws.first->encodeWait(mtlCmdBuff, 0); } for (int i = 0; i < _presentInfo.size(); i++ ) { - MVKPresentableSwapchainImage *img = _presentInfo[i].presentableImage; - img->presentCAMetalDrawable(mtlCmdBuff, _presentInfo[i]); + _presentInfo[i].presentableImage->presentCAMetalDrawable(mtlCmdBuff, _presentInfo[i]); } for (auto& ws : _waitSemaphores) { ws.first->encodeWait(nil, 0); } [mtlCmdBuff commit]; @@ -564,13 +563,19 @@ const VkPresentInfoKHR* pPresentInfo) : MVKQueueSubmission(queue, pPresentInfo->waitSemaphoreCount, pPresentInfo->pWaitSemaphores) { - const VkPresentTimesInfoGOOGLE *pPresentTimesInfoGOOGLE = nullptr; - for ( const auto *next = ( VkBaseInStructure* ) pPresentInfo->pNext; next; next = next->pNext ) - { - switch ( next->sType ) - { + const VkPresentTimesInfoGOOGLE* pPresentTimesInfo = nullptr; + const VkSwapchainPresentFenceInfoEXT* pPresentFenceInfo = nullptr; + const VkSwapchainPresentModeInfoEXT* pPresentModeInfo = nullptr; + for (auto* next = (const VkBaseInStructure*)pPresentInfo->pNext; next; next = next->pNext) { + switch (next->sType) { + case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: + pPresentFenceInfo = (const VkSwapchainPresentFenceInfoEXT*) next; + break; + case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: + pPresentModeInfo = (const VkSwapchainPresentModeInfoEXT*) next; + break; case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: - pPresentTimesInfoGOOGLE = ( const VkPresentTimesInfoGOOGLE * ) next; + pPresentTimesInfo = (const VkPresentTimesInfoGOOGLE*) next; break; default: break; @@ -579,21 +584,34 @@ // Populate the array of swapchain images, testing each one for status uint32_t scCnt = pPresentInfo->swapchainCount; - const VkPresentTimeGOOGLE *pPresentTimesGOOGLE = nullptr; - if ( pPresentTimesInfoGOOGLE && pPresentTimesInfoGOOGLE->pTimes ) { - pPresentTimesGOOGLE = pPresentTimesInfoGOOGLE->pTimes; - MVKAssert( pPresentTimesInfoGOOGLE->swapchainCount == pPresentInfo->swapchainCount, "VkPresentTimesInfoGOOGLE swapchainCount must match VkPresentInfo swapchainCount" ); + const VkPresentTimeGOOGLE* pPresentTimes = nullptr; + if (pPresentTimesInfo && pPresentTimesInfo->pTimes) { + pPresentTimes = pPresentTimesInfo->pTimes; + MVKAssert(pPresentTimesInfo->swapchainCount == scCnt, "VkPresentTimesInfoGOOGLE swapchainCount must match VkPresentInfo swapchainCount."); } + const VkPresentModeKHR* pPresentModes = nullptr; + if (pPresentModeInfo) { + pPresentModes = pPresentModeInfo->pPresentModes; + MVKAssert(pPresentModeInfo->swapchainCount == scCnt, "VkSwapchainPresentModeInfoEXT swapchainCount must match VkPresentInfo swapchainCount."); + } + const VkFence* pFences = nullptr; + if (pPresentFenceInfo) { + pFences = pPresentFenceInfo->pFences; + MVKAssert(pPresentFenceInfo->swapchainCount == scCnt, "VkSwapchainPresentFenceInfoEXT swapchainCount must match VkPresentInfo swapchainCount."); + } + VkResult* pSCRslts = pPresentInfo->pResults; _presentInfo.reserve(scCnt); for (uint32_t scIdx = 0; scIdx < scCnt; scIdx++) { MVKSwapchain* mvkSC = (MVKSwapchain*)pPresentInfo->pSwapchains[scIdx]; - MVKPresentTimingInfo presentInfo = {}; + MVKImagePresentInfo presentInfo = {}; presentInfo.presentableImage = mvkSC->getPresentableImage(pPresentInfo->pImageIndices[scIdx]); - if ( pPresentTimesGOOGLE ) { + presentInfo.presentMode = pPresentModes ? pPresentModes[scIdx] : VK_PRESENT_MODE_MAX_ENUM_KHR; + presentInfo.fence = pFences ? (MVKFence*)pFences[scIdx] : nullptr; + if (pPresentTimes) { presentInfo.hasPresentTime = true; - presentInfo.presentID = pPresentTimesGOOGLE[scIdx].presentID; - presentInfo.desiredPresentTime = pPresentTimesGOOGLE[scIdx].desiredPresentTime; + presentInfo.presentID = pPresentTimes[scIdx].presentID; + presentInfo.desiredPresentTime = pPresentTimes[scIdx].desiredPresentTime; } else { presentInfo.hasPresentTime = false; } diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSurface.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSurface.mm index c3885da1d..1309d73dc 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSurface.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSurface.mm @@ -42,8 +42,6 @@ const Vk_PLATFORM_SurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator) : _mvkInstance(mvkInstance) { -// MVKLogInfo("%s(): This function is obsolete. Consider using the vkCreateMetalSurfaceEXT() function from the VK_EXT_metal_surface extension instead.", STR(vkCreate_PLATFORM_SurfaceMVK)); - // Get the platform object contained in pView id obj = (id)pCreateInfo->pView; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h index e13474bde..a82ef814c 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h @@ -66,26 +66,38 @@ class MVKSwapchain : public MVKVulkanAPIDeviceObject { */ VkResult getImages(uint32_t* pCount, VkImage* pSwapchainImages); - /** Returns the index of the next swapchain image. */ - VkResult acquireNextImageKHR(uint64_t timeout, - VkSemaphore semaphore, - VkFence fence, - uint32_t deviceMask, - uint32_t* pImageIndex); + /** Returns the index of the next acquireable image. */ + VkResult acquireNextImage(uint64_t timeout, + VkSemaphore semaphore, + VkFence fence, + uint32_t deviceMask, + uint32_t* pImageIndex); + + /** Releases swapchain images. */ + VkResult releaseImages(const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo); /** Returns whether the parent surface is now lost and this swapchain must be recreated. */ bool getIsSurfaceLost() { return _surfaceLost; } - /** Returns whether the surface size or resolution scale has changed since the last time this function was called. */ - bool getHasSurfaceSizeChanged() { - return !CGSizeEqualToSize(_mtlLayer.naturalDrawableSizeMVK, _mtlLayer.drawableSize); + /** + * Returns whether this swapchain is optimally sized for the surface. + * It is if the app has specified deliberate swapchain scaling, or the CAMetalLayer + * drawableSize has not changed since the swapchain was created, and the CAMetalLayer + * will not need to be scaled when composited. + */ + bool hasOptimalSurface() { + if (_isDeliberatelyScaled) { return true; } + + auto drawSize = _mtlLayer.drawableSize; + return (CGSizeEqualToSize(drawSize, _mtlLayerDrawableSize) && + CGSizeEqualToSize(drawSize, _mtlLayer.naturalDrawableSizeMVK)); } - /** Returns the status of the surface. Surface loss takes precedence over out-of-date errors. */ + /** Returns the status of the surface. Surface loss takes precedence over sub-optimal errors. */ VkResult getSurfaceStatus() { if (_device->getConfigurationResult() != VK_SUCCESS) { return _device->getConfigurationResult(); } if (getIsSurfaceLost()) { return VK_ERROR_SURFACE_LOST_KHR; } - if (getHasSurfaceSizeChanged()) { return VK_SUBOPTIMAL_KHR; } + if ( !hasOptimalSurface() ) { return VK_SUBOPTIMAL_KHR; } return VK_SUCCESS; } @@ -97,7 +109,7 @@ class MVKSwapchain : public MVKVulkanAPIDeviceObject { /** VK_GOOGLE_display_timing - returns past presentation times */ VkResult getPastPresentationTiming(uint32_t *pCount, VkPastPresentationTimingGOOGLE *pPresentationTimings); - + void destroy() override; #pragma mark Construction @@ -110,7 +122,9 @@ class MVKSwapchain : public MVKVulkanAPIDeviceObject { friend class MVKPresentableSwapchainImage; void propagateDebugName() override; - void initCAMetalLayer(const VkSwapchainCreateInfoKHR* pCreateInfo, uint32_t imgCnt); + void initCAMetalLayer(const VkSwapchainCreateInfoKHR* pCreateInfo, + VkSwapchainPresentScalingCreateInfoEXT* pScalingInfo, + uint32_t imgCnt); void initSurfaceImages(const VkSwapchainCreateInfoKHR* pCreateInfo, uint32_t imgCnt); void releaseLayer(); void releaseUndisplayedSurfaces(); @@ -118,22 +132,25 @@ class MVKSwapchain : public MVKVulkanAPIDeviceObject { void willPresentSurface(id mtlTexture, id mtlCmdBuff); void renderWatermark(id mtlTexture, id mtlCmdBuff); void markFrameInterval(); - void recordPresentTime(MVKPresentTimingInfo presentTimingInfo, uint64_t actualPresentTime = 0); + void recordPresentTime(MVKImagePresentInfo presentInfo, uint64_t actualPresentTime = 0); - CAMetalLayer* _mtlLayer; - MVKWatermark* _licenseWatermark; + CAMetalLayer* _mtlLayer = nil; + MVKWatermark* _licenseWatermark = nil; MVKSmallVector _presentableImages; - std::atomic _currentAcquisitionID; - uint64_t _lastFrameTime; - uint32_t _currentPerfLogFrameCount; - std::atomic _surfaceLost; - MVKBlockObserver* _layerObserver; - std::mutex _layerLock; + MVKSmallVector _compatiblePresentModes; static const int kMaxPresentationHistory = 60; VkPastPresentationTimingGOOGLE _presentTimingHistory[kMaxPresentationHistory]; - uint32_t _presentHistoryCount; - uint32_t _presentHistoryIndex; - uint32_t _presentHistoryHeadIndex; + std::atomic _currentAcquisitionID = 0; + MVKBlockObserver* _layerObserver = nil; std::mutex _presentHistoryLock; + std::mutex _layerLock; + uint64_t _lastFrameTime = 0; + CGSize _mtlLayerDrawableSize = {0.0, 0.0}; + uint32_t _currentPerfLogFrameCount = 0; + uint32_t _presentHistoryCount = 0; + uint32_t _presentHistoryIndex = 0; + uint32_t _presentHistoryHeadIndex = 0; + std::atomic _surfaceLost = false; + bool _isDeliberatelyScaled = false; }; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm index bef4dc42c..49686a19a 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm @@ -70,11 +70,11 @@ return result; } -VkResult MVKSwapchain::acquireNextImageKHR(uint64_t timeout, - VkSemaphore semaphore, - VkFence fence, - uint32_t deviceMask, - uint32_t* pImageIndex) { +VkResult MVKSwapchain::acquireNextImage(uint64_t timeout, + VkSemaphore semaphore, + VkFence fence, + uint32_t deviceMask, + uint32_t* pImageIndex) { if ( _device->getConfigurationResult() != VK_SUCCESS ) { return _device->getConfigurationResult(); } if ( getIsSurfaceLost() ) { return VK_ERROR_SURFACE_LOST_KHR; } @@ -100,6 +100,14 @@ return getSurfaceStatus(); } +VkResult MVKSwapchain::releaseImages(const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) { + for (uint32_t imgIdxIdx = 0; imgIdxIdx < pReleaseInfo->imageIndexCount; imgIdxIdx++) { + getPresentableImage(pReleaseInfo->pImageIndices[imgIdxIdx])->makeAvailable(); + } + + return VK_SUCCESS; +} + uint64_t MVKSwapchain::getNextAcquisitionID() { return ++_currentAcquisitionID; } // Releases any surfaces that are not currently being displayed, @@ -227,19 +235,37 @@ static inline CIE1931XY VkXYColorEXTToCIE1931XY(VkXYColorEXT xy) { #pragma mark Construction MVKSwapchain::MVKSwapchain(MVKDevice* device, - const VkSwapchainCreateInfoKHR* pCreateInfo) : - MVKVulkanAPIDeviceObject(device), - _licenseWatermark(nil), - _currentAcquisitionID(0), - _lastFrameTime(0), - _currentPerfLogFrameCount(0), - _surfaceLost(false), - _layerObserver(nil), - _presentHistoryCount(0), - _presentHistoryIndex(0), - _presentHistoryHeadIndex(0) { - + const VkSwapchainCreateInfoKHR* pCreateInfo) : MVKVulkanAPIDeviceObject(device) { memset(_presentTimingHistory, 0, sizeof(_presentTimingHistory)); + + // Retrieve the scaling and present mode structs if they are supplied. + VkSwapchainPresentScalingCreateInfoEXT* pScalingInfo = nullptr; + VkSwapchainPresentModesCreateInfoEXT* pPresentModesInfo = nullptr; + for (auto* next = (const VkBaseInStructure*)pCreateInfo->pNext; next; next = next->pNext) { + switch (next->sType) { + case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: { + pScalingInfo = (VkSwapchainPresentScalingCreateInfoEXT*)next; + break; + } + case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: { + pPresentModesInfo = (VkSwapchainPresentModesCreateInfoEXT*)next; + break; + } + default: + break; + } + } + + _isDeliberatelyScaled = pScalingInfo && pScalingInfo->scalingBehavior; + + // Set the list of present modes that can be specified in a queue + // present submission without causing the swapchain to be rebuilt. + if (pPresentModesInfo) { + for (uint32_t pmIdx = 0; pmIdx < pPresentModesInfo->presentModeCount; pmIdx++) { + _compatiblePresentModes.push_back(pPresentModesInfo->pPresentModes[pmIdx]); + } + } + // If applicable, release any surfaces (not currently being displayed) from the old swapchain. MVKSwapchain* oldSwapchain = (MVKSwapchain*)pCreateInfo->oldSwapchain; if (oldSwapchain) { oldSwapchain->releaseUndisplayedSurfaces(); } @@ -247,12 +273,51 @@ static inline CIE1931XY VkXYColorEXTToCIE1931XY(VkXYColorEXT xy) { uint32_t imgCnt = mvkClamp(pCreateInfo->minImageCount, _device->_pMetalFeatures->minSwapchainImageCount, _device->_pMetalFeatures->maxSwapchainImageCount); - initCAMetalLayer(pCreateInfo, imgCnt); + initCAMetalLayer(pCreateInfo, pScalingInfo, imgCnt); initSurfaceImages(pCreateInfo, imgCnt); // After initCAMetalLayer() } +// kCAGravityResize is the Metal default +static CALayerContentsGravity getCALayerContentsGravity(VkSwapchainPresentScalingCreateInfoEXT* pScalingInfo) { + + if( !pScalingInfo ) { return kCAGravityResize; } + + switch (pScalingInfo->scalingBehavior) { + case VK_PRESENT_SCALING_STRETCH_BIT_EXT: return kCAGravityResize; + case VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT: return kCAGravityResizeAspect; + case VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT: + switch (pScalingInfo->presentGravityY) { + case VK_PRESENT_GRAVITY_MIN_BIT_EXT: + switch (pScalingInfo->presentGravityX) { + case VK_PRESENT_GRAVITY_MIN_BIT_EXT: return kCAGravityTopLeft; + case VK_PRESENT_GRAVITY_CENTERED_BIT_EXT: return kCAGravityTop; + case VK_PRESENT_GRAVITY_MAX_BIT_EXT: return kCAGravityTopRight; + default: return kCAGravityTop; + } + case VK_PRESENT_GRAVITY_CENTERED_BIT_EXT: + switch (pScalingInfo->presentGravityX) { + case VK_PRESENT_GRAVITY_MIN_BIT_EXT: return kCAGravityLeft; + case VK_PRESENT_GRAVITY_CENTERED_BIT_EXT: return kCAGravityCenter; + case VK_PRESENT_GRAVITY_MAX_BIT_EXT: return kCAGravityRight; + default: return kCAGravityCenter; + } + case VK_PRESENT_GRAVITY_MAX_BIT_EXT: + switch (pScalingInfo->presentGravityX) { + case VK_PRESENT_GRAVITY_MIN_BIT_EXT: return kCAGravityBottomLeft; + case VK_PRESENT_GRAVITY_CENTERED_BIT_EXT: return kCAGravityBottom; + case VK_PRESENT_GRAVITY_MAX_BIT_EXT: return kCAGravityBottomRight; + default: return kCAGravityBottom; + } + default: return kCAGravityCenter; + } + default: return kCAGravityResize; + } +} + // Initializes the CAMetalLayer underlying the surface of this swapchain. -void MVKSwapchain::initCAMetalLayer(const VkSwapchainCreateInfoKHR* pCreateInfo, uint32_t imgCnt) { +void MVKSwapchain::initCAMetalLayer(const VkSwapchainCreateInfoKHR* pCreateInfo, + VkSwapchainPresentScalingCreateInfoEXT* pScalingInfo, + uint32_t imgCnt) { MVKSurface* mvkSrfc = (MVKSurface*)pCreateInfo->surface; _mtlLayer = mvkSrfc->getCAMetalLayer(); @@ -262,15 +327,22 @@ static inline CIE1931XY VkXYColorEXTToCIE1931XY(VkXYColorEXT xy) { return; } + auto minMagFilter = mvkConfig().swapchainMinMagFilterUseNearest ? kCAFilterNearest : kCAFilterLinear; _mtlLayer.device = getMTLDevice(); _mtlLayer.pixelFormat = getPixelFormats()->getMTLPixelFormat(pCreateInfo->imageFormat); _mtlLayer.maximumDrawableCountMVK = imgCnt; _mtlLayer.displaySyncEnabledMVK = (pCreateInfo->presentMode != VK_PRESENT_MODE_IMMEDIATE_KHR); - _mtlLayer.magnificationFilter = mvkConfig().swapchainMagFilterUseNearest ? kCAFilterNearest : kCAFilterLinear; + _mtlLayer.minificationFilter = minMagFilter; + _mtlLayer.magnificationFilter = minMagFilter; + _mtlLayer.contentsGravity = getCALayerContentsGravity(pScalingInfo); _mtlLayer.framebufferOnly = !mvkIsAnyFlagEnabled(pCreateInfo->imageUsage, (VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_STORAGE_BIT)); + // Remember drawable size to later detect if it has changed under the covers. + _mtlLayerDrawableSize = mvkCGSizeFromVkExtent2D(pCreateInfo->imageExtent); + _mtlLayer.drawableSize = _mtlLayerDrawableSize; + if (pCreateInfo->compositeAlpha != VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR) { _mtlLayer.opaque = pCreateInfo->compositeAlpha == VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; } @@ -330,7 +402,6 @@ static inline CIE1931XY VkXYColorEXTToCIE1931XY(VkXYColorEXT xy) { setConfigurationResult(reportError(VK_ERROR_FORMAT_NOT_SUPPORTED, "vkCreateSwapchainKHR(): Metal does not support VkColorSpaceKHR value %d.", pCreateInfo->imageColorSpace)); break; } - _mtlLayer.drawableSize = mvkCGSizeFromVkExtent2D(pCreateInfo->imageExtent); // TODO: set additional CAMetalLayer properties before extracting drawables: // - presentsWithTransaction @@ -398,8 +469,11 @@ static inline CIE1931XY VkXYColorEXTToCIE1931XY(VkXYColorEXT xy) { mvkEnableFlags(imgInfo.flags, VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT); } + bool deferImgMemAlloc = mvkAreAllFlagsEnabled(pCreateInfo->flags, VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT); + for (uint32_t imgIdx = 0; imgIdx < imgCnt; imgIdx++) { - _presentableImages.push_back(_device->createPresentableSwapchainImage(&imgInfo, this, imgIdx, NULL)); + _presentableImages.push_back(_device->createPresentableSwapchainImage(&imgInfo, this, imgIdx, + deferImgMemAlloc, NULL)); } NSString* screenName = @"Main Screen"; @@ -469,7 +543,7 @@ static inline CIE1931XY VkXYColorEXTToCIE1931XY(VkXYColorEXT xy) { return res; } -void MVKSwapchain::recordPresentTime(MVKPresentTimingInfo presentTimingInfo, uint64_t actualPresentTime) { +void MVKSwapchain::recordPresentTime(MVKImagePresentInfo presentInfo, uint64_t actualPresentTime) { std::lock_guard lock(_presentHistoryLock); if (_presentHistoryCount < kMaxPresentationHistory) { _presentHistoryCount++; @@ -478,10 +552,10 @@ static inline CIE1931XY VkXYColorEXTToCIE1931XY(VkXYColorEXT xy) { } // If actual time not supplied, use desired time instead - if (actualPresentTime == 0) { actualPresentTime = presentTimingInfo.desiredPresentTime; } + if (actualPresentTime == 0) { actualPresentTime = presentInfo.desiredPresentTime; } - _presentTimingHistory[_presentHistoryIndex].presentID = presentTimingInfo.presentID; - _presentTimingHistory[_presentHistoryIndex].desiredPresentTime = presentTimingInfo.desiredPresentTime; + _presentTimingHistory[_presentHistoryIndex].presentID = presentInfo.presentID; + _presentTimingHistory[_presentHistoryIndex].desiredPresentTime = presentInfo.desiredPresentTime; _presentTimingHistory[_presentHistoryIndex].actualPresentTime = actualPresentTime; // These details are not available in Metal _presentTimingHistory[_presentHistoryIndex].earliestPresentTime = actualPresentTime; diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.def b/MoltenVK/MoltenVK/Layers/MVKExtensions.def index 17ed1f255..598757c2c 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.def +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.def @@ -114,7 +114,9 @@ MVK_EXTENSION(EXT_separate_stencil_usage, EXT_SEPARATE_STENCIL_USAGE, MVK_EXTENSION(EXT_shader_stencil_export, EXT_SHADER_STENCIL_EXPORT, DEVICE, 10.14, 12.0) MVK_EXTENSION(EXT_shader_viewport_index_layer, EXT_SHADER_VIEWPORT_INDEX_LAYER, DEVICE, 10.11, 8.0) MVK_EXTENSION(EXT_subgroup_size_control, EXT_SUBGROUP_SIZE_CONTROL, DEVICE, 10.14, 13.0) +MVK_EXTENSION(EXT_surface_maintenance1, EXT_SURFACE_MAINTENANCE_1, INSTANCE, 10.11, 8.0) MVK_EXTENSION(EXT_swapchain_colorspace, EXT_SWAPCHAIN_COLOR_SPACE, INSTANCE, 10.11, 9.0) +MVK_EXTENSION(EXT_swapchain_maintenance1, EXT_SWAPCHAIN_MAINTENANCE_1, DEVICE, 10.11, 8.0) MVK_EXTENSION(EXT_texel_buffer_alignment, EXT_TEXEL_BUFFER_ALIGNMENT, DEVICE, 10.13, 11.0) MVK_EXTENSION(EXT_texture_compression_astc_hdr, EXT_TEXTURE_COMPRESSION_ASTC_HDR, DEVICE, 11.0, 13.0) MVK_EXTENSION(EXT_vertex_attribute_divisor, EXT_VERTEX_ATTRIBUTE_DIVISOR, DEVICE, 10.11, 8.0) diff --git a/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h b/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h index 55b82f246..dcde22dc2 100644 --- a/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h +++ b/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h @@ -38,20 +38,11 @@ /** * Returns the natural drawable size for this layer. * - * The natural drawable size is the size of the bounds property of this layer, multiplied - * by the contentsScale property of this layer, and is the value that the drawableSize - * property will be set to when the updatedDrawableSizeMVK nethod is invoked. + * The natural drawable size is the size of the bounds property of this layer, + * multiplied by the contentsScale property of this layer. */ @property(nonatomic, readonly) CGSize naturalDrawableSizeMVK; -/** - * Ensures the drawableSize property of this layer is up to date, by ensuring - * it is set to the value returned by the naturalDrawableSizeMVK property. - * - * Returns the updated drawableSize value. - */ --(CGSize) updatedDrawableSizeMVK; - /** * Replacement for the displaySyncEnabled property. * diff --git a/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.m b/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.m index 707b908ac..a9e5a009a 100644 --- a/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.m +++ b/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.m @@ -31,18 +31,8 @@ @implementation CAMetalLayer (MoltenVK) -(CGSize) naturalDrawableSizeMVK { CGSize drawSize = self.bounds.size; CGFloat scaleFactor = self.contentsScale; - drawSize.width = trunc(drawSize.width * scaleFactor); - drawSize.height = trunc(drawSize.height * scaleFactor); - return drawSize; -} - -// Only update drawableSize property value if it needs to be, -// in case updating to same value causes internal reconfigurations. --(CGSize) updatedDrawableSizeMVK { - CGSize drawSize = self.naturalDrawableSizeMVK; - if ( !CGSizeEqualToSize(drawSize, self.drawableSize) ) { - self.drawableSize = drawSize; - } + drawSize.width *= scaleFactor; + drawSize.height *= scaleFactor; return drawSize; } diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp b/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp index 7275daaf7..9861a359d 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp @@ -34,7 +34,8 @@ static void mvkInitConfigFromEnvVars() { MVK_SET_FROM_ENV_OR_BUILD_INT32 (evCfg.maxActiveMetalCommandBuffersPerQueue, MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.supportLargeQueryPools, MVK_CONFIG_SUPPORT_LARGE_QUERY_POOLS); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.presentWithCommandBuffer, MVK_CONFIG_PRESENT_WITH_COMMAND_BUFFER); - MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.swapchainMagFilterUseNearest, MVK_CONFIG_SWAPCHAIN_MAG_FILTER_USE_NEAREST); + MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.swapchainMinMagFilterUseNearest, MVK_CONFIG_SWAPCHAIN_MAG_FILTER_USE_NEAREST); // Deprecated legacy env var + MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.swapchainMinMagFilterUseNearest, MVK_CONFIG_SWAPCHAIN_MIN_MAG_FILTER_USE_NEAREST); MVK_SET_FROM_ENV_OR_BUILD_INT64 (evCfg.metalCompileTimeout, MVK_CONFIG_METAL_COMPILE_TIMEOUT); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.performanceTracking, MVK_CONFIG_PERFORMANCE_TRACKING); MVK_SET_FROM_ENV_OR_BUILD_INT32 (evCfg.performanceLoggingFrameCount, MVK_CONFIG_PERFORMANCE_LOGGING_FRAME_COUNT); diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h index 908832451..ae90fd3f7 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h @@ -128,9 +128,12 @@ void mvkSetConfig(const MVKConfiguration& mvkConfig); # define MVK_CONFIG_PRESENT_WITH_COMMAND_BUFFER 1 #endif -/** Use nearest sampling to magnify swapchain images. Enabled by default. */ +/** Use nearest sampling to minify or magnify swapchain images. Enabled by default. Second macro name is deprecated legacy. */ +#ifndef MVK_CONFIG_SWAPCHAIN_MIN_MAG_FILTER_USE_NEAREST +# define MVK_CONFIG_SWAPCHAIN_MIN_MAG_FILTER_USE_NEAREST 1 +#endif #ifndef MVK_CONFIG_SWAPCHAIN_MAG_FILTER_USE_NEAREST -# define MVK_CONFIG_SWAPCHAIN_MAG_FILTER_USE_NEAREST 1 +# define MVK_CONFIG_SWAPCHAIN_MAG_FILTER_USE_NEAREST MVK_CONFIG_SWAPCHAIN_MIN_MAG_FILTER_USE_NEAREST #endif /** The maximum amount of time, in nanoseconds, to wait for a Metal library. Default is infinite. */ diff --git a/MoltenVK/MoltenVK/Utility/MVKFoundation.h b/MoltenVK/MoltenVK/Utility/MVKFoundation.h index 5bcf10f10..d03b42f97 100644 --- a/MoltenVK/MoltenVK/Utility/MVKFoundation.h +++ b/MoltenVK/MoltenVK/Utility/MVKFoundation.h @@ -339,11 +339,13 @@ static inline bool mvkVkComponentMappingsMatch(VkComponentMapping cm1, VkCompone #define mvkPrintSizeOf(type) printf("Size of " #type " is %lu.\n", sizeof(type)) -#pragma mark - -#pragma mark Template functions - #pragma mark Math +/** Rounds the value to nearest integer using half-to-even rounding. */ +static inline double mvkRoundHalfToEven(const double val) { + return val - std::remainder(val, 1.0); // remainder() uses half-to-even rounding +} + /** Returns whether the value will fit inside the numeric type. */ template const bool mvkFits(const Tval& val) { diff --git a/MoltenVK/MoltenVK/Utility/MVKLogging.h b/MoltenVK/MoltenVK/Utility/MVKLogging.h index 347f65b3f..bea3a92f5 100644 --- a/MoltenVK/MoltenVK/Utility/MVKLogging.h +++ b/MoltenVK/MoltenVK/Utility/MVKLogging.h @@ -207,9 +207,6 @@ do { \ # define MVK_DEBUGGER() { kill( getpid(), SIGINT ) ; } #endif -// Log the size of a type, struct, or class -#define MVKLogSizeOf(T) printf("sizeof(%s): %lu.\n", #T, sizeof(T)) - #ifdef __cplusplus } diff --git a/MoltenVK/MoltenVK/Vulkan/mvk_datatypes.mm b/MoltenVK/MoltenVK/Vulkan/mvk_datatypes.mm index 7998d3e62..1960dedd9 100644 --- a/MoltenVK/MoltenVK/Vulkan/mvk_datatypes.mm +++ b/MoltenVK/MoltenVK/Vulkan/mvk_datatypes.mm @@ -730,6 +730,24 @@ MVK_PUBLIC_SYMBOL MTLBarrierScope mvkMTLBarrierScopeFromVkAccessFlags(VkAccessFl } +#pragma mark - +#pragma mark Geometry conversions + +MVK_PUBLIC_SYMBOL VkExtent2D mvkVkExtent2DFromCGSize(CGSize cgSize) { + VkExtent2D vkExt; + vkExt.width = mvkRoundHalfToEven(cgSize.width); + vkExt.height = mvkRoundHalfToEven(cgSize.height); + return vkExt; +} + +MVK_PUBLIC_SYMBOL CGSize mvkCGSizeFromVkExtent2D(VkExtent2D vkExtent) { + CGSize cgSize; + cgSize.width = vkExtent.width; + cgSize.height = vkExtent.height; + return cgSize; +} + + #pragma mark - #pragma mark Memory options diff --git a/MoltenVK/MoltenVK/Vulkan/vulkan.mm b/MoltenVK/MoltenVK/Vulkan/vulkan.mm index d84a35069..dfea51b2d 100644 --- a/MoltenVK/MoltenVK/Vulkan/vulkan.mm +++ b/MoltenVK/MoltenVK/Vulkan/vulkan.mm @@ -2795,7 +2795,7 @@ MVK_PUBLIC_VULKAN_SYMBOL VkResult vkAcquireNextImageKHR( MVKTraceVulkanCallStart(); MVKSwapchain* mvkSwapchain = (MVKSwapchain*)swapchain; - VkResult rslt = mvkSwapchain->acquireNextImageKHR(timeout, semaphore, fence, ~0u, pImageIndex); + VkResult rslt = mvkSwapchain->acquireNextImage(timeout, semaphore, fence, ~0u, pImageIndex); MVKTraceVulkanCallEnd(); return rslt; } @@ -2856,11 +2856,25 @@ MVK_PUBLIC_VULKAN_SYMBOL VkResult vkAcquireNextImage2KHR( MVKTraceVulkanCallStart(); MVKSwapchain* mvkSwapchain = (MVKSwapchain*)pAcquireInfo->swapchain; - VkResult rslt = mvkSwapchain->acquireNextImageKHR(pAcquireInfo->timeout, - pAcquireInfo->semaphore, - pAcquireInfo->fence, - pAcquireInfo->deviceMask, - pImageIndex); + VkResult rslt = mvkSwapchain->acquireNextImage(pAcquireInfo->timeout, + pAcquireInfo->semaphore, + pAcquireInfo->fence, + pAcquireInfo->deviceMask, + pImageIndex); + MVKTraceVulkanCallEnd(); + return rslt; +} + +#pragma mark - +#pragma mark VK_EXT_swapchain_maintenance1 extension + +MVK_PUBLIC_VULKAN_SYMBOL VkResult vkReleaseSwapchainImagesEXT( + VkDevice device, + const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) { + + MVKTraceVulkanCallStart(); + MVKSwapchain* mvkSwapchain = (MVKSwapchain*)pReleaseInfo->swapchain; + VkResult rslt = mvkSwapchain->releaseImages(pReleaseInfo); MVKTraceVulkanCallEnd(); return rslt; } @@ -2901,8 +2915,7 @@ MVK_PUBLIC_VULKAN_SYMBOL VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( MVKTraceVulkanCallStart(); MVKPhysicalDevice* mvkPD = MVKPhysicalDevice::getMVKPhysicalDevice(physicalDevice); - MVKSurface* mvkSrfc = (MVKSurface*)surface; - VkResult rslt = mvkPD->getSurfaceCapabilities(mvkSrfc, pSurfaceCapabilities); + VkResult rslt = mvkPD->getSurfaceCapabilities(surface, pSurfaceCapabilities); MVKTraceVulkanCallEnd(); return rslt; } @@ -2946,8 +2959,7 @@ MVK_PUBLIC_VULKAN_SYMBOL VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( MVKTraceVulkanCallStart(); MVKPhysicalDevice* mvkPD = MVKPhysicalDevice::getMVKPhysicalDevice(physicalDevice); - MVKSurface* mvkSrfc = (MVKSurface*)pSurfaceInfo->surface; - VkResult rslt = mvkPD->getSurfaceCapabilities(mvkSrfc, &pSurfaceCapabilities->surfaceCapabilities); + VkResult rslt = mvkPD->getSurfaceCapabilities(pSurfaceInfo, pSurfaceCapabilities); MVKTraceVulkanCallEnd(); return rslt; } From 2c01c8b7e066ec9c95c53b4613066e7561a6ac4a Mon Sep 17 00:00:00 2001 From: Chip Davis Date: Fri, 3 Feb 2023 14:46:37 -0800 Subject: [PATCH 46/72] Work around problems with explicit LoD with arrayed depth images on Apple Silicon. Use an explicit gradient to make it sample the correct level. Update SPIRV-Cross to pull in the change needed for this. --- Docs/Whats_New.md | 2 ++ ExternalRevisions/SPIRV-Cross_repo_revision | 2 +- MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 1 + MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 3 +++ MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm | 6 +++++- 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 21b0d2cdb..634865bab 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -20,6 +20,8 @@ Released TBA - Fix issue where extension `VK_KHR_fragment_shader_barycentric` was sometimes incorrectly disabled due to a Metal driver bug. +- Work around problems with using explicit LoD with arrayed depth images + on Apple Silicon. diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision index adbf4dc9f..4ecdce5f8 100644 --- a/ExternalRevisions/SPIRV-Cross_repo_revision +++ b/ExternalRevisions/SPIRV-Cross_repo_revision @@ -1 +1 @@ -eb9b2732982b8eea3395216be825a74dd84fe4be +4e2fdb25671c742a9fbe93a6034eb1542244c7e1 diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index e78c00fc1..55d7476f8 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -979,6 +979,7 @@ typedef struct { VkBool32 programmableSamplePositions; /**< If true, programmable MSAA sample positions are supported. */ VkBool32 shaderBarycentricCoordinates; /**< If true, fragment shader barycentric coordinates are supported. */ MTLArgumentBuffersTier argumentBuffersTier; /**< The argument buffer tier available on this device, as a Metal enumeration. */ + VkBool32 needsSampleDrefLodArrayWorkaround; /**< If true, sampling from arrayed depth images with explicit LoD is broken and needs a workaround. */ } MVKPhysicalDeviceMetalFeatures; /** MoltenVK performance of a particular type of activity. */ diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 4ede8a471..5ec47c4c4 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -1493,6 +1493,9 @@ _metalFeatures.clearColorFloatRounding = MVK_FLOAT_ROUNDING_DOWN; break; case kAppleVendorId: + // TODO: Other GPUs? + _metalFeatures.needsSampleDrefLodArrayWorkaround = true; + // fallthrough case kIntelVendorId: case kNVVendorId: default: diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm index 65ef8eeb2..30acafc18 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm @@ -1152,6 +1152,9 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 shaderConfig.options.mslOptions.capture_output_to_buffer = false; shaderConfig.options.mslOptions.fixed_subgroup_size = mvkIsAnyFlagEnabled(_pFragmentSS->flags, VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT) ? 0 : _device->_pMetalFeatures->maxSubgroupSize; shaderConfig.options.mslOptions.check_discarded_frag_stores = true; + if (_device->_pMetalFeatures->needsSampleDrefLodArrayWorkaround) { + shaderConfig.options.mslOptions.sample_dref_lod_array_as_grad = true; + } if (_isRasterizing && pCreateInfo->pMultisampleState) { // Must ignore allowed bad pMultisampleState pointer if rasterization disabled if (pCreateInfo->pMultisampleState->pSampleMask && pCreateInfo->pMultisampleState->pSampleMask[0] != 0xffffffff) { shaderConfig.options.mslOptions.additional_fixed_sample_mask = pCreateInfo->pMultisampleState->pSampleMask[0]; @@ -2253,7 +2256,8 @@ void serialize(Archive & archive, CompilerMSL::Options& opt) { opt.vertex_index_type, opt.force_sample_rate_shading, opt.manual_helper_invocation_updates, - opt.check_discarded_frag_stores); + opt.check_discarded_frag_stores, + opt.sample_dref_lod_array_as_grad); } template From 3250569260fd3bf26de3d24e549e5813f5aa4287 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Sat, 4 Feb 2023 11:27:16 -0500 Subject: [PATCH 47/72] Queue submissions retain wait semaphores until MTLCommandBuffer finishes. Add additional Vulkan error strings (unrelated). --- Docs/Whats_New.md | 1 + MoltenVK/MoltenVK/GPUObjects/MVKImage.mm | 12 ++- MoltenVK/MoltenVK/GPUObjects/MVKQueue.h | 6 +- MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm | 35 +++++--- MoltenVK/MoltenVK/Utility/MVKFoundation.cpp | 94 +++++++++++---------- 5 files changed, 89 insertions(+), 59 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 8ac6cf7b7..19ec6ea7d 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -25,6 +25,7 @@ Released TBA was sometimes incorrectly disabled due to a Metal driver bug. - Detect when size of surface has changed under the covers. - Change rounding of surface size provided by Metal from truncation to rounding-with-half-to-even. +- Queue submissions retain wait semaphores until `MTLCommandBuffer` finishes. MoltenVK 1.2.2 diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm index 7cded7b94..896313530 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm @@ -1338,15 +1338,21 @@ static void signalAndUnmarkAsTracked(const MVKSwapchainSignaler& signaler) { _availabilitySignalers.erase(sigIter); } - // Ensure this image and the drawable are not destroyed while awaiting MTLCommandBuffer completion. - // We retain the drawable separately because new drawable might be acquired by this image by then. + // Ensure this image, the drawable, and the present fence are not destroyed while + // awaiting MTLCommandBuffer completion. We retain the drawable separately because + // a new drawable might be acquired by this image by then. retain(); [mtlDrwbl retain]; + auto* fence = presentInfo.fence; + if (fence) { fence->retain(); } [mtlCmdBuff addCompletedHandler: ^(id mcb) { [mtlDrwbl release]; makeAvailable(signaler); release(); - if (presentInfo.fence) { presentInfo.fence->signal(); } + if (fence) { + fence->signal(); + fence->release(); + } }]; signalPresentationSemaphore(signaler, mtlCmdBuff); diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h index 54a68595d..bad444f3c 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h @@ -189,6 +189,8 @@ class MVKQueueSubmission : public MVKBaseObject, public MVKConfigurableMixin { protected: friend class MVKQueue; + virtual void finish() = 0; + MVKQueue* _queue; MVKSmallVector> _waitSemaphores; }; @@ -213,7 +215,7 @@ class MVKQueueCommandBufferSubmission : public MVKQueueSubmission { id getActiveMTLCommandBuffer(); void setActiveMTLCommandBuffer(id mtlCmdBuff); void commitActiveMTLCommandBuffer(bool signalCompletion = false); - virtual void finish(); + void finish() override; virtual void submitCommandBuffers() {} MVKSmallVector> _signalSemaphores; @@ -270,7 +272,7 @@ class MVKQueuePresentSurfaceSubmission : public MVKQueueSubmission { const VkPresentInfoKHR* pPresentInfo); protected: - void stopAutoGPUCapture(); + void finish() override; MVKSmallVector _presentInfo; }; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm index 33c3246a3..192de63c9 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm @@ -290,11 +290,15 @@ _waitSemaphores.reserve(waitSemaphoreCount); for (uint32_t i = 0; i < waitSemaphoreCount; i++) { - _waitSemaphores.push_back(make_pair((MVKSemaphore*)pWaitSemaphores[i], (uint64_t)0)); + auto* sem4 = (MVKSemaphore*)pWaitSemaphores[i]; + sem4->retain(); + uint64_t sem4Val = 0; + _waitSemaphores.emplace_back(sem4, sem4Val); } } MVKQueueSubmission::~MVKQueueSubmission() { + for (auto s : _waitSemaphores) { s.first->release(); } _queue->release(); } @@ -530,33 +534,42 @@ #pragma mark - #pragma mark MVKQueuePresentSurfaceSubmission +// If the semaphores are encodable, wait on them by encoding them on the MTLCommandBuffer before presenting. +// If the semaphores are not encodable, wait on them inline after presenting. +// The semaphores know what to do. void MVKQueuePresentSurfaceSubmission::execute() { - // If the semaphores are encodable, wait on them by encoding them on the MTLCommandBuffer before presenting. - // If the semaphores are not encodable, wait on them inline after presenting. - // The semaphores know what to do. id mtlCmdBuff = _queue->getMTLCommandBuffer(kMVKCommandUseQueuePresent); [mtlCmdBuff enqueue]; for (auto& ws : _waitSemaphores) { ws.first->encodeWait(mtlCmdBuff, 0); } + + // Add completion handler that will destroy this submission only once the MTLCommandBuffer + // is finished with the resources retained here, including the wait semaphores. + // Completion handlers are also added in presentCAMetalDrawable() to retain the swapchain images. + [mtlCmdBuff addCompletedHandler: ^(id mcb) { + this->finish(); + }]; + for (int i = 0; i < _presentInfo.size(); i++ ) { _presentInfo[i].presentableImage->presentCAMetalDrawable(mtlCmdBuff, _presentInfo[i]); } + for (auto& ws : _waitSemaphores) { ws.first->encodeWait(nil, 0); } [mtlCmdBuff commit]; +} + +void MVKQueuePresentSurfaceSubmission::finish() { - // Let Xcode know the current frame is done, then start a new frame + // Let Xcode know the current frame is done, then start a new frame, + // and if auto GPU capture is active, and it's time to stop it, do so. auto cs = _queue->_submissionCaptureScope; cs->endScope(); cs->beginScope(); - stopAutoGPUCapture(); - - this->destroy(); -} - -void MVKQueuePresentSurfaceSubmission::stopAutoGPUCapture() { if (_queue->_queueFamily->getIndex() == mvkConfig().defaultGPUCaptureScopeQueueFamilyIndex && _queue->_index == mvkConfig().defaultGPUCaptureScopeQueueIndex) { _queue->getDevice()->stopAutoGPUCapture(MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_FRAME); } + + this->destroy(); } MVKQueuePresentSurfaceSubmission::MVKQueuePresentSurfaceSubmission(MVKQueue* queue, diff --git a/MoltenVK/MoltenVK/Utility/MVKFoundation.cpp b/MoltenVK/MoltenVK/Utility/MVKFoundation.cpp index 0314f6098..29ee115ff 100644 --- a/MoltenVK/MoltenVK/Utility/MVKFoundation.cpp +++ b/MoltenVK/MoltenVK/Utility/MVKFoundation.cpp @@ -24,49 +24,57 @@ const char* mvkVkResultName(VkResult vkResult) { switch (vkResult) { - CASE_STRINGIFY(VK_SUCCESS); - CASE_STRINGIFY(VK_NOT_READY); - CASE_STRINGIFY(VK_TIMEOUT); - CASE_STRINGIFY(VK_EVENT_SET); - CASE_STRINGIFY(VK_EVENT_RESET); - CASE_STRINGIFY(VK_INCOMPLETE); - - CASE_STRINGIFY(VK_ERROR_OUT_OF_HOST_MEMORY); - CASE_STRINGIFY(VK_ERROR_OUT_OF_DEVICE_MEMORY); - CASE_STRINGIFY(VK_ERROR_INITIALIZATION_FAILED); - CASE_STRINGIFY(VK_ERROR_DEVICE_LOST); - CASE_STRINGIFY(VK_ERROR_MEMORY_MAP_FAILED); - CASE_STRINGIFY(VK_ERROR_LAYER_NOT_PRESENT); - CASE_STRINGIFY(VK_ERROR_EXTENSION_NOT_PRESENT); - CASE_STRINGIFY(VK_ERROR_FEATURE_NOT_PRESENT); - CASE_STRINGIFY(VK_ERROR_INCOMPATIBLE_DRIVER); - CASE_STRINGIFY(VK_ERROR_TOO_MANY_OBJECTS); - CASE_STRINGIFY(VK_ERROR_FORMAT_NOT_SUPPORTED); - CASE_STRINGIFY(VK_ERROR_FRAGMENTED_POOL); - - CASE_STRINGIFY(VK_ERROR_UNKNOWN); - CASE_STRINGIFY(VK_ERROR_OUT_OF_POOL_MEMORY); - CASE_STRINGIFY(VK_ERROR_INVALID_EXTERNAL_HANDLE); - CASE_STRINGIFY(VK_ERROR_FRAGMENTATION); - CASE_STRINGIFY(VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS); - - CASE_STRINGIFY(VK_ERROR_SURFACE_LOST_KHR); - CASE_STRINGIFY(VK_ERROR_NATIVE_WINDOW_IN_USE_KHR); - CASE_STRINGIFY(VK_SUBOPTIMAL_KHR); - CASE_STRINGIFY(VK_ERROR_OUT_OF_DATE_KHR); - CASE_STRINGIFY(VK_ERROR_INCOMPATIBLE_DISPLAY_KHR); - - CASE_STRINGIFY(VK_ERROR_VALIDATION_FAILED_EXT); - CASE_STRINGIFY(VK_ERROR_INVALID_SHADER_NV); - - CASE_STRINGIFY(VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT); - CASE_STRINGIFY(VK_ERROR_NOT_PERMITTED_EXT); - CASE_STRINGIFY(VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT); - CASE_STRINGIFY(VK_THREAD_IDLE_KHR); - CASE_STRINGIFY(VK_THREAD_DONE_KHR); - CASE_STRINGIFY(VK_OPERATION_DEFERRED_KHR); - CASE_STRINGIFY(VK_OPERATION_NOT_DEFERRED_KHR); - CASE_STRINGIFY(VK_PIPELINE_COMPILE_REQUIRED_EXT); + CASE_STRINGIFY(VK_SUCCESS); + CASE_STRINGIFY(VK_NOT_READY); + CASE_STRINGIFY(VK_TIMEOUT); + CASE_STRINGIFY(VK_EVENT_SET); + CASE_STRINGIFY(VK_EVENT_RESET); + CASE_STRINGIFY(VK_INCOMPLETE); + + CASE_STRINGIFY(VK_ERROR_OUT_OF_HOST_MEMORY); + CASE_STRINGIFY(VK_ERROR_OUT_OF_DEVICE_MEMORY); + CASE_STRINGIFY(VK_ERROR_INITIALIZATION_FAILED); + CASE_STRINGIFY(VK_ERROR_DEVICE_LOST); + CASE_STRINGIFY(VK_ERROR_MEMORY_MAP_FAILED); + CASE_STRINGIFY(VK_ERROR_LAYER_NOT_PRESENT); + CASE_STRINGIFY(VK_ERROR_EXTENSION_NOT_PRESENT); + CASE_STRINGIFY(VK_ERROR_FEATURE_NOT_PRESENT); + CASE_STRINGIFY(VK_ERROR_INCOMPATIBLE_DRIVER); + CASE_STRINGIFY(VK_ERROR_TOO_MANY_OBJECTS); + CASE_STRINGIFY(VK_ERROR_FORMAT_NOT_SUPPORTED); + CASE_STRINGIFY(VK_ERROR_FRAGMENTED_POOL); + + CASE_STRINGIFY(VK_ERROR_UNKNOWN); + CASE_STRINGIFY(VK_ERROR_OUT_OF_POOL_MEMORY); + CASE_STRINGIFY(VK_ERROR_INVALID_EXTERNAL_HANDLE); + CASE_STRINGIFY(VK_ERROR_FRAGMENTATION); + CASE_STRINGIFY(VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS); + CASE_STRINGIFY(VK_PIPELINE_COMPILE_REQUIRED); + + CASE_STRINGIFY(VK_ERROR_SURFACE_LOST_KHR); + CASE_STRINGIFY(VK_ERROR_NATIVE_WINDOW_IN_USE_KHR); + CASE_STRINGIFY(VK_SUBOPTIMAL_KHR); + CASE_STRINGIFY(VK_ERROR_OUT_OF_DATE_KHR); + CASE_STRINGIFY(VK_ERROR_INCOMPATIBLE_DISPLAY_KHR); + + CASE_STRINGIFY(VK_ERROR_VALIDATION_FAILED_EXT); + CASE_STRINGIFY(VK_ERROR_INVALID_SHADER_NV); + CASE_STRINGIFY(VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR); + + CASE_STRINGIFY(VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR); + CASE_STRINGIFY(VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR); + CASE_STRINGIFY(VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR); + CASE_STRINGIFY(VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR); + CASE_STRINGIFY(VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR); + + CASE_STRINGIFY(VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT); + CASE_STRINGIFY(VK_ERROR_NOT_PERMITTED_KHR); + CASE_STRINGIFY(VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT); + CASE_STRINGIFY(VK_THREAD_IDLE_KHR); + CASE_STRINGIFY(VK_THREAD_DONE_KHR); + CASE_STRINGIFY(VK_OPERATION_DEFERRED_KHR); + CASE_STRINGIFY(VK_OPERATION_NOT_DEFERRED_KHR); + CASE_STRINGIFY(VK_ERROR_COMPRESSION_EXHAUSTED_EXT); default: return "VK_UNKNOWN_VK_Result"; } From 160a327cbb87a2561185a4d3c10117d40d58f974 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Sun, 5 Feb 2023 00:26:04 -0800 Subject: [PATCH 48/72] enable availability of EXT_shader_atomic_float and add docs for how to replace Vulkan SDK .dylib while avoiding need to reboot. --- Docs/MoltenVK_Runtime_UserGuide.md | 22 ++++++++++++++++++++++ MoltenVK/MoltenVK/Layers/MVKExtensions.def | 1 + 2 files changed, 23 insertions(+) diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index ae08b5da6..7b89c5725 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -22,6 +22,7 @@ Table of Contents - [Installing **MoltenVK** in Your *Vulkan* Application](#install) - [Install *MoltenVK* as a Universal `XCFramework`](#install_xcfwk) - [Install *MoltenVK* as a Dynamic Library](#install_dylib) + - [Install *MoltenVK* replacing the Vulkan SDK .dylib](#install_vksdk) - [Build and Runtime Requirements](#requirements) - [Interacting with the **MoltenVK** Runtime](#interaction) - [MoltenVK `VK_MVK_moltenvk` Extension](#moltenvk_extension) @@ -219,6 +220,27 @@ To link **MoltenVK** to your application as a dynamic library (`.dylib`), follow - `MoltenVK/dylib/tvOS/libMoltenVK.dylib` *(tvOS)* + +### Install *MoltenVK* replacing the Vulkan SDK .dylib + +There are a few potential issues when building **MoltenVK** to replace the version installed via the *[Vulkan SDK](https://vulkan.lunarg.com/sdk/home)* standard install process, which lives in `/usr/local/lib/libMoltenVK.dylib`. + +1. You must *remove* the existing `.dylib` file before copying the new one, because of the way that the gatekeeper system works to prevent malicious overwriting of files in standard locations such as `/usr/local`: + +```bash +$ sudo rm /usr/local/lib/libMoltenVK.dylib +$ sudo cp Package/Release/MoltenVK/dylib/macOS/libMoltenVK.dylib /usr/local/lib +``` + +If you do not do the remove first, your application will terminate immediately with a singularly unhelpful `Killed: 9` message. + +2. Do *not* copy the `MoltenVK_icd.json` file from the newly-built package to `/usr/local/share/vulkan/icd.d` -- it will not work and will result in errors about not being able to initialize the instance. The one installed by Vulkan SDK uses a relative path to specify the location of the `.dylib`, whereas the one in the package specifies it in the same directory. + +3. The default config for command-line build has verbose logging info turned on -- if you want it to be like the original, use this command for building: + +```bash +$ make macos MVK_CONFIG_LOG_LEVEL=1 +``` ### Build and Runtime Requirements diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.def b/MoltenVK/MoltenVK/Layers/MVKExtensions.def index 17ed1f255..ec57fbf44 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.def +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.def @@ -113,6 +113,7 @@ MVK_EXTENSION(EXT_scalar_block_layout, EXT_SCALAR_BLOCK_LAYOUT, MVK_EXTENSION(EXT_separate_stencil_usage, EXT_SEPARATE_STENCIL_USAGE, DEVICE, 10.11, 8.0) MVK_EXTENSION(EXT_shader_stencil_export, EXT_SHADER_STENCIL_EXPORT, DEVICE, 10.14, 12.0) MVK_EXTENSION(EXT_shader_viewport_index_layer, EXT_SHADER_VIEWPORT_INDEX_LAYER, DEVICE, 10.11, 8.0) +MVK_EXTENSION(EXT_shader_atomic_float, EXT_SHADER_ATOMIC_FLOAT, DEVICE, 13.0, 16.0) MVK_EXTENSION(EXT_subgroup_size_control, EXT_SUBGROUP_SIZE_CONTROL, DEVICE, 10.14, 13.0) MVK_EXTENSION(EXT_swapchain_colorspace, EXT_SWAPCHAIN_COLOR_SPACE, INSTANCE, 10.11, 9.0) MVK_EXTENSION(EXT_texel_buffer_alignment, EXT_TEXEL_BUFFER_ALIGNMENT, DEVICE, 10.13, 11.0) From 79ff67138e403386e324e31a864b236196d1b869 Mon Sep 17 00:00:00 2001 From: sean Date: Sun, 5 Feb 2023 21:14:02 +0100 Subject: [PATCH 49/72] Fix: Don't assume M1/M2 are only available for arm64 targets --- Common/MVKCommonEnvironment.h | 4 ++ MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 8 ++-- .../MoltenVK/GPUObjects/MVKPixelFormats.mm | 46 ++++++++++--------- 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/Common/MVKCommonEnvironment.h b/Common/MVKCommonEnvironment.h index ae4c6e348..4f2401c24 100644 --- a/Common/MVKCommonEnvironment.h +++ b/Common/MVKCommonEnvironment.h @@ -96,6 +96,10 @@ extern "C" { # define MVK_XCODE_13 ((__MAC_OS_X_VERSION_MAX_ALLOWED >= 120000) || \ (__IPHONE_OS_VERSION_MAX_ALLOWED >= 150000)) // Also covers tvOS #endif +#ifndef MVK_XCODE_12_2 +# define MVK_XCODE_12_2 ((__MAC_OS_X_VERSION_MAX_ALLOWED >= 110000) || \ + (__IPHONE_OS_VERSION_MAX_ALLOWED >= 140200)) // Also covers tvOS +#endif #ifndef MVK_XCODE_12 # define MVK_XCODE_12 ((__MAC_OS_X_VERSION_MAX_ALLOWED >= 101600) || \ (__IPHONE_OS_VERSION_MAX_ALLOWED >= 140000)) // Also covers tvOS diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index ed61f91c5..876d68306 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -2789,7 +2789,7 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope #if (MVK_IOS || MVK_MACOS) && MVK_XCODE_12 if (supportsMTLGPUFamily(Apple7)) { gpuFam = MTLGPUFamilyApple7; } #endif -#if MVK_IOS && MVK_XCODE_13 +#if (MVK_IOS || MVK_MACOS) && MVK_XCODE_13 if (supportsMTLGPUFamily(Apple8)) { gpuFam = MTLGPUFamilyApple8; } #endif @@ -3205,7 +3205,7 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope logMsg += "\n\tsupports the following Metal Versions, GPU's and Feature Sets:"; logMsg += "\n\t\tMetal Shading Language %s"; -#if MVK_IOS && MVK_XCODE_13 +#if (MVK_IOS || MVK_MACOS) && MVK_XCODE_13 if (supportsMTLGPUFamily(Apple8)) { logMsg += "\n\t\tGPU Family Apple 8"; } #endif #if (MVK_IOS || MVK_MACOS) && MVK_XCODE_12 @@ -4752,8 +4752,8 @@ uint64_t mvkGetRegistryID(id mtlDevice) { bool mvkSupportsBCTextureCompression(id mtlDevice) { #if MVK_IOS || MVK_TVOS || MVK_MACCAT return false; -#endif -#if MVK_MACOS && !MVK_MACCAT + #endif + #if MVK_MACOS && !MVK_MACCAT #if MVK_XCODE_12 if ([mtlDevice respondsToSelector: @selector(supportsBCTextureCompression)]) { return mtlDevice.supportsBCTextureCompression; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm index a89416a8c..f8af88872 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm @@ -23,27 +23,43 @@ using namespace std; +// Some Metal formats are not supported by the headers on certain platforms. However, formats have +// been 'unlocked' on some platforms with newer versions of Xcode. // Add stub defs for unsupported MTLPixelFormats per platform #if MVK_MACOS -# if !MVK_MACOS_APPLE_SILICON +# if !MVK_XCODE_12_2 // macOS 11.0 / iOS 14.2 +# define MTLPixelFormatR8Unorm_sRGB MTLPixelFormatInvalid +# define MTLPixelFormatRG8Unorm_sRGB MTLPixelFormatInvalid # define MTLPixelFormatABGR4Unorm MTLPixelFormatInvalid # define MTLPixelFormatB5G6R5Unorm MTLPixelFormatInvalid # define MTLPixelFormatA1BGR5Unorm MTLPixelFormatInvalid # define MTLPixelFormatBGR5A1Unorm MTLPixelFormatInvalid -# define MTLPixelFormatR8Unorm_sRGB MTLPixelFormatInvalid -# define MTLPixelFormatRG8Unorm_sRGB MTLPixelFormatInvalid -# define MTLPixelFormatETC2_RGB8 MTLPixelFormatInvalid -# define MTLPixelFormatETC2_RGB8_sRGB MTLPixelFormatInvalid -# define MTLPixelFormatETC2_RGB8A1 MTLPixelFormatInvalid -# define MTLPixelFormatETC2_RGB8A1_sRGB MTLPixelFormatInvalid +# define MTLPixelFormatBGR10_XR MTLPixelFormatInvalid +# define MTLPixelFormatBGR10_XR_sRGB MTLPixelFormatInvalid +# define MTLPixelFormatBGRA10_XR MTLPixelFormatInvalid +# define MTLPixelFormatBGRA10_XR_sRGB MTLPixelFormatInvalid + +# define MTLPixelFormatPVRTC_RGB_2BPP MTLPixelFormatInvalid +# define MTLPixelFormatPVRTC_RGB_2BPP_sRGB MTLPixelFormatInvalid +# define MTLPixelFormatPVRTC_RGB_4BPP MTLPixelFormatInvalid +# define MTLPixelFormatPVRTC_RGB_4BPP_sRGB MTLPixelFormatInvalid +# define MTLPixelFormatPVRTC_RGBA_2BPP MTLPixelFormatInvalid +# define MTLPixelFormatPVRTC_RGBA_2BPP_sRGB MTLPixelFormatInvalid +# define MTLPixelFormatPVRTC_RGBA_4BPP MTLPixelFormatInvalid +# define MTLPixelFormatPVRTC_RGBA_4BPP_sRGB MTLPixelFormatInvalid + # define MTLPixelFormatEAC_RGBA8 MTLPixelFormatInvalid # define MTLPixelFormatEAC_RGBA8_sRGB MTLPixelFormatInvalid # define MTLPixelFormatEAC_R11Unorm MTLPixelFormatInvalid # define MTLPixelFormatEAC_R11Snorm MTLPixelFormatInvalid # define MTLPixelFormatEAC_RG11Unorm MTLPixelFormatInvalid # define MTLPixelFormatEAC_RG11Snorm MTLPixelFormatInvalid +# define MTLPixelFormatETC2_RGB8 MTLPixelFormatInvalid +# define MTLPixelFormatETC2_RGB8_sRGB MTLPixelFormatInvalid +# define MTLPixelFormatETC2_RGB8A1 MTLPixelFormatInvalid +# define MTLPixelFormatETC2_RGB8A1_sRGB MTLPixelFormatInvalid # define MTLPixelFormatASTC_4x4_HDR MTLPixelFormatInvalid # define MTLPixelFormatASTC_4x4_LDR MTLPixelFormatInvalid @@ -87,20 +103,6 @@ # define MTLPixelFormatASTC_12x12_HDR MTLPixelFormatInvalid # define MTLPixelFormatASTC_12x12_LDR MTLPixelFormatInvalid # define MTLPixelFormatASTC_12x12_sRGB MTLPixelFormatInvalid - -# define MTLPixelFormatPVRTC_RGB_2BPP MTLPixelFormatInvalid -# define MTLPixelFormatPVRTC_RGB_2BPP_sRGB MTLPixelFormatInvalid -# define MTLPixelFormatPVRTC_RGB_4BPP MTLPixelFormatInvalid -# define MTLPixelFormatPVRTC_RGB_4BPP_sRGB MTLPixelFormatInvalid -# define MTLPixelFormatPVRTC_RGBA_2BPP MTLPixelFormatInvalid -# define MTLPixelFormatPVRTC_RGBA_2BPP_sRGB MTLPixelFormatInvalid -# define MTLPixelFormatPVRTC_RGBA_4BPP MTLPixelFormatInvalid -# define MTLPixelFormatPVRTC_RGBA_4BPP_sRGB MTLPixelFormatInvalid - -# define MTLPixelFormatBGRA10_XR MTLPixelFormatInvalid -# define MTLPixelFormatBGRA10_XR_sRGB MTLPixelFormatInvalid -# define MTLPixelFormatBGR10_XR MTLPixelFormatInvalid -# define MTLPixelFormatBGR10_XR_sRGB MTLPixelFormatInvalid # endif # define MTLPixelFormatDepth16Unorm_Stencil8 MTLPixelFormatDepth24Unorm_Stencil8 @@ -1489,7 +1491,7 @@ addFeatSetMTLPixFmtCaps( macOS_GPUFamily1_v3, BGR10A2Unorm, RFCMRB ); -#if MVK_MACOS_APPLE_SILICON +#if MVK_XCODE_12_2 if ([mtlDevice respondsToSelector: @selector(supports32BitMSAA)] && !mtlDevice.supports32BitMSAA) { From 2f87f85278c6044272a1feb5b8875bafb59912ad Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Sun, 12 Feb 2023 19:02:47 +0000 Subject: [PATCH 50/72] Fixes from PR review of VK_EXT_swapchain_maintenance1 and VK_EXT_surface_maintenance1. - Pass MVKImagePresentInfo struct by reference instead of copy. - Remove unused boolean to pass around VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT status. --- MoltenVK/MoltenVK/GPUObjects/MVKDevice.h | 1 - MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 4 +--- MoltenVK/MoltenVK/GPUObjects/MVKImage.h | 11 ++++------- MoltenVK/MoltenVK/GPUObjects/MVKImage.mm | 9 +++------ MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h | 4 ++-- MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm | 9 +++++---- 6 files changed, 15 insertions(+), 23 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h index a37d91eae..f58d9ee39 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h @@ -544,7 +544,6 @@ class MVKDevice : public MVKDispatchableVulkanAPIObject { MVKPresentableSwapchainImage* createPresentableSwapchainImage(const VkImageCreateInfo* pCreateInfo, MVKSwapchain* swapchain, uint32_t swapchainIndex, - bool deferImgMemAlloc, const VkAllocationCallbacks* pAllocator); void destroyPresentableSwapchainImage(MVKPresentableSwapchainImage* mvkImg, const VkAllocationCallbacks* pAllocator); diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 8fe673d2e..2612005fc 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -3573,11 +3573,9 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope MVKPresentableSwapchainImage* MVKDevice::createPresentableSwapchainImage(const VkImageCreateInfo* pCreateInfo, MVKSwapchain* swapchain, uint32_t swapchainIndex, - bool deferImgMemAlloc, const VkAllocationCallbacks* pAllocator) { MVKPresentableSwapchainImage* mvkImg = new MVKPresentableSwapchainImage(this, pCreateInfo, - swapchain, swapchainIndex, - deferImgMemAlloc); + swapchain, swapchainIndex); for (auto& memoryBinding : mvkImg->_memoryBindings) { addResource(memoryBinding); } diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKImage.h b/MoltenVK/MoltenVK/GPUObjects/MVKImage.h index b6167533d..c2a03ee53 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKImage.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKImage.h @@ -449,16 +449,13 @@ class MVKPresentableSwapchainImage : public MVKSwapchainImage { #pragma mark Metal /** Presents the contained drawable to the OS. */ - void presentCAMetalDrawable(id mtlCmdBuff, MVKImagePresentInfo presentInfo); + void presentCAMetalDrawable(id mtlCmdBuff, MVKImagePresentInfo& presentInfo); #pragma mark Construction - MVKPresentableSwapchainImage(MVKDevice* device, - const VkImageCreateInfo* pCreateInfo, - MVKSwapchain* swapchain, - uint32_t swapchainIndex, - bool deferImgMemAlloc); + MVKPresentableSwapchainImage(MVKDevice* device, const VkImageCreateInfo* pCreateInfo, + MVKSwapchain* swapchain, uint32_t swapchainIndex); ~MVKPresentableSwapchainImage() override; @@ -466,7 +463,7 @@ class MVKPresentableSwapchainImage : public MVKSwapchainImage { friend MVKSwapchain; id getCAMetalDrawable() override; - void addPresentedHandler(id mtlDrawable, MVKImagePresentInfo presentInfo); + void addPresentedHandler(id mtlDrawable, MVKImagePresentInfo& presentInfo); void releaseMetalDrawable(); MVKSwapchainImageAvailability getAvailability(); void makeAvailable(const MVKSwapchainSignaler& signaler); diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm index 896313530..19822de6a 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm @@ -1296,7 +1296,7 @@ static void signalAndUnmarkAsTracked(const MVKSwapchainSignaler& signaler) { // Present the drawable and make myself available only once the command buffer has completed. void MVKPresentableSwapchainImage::presentCAMetalDrawable(id mtlCmdBuff, - MVKImagePresentInfo presentInfo) { + MVKImagePresentInfo& presentInfo) { lock_guard lock(_availabilityLock); _swapchain->willPresentSurface(getMTLTexture(0), mtlCmdBuff); @@ -1359,7 +1359,7 @@ static void signalAndUnmarkAsTracked(const MVKSwapchainSignaler& signaler) { } void MVKPresentableSwapchainImage::addPresentedHandler(id mtlDrawable, - MVKImagePresentInfo presentInfo) { + MVKImagePresentInfo& presentInfo) { #if !MVK_OS_SIMULATOR if ([mtlDrawable respondsToSelector: @selector(addPresentedHandler:)]) { retain(); // Ensure this image is not destroyed while awaiting presentation @@ -1418,13 +1418,10 @@ static void signalAndUnmarkAsTracked(const MVKSwapchainSignaler& signaler) { #pragma mark Construction -// The deferImgMemAlloc parameter is ignored, because image memory allocation is provided by a MTLDrawable, -// which is retrieved lazily, and hence is already as deferred (or as deferred as we can make it). MVKPresentableSwapchainImage::MVKPresentableSwapchainImage(MVKDevice* device, const VkImageCreateInfo* pCreateInfo, MVKSwapchain* swapchain, - uint32_t swapchainIndex, - bool deferImgMemAlloc) : + uint32_t swapchainIndex) : MVKSwapchainImage(device, pCreateInfo, swapchain, swapchainIndex) { _mtlDrawable = nil; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h index a82ef814c..926661aa3 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h @@ -132,10 +132,10 @@ class MVKSwapchain : public MVKVulkanAPIDeviceObject { void willPresentSurface(id mtlTexture, id mtlCmdBuff); void renderWatermark(id mtlTexture, id mtlCmdBuff); void markFrameInterval(); - void recordPresentTime(MVKImagePresentInfo presentInfo, uint64_t actualPresentTime = 0); + void recordPresentTime(MVKImagePresentInfo& presentInfo, uint64_t actualPresentTime = 0); CAMetalLayer* _mtlLayer = nil; - MVKWatermark* _licenseWatermark = nil; + MVKWatermark* _licenseWatermark = nullptr; MVKSmallVector _presentableImages; MVKSmallVector _compatiblePresentModes; static const int kMaxPresentationHistory = 60; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm index 49686a19a..792c81fab 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm @@ -469,11 +469,12 @@ static CALayerContentsGravity getCALayerContentsGravity(VkSwapchainPresentScalin mvkEnableFlags(imgInfo.flags, VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT); } - bool deferImgMemAlloc = mvkAreAllFlagsEnabled(pCreateInfo->flags, VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT); + // The VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT flag is ignored, because + // swapchain image memory allocation is provided by a MTLDrawable, which is retrieved + // lazily, and hence is already deferred (or as deferred as we can make it). for (uint32_t imgIdx = 0; imgIdx < imgCnt; imgIdx++) { - _presentableImages.push_back(_device->createPresentableSwapchainImage(&imgInfo, this, imgIdx, - deferImgMemAlloc, NULL)); + _presentableImages.push_back(_device->createPresentableSwapchainImage(&imgInfo, this, imgIdx, nullptr)); } NSString* screenName = @"Main Screen"; @@ -543,7 +544,7 @@ static CALayerContentsGravity getCALayerContentsGravity(VkSwapchainPresentScalin return res; } -void MVKSwapchain::recordPresentTime(MVKImagePresentInfo presentInfo, uint64_t actualPresentTime) { +void MVKSwapchain::recordPresentTime(MVKImagePresentInfo& presentInfo, uint64_t actualPresentTime) { std::lock_guard lock(_presentHistoryLock); if (_presentHistoryCount < kMaxPresentationHistory) { _presentHistoryCount++; From eabede8cdf8aac026656349a709d86e202afa16e Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Sun, 12 Feb 2023 20:14:18 +0000 Subject: [PATCH 51/72] Replace static inline with constexpr where possible. --- .../Commands/MVKCommandEncodingPool.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm | 2 +- MoltenVK/MoltenVK/Utility/MVKFoundation.h | 47 +++++++++---------- 4 files changed, 26 insertions(+), 27 deletions(-) diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.mm b/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.mm index 11e07cec5..d861422b8 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.mm @@ -109,7 +109,7 @@ MVK_ENC_REZ_ACCESS(_mtlFillBufferComputePipelineState, newCmdFillBufferMTLComputePipelineState(_commandPool)); } -static inline uint32_t getRenderpassLoadStoreStateIndex(MVKFormatType type) { +constexpr uint32_t getRenderpassLoadStoreStateIndex(MVKFormatType type) { switch (type) { case kMVKFormatColorHalf: case kMVKFormatColorFloat: diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h b/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h index 85ec750a6..414e33a5c 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h @@ -314,7 +314,7 @@ uint32_t mvkGetAttachments(const VkRenderingInfo* pRenderingInfo, VkClearValue clearValues[]); /** Returns whether the view mask uses multiview. */ -static inline bool mvkIsMultiview(uint32_t viewMask) { return viewMask != 0; } +constexpr bool mvkIsMultiview(uint32_t viewMask) { return viewMask != 0; } /** Returns whether the attachment is being used. */ bool mvkIsColorAttachmentUsed(const VkPipelineRenderingCreateInfo* pRendInfo, uint32_t colorAttIdx); diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm index 792c81fab..af87fd60c 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm @@ -176,7 +176,7 @@ // According to D.3.28: // "[x and y] specify the normalized x and y chromaticity coordinates, respectively... // in normalized increments of 0.00002." -static inline uint16_t FloatToCIE1931Unorm(float x) { return OSSwapHostToBigInt16((uint16_t)(x * 100000 / 2)); } +constexpr uint16_t FloatToCIE1931Unorm(float x) { return OSSwapHostToBigInt16((uint16_t)(x * 100000 / 2)); } static inline CIE1931XY VkXYColorEXTToCIE1931XY(VkXYColorEXT xy) { return { FloatToCIE1931Unorm(xy.x), FloatToCIE1931Unorm(xy.y) }; } diff --git a/MoltenVK/MoltenVK/Utility/MVKFoundation.h b/MoltenVK/MoltenVK/Utility/MVKFoundation.h index d03b42f97..cbaaf6851 100644 --- a/MoltenVK/MoltenVK/Utility/MVKFoundation.h +++ b/MoltenVK/MoltenVK/Utility/MVKFoundation.h @@ -137,8 +137,7 @@ static inline std::string mvkGetMoltenVKVersionString(uint32_t mvkVersion) { /** Returns whether the specified positive value is a power-of-two. */ template -static inline bool mvkIsPowerOfTwo(T value) { - // Test POT: (x != 0) && ((x & (x - 1)) == 0) +constexpr bool mvkIsPowerOfTwo(T value) { return value && ((value & (value - 1)) == 0); } @@ -148,7 +147,7 @@ static inline bool mvkIsPowerOfTwo(T value) { * that is larger than the specified value is returned. */ template -static inline T mvkEnsurePowerOfTwo(T value) { +constexpr T mvkEnsurePowerOfTwo(T value) { if (mvkIsPowerOfTwo(value)) { return value; } T pot = 1; @@ -163,7 +162,7 @@ static inline T mvkEnsurePowerOfTwo(T value) { * This implementation returns zero for both zero and one as inputs. */ template -static inline T mvkPowerOfTwoExponent(T value) { +constexpr T mvkPowerOfTwoExponent(T value) { T p2Value = mvkEnsurePowerOfTwo(value); // Count the trailing zeros @@ -184,7 +183,7 @@ static inline T mvkPowerOfTwoExponent(T value) { * This is a low level utility method. Usually you will use the convenience functions * mvkAlignAddress() and mvkAlignByteCount() to align addresses and offsets respectively. */ -static inline uintptr_t mvkAlignByteRef(uintptr_t byteRef, uintptr_t byteAlignment, bool alignDown = false) { +constexpr uintptr_t mvkAlignByteRef(uintptr_t byteRef, uintptr_t byteAlignment, bool alignDown = false) { if (byteAlignment == 0) { return byteRef; } assert(mvkIsPowerOfTwo(byteAlignment)); @@ -213,7 +212,7 @@ static inline void* mvkAlignAddress(void* address, uintptr_t byteAlignment, bool * which will be greater than or equal to the original offset if alignDown is false, or less * than or equal to the original offset if alignDown is true. */ -static inline uintptr_t mvkAlignByteCount(uintptr_t byteCount, uintptr_t byteAlignment, bool alignDown = false) { +constexpr uint64_t mvkAlignByteCount(uint64_t byteCount, uint64_t byteAlignment, bool alignDown = false) { return mvkAlignByteRef(byteCount, byteAlignment, alignDown); } @@ -254,22 +253,22 @@ static inline VkExtent2D mvkVkExtent2DFromVkExtent3D(VkExtent3D e) { return {e.w static inline VkExtent3D mvkVkExtent3DFromVkExtent2D(VkExtent2D e) { return {e.width, e.height, 1U }; } /** Returns whether the two Vulkan extents are equal by comparing their respective components. */ -static inline bool mvkVkExtent2DsAreEqual(VkExtent2D e1, VkExtent2D e2) { +constexpr bool mvkVkExtent2DsAreEqual(VkExtent2D e1, VkExtent2D e2) { return (e1.width == e2.width) && (e1.height == e2.height); } /** Returns whether the two Vulkan extents are equal by comparing their respective components. */ -static inline bool mvkVkExtent3DsAreEqual(VkExtent3D e1, VkExtent3D e2) { +constexpr bool mvkVkExtent3DsAreEqual(VkExtent3D e1, VkExtent3D e2) { return (e1.width == e2.width) && (e1.height == e2.height) && (e1.depth == e2.depth); } /** Returns whether the two Vulkan offsets are equal by comparing their respective components. */ -static inline bool mvkVkOffset2DsAreEqual(VkOffset2D os1, VkOffset2D os2) { +constexpr bool mvkVkOffset2DsAreEqual(VkOffset2D os1, VkOffset2D os2) { return (os1.x == os2.x) && (os1.y == os2.y); } /** Returns whether the two Vulkan offsets are equal by comparing their respective components. */ -static inline bool mvkVkOffset3DsAreEqual(VkOffset3D os1, VkOffset3D os2) { +constexpr bool mvkVkOffset3DsAreEqual(VkOffset3D os1, VkOffset3D os2) { return (os1.x == os2.x) && (os1.y == os2.y) && (os1.z == os2.z); } @@ -286,9 +285,9 @@ static inline VkOffset3D mvkVkOffset3DDifference(VkOffset3D minuend, VkOffset3D } /** Packs the four swizzle components into a single 32-bit word. */ -static inline uint32_t mvkPackSwizzle(VkComponentMapping components) { - return ((components.r & 0xFF) << 0) | ((components.g & 0xFF) << 8) | - ((components.b & 0xFF) << 16) | ((components.a & 0xFF) << 24); +constexpr uint32_t mvkPackSwizzle(VkComponentMapping components) { + return (((components.r & 0xFF) << 0) | ((components.g & 0xFF) << 8) | + ((components.b & 0xFF) << 16) | ((components.a & 0xFF) << 24)); } /** Unpacks a single 32-bit word containing four swizzle components. */ @@ -311,9 +310,9 @@ static inline VkComponentMapping mvkUnpackSwizzle(uint32_t packed) { * 3) Either cs1 or cs2 is VK_COMPONENT_SWIZZLE_MAX_ENUM, which is considered a wildcard, * and matches any value. */ -static inline bool mvkVKComponentSwizzlesMatch(VkComponentSwizzle cs1, - VkComponentSwizzle cs2, - VkComponentSwizzle csPos) { +constexpr bool mvkVKComponentSwizzlesMatch(VkComponentSwizzle cs1, + VkComponentSwizzle cs2, + VkComponentSwizzle csPos) { return ((cs1 == cs2) || ((cs1 == VK_COMPONENT_SWIZZLE_IDENTITY) && (cs2 == csPos)) || ((cs2 == VK_COMPONENT_SWIZZLE_IDENTITY) && (cs1 == csPos)) || @@ -328,7 +327,7 @@ static inline bool mvkVKComponentSwizzlesMatch(VkComponentSwizzle cs1, * A component value of VK_COMPONENT_SWIZZLE_MAX_ENUM is considered a wildcard and matches * any value in the corresponding component in the other mapping. */ -static inline bool mvkVkComponentMappingsMatch(VkComponentMapping cm1, VkComponentMapping cm2) { +constexpr bool mvkVkComponentMappingsMatch(VkComponentMapping cm1, VkComponentMapping cm2) { return (mvkVKComponentSwizzlesMatch(cm1.r, cm2.r, VK_COMPONENT_SWIZZLE_R) && mvkVKComponentSwizzlesMatch(cm1.g, cm2.g, VK_COMPONENT_SWIZZLE_G) && mvkVKComponentSwizzlesMatch(cm1.b, cm2.b, VK_COMPONENT_SWIZZLE_B) && @@ -342,7 +341,7 @@ static inline bool mvkVkComponentMappingsMatch(VkComponentMapping cm1, VkCompone #pragma mark Math /** Rounds the value to nearest integer using half-to-even rounding. */ -static inline double mvkRoundHalfToEven(const double val) { +constexpr double mvkRoundHalfToEven(const double val) { return val - std::remainder(val, 1.0); // remainder() uses half-to-even rounding } @@ -556,7 +555,7 @@ bool mvkAreEqual(const T* pV1, const T* pV2, size_t count = 1) { * otherwise returns false. This functionality is different than the char version of mvkAreEqual(), * which works on individual chars or char arrays, not strings. */ -static inline bool mvkStringsAreEqual(const char* pV1, const char* pV2, size_t count = 1) { +constexpr bool mvkStringsAreEqual(const char* pV1, const char* pV2, size_t count = 1) { return (pV1 && pV2) ? (strcmp(pV1, pV2) == 0) : false; } @@ -573,7 +572,7 @@ static inline bool mvkStringsAreEqual(const char* pV1, const char* pV2, size_t c * If the destination pointer is NULL, does nothing, and returns false. */ template -bool mvkSetOrClear(T* pDest, const T* pSrc) { +constexpr bool mvkSetOrClear(T* pDest, const T* pSrc) { if (pDest && pSrc) { *pDest = *pSrc; return true; @@ -595,17 +594,17 @@ void mvkDisableFlags(Tv& value, const Tm bitMask) { value = (Tv)(value & ~(Tv)bi /** Returns whether the specified value has ANY of the flags specified in bitMask enabled (set to 1). */ template -bool mvkIsAnyFlagEnabled(Tv value, const Tm bitMask) { return ((value & bitMask) != 0); } +constexpr bool mvkIsAnyFlagEnabled(Tv value, const Tm bitMask) { return ((value & bitMask) != 0); } /** Returns whether the specified value has ALL of the flags specified in bitMask enabled (set to 1). */ template -bool mvkAreAllFlagsEnabled(Tv value, const Tm bitMask) { return ((value & bitMask) == bitMask); } +constexpr bool mvkAreAllFlagsEnabled(Tv value, const Tm bitMask) { return ((value & bitMask) == bitMask); } /** Returns whether the specified value has ONLY one or more of the flags specified in bitMask enabled (set to 1), and none others. */ template -bool mvkIsOnlyAnyFlagEnabled(Tv value, const Tm bitMask) { return (mvkIsAnyFlagEnabled(value, bitMask) && ((value | bitMask) == bitMask)); } +constexpr bool mvkIsOnlyAnyFlagEnabled(Tv value, const Tm bitMask) { return (mvkIsAnyFlagEnabled(value, bitMask) && ((value | bitMask) == bitMask)); } /** Returns whether the specified value has ONLY ALL of the flags specified in bitMask enabled (set to 1), and none others. */ template -bool mvkAreOnlyAllFlagsEnabled(Tv value, const Tm bitMask) { return (value == bitMask); } +constexpr bool mvkAreOnlyAllFlagsEnabled(Tv value, const Tm bitMask) { return (value == bitMask); } From fbf5159ec2b5f5fa53ae0aad90d6879859f9fb9e Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 13 Feb 2023 23:17:00 -0500 Subject: [PATCH 52/72] Fix rounding error when checking if the drawableSize of a CAMetalLayer has changed. - Add mvkGetNaturalExtent() to consolidate retrieving the natural rounded extent of the CAMetalDrawables that will be created by a CAMetalLayer, based on its drawableSize and contentsScale properties. - Replace MVKSwapchain::_mtlLayerDrawableSize with _mtlLayerDrawableExtent. - MVKSwapchain::hasOptimalSurface() compares last, actual, and natural rounded drawable extents of CAMetalLayer. --- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 4 +-- MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h | 31 +++++++++++--------- MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm | 19 ++++++++++-- MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h | 4 +-- 4 files changed, 37 insertions(+), 21 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 2612005fc..11ab94432 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -1141,7 +1141,7 @@ VkSurfaceCapabilitiesKHR& surfCaps = pSurfaceCapabilities->surfaceCapabilities; surfCaps.minImageCount = _metalFeatures.minSwapchainImageCount; surfCaps.maxImageCount = _metalFeatures.maxSwapchainImageCount; - surfCaps.currentExtent = mvkVkExtent2DFromCGSize(mtlLayer.naturalDrawableSizeMVK); + surfCaps.currentExtent = mvkGetNaturalExtent(mtlLayer); surfCaps.minImageExtent = { 1, 1 }; surfCaps.maxImageExtent = { _properties.limits.maxImageDimension2D, _properties.limits.maxImageDimension2D }; surfCaps.maxImageArrayLayers = 1; @@ -1389,7 +1389,7 @@ *pRectCount = 1; pRects[0].offset = { 0, 0 }; - pRects[0].extent = mvkVkExtent2DFromCGSize(mtlLayer.naturalDrawableSizeMVK); + pRects[0].extent = mvkGetNaturalExtent(mtlLayer); return VK_SUCCESS; } diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h index 926661aa3..47a26d2a7 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h @@ -79,19 +79,8 @@ class MVKSwapchain : public MVKVulkanAPIDeviceObject { /** Returns whether the parent surface is now lost and this swapchain must be recreated. */ bool getIsSurfaceLost() { return _surfaceLost; } - /** - * Returns whether this swapchain is optimally sized for the surface. - * It is if the app has specified deliberate swapchain scaling, or the CAMetalLayer - * drawableSize has not changed since the swapchain was created, and the CAMetalLayer - * will not need to be scaled when composited. - */ - bool hasOptimalSurface() { - if (_isDeliberatelyScaled) { return true; } - - auto drawSize = _mtlLayer.drawableSize; - return (CGSizeEqualToSize(drawSize, _mtlLayerDrawableSize) && - CGSizeEqualToSize(drawSize, _mtlLayer.naturalDrawableSizeMVK)); - } + /** Returns whether this swapchain is optimally sized for the surface. */ + bool hasOptimalSurface(); /** Returns the status of the surface. Surface loss takes precedence over sub-optimal errors. */ VkResult getSurfaceStatus() { @@ -145,7 +134,7 @@ class MVKSwapchain : public MVKVulkanAPIDeviceObject { std::mutex _presentHistoryLock; std::mutex _layerLock; uint64_t _lastFrameTime = 0; - CGSize _mtlLayerDrawableSize = {0.0, 0.0}; + VkExtent2D _mtlLayerDrawableExtent = {0, 0}; uint32_t _currentPerfLogFrameCount = 0; uint32_t _presentHistoryCount = 0; uint32_t _presentHistoryIndex = 0; @@ -154,3 +143,17 @@ class MVKSwapchain : public MVKVulkanAPIDeviceObject { bool _isDeliberatelyScaled = false; }; + +#pragma mark - +#pragma mark Support functions + +/** + * Returns the natural extent of the CAMetalLayer. + * + * The natural extent is the size of the bounds property of the layer, + * multiplied by the contentsScale property of the layer, rounded + * to nearest integer using half-to-even rounding. + */ +static inline VkExtent2D mvkGetNaturalExtent(CAMetalLayer* mtlLayer) { + return mvkVkExtent2DFromCGSize(mtlLayer.naturalDrawableSizeMVK); +} diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm index af87fd60c..1c0702af3 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm @@ -115,6 +115,18 @@ void MVKSwapchain::releaseUndisplayedSurfaces() {} +// This swapchain is optimally sized for the surface if the app has specified deliberate +// swapchain scaling, or the CAMetalLayer drawableSize has not changed since the swapchain +// was created, and the CAMetalLayer will not need to be scaled when composited. +bool MVKSwapchain::hasOptimalSurface() { + if (_isDeliberatelyScaled) { return true; } + + VkExtent2D drawExtent = mvkVkExtent2DFromCGSize(_mtlLayer.drawableSize); + return (mvkVkExtent2DsAreEqual(drawExtent, _mtlLayerDrawableExtent) && + mvkVkExtent2DsAreEqual(drawExtent, mvkGetNaturalExtent(_mtlLayer))); +} + + #pragma mark Rendering // Called automatically when a swapchain image is about to be presented to the surface by the queue. @@ -339,9 +351,10 @@ static CALayerContentsGravity getCALayerContentsGravity(VkSwapchainPresentScalin VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_STORAGE_BIT)); - // Remember drawable size to later detect if it has changed under the covers. - _mtlLayerDrawableSize = mvkCGSizeFromVkExtent2D(pCreateInfo->imageExtent); - _mtlLayer.drawableSize = _mtlLayerDrawableSize; + // Remember the extent to later detect if it has changed under the covers, + // and set the drawable size of the CAMetalLayer from the extent. + _mtlLayerDrawableExtent = pCreateInfo->imageExtent; + _mtlLayer.drawableSize = mvkCGSizeFromVkExtent2D(_mtlLayerDrawableExtent); if (pCreateInfo->compositeAlpha != VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR) { _mtlLayer.opaque = pCreateInfo->compositeAlpha == VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; diff --git a/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h b/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h index dcde22dc2..7181b237c 100644 --- a/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h +++ b/MoltenVK/MoltenVK/OS/CAMetalLayer+MoltenVK.h @@ -38,8 +38,8 @@ /** * Returns the natural drawable size for this layer. * - * The natural drawable size is the size of the bounds property of this layer, - * multiplied by the contentsScale property of this layer. + * The natural drawable size is the size of the bounds + * property multiplied by the contentsScale property. */ @property(nonatomic, readonly) CGSize naturalDrawableSizeMVK; From e897f49185eff0cb0180c55213283b50878144cc Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Tue, 14 Feb 2023 15:36:43 -0500 Subject: [PATCH 53/72] Fixes to recent update, to suit building on older Xcode versions. - Revert mvkRoundHalfToEven() to static inline instead of constexpr, because internal use of std::remainder() is not constexpr until C++23. - Replace non-template constexpr functions with static constexpr. - Update Github CI to default to use Xcode 14.2, and macos-latest (which is now macos-12). --- .github/workflows/CI.yml | 4 +- .../Commands/MVKCommandEncodingPool.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm | 2 +- MoltenVK/MoltenVK/Utility/MVKFoundation.h | 40 +++++++++---------- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index e7d9de8a7..cb7921959 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -15,9 +15,9 @@ jobs: build: strategy: matrix: - xcode: [ "14.1" ] + xcode: [ "14.2" ] platform: [ "macos", "maccat", "ios", "tvos" ] - os: [ "macos-12" ] + os: [ "macos-latest" ] upload_artifacts: [ true ] # additional specific configurations include: diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.mm b/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.mm index d861422b8..1d8c893d7 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandEncodingPool.mm @@ -109,7 +109,7 @@ MVK_ENC_REZ_ACCESS(_mtlFillBufferComputePipelineState, newCmdFillBufferMTLComputePipelineState(_commandPool)); } -constexpr uint32_t getRenderpassLoadStoreStateIndex(MVKFormatType type) { +static constexpr uint32_t getRenderpassLoadStoreStateIndex(MVKFormatType type) { switch (type) { case kMVKFormatColorHalf: case kMVKFormatColorFloat: diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h b/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h index 414e33a5c..25552b13c 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h @@ -314,7 +314,7 @@ uint32_t mvkGetAttachments(const VkRenderingInfo* pRenderingInfo, VkClearValue clearValues[]); /** Returns whether the view mask uses multiview. */ -constexpr bool mvkIsMultiview(uint32_t viewMask) { return viewMask != 0; } +static constexpr bool mvkIsMultiview(uint32_t viewMask) { return viewMask != 0; } /** Returns whether the attachment is being used. */ bool mvkIsColorAttachmentUsed(const VkPipelineRenderingCreateInfo* pRendInfo, uint32_t colorAttIdx); diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm index 1c0702af3..53aba660a 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm @@ -188,7 +188,7 @@ // According to D.3.28: // "[x and y] specify the normalized x and y chromaticity coordinates, respectively... // in normalized increments of 0.00002." -constexpr uint16_t FloatToCIE1931Unorm(float x) { return OSSwapHostToBigInt16((uint16_t)(x * 100000 / 2)); } +static constexpr uint16_t FloatToCIE1931Unorm(float x) { return OSSwapHostToBigInt16((uint16_t)(x * 100000 / 2)); } static inline CIE1931XY VkXYColorEXTToCIE1931XY(VkXYColorEXT xy) { return { FloatToCIE1931Unorm(xy.x), FloatToCIE1931Unorm(xy.y) }; } diff --git a/MoltenVK/MoltenVK/Utility/MVKFoundation.h b/MoltenVK/MoltenVK/Utility/MVKFoundation.h index cbaaf6851..3d123376d 100644 --- a/MoltenVK/MoltenVK/Utility/MVKFoundation.h +++ b/MoltenVK/MoltenVK/Utility/MVKFoundation.h @@ -137,7 +137,7 @@ static inline std::string mvkGetMoltenVKVersionString(uint32_t mvkVersion) { /** Returns whether the specified positive value is a power-of-two. */ template -constexpr bool mvkIsPowerOfTwo(T value) { +static constexpr bool mvkIsPowerOfTwo(T value) { return value && ((value & (value - 1)) == 0); } @@ -147,7 +147,7 @@ constexpr bool mvkIsPowerOfTwo(T value) { * that is larger than the specified value is returned. */ template -constexpr T mvkEnsurePowerOfTwo(T value) { +static constexpr T mvkEnsurePowerOfTwo(T value) { if (mvkIsPowerOfTwo(value)) { return value; } T pot = 1; @@ -162,7 +162,7 @@ constexpr T mvkEnsurePowerOfTwo(T value) { * This implementation returns zero for both zero and one as inputs. */ template -constexpr T mvkPowerOfTwoExponent(T value) { +static constexpr T mvkPowerOfTwoExponent(T value) { T p2Value = mvkEnsurePowerOfTwo(value); // Count the trailing zeros @@ -183,7 +183,7 @@ constexpr T mvkPowerOfTwoExponent(T value) { * This is a low level utility method. Usually you will use the convenience functions * mvkAlignAddress() and mvkAlignByteCount() to align addresses and offsets respectively. */ -constexpr uintptr_t mvkAlignByteRef(uintptr_t byteRef, uintptr_t byteAlignment, bool alignDown = false) { +static constexpr uintptr_t mvkAlignByteRef(uintptr_t byteRef, uintptr_t byteAlignment, bool alignDown = false) { if (byteAlignment == 0) { return byteRef; } assert(mvkIsPowerOfTwo(byteAlignment)); @@ -212,7 +212,7 @@ static inline void* mvkAlignAddress(void* address, uintptr_t byteAlignment, bool * which will be greater than or equal to the original offset if alignDown is false, or less * than or equal to the original offset if alignDown is true. */ -constexpr uint64_t mvkAlignByteCount(uint64_t byteCount, uint64_t byteAlignment, bool alignDown = false) { +static constexpr uint64_t mvkAlignByteCount(uint64_t byteCount, uint64_t byteAlignment, bool alignDown = false) { return mvkAlignByteRef(byteCount, byteAlignment, alignDown); } @@ -253,22 +253,22 @@ static inline VkExtent2D mvkVkExtent2DFromVkExtent3D(VkExtent3D e) { return {e.w static inline VkExtent3D mvkVkExtent3DFromVkExtent2D(VkExtent2D e) { return {e.width, e.height, 1U }; } /** Returns whether the two Vulkan extents are equal by comparing their respective components. */ -constexpr bool mvkVkExtent2DsAreEqual(VkExtent2D e1, VkExtent2D e2) { +static constexpr bool mvkVkExtent2DsAreEqual(VkExtent2D e1, VkExtent2D e2) { return (e1.width == e2.width) && (e1.height == e2.height); } /** Returns whether the two Vulkan extents are equal by comparing their respective components. */ -constexpr bool mvkVkExtent3DsAreEqual(VkExtent3D e1, VkExtent3D e2) { +static constexpr bool mvkVkExtent3DsAreEqual(VkExtent3D e1, VkExtent3D e2) { return (e1.width == e2.width) && (e1.height == e2.height) && (e1.depth == e2.depth); } /** Returns whether the two Vulkan offsets are equal by comparing their respective components. */ -constexpr bool mvkVkOffset2DsAreEqual(VkOffset2D os1, VkOffset2D os2) { +static constexpr bool mvkVkOffset2DsAreEqual(VkOffset2D os1, VkOffset2D os2) { return (os1.x == os2.x) && (os1.y == os2.y); } /** Returns whether the two Vulkan offsets are equal by comparing their respective components. */ -constexpr bool mvkVkOffset3DsAreEqual(VkOffset3D os1, VkOffset3D os2) { +static constexpr bool mvkVkOffset3DsAreEqual(VkOffset3D os1, VkOffset3D os2) { return (os1.x == os2.x) && (os1.y == os2.y) && (os1.z == os2.z); } @@ -285,7 +285,7 @@ static inline VkOffset3D mvkVkOffset3DDifference(VkOffset3D minuend, VkOffset3D } /** Packs the four swizzle components into a single 32-bit word. */ -constexpr uint32_t mvkPackSwizzle(VkComponentMapping components) { +static constexpr uint32_t mvkPackSwizzle(VkComponentMapping components) { return (((components.r & 0xFF) << 0) | ((components.g & 0xFF) << 8) | ((components.b & 0xFF) << 16) | ((components.a & 0xFF) << 24)); } @@ -310,7 +310,7 @@ static inline VkComponentMapping mvkUnpackSwizzle(uint32_t packed) { * 3) Either cs1 or cs2 is VK_COMPONENT_SWIZZLE_MAX_ENUM, which is considered a wildcard, * and matches any value. */ -constexpr bool mvkVKComponentSwizzlesMatch(VkComponentSwizzle cs1, +static constexpr bool mvkVKComponentSwizzlesMatch(VkComponentSwizzle cs1, VkComponentSwizzle cs2, VkComponentSwizzle csPos) { return ((cs1 == cs2) || @@ -327,7 +327,7 @@ constexpr bool mvkVKComponentSwizzlesMatch(VkComponentSwizzle cs1, * A component value of VK_COMPONENT_SWIZZLE_MAX_ENUM is considered a wildcard and matches * any value in the corresponding component in the other mapping. */ -constexpr bool mvkVkComponentMappingsMatch(VkComponentMapping cm1, VkComponentMapping cm2) { +static constexpr bool mvkVkComponentMappingsMatch(VkComponentMapping cm1, VkComponentMapping cm2) { return (mvkVKComponentSwizzlesMatch(cm1.r, cm2.r, VK_COMPONENT_SWIZZLE_R) && mvkVKComponentSwizzlesMatch(cm1.g, cm2.g, VK_COMPONENT_SWIZZLE_G) && mvkVKComponentSwizzlesMatch(cm1.b, cm2.b, VK_COMPONENT_SWIZZLE_B) && @@ -341,8 +341,8 @@ constexpr bool mvkVkComponentMappingsMatch(VkComponentMapping cm1, VkComponentMa #pragma mark Math /** Rounds the value to nearest integer using half-to-even rounding. */ -constexpr double mvkRoundHalfToEven(const double val) { - return val - std::remainder(val, 1.0); // remainder() uses half-to-even rounding +static inline double mvkRoundHalfToEven(const double val) { + return val - std::remainder(val, 1.0); // remainder() uses half-to-even rounding, and unfortunately isn't constexpr until C++23. } /** Returns whether the value will fit inside the numeric type. */ @@ -555,7 +555,7 @@ bool mvkAreEqual(const T* pV1, const T* pV2, size_t count = 1) { * otherwise returns false. This functionality is different than the char version of mvkAreEqual(), * which works on individual chars or char arrays, not strings. */ -constexpr bool mvkStringsAreEqual(const char* pV1, const char* pV2, size_t count = 1) { +static constexpr bool mvkStringsAreEqual(const char* pV1, const char* pV2, size_t count = 1) { return (pV1 && pV2) ? (strcmp(pV1, pV2) == 0) : false; } @@ -572,7 +572,7 @@ constexpr bool mvkStringsAreEqual(const char* pV1, const char* pV2, size_t count * If the destination pointer is NULL, does nothing, and returns false. */ template -constexpr bool mvkSetOrClear(T* pDest, const T* pSrc) { +static constexpr bool mvkSetOrClear(T* pDest, const T* pSrc) { if (pDest && pSrc) { *pDest = *pSrc; return true; @@ -594,17 +594,17 @@ void mvkDisableFlags(Tv& value, const Tm bitMask) { value = (Tv)(value & ~(Tv)bi /** Returns whether the specified value has ANY of the flags specified in bitMask enabled (set to 1). */ template -constexpr bool mvkIsAnyFlagEnabled(Tv value, const Tm bitMask) { return ((value & bitMask) != 0); } +static constexpr bool mvkIsAnyFlagEnabled(Tv value, const Tm bitMask) { return ((value & bitMask) != 0); } /** Returns whether the specified value has ALL of the flags specified in bitMask enabled (set to 1). */ template -constexpr bool mvkAreAllFlagsEnabled(Tv value, const Tm bitMask) { return ((value & bitMask) == bitMask); } +static constexpr bool mvkAreAllFlagsEnabled(Tv value, const Tm bitMask) { return ((value & bitMask) == bitMask); } /** Returns whether the specified value has ONLY one or more of the flags specified in bitMask enabled (set to 1), and none others. */ template -constexpr bool mvkIsOnlyAnyFlagEnabled(Tv value, const Tm bitMask) { return (mvkIsAnyFlagEnabled(value, bitMask) && ((value | bitMask) == bitMask)); } +static constexpr bool mvkIsOnlyAnyFlagEnabled(Tv value, const Tm bitMask) { return (mvkIsAnyFlagEnabled(value, bitMask) && ((value | bitMask) == bitMask)); } /** Returns whether the specified value has ONLY ALL of the flags specified in bitMask enabled (set to 1), and none others. */ template -constexpr bool mvkAreOnlyAllFlagsEnabled(Tv value, const Tm bitMask) { return (value == bitMask); } +static constexpr bool mvkAreOnlyAllFlagsEnabled(Tv value, const Tm bitMask) { return (value == bitMask); } From b6835f72984f62f3b3e9e365c7c3e483f120b092 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Tue, 21 Feb 2023 21:54:10 -0500 Subject: [PATCH 54/72] Fixes to dynamic rendering and occlusion queries. - Fix crash when VkCommandBufferInheritanceInfo::renderPass is VK_NULL_HANDLE. - Do not clear attachments when dynamic rendering is resumed. - Allow ending dynamic rendering to trigger next multiview pass if needed. - Move deciding to begin next multiview pass to MVKCommandEncoder. - Fix premature caching of occlusion query results during tessellation rendering. Tessellation ends Metal renderpass for compute control and eval stages. Wait until end of Metal renderpass after rasterization stage. - vkCmdCopyQueryPoolResults(): Fix loss of queries when query count is not a multiple of GPU threadgroup execution width. - Disable occlusion recording while clearing attachments or render area. - MVKCmdClearAttachments improve labelling of MTLDebugGroup to better distinguish clearing renderpass render area from vkCmdClearAttachments() in an Xcode GPU capture (unrelated but helpful during debugging). - MVKCmdClearAttachments re-order member variables to optimize memory requirements (unrelated). - MVKCommandBuffer remove unused renderpass tracking functions (unrelated). --- Docs/Whats_New.md | 9 +- .../MoltenVK/Commands/MVKCmdRenderPass.mm | 10 +- MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h | 9 +- MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm | 19 +++- MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h | 40 +++----- .../MoltenVK/Commands/MVKCommandBuffer.mm | 91 +++++++++---------- .../Commands/MVKCommandEncoderState.h | 7 +- .../Commands/MVKCommandEncoderState.mm | 8 +- .../Commands/MVKCommandResourceFactory.mm | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.mm | 20 ++-- MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h | 4 +- MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.mm | 12 ++- MoltenVK/MoltenVK/Utility/MVKFoundation.h | 2 + 13 files changed, 127 insertions(+), 106 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 4681a217c..59f43d771 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -21,8 +21,13 @@ Released TBA - Add support for extensions: - `VK_EXT_swapchain_maintenance1` - `VK_EXT_surface_maintenance1` -- Fix issue where extension `VK_KHR_fragment_shader_barycentric` - was sometimes incorrectly disabled due to a Metal driver bug. +- Fix crash when `VkCommandBufferInheritanceInfo::renderPass` is `VK_NULL_HANDLE` during dynamic rendering. +- Do not clear attachments when dynamic rendering is resumed. +- Allow ending dynamic rendering to trigger next multiview pass if needed. +- Fix premature caching of occlusion query results during tessellation rendering. +- `vkCmdCopyQueryPoolResults()`: Fix loss of queries when query count is not a multiple of GPU threadgroup execution width. +- Disable occlusion recording while clearing attachments or render area. +- Fix issue where extension `VK_KHR_fragment_shader_barycentric` was sometimes incorrectly disabled due to a Metal driver bug. - Detect when size of surface has changed under the covers. - Change rounding of surface size provided by Metal from truncation to rounding-with-half-to-even. - Queue submissions retain wait semaphores until `MTLCommandBuffer` finishes. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm index ee71af434..2eceb238e 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm @@ -136,10 +136,7 @@ } void MVKCmdNextSubpass::encode(MVKCommandEncoder* cmdEncoder) { - if (cmdEncoder->getMultiviewPassIndex() + 1 < cmdEncoder->getSubpass()->getMultiviewMetalPassCount()) - cmdEncoder->beginNextMultiviewPass(); - else - cmdEncoder->beginNextSubpass(this, _contents); + cmdEncoder->beginNextSubpass(this, _contents); } @@ -156,10 +153,7 @@ } void MVKCmdEndRenderPass::encode(MVKCommandEncoder* cmdEncoder) { - if (cmdEncoder->getMultiviewPassIndex() + 1 < cmdEncoder->getSubpass()->getMultiviewMetalPassCount()) - cmdEncoder->beginNextMultiviewPass(); - else - cmdEncoder->endRenderpass(); + cmdEncoder->endRenderpass(); } diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h index cdf6dc331..ce0af39fd 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h +++ b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.h @@ -263,7 +263,8 @@ class MVKCmdClearAttachments : public MVKCommand { uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, - const VkClearRect* pRects); + const VkClearRect* pRects, + MVKCommandUse cmdUse = kMVKCommandUseClearAttachments); void encode(MVKCommandEncoder* cmdEncoder) override; @@ -276,13 +277,15 @@ class MVKCmdClearAttachments : public MVKCommand { float attWidth, float attHeight); virtual VkClearValue& getClearValue(uint32_t attIdx) = 0; virtual void setClearValue(uint32_t attIdx, const VkClearValue& clearValue) = 0; + NSString* getMTLDebugGroupLabel(); MVKSmallVector _clearRects; MVKRPSKeyClearAtt _rpsKey; + float _mtlDepthVal; + uint32_t _mtlStencilValue; + MVKCommandUse _commandUse; bool _isClearingDepth; bool _isClearingStencil; - float _mtlDepthVal; - uint32_t _mtlStencilValue; }; diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm index 8c735dffc..d72df15ee 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm @@ -1254,8 +1254,10 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, - const VkClearRect* pRects) { + const VkClearRect* pRects, + MVKCommandUse cmdUse) { _rpsKey.reset(); + _commandUse = cmdUse; _mtlDepthVal = 0.0; _mtlStencilValue = 0; _isClearingDepth = false; @@ -1463,7 +1465,7 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma // Render the clear colors to the attachments MVKCommandEncodingPool* cmdEncPool = cmdEncoder->getCommandEncodingPool(); id mtlRendEnc = cmdEncoder->_mtlRenderEncoder; - [mtlRendEnc pushDebugGroup: @"vkCmdClearAttachments"]; + [mtlRendEnc pushDebugGroup: getMTLDebugGroupLabel()]; [mtlRendEnc setRenderPipelineState: cmdEncPool->getCmdClearMTLRenderPipelineState(_rpsKey)]; [mtlRendEnc setDepthStencilState: cmdEncPool->getMTLDepthStencilState(isClearingDepth, isClearingStencil)]; [mtlRendEnc setStencilReferenceValue: _mtlStencilValue]; @@ -1472,6 +1474,8 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma [mtlRendEnc setDepthBias: 0 slopeScale: 0 clamp: 0]; [mtlRendEnc setViewport: {0, 0, (double) fbExtent.width, (double) fbExtent.height, 0.0, 1.0}]; [mtlRendEnc setScissorRect: {0, 0, fbExtent.width, fbExtent.height}]; + [mtlRendEnc setVisibilityResultMode: MTLVisibilityResultModeDisabled + offset: cmdEncoder->_pEncodingContext->mtlVisibilityResultOffset]; cmdEncoder->setVertexBytes(mtlRendEnc, clearColors, sizeof(clearColors), 0, true); cmdEncoder->setFragmentBytes(mtlRendEnc, clearColors, sizeof(clearColors), 0, true); @@ -1506,6 +1510,17 @@ static inline MTLSize mvkClampMTLSize(MTLSize size, MTLOrigin origin, MTLSize ma cmdEncoder->_scissorState.markDirty(); } +template +NSString* MVKCmdClearAttachments::getMTLDebugGroupLabel() { + switch (_commandUse) { + case kMVKCommandUseClearAttachments: return @"vkCmdClearAttachments"; + case kMVKCommandUseBeginRenderPass: return @"Clear Render Area on Begin Renderpass"; + case kMVKCommandUseBeginRendering: return @"Clear Render Area on Begin Rendering"; + case kMVKCommandUseNextSubpass: return @"Clear Render Area on Next Subpass"; + default: return @"Unknown Use Clear Attachments"; + } +} + template class MVKCmdClearAttachments<1>; template class MVKCmdClearAttachments<4>; diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h index 3dfe33a2b..708a785e6 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h +++ b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h @@ -107,6 +107,12 @@ class MVKCommandBuffer : public MVKDispatchableVulkanAPIObject, /** Returns whether this command buffer can be submitted to a queue more than once. */ bool getIsReusable() { return _isReusable; } + /** + * If this is a secondary command buffer, returns the number of views inherited + * from the primary command buffer. If this is a primary command buffer, returns 1. + */ + uint32_t getViewCount() const; + /** * Metal requires that a visibility buffer is established when a render pass is created, * but Vulkan permits it to be set during a render pass. When the first occlusion query @@ -131,24 +137,6 @@ class MVKCommandBuffer : public MVKDispatchableVulkanAPIObject, MVKCmdBindPipeline* _lastTessellationPipeline; -#pragma mark Multiview render pass command management - - /** Update the last recorded multiview render pass */ - void recordBeginRenderPass(MVKCmdBeginRenderPassBase* mvkBeginRenderPass); - - /** Update the last recorded multiview subpass */ - void recordNextSubpass(); - - /** Forget the last recorded multiview render pass */ - void recordEndRenderPass(); - - /** The most recent recorded multiview render subpass */ - MVKRenderSubpass* _lastMultiviewSubpass; - - /** Returns the currently active multiview render subpass, even for secondary command buffers */ - MVKRenderSubpass* getLastMultiviewSubpass(); - - #pragma mark Construction MVKCommandBuffer(MVKDevice* device) : MVKDeviceTrackingMixin(device) {} @@ -188,7 +176,7 @@ class MVKCommandBuffer : public MVKDispatchableVulkanAPIObject, MVKSmallVector _colorAttachmentFormats; MVKCommandPool* _commandPool; VkCommandBufferInheritanceInfo _secondaryInheritanceInfo; - VkCommandBufferInheritanceRenderingInfo _inerhitanceRenderingInfo; + VkCommandBufferInheritanceRenderingInfo _secondaryInerhitanceRenderingInfo; id _prefilledMTLCmdBuffer = nil; MVKCommandEncodingContext* _immediateCmdEncodingContext = nullptr; MVKCommandEncoder* _immediateCmdEncoder = nullptr; @@ -242,14 +230,12 @@ class MVKCommandEncoder : public MVKBaseDeviceObject { const VkRect2D& renderArea, MVKArrayRef clearValues, MVKArrayRef attachments, - MVKArrayRef> subpassSamplePositions); + MVKArrayRef> subpassSamplePositions, + MVKCommandUse cmdUse = kMVKCommandUseBeginRenderPass); /** Begins the next render subpass. */ void beginNextSubpass(MVKCommand* subpassCmd, VkSubpassContents renderpassContents); - /** Begins the next multiview Metal render pass. */ - void beginNextMultiviewPass(); - /** Sets the dynamic custom sample positions to use when rendering. */ void setDynamicSamplePositions(MVKArrayRef dynamicSamplePositions); @@ -275,7 +261,7 @@ class MVKCommandEncoder : public MVKBaseDeviceObject { uint32_t getFramebufferLayerCount(); /** Returns the index of the currently active multiview subpass, or zero if the current render pass is not multiview. */ - uint32_t getMultiviewPassIndex(); + uint32_t getMultiviewPassIndex() { return _multiviewPassIndex; } /** Begins a Metal compute encoding. */ void beginMetalComputeEncoding(MVKCommandUse cmdUse); @@ -478,8 +464,10 @@ class MVKCommandEncoder : public MVKBaseDeviceObject { protected: void addActivatedQueries(MVKQueryPool* pQueryPool, uint32_t query, uint32_t queryCount); void finishQueries(); - void setSubpass(MVKCommand* passCmd, VkSubpassContents subpassContents, uint32_t subpassIndex); - void clearRenderArea(); + void setSubpass(MVKCommand* passCmd, VkSubpassContents subpassContents, uint32_t subpassIndex, MVKCommandUse cmdUse); + void clearRenderArea(MVKCommandUse cmdUse); + bool hasMoreMultiviewPasses(); + void beginNextMultiviewPass(); void encodeCommandsImpl(MVKCommand* command); void encodeGPUCounterSample(MVKGPUCounterQueryPool* mvkQryPool, uint32_t sampleIndex, MVKCounterSamplingFlags samplingPoints); void encodeTimestampStageCounterSamples(); diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm index bc89288a9..9823618a4 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm @@ -76,16 +76,15 @@ // Also check for and set any dynamic rendering inheritance info. The color format array must be copied locally. const VkCommandBufferInheritanceInfo* pInheritInfo = (_isSecondary ? pBeginInfo->pInheritanceInfo : nullptr); bool hasInheritInfo = mvkSetOrClear(&_secondaryInheritanceInfo, pInheritInfo); - _doesContinueRenderPass = mvkAreAllFlagsEnabled(usage, VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT) && hasInheritInfo; if (hasInheritInfo) { for (const auto* next = (VkBaseInStructure*)_secondaryInheritanceInfo.pNext; next; next = next->pNext) { switch (next->sType) { case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: { - if (mvkSetOrClear(&_inerhitanceRenderingInfo, (VkCommandBufferInheritanceRenderingInfo*)next)) { - for (uint32_t caIdx = 0; caIdx < _inerhitanceRenderingInfo.colorAttachmentCount; caIdx++) { - _colorAttachmentFormats.push_back(_inerhitanceRenderingInfo.pColorAttachmentFormats[caIdx]); + if (mvkSetOrClear(&_secondaryInerhitanceRenderingInfo, (VkCommandBufferInheritanceRenderingInfo*)next)) { + for (uint32_t caIdx = 0; caIdx < _secondaryInerhitanceRenderingInfo.colorAttachmentCount; caIdx++) { + _colorAttachmentFormats.push_back(_secondaryInerhitanceRenderingInfo.pColorAttachmentFormats[caIdx]); } - _inerhitanceRenderingInfo.pColorAttachmentFormats = _colorAttachmentFormats.data(); + _secondaryInerhitanceRenderingInfo.pColorAttachmentFormats = _colorAttachmentFormats.data(); } break; } @@ -94,6 +93,7 @@ } } } + _doesContinueRenderPass = mvkAreAllFlagsEnabled(usage, VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT) && hasInheritInfo; if(_device->shouldPrefillMTLCommandBuffers() && !(_isSecondary || _supportsConcurrentExecution)) { @autoreleasepool { @@ -150,7 +150,6 @@ _needsVisibilityResultMTLBuffer = false; _hasStageCounterTimestampCommand = false; _lastTessellationPipeline = nullptr; - _lastMultiviewSubpass = nullptr; setConfigurationResult(VK_NOT_READY); if (mvkAreAllFlagsEnabled(flags, VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT)) { @@ -240,6 +239,20 @@ return true; } +// Return the number of bits set in the view mask, with a minimum value of 1. +uint32_t MVKCommandBuffer::getViewCount() const { + uint32_t viewMask = 0; + if (_doesContinueRenderPass) { + MVKRenderPass* inheritedRenderPass = (MVKRenderPass*)_secondaryInheritanceInfo.renderPass; + if (inheritedRenderPass) { + viewMask = inheritedRenderPass->getSubpass(_secondaryInheritanceInfo.subpass)->getViewMask(); + } else { + viewMask = _secondaryInerhitanceRenderingInfo.viewMask; + } + } + return max(__builtin_popcount(viewMask), 1); +} + void MVKCommandBuffer::clearPrefilledMTLCommandBuffer() { // Metal command buffers do not return to their pool on release, nor do they support the @@ -293,33 +306,6 @@ } -#pragma mark - -#pragma mark Multiview render pass command management - -void MVKCommandBuffer::recordBeginRenderPass(MVKCmdBeginRenderPassBase* mvkBeginRenderPass) { - MVKRenderPass* mvkRendPass = mvkBeginRenderPass->getRenderPass(); - _lastMultiviewSubpass = mvkRendPass->isMultiview() ? mvkRendPass->getSubpass(0) : nullptr; -} - -void MVKCommandBuffer::recordNextSubpass() { - if (_lastMultiviewSubpass) { - _lastMultiviewSubpass = _lastMultiviewSubpass->getRenderPass()->getSubpass(_lastMultiviewSubpass->getSubpassIndex() + 1); - } -} - -void MVKCommandBuffer::recordEndRenderPass() { - _lastMultiviewSubpass = nullptr; -} - -MVKRenderSubpass* MVKCommandBuffer::getLastMultiviewSubpass() { - if (_doesContinueRenderPass) { - MVKRenderSubpass* subpass = ((MVKRenderPass*)_secondaryInheritanceInfo.renderPass)->getSubpass(_secondaryInheritanceInfo.subpass); - if (subpass->isMultiview()) { return subpass; } - } - return _lastMultiviewSubpass; -} - - #pragma mark - #pragma mark MVKCommandEncoder @@ -414,7 +400,8 @@ pRenderingInfo->renderArea, MVKArrayRef(clearValues, attCnt), MVKArrayRef(attachments, attCnt), - MVKArrayRef>()); + MVKArrayRef>(), + kMVKCommandUseBeginRendering); // If we've just created new transient objects, once retained by this encoder, // mark the objects as transient by releasing them from their initial creation @@ -433,7 +420,8 @@ const VkRect2D& renderArea, MVKArrayRef clearValues, MVKArrayRef attachments, - MVKArrayRef> subpassSamplePositions) { + MVKArrayRef> subpassSamplePositions, + MVKCommandUse cmdUse) { _pEncodingContext->setRenderingContext(renderPass, framebuffer); _renderArea = renderArea; _isRenderingEntireAttachment = (mvkVkOffset2DsAreEqual(_renderArea.offset, {0,0}) && @@ -448,18 +436,23 @@ subpassSamplePositions[spSPIdx].end()); } - setSubpass(passCmd, subpassContents, 0); + setSubpass(passCmd, subpassContents, 0, cmdUse); } void MVKCommandEncoder::beginNextSubpass(MVKCommand* subpassCmd, VkSubpassContents contents) { - setSubpass(subpassCmd, contents, _renderSubpassIndex + 1); + if (hasMoreMultiviewPasses()) { + beginNextMultiviewPass(); + } else { + setSubpass(subpassCmd, contents, _renderSubpassIndex + 1, kMVKCommandUseNextSubpass); + } } // Sets the current render subpass to the subpass with the specified index. // End current Metal renderpass before udpating subpass index. void MVKCommandEncoder::setSubpass(MVKCommand* subpassCmd, VkSubpassContents subpassContents, - uint32_t subpassIndex) { + uint32_t subpassIndex, + MVKCommandUse cmdUse) { encodeStoreActions(); endMetalRenderEncoding(); @@ -472,17 +465,17 @@ (_device->_pMetalFeatures->multisampleLayeredRendering || (getSubpass()->getSampleCount() == VK_SAMPLE_COUNT_1_BIT))); - beginMetalRenderPass(_renderSubpassIndex == 0 ? kMVKCommandUseBeginRenderPass : kMVKCommandUseNextSubpass); + beginMetalRenderPass(cmdUse); } +bool MVKCommandEncoder::hasMoreMultiviewPasses() { return _multiviewPassIndex + 1 < getSubpass()->getMultiviewMetalPassCount(); } + void MVKCommandEncoder::beginNextMultiviewPass() { encodeStoreActions(); _multiviewPassIndex++; beginMetalRenderPass(kMVKCommandUseNextSubpass); } -uint32_t MVKCommandEncoder::getMultiviewPassIndex() { return _multiviewPassIndex; } - void MVKCommandEncoder::setDynamicSamplePositions(MVKArrayRef dynamicSamplePositions) { _dynamicSamplePositions.assign(dynamicSamplePositions.begin(), dynamicSamplePositions.end()); } @@ -568,7 +561,7 @@ // We shouldn't clear the render area if we are restarting the Metal renderpass // separately from a Vulkan subpass, and we otherwise only need to clear render // area if we're not rendering to the entire attachment. - if ( !isRestart && !_isRenderingEntireAttachment ) { clearRenderArea(); } + if ( !isRestart && !_isRenderingEntireAttachment ) { clearRenderArea(cmdUse); } _graphicsPipelineState.beginMetalRenderPass(); _graphicsResourcesState.beginMetalRenderPass(); @@ -712,7 +705,7 @@ } // Clears the render area of the framebuffer attachments. -void MVKCommandEncoder::clearRenderArea() { +void MVKCommandEncoder::clearRenderArea(MVKCommandUse cmdUse) { MVKClearAttachments clearAtts; getSubpass()->populateClearAttachments(clearAtts, _clearValues.contents()); @@ -730,7 +723,7 @@ // Create and execute a temporary clear attachments command. // To be threadsafe...do NOT acquire and return the command from the pool. MVKCmdClearMultiAttachments<1> cmd; - cmd.setContent(_cmdBuffer, clearAttCnt, clearAtts.data(), 1, &clearRect); + cmd.setContent(_cmdBuffer, clearAttCnt, clearAtts.data(), 1, &clearRect, cmdUse); cmd.encode(this); } else { // For multiview, it is possible that some attachments need different layers cleared. @@ -742,11 +735,11 @@ // To be threadsafe...do NOT acquire and return the command from the pool. if (clearRects.size() == 1) { MVKCmdClearSingleAttachment<1> cmd; - cmd.setContent(_cmdBuffer, 1, &clearAtt, (uint32_t)clearRects.size(), clearRects.data()); + cmd.setContent(_cmdBuffer, 1, &clearAtt, (uint32_t)clearRects.size(), clearRects.data(), cmdUse); cmd.encode(this); } else { MVKCmdClearSingleAttachment<4> cmd; - cmd.setContent(_cmdBuffer, 1, &clearAtt, (uint32_t)clearRects.size(), clearRects.data()); + cmd.setContent(_cmdBuffer, 1, &clearAtt, (uint32_t)clearRects.size(), clearRects.data(), cmdUse); cmd.encode(this); } } @@ -772,6 +765,11 @@ } void MVKCommandEncoder::endRenderpass() { + if (hasMoreMultiviewPasses()) { + beginNextMultiviewPass(); + return; + } + encodeStoreActions(); endMetalRenderEncoding(); if ( !mvkIsAnyFlagEnabled(_pEncodingContext->getRenderingFlags(), VK_RENDERING_SUSPENDING_BIT) ) { @@ -1146,6 +1144,7 @@ NSString* mvkMTLRenderCommandEncoderLabel(MVKCommandUse cmdUse) { switch (cmdUse) { + case kMVKCommandUseBeginRendering: return @"vkCmdBeginRendering RenderEncoder"; case kMVKCommandUseBeginRenderPass: return @"vkCmdBeginRenderPass RenderEncoder"; case kMVKCommandUseNextSubpass: return @"vkCmdNextSubpass RenderEncoder"; case kMVKCommandUseRestartSubpass: return @"Metal renderpass restart RenderEncoder"; diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h index 74e735af9..8667aabf3 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h +++ b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h @@ -64,8 +64,7 @@ class MVKCommandEncoderState : public MVKBaseObject { /** * Called automatically when a Metal render pass begins. If the contents have been * modified from the default values, this instance is marked as dirty, so the contents - * will be encoded to Metal, otherwise it is marked as clean, so the contents will NOT - * be encoded. Default state can be left unencoded on a new Metal encoder. + * will be encoded to Metal. Default state can be left unencoded on a new Metal encoder. */ virtual void beginMetalRenderPass() { if (_isModified) { markDirty(); } } @@ -75,8 +74,7 @@ class MVKCommandEncoderState : public MVKBaseObject { /** * Called automatically when a Metal compute pass begins. If the contents have been * modified from the default values, this instance is marked as dirty, so the contents - * will be encoded to Metal, otherwise it is marked as clean, so the contents will NOT - * be encoded. Default state can be left unencoded on a new Metal encoder. + * will be encoded to Metal. Default state can be left unencoded on a new Metal encoder. */ virtual void beginMetalComputeEncoding() { if (_isModified) { markDirty(); } } @@ -673,6 +671,7 @@ class MVKOcclusionQueryCommandEncoderState : public MVKCommandEncoderState { MVKSmallVector _mtlRenderPassQueries; MTLVisibilityResultMode _mtlVisibilityResultMode = MTLVisibilityResultModeDisabled; + bool _hasRasterized = false; }; diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm index 555086c55..d8fc5d210 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm @@ -1138,9 +1138,11 @@ #pragma mark - #pragma mark MVKOcclusionQueryCommandEncoderState +// Metal resets the query counter at a render pass boundary, so copy results to the query pool's accumulation buffer. +// Don't copy occlusion info until after rasterization, as Metal renderpasses can be ended prematurely during tessellation. void MVKOcclusionQueryCommandEncoderState::endMetalRenderPass() { const MVKMTLBufferAllocation* vizBuff = _cmdEncoder->_pEncodingContext->visibilityResultBuffer; - if ( !vizBuff || _mtlRenderPassQueries.empty() ) { return; } // Nothing to do. + if ( !_hasRasterized || !vizBuff || _mtlRenderPassQueries.empty() ) { return; } // Nothing to do. id mtlAccumState = _cmdEncoder->getCommandEncodingPool()->getAccumulateOcclusionQueryResultsMTLComputePipelineState(); id mtlAccumEncoder = _cmdEncoder->getMTLComputeEncoder(kMVKCommandUseAccumOcclusionQuery); @@ -1158,6 +1160,7 @@ } _cmdEncoder->endCurrentMetalEncoding(); _mtlRenderPassQueries.clear(); + _hasRasterized = false; } // The Metal visibility buffer has a finite size, and on some Metal platforms (looking at you M1), @@ -1176,18 +1179,21 @@ _mtlVisibilityResultMode = MTLVisibilityResultModeDisabled; _cmdEncoder->_pEncodingContext->mtlVisibilityResultOffset -= kMVKQuerySlotSizeInBytes; } + _hasRasterized = false; markDirty(); } void MVKOcclusionQueryCommandEncoderState::endOcclusionQuery(MVKOcclusionQueryPool* pQueryPool, uint32_t query) { _mtlVisibilityResultMode = MTLVisibilityResultModeDisabled; _cmdEncoder->_pEncodingContext->mtlVisibilityResultOffset += kMVKQuerySlotSizeInBytes; + _hasRasterized = true; // Handle begin and end query with no rasterizing before end of renderpass. markDirty(); } void MVKOcclusionQueryCommandEncoderState::encodeImpl(uint32_t stage) { if (stage != kMVKGraphicsStageRasterization) { return; } + _hasRasterized = true; [_cmdEncoder->_mtlRenderEncoder setVisibilityResultMode: _mtlVisibilityResultMode offset: _cmdEncoder->_pEncodingContext->mtlVisibilityResultOffset]; } diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.mm b/MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.mm index aa91b183b..d6c6efb6d 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandResourceFactory.mm @@ -116,7 +116,7 @@ id vtxFunc = newClearVertFunction(attKey); // temp retain id fragFunc = newClearFragFunction(attKey); // temp retain MTLRenderPipelineDescriptor* plDesc = [MTLRenderPipelineDescriptor new]; // temp retain - plDesc.label = @"vkCmdClearAttachments"; + plDesc.label = @"ClearRenderAttachments"; plDesc.vertexFunction = vtxFunc; plDesc.fragmentFunction = fragFunc; plDesc.sampleCount = attKey.mtlSampleCount; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.mm b/MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.mm index b5e21b56b..1f6470063 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueryPool.mm @@ -161,6 +161,8 @@ VkDeviceSize stride, VkQueryResultFlags flags) { + if (queryCount == 0) { return; } + // If this asked for 64-bit results with no availability and packed stride, then we can do // a straight copy. Otherwise, we need a shader. if (mvkIsAnyFlagEnabled(flags, VK_QUERY_RESULT_64_BIT) && @@ -183,9 +185,16 @@ _availabilityLock.lock(); cmdEncoder->setComputeBytes(mtlComputeCmdEnc, _availability.data(), _availability.size() * sizeof(Status), 5); _availabilityLock.unlock(); + // Run one thread per query. Try to fill up a subgroup. - [mtlComputeCmdEnc dispatchThreadgroups: MTLSizeMake(max(queryCount / mtlCopyResultsState.threadExecutionWidth, NSUInteger(1)), 1, 1) - threadsPerThreadgroup: MTLSizeMake(min(NSUInteger(queryCount), mtlCopyResultsState.threadExecutionWidth), 1, 1)]; + NSUInteger threadCount = NSUInteger(queryCount); + NSUInteger threadExecutionWidth = mtlCopyResultsState.threadExecutionWidth; + NSUInteger tgWidth = min(threadCount, threadExecutionWidth); + NSUInteger tgCount = threadCount / threadExecutionWidth; + if(threadCount > (tgCount * threadExecutionWidth)) tgCount++; // Round up + + [mtlComputeCmdEnc dispatchThreadgroups: MTLSizeMake(tgCount, 1, 1) + threadsPerThreadgroup: MTLSizeMake(tgWidth, 1, 1)]; } } @@ -281,12 +290,9 @@ } void MVKOcclusionQueryPool::beginQueryAddedTo(uint32_t query, MVKCommandBuffer* cmdBuffer) { + // In multiview passes, one query is used for each view. + NSUInteger queryCount = cmdBuffer->getViewCount(); NSUInteger offset = getVisibilityResultOffset(query); - NSUInteger queryCount = 1; - if (cmdBuffer->getLastMultiviewSubpass()) { - // In multiview passes, one query is used for each view. - queryCount = cmdBuffer->getLastMultiviewSubpass()->getViewCount(); - } NSUInteger maxOffset = getDevice()->_pMetalFeatures->maxQueryBufferSize - kMVKQuerySlotSizeInBytes * queryCount; if (offset > maxOffset) { cmdBuffer->setConfigurationResult(reportError(VK_ERROR_OUT_OF_DEVICE_MEMORY, "vkCmdBeginQuery(): The query offset value %lu is larger than the maximum offset value %lu available on this device.", offset, maxOffset)); diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h b/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h index 25552b13c..3b88f5b07 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.h @@ -84,8 +84,8 @@ class MVKRenderSubpass : public MVKBaseObject { /** Returns whether or not this is a multiview subpass. */ bool isMultiview() const { return _pipelineRenderingCreateInfo.viewMask != 0; } - /** Returns the total number of views to be rendered. */ - uint32_t getViewCount() const { return __builtin_popcount(_pipelineRenderingCreateInfo.viewMask); } + /** Returns the multiview view mask. */ + uint32_t getViewMask() const { return _pipelineRenderingCreateInfo.viewMask; } /** Returns the number of Metal render passes needed to render all views. */ uint32_t getMultiviewMetalPassCount() const; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.mm b/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.mm index 844ea1eb2..662bf2bbd 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKRenderPass.mm @@ -668,8 +668,9 @@ bool storeOverride) { // If the renderpass is going to be suspended, and resumed later, store the contents to preserve them until then. - bool isSuspending = mvkIsAnyFlagEnabled(_renderPass->getRenderingFlags(), VK_RENDERING_SUSPENDING_BIT); - if (isSuspending) { return MTLStoreActionStore; } + if (mvkIsAnyFlagEnabled(_renderPass->getRenderingFlags(), VK_RENDERING_SUSPENDING_BIT)) { + return MTLStoreActionStore; + } // If a resolve attachment exists, this attachment must resolve once complete. if (hasResolveAttachment && canResolveFormat && !_renderPass->getDevice()->_pMetalFeatures->combinedStoreResolveAction) { @@ -689,9 +690,12 @@ return mvkMTLStoreActionFromVkAttachmentStoreOp(storeOp, hasResolveAttachment, canResolveFormat); } -// If the subpass is not the first subpass to use this attachment, -// don't clear this attachment, otherwise, clear if requested. bool MVKRenderPassAttachment::shouldClearAttachment(MVKRenderSubpass* subpass, bool isStencil) { + + // If the renderpass is being resumed after being suspended, don't clear this attachment. + if (mvkIsAnyFlagEnabled(_renderPass->getRenderingFlags(), VK_RENDERING_RESUMING_BIT_KHR)) { return false; } + + // If the subpass is not the first subpass to use this attachment, don't clear this attachment. if (subpass->isMultiview()) { if (_firstUseViewMasks[subpass->_subpassIndex] == 0) { return false; } } else { diff --git a/MoltenVK/MoltenVK/Utility/MVKFoundation.h b/MoltenVK/MoltenVK/Utility/MVKFoundation.h index 3d123376d..58b85d150 100644 --- a/MoltenVK/MoltenVK/Utility/MVKFoundation.h +++ b/MoltenVK/MoltenVK/Utility/MVKFoundation.h @@ -71,6 +71,7 @@ typedef enum : uint8_t { kMVKCommandUseQueueWaitIdle, /**< vkQueueWaitIdle. */ kMVKCommandUseDeviceWaitIdle, /**< vkDeviceWaitIdle. */ kMVKCommandUseInvalidateMappedMemoryRanges, /**< vkInvalidateMappedMemoryRanges. */ + kMVKCommandUseBeginRendering, /**< vkCmdBeginRendering. */ kMVKCommandUseBeginRenderPass, /**< vkCmdBeginRenderPass. */ kMVKCommandUseNextSubpass, /**< vkCmdNextSubpass. */ kMVKCommandUseRestartSubpass, /**< Restart a subpass because of explicit or implicit barrier. */ @@ -85,6 +86,7 @@ typedef enum : uint8_t { kMVKCommandUseCopyImageToBuffer, /**< vkCmdCopyImageToBuffer. */ kMVKCommandUseFillBuffer, /**< vkCmdFillBuffer. */ kMVKCommandUseUpdateBuffer, /**< vkCmdUpdateBuffer. */ + kMVKCommandUseClearAttachments, /**< vkCmdClearAttachments. */ kMVKCommandUseClearColorImage, /**< vkCmdClearColorImage. */ kMVKCommandUseClearDepthStencilImage, /**< vkCmdClearDepthStencilImage. */ kMVKCommandUseResetQueryPool, /**< vkCmdResetQueryPool. */ From 6c044acad6c65d8634254b00f973cd7d31d87772 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Wed, 22 Feb 2023 01:40:12 -0800 Subject: [PATCH 55/72] Update SPIRV-Cross and glslang repo revisions to include support for atomic float (glslang for HLSL support for InterlockedAdd on float) --- ExternalRevisions/SPIRV-Cross_repo_revision | 2 +- ExternalRevisions/glslang_repo_revision | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision index 4ecdce5f8..623b20930 100644 --- a/ExternalRevisions/SPIRV-Cross_repo_revision +++ b/ExternalRevisions/SPIRV-Cross_repo_revision @@ -1 +1 @@ -4e2fdb25671c742a9fbe93a6034eb1542244c7e1 +3550a54ae01b295c40ce972d951b420b388b9401 diff --git a/ExternalRevisions/glslang_repo_revision b/ExternalRevisions/glslang_repo_revision index fd739be90..cd6a5b28a 100644 --- a/ExternalRevisions/glslang_repo_revision +++ b/ExternalRevisions/glslang_repo_revision @@ -1 +1 @@ -ca8d07d0bc1c6390b83915700439fa7719de6a2a +6d41bb9c557c5a0eec61ffba1f775dc5f717a8f7 From 19f19c9aae31ee9c4e6a18002d001d835e0f42b6 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Wed, 22 Feb 2023 02:13:17 -0800 Subject: [PATCH 56/72] add VkPhysicalDeviceShaderAtomicFloatFeaturesEXT in MVKDevice.mm, using mslVersion >= 030000 --- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 5ec47c4c4..815cb1d7c 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -401,6 +401,11 @@ shaderIntFuncsFeatures->shaderIntegerFunctions2 = true; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: { + auto* atomicFloatFeatures = (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*)next; + atomicFloatFeatures->shaderBufferFloat32AtomicAdd = _metalFeatures.mslVersion >= 030000; + break; + } default: break; } From 5d96a849b06cfce4560a6f61452acadc0f6a0b3d Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Wed, 22 Feb 2023 17:24:46 -0500 Subject: [PATCH 57/72] MVKCommandBuffer track rendering viewMask from commands. --- MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 13 +++---- .../MoltenVK/Commands/MVKCmdRenderPass.mm | 10 +++++- MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h | 23 +++++++++++- .../MoltenVK/Commands/MVKCommandBuffer.mm | 36 ++++++++++++++++--- MoltenVK/MoltenVK/Utility/MVKEnvironment.h | 2 +- 5 files changed, 70 insertions(+), 14 deletions(-) diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index 6b9050a1d..662cea114 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -299,12 +299,13 @@ typedef struct { uint32_t maxActiveMetalCommandBuffersPerQueue; /** - * Metal allows only 8192 occlusion queries per MTLBuffer. If enabled, MoltenVK - * allocates a MTLBuffer for each query pool, allowing each query pool to support - * 8192 queries, which may slow performance or cause unexpected behaviour if the query - * pool is not established prior to a Metal renderpass, or if the query pool is changed - * within a renderpass. If disabled, one MTLBuffer will be shared by all query pools, - * which improves performance, but limits the total device queries to 8192. + * Depending on the GPU, Metal allows 8192 or 32768 occlusion queries per MTLBuffer. + * If enabled, MoltenVK allocates a MTLBuffer for each query pool, allowing each query + * pool to support that permitted number of queries. This may slow performance or cause + * unexpected behaviour if the query pool is not established prior to a Metal renderpass, + * or if the query pool is changed within a renderpass. If disabled, one MTLBuffer will + * be shared by all query pools, which improves performance, but limits the total device + * queries to the permitted number. * * The value of this parameter may be changed at any time during application runtime, * and the changed value will immediately effect subsequent MoltenVK behaviour. diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm index 2eceb238e..829264d3c 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm @@ -61,6 +61,8 @@ } } + cmdBuff->_currentSubpassInfo.beginRenderpass(_renderPass); + return VK_SUCCESS; } @@ -126,6 +128,8 @@ VkSubpassContents contents) { _contents = contents; + cmdBuff->_currentSubpassInfo.nextSubpass(); + return VK_SUCCESS; } @@ -144,12 +148,13 @@ #pragma mark MVKCmdEndRenderPass VkResult MVKCmdEndRenderPass::setContent(MVKCommandBuffer* cmdBuff) { + cmdBuff->_currentSubpassInfo = {}; return VK_SUCCESS; } VkResult MVKCmdEndRenderPass::setContent(MVKCommandBuffer* cmdBuff, const VkSubpassEndInfo* pEndSubpassInfo) { - return VK_SUCCESS; + return setContent(cmdBuff); } void MVKCmdEndRenderPass::encode(MVKCommandEncoder* cmdEncoder) { @@ -178,6 +183,8 @@ _renderingInfo.pStencilAttachment = &_stencilAttachment; } + cmdBuff->_currentSubpassInfo.beginRendering(pRenderingInfo->viewMask); + return VK_SUCCESS; } @@ -196,6 +203,7 @@ #pragma mark MVKCmdEndRendering VkResult MVKCmdEndRendering::setContent(MVKCommandBuffer* cmdBuff) { + cmdBuff->_currentSubpassInfo = {}; return VK_SUCCESS; } diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h index 708a785e6..1a7a7d5cc 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h +++ b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.h @@ -65,6 +65,24 @@ typedef struct MVKCommandEncodingContext { } MVKCommandEncodingContext; +#pragma mark - +#pragma mark MVKCurrentSubpassInfo + +/** Tracks current render subpass information. */ +typedef struct MVKCurrentSubpassInfo { + MVKRenderPass* renderpass; + uint32_t subpassIndex; + uint32_t subpassViewMask; + + void beginRenderpass(MVKRenderPass* rp); + void nextSubpass(); + void beginRendering(uint32_t viewMask); + +private: + void updateViewMask(); +} MVKCurrentSubpassInfo; + + #pragma mark - #pragma mark MVKCommandBuffer @@ -113,6 +131,9 @@ class MVKCommandBuffer : public MVKDispatchableVulkanAPIObject, */ uint32_t getViewCount() const; + /** Updated as renderpass commands are added. */ + MVKCurrentSubpassInfo _currentSubpassInfo; + /** * Metal requires that a visibility buffer is established when a render pass is created, * but Vulkan permits it to be set during a render pass. When the first occlusion query @@ -176,7 +197,7 @@ class MVKCommandBuffer : public MVKDispatchableVulkanAPIObject, MVKSmallVector _colorAttachmentFormats; MVKCommandPool* _commandPool; VkCommandBufferInheritanceInfo _secondaryInheritanceInfo; - VkCommandBufferInheritanceRenderingInfo _secondaryInerhitanceRenderingInfo; + VkCommandBufferInheritanceRenderingInfo _secondaryInheritanceRenderingInfo; id _prefilledMTLCmdBuffer = nil; MVKCommandEncodingContext* _immediateCmdEncodingContext = nullptr; MVKCommandEncoder* _immediateCmdEncoder = nullptr; diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm index 9823618a4..c42056850 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCommandBuffer.mm @@ -30,6 +30,7 @@ using namespace std; + #pragma mark - #pragma mark MVKCommandEncodingContext @@ -57,6 +58,28 @@ } +#pragma mark - +#pragma mark MVKCurrentSubpassInfo + +void MVKCurrentSubpassInfo::beginRenderpass(MVKRenderPass* rp) { + renderpass = rp; + subpassIndex = 0; + updateViewMask(); +} +void MVKCurrentSubpassInfo::nextSubpass() { + subpassIndex++; + updateViewMask(); +} +void MVKCurrentSubpassInfo::beginRendering(uint32_t viewMask) { + renderpass = nullptr; + subpassIndex = 0; + subpassViewMask = viewMask; +} +void MVKCurrentSubpassInfo::updateViewMask() { + subpassViewMask = renderpass ? renderpass->getSubpass(subpassIndex)->getViewMask() : 0; +} + + #pragma mark - #pragma mark MVKCommandBuffer @@ -80,11 +103,11 @@ for (const auto* next = (VkBaseInStructure*)_secondaryInheritanceInfo.pNext; next; next = next->pNext) { switch (next->sType) { case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: { - if (mvkSetOrClear(&_secondaryInerhitanceRenderingInfo, (VkCommandBufferInheritanceRenderingInfo*)next)) { - for (uint32_t caIdx = 0; caIdx < _secondaryInerhitanceRenderingInfo.colorAttachmentCount; caIdx++) { - _colorAttachmentFormats.push_back(_secondaryInerhitanceRenderingInfo.pColorAttachmentFormats[caIdx]); + if (mvkSetOrClear(&_secondaryInheritanceRenderingInfo, (VkCommandBufferInheritanceRenderingInfo*)next)) { + for (uint32_t caIdx = 0; caIdx < _secondaryInheritanceRenderingInfo.colorAttachmentCount; caIdx++) { + _colorAttachmentFormats.push_back(_secondaryInheritanceRenderingInfo.pColorAttachmentFormats[caIdx]); } - _secondaryInerhitanceRenderingInfo.pColorAttachmentFormats = _colorAttachmentFormats.data(); + _secondaryInheritanceRenderingInfo.pColorAttachmentFormats = _colorAttachmentFormats.data(); } break; } @@ -147,6 +170,7 @@ _wasExecuted = false; _isExecutingNonConcurrently.clear(); _commandCount = 0; + _currentSubpassInfo = {}; _needsVisibilityResultMTLBuffer = false; _hasStageCounterTimestampCommand = false; _lastTessellationPipeline = nullptr; @@ -247,8 +271,10 @@ if (inheritedRenderPass) { viewMask = inheritedRenderPass->getSubpass(_secondaryInheritanceInfo.subpass)->getViewMask(); } else { - viewMask = _secondaryInerhitanceRenderingInfo.viewMask; + viewMask = _secondaryInheritanceRenderingInfo.viewMask; } + } else { + viewMask = _currentSubpassInfo.subpassViewMask; } return max(__builtin_popcount(viewMask), 1); } diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h index ae90fd3f7..16833d08a 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h @@ -118,7 +118,7 @@ void mvkSetConfig(const MVKConfiguration& mvkConfig); # define MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE 64 #endif -/** Support more than 8192 occlusion queries per buffer. Enabled by default. */ +/** Support more than 8192 or 32768 occlusion queries per device. Enabled by default. */ #ifndef MVK_CONFIG_SUPPORT_LARGE_QUERY_POOLS # define MVK_CONFIG_SUPPORT_LARGE_QUERY_POOLS 1 #endif From 7a80f0249b047ecba859433453bcd20c8eea57ee Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Thu, 23 Feb 2023 11:44:41 -0500 Subject: [PATCH 58/72] Use a different visibility buffer for each MTLCommandBuffer in a queue submit. --- Docs/Whats_New.md | 1 + MoltenVK/MoltenVK/GPUObjects/MVKQueue.h | 6 +++++- MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm | 12 ++++++++---- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 59f43d771..32ff22e19 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -31,6 +31,7 @@ Released TBA - Detect when size of surface has changed under the covers. - Change rounding of surface size provided by Metal from truncation to rounding-with-half-to-even. - Queue submissions retain wait semaphores until `MTLCommandBuffer` finishes. +- Use a different visibility buffer for each `MTLCommandBuffer` in a queue submit. - Work around problems with using explicit LoD with arrayed depth images on Apple Silicon. - Update `VK_MVK_MOLTENVK_SPEC_VERSION` to version `37`. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h index bad444f3c..96d77bc18 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.h @@ -199,7 +199,10 @@ class MVKQueueSubmission : public MVKBaseObject, public MVKConfigurableMixin { #pragma mark - #pragma mark MVKQueueCommandBufferSubmission -/** Submits the commands in a set of command buffers to the queue. */ +/** + * Submits an empty set of command buffers to the queue. + * Used for fence-only command submissions. + */ class MVKQueueCommandBufferSubmission : public MVKQueueSubmission { public: @@ -218,6 +221,7 @@ class MVKQueueCommandBufferSubmission : public MVKQueueSubmission { void finish() override; virtual void submitCommandBuffers() {} + MVKCommandEncodingContext _encodingContext; MVKSmallVector> _signalSemaphores; MVKFence* _fence; id _activeMTLCommandBuffer; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm index 192de63c9..fc234c010 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm @@ -367,12 +367,17 @@ // Another option to wait on emulated semaphores once is to do it in the execute function, but doing it here // should be more performant when prefilled command buffers aren't used, because we spend time encoding commands // first, thus giving the command buffer signalling these semaphores more time to complete. - if (!_emulatedWaitDone) - { + if ( !_emulatedWaitDone ) { for (auto& ws : _waitSemaphores) { ws.first->encodeWait(nil, ws.second); } _emulatedWaitDone = true; } + // The visibility result buffer will be returned to its pool when the active MTLCommandBuffer + // finishes executing, and therefore cannot be used beyond the active MTLCommandBuffer. + // By now, it's been submitted to the MTLCommandBuffer, so remove it from the encoding context, + // to ensure a fresh one will be used by commands executing on any subsequent MTLCommandBuffers. + _encodingContext.visibilityResultBuffer = nullptr; + // If we need to signal completion, use getActiveMTLCommandBuffer() to ensure at least // one MTLCommandBuffer is used, otherwise if this instance has no content, it will not // finish(), signal the fence and semaphores ,and be destroyed. @@ -520,8 +525,7 @@ template void MVKQueueFullCommandBufferSubmission::submitCommandBuffers() { _queue->getPhysicalDevice()->startTimestampCorrelation(_cpuStart, _gpuStart); - MVKCommandEncodingContext encodingContext; - for (auto& cb : _cmdBuffers) { cb->submit(this, &encodingContext); } + for (auto& cb : _cmdBuffers) { cb->submit(this, &_encodingContext); } } template From 46d46f5191f46a738ac6e120d08a4ad9d57e2dd5 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 27 Feb 2023 14:54:19 -0500 Subject: [PATCH 59/72] Reduce memory footprint of retained MSL source code. - Don't retain converted MSL source code in MVKShaderModule. - Add SPIRVToMSLConversionResult and GLSLToSPIRVConversionResult structures to capture all feedback from shader conversions. --- Docs/Whats_New.md | 1 + MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 5 +- MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm | 16 ++- .../MoltenVK/GPUObjects/MVKShaderModule.h | 29 ++--- .../MoltenVK/GPUObjects/MVKShaderModule.mm | 63 +++++----- .../MoltenVKShaderConverter/GLSLConversion.mm | 16 +-- .../GLSLToSPIRVConverter.cpp | 73 +++++------ .../GLSLToSPIRVConverter.h | 48 ++++--- .../SPIRVConversion.mm | 13 +- .../SPIRVToMSLConverter.cpp | 117 ++++++++---------- .../SPIRVToMSLConverter.h | 74 +++-------- .../MoltenVKShaderConverterTool.cpp | 27 ++-- 12 files changed, 208 insertions(+), 274 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 32ff22e19..7591865ff 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -32,6 +32,7 @@ Released TBA - Change rounding of surface size provided by Metal from truncation to rounding-with-half-to-even. - Queue submissions retain wait semaphores until `MTLCommandBuffer` finishes. - Use a different visibility buffer for each `MTLCommandBuffer` in a queue submit. +- Reduce memory footprint of retained MSL source code. - Work around problems with using explicit LoD with arrayed depth images on Apple Silicon. - Update `VK_MVK_MOLTENVK_SPEC_VERSION` to version `37`. diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index 662cea114..a6b4803fc 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -1220,9 +1220,8 @@ VKAPI_ATTR void VKAPI_CALL vkGetVersionStringsMVK( /** * Sets the number of threads in a workgroup for a compute kernel. * - * This needs to be called if you are creating compute shader modules from MSL - * source code or MSL compiled code. Workgroup size is determined automatically - * if you're using SPIR-V. + * This needs to be called if you are creating compute shader modules from MSL source code + * or MSL compiled code. If you are using SPIR-V, workgroup size is determined automatically. * * This function is not supported by the Vulkan SDK Loader and Layers framework * and is unavailable when using the Vulkan SDK Loader and Layers framework. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm index 30acafc18..59230540c 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm @@ -2005,7 +2005,7 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 bool next() { return (++_index < (_pSLCache ? _pSLCache->_shaderLibraries.size() : 0)); } SPIRVToMSLConversionConfiguration& getShaderConversionConfig() { return _pSLCache->_shaderLibraries[_index].first; } std::string& getMSL() { return _pSLCache->_shaderLibraries[_index].second->_msl; } - SPIRVToMSLConversionResults& getShaderConversionResults() { return _pSLCache->_shaderLibraries[_index].second->_shaderConversionResults; } + SPIRVToMSLConversionResultInfo& getShaderConversionResultInfo() { return _pSLCache->_shaderLibraries[_index].second->_shaderConversionResultInfo; } MVKShaderCacheIterator(MVKShaderLibraryCache* pSLCache) : _pSLCache(pSLCache) {} MVKShaderLibraryCache* _pSLCache; @@ -2086,7 +2086,7 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 writer(cacheEntryType); writer(smKey); writer(cacheIter.getShaderConversionConfig()); - writer(cacheIter.getShaderConversionResults()); + writer(cacheIter.getShaderConversionResultInfo()); writer(cacheIter.getMSL()); _device->addActivityPerformance(activityTracker, startTime); } @@ -2149,16 +2149,14 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 SPIRVToMSLConversionConfiguration shaderConversionConfig; reader(shaderConversionConfig); - SPIRVToMSLConversionResults shaderConversionResults; - reader(shaderConversionResults); - - string msl; - reader(msl); + SPIRVToMSLConversionResult shaderConversionResult; + reader(shaderConversionResult.resultInfo); + reader(shaderConversionResult.msl); // Add the shader library to the staging cache. MVKShaderLibraryCache* slCache = getShaderLibraryCache(smKey); _device->addActivityPerformance(_device->_performanceStatistics.pipelineCache.readPipelineCache, startTime); - slCache->addShaderLibrary(&shaderConversionConfig, msl, shaderConversionResults); + slCache->addShaderLibrary(&shaderConversionConfig, shaderConversionResult); break; } @@ -2374,7 +2372,7 @@ void serialize(Archive & archive, SPIRVToMSLConversionConfiguration& ctx) { } template - void serialize(Archive & archive, SPIRVToMSLConversionResults& scr) { + void serialize(Archive & archive, SPIRVToMSLConversionResultInfo& scr) { archive(scr.entryPoint, scr.isRasterizationDisabled, scr.isPositionInvariant, diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h index 2db3f3c77..3d7e3e4fb 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h @@ -40,11 +40,11 @@ using namespace mvk; /** A MTLFunction and corresponding result information resulting from a shader conversion. */ typedef struct MVKMTLFunction { - SPIRVToMSLConversionResults shaderConversionResults; + SPIRVToMSLConversionResultInfo shaderConversionResults; MTLSize threadGroupSize; inline id getMTLFunction() { return _mtlFunction; } - MVKMTLFunction(id mtlFunc, const SPIRVToMSLConversionResults scRslts, MTLSize tgSize); + MVKMTLFunction(id mtlFunc, const SPIRVToMSLConversionResultInfo scRslts, MTLSize tgSize); MVKMTLFunction(const MVKMTLFunction& other); MVKMTLFunction& operator=(const MVKMTLFunction& other); MVKMTLFunction() {} @@ -56,7 +56,7 @@ typedef struct MVKMTLFunction { } MVKMTLFunction; /** A MVKMTLFunction indicating an invalid MTLFunction. The mtlFunction member is nil. */ -const MVKMTLFunction MVKMTLFunctionNull(nil, SPIRVToMSLConversionResults(), MTLSizeMake(1, 1, 1)); +const MVKMTLFunction MVKMTLFunctionNull(nil, SPIRVToMSLConversionResultInfo(), MTLSizeMake(1, 1, 1)); /** Wraps a single MTLLibrary. */ class MVKShaderLibrary : public MVKBaseObject { @@ -85,9 +85,7 @@ class MVKShaderLibrary : public MVKBaseObject { void setWorkgroupSize(uint32_t x, uint32_t y, uint32_t z); /** Constructs an instance from the specified MSL source code. */ - MVKShaderLibrary(MVKVulkanAPIDeviceObject* owner, - const std::string& mslSourceCode, - const SPIRVToMSLConversionResults& shaderConversionResults); + MVKShaderLibrary(MVKVulkanAPIDeviceObject* owner, const SPIRVToMSLConversionResult& conversionResult); /** Constructs an instance from the specified compiled MSL code data. */ MVKShaderLibrary(MVKVulkanAPIDeviceObject* owner, @@ -111,7 +109,7 @@ class MVKShaderLibrary : public MVKBaseObject { MVKVulkanAPIDeviceObject* _owner; id _mtlLibrary; - SPIRVToMSLConversionResults _shaderConversionResults; + SPIRVToMSLConversionResultInfo _shaderConversionResultInfo; std::string _msl; }; @@ -149,8 +147,7 @@ class MVKShaderLibraryCache : public MVKBaseObject { MVKShaderLibrary* findShaderLibrary(SPIRVToMSLConversionConfiguration* pShaderConfig); MVKShaderLibrary* addShaderLibrary(SPIRVToMSLConversionConfiguration* pShaderConfig, - const std::string& mslSourceCode, - const SPIRVToMSLConversionResults& shaderConversionResults); + SPIRVToMSLConversionResult& conversionResult); void merge(MVKShaderLibraryCache* other); MVKVulkanAPIDeviceObject* _owner; @@ -200,20 +197,12 @@ class MVKShaderModule : public MVKVulkanAPIDeviceObject { MVKPipelineCache* pipelineCache); /** Convert the SPIR-V to MSL, using the specified shader conversion configuration. */ - bool convert(SPIRVToMSLConversionConfiguration* pShaderConfig); + bool convert(SPIRVToMSLConversionConfiguration* pShaderConfig, + SPIRVToMSLConversionResult& conversionResult); /** Returns the original SPIR-V code that was specified when this object was created. */ const std::vector& getSPIRV() { return _spvConverter.getSPIRV(); } - /** - * Returns the Metal Shading Language source code as converted by the most recent - * call to convert() function, or set directly using the setMSL() function. - */ - const std::string& getMSL() { return _spvConverter.getMSL(); } - - /** Returns information about the shader conversion results. */ - const SPIRVToMSLConversionResults& getConversionResults() { return _spvConverter.getConversionResults(); } - /** Sets the number of threads in a single compute kernel workgroup, per dimension. */ void setWorkgroupSize(uint32_t x, uint32_t y, uint32_t z); @@ -258,7 +247,7 @@ class MVKShaderLibraryCompiler : public MVKMetalCompiler { * nanoseconds, an error will be generated and logged, and nil will be returned. */ id newMTLLibrary(NSString* mslSourceCode, - const SPIRVToMSLConversionResults& shaderConversionResults); + const SPIRVToMSLConversionResultInfo& shaderConversionResults); #pragma mark Construction diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm index 3de7df9ea..ce2e9975d 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm @@ -24,7 +24,7 @@ using namespace std; -MVKMTLFunction::MVKMTLFunction(id mtlFunc, const SPIRVToMSLConversionResults scRslts, MTLSize tgSize) { +MVKMTLFunction::MVKMTLFunction(id mtlFunc, const SPIRVToMSLConversionResultInfo scRslts, MTLSize tgSize) { _mtlFunction = [mtlFunc retain]; // retained shaderConversionResults = scRslts; threadGroupSize = tgSize; @@ -74,7 +74,7 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD @synchronized (_owner->getMTLDevice()) { @autoreleasepool { - NSString* mtlFuncName = @(_shaderConversionResults.entryPoint.mtlFunctionName.c_str()); + NSString* mtlFuncName = @(_shaderConversionResultInfo.entryPoint.mtlFunctionName.c_str()); MVKDevice* mvkDev = _owner->getDevice(); uint64_t startTime = mvkDev->getPerformanceTimestamp(); @@ -121,8 +121,8 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD if ( !dbName ) { dbName = _owner-> getDebugName(); } setLabelIfNotNil(mtlFunc, dbName); - auto& wgSize = _shaderConversionResults.entryPoint.workgroupSize; - return MVKMTLFunction(mtlFunc, _shaderConversionResults, MTLSizeMake(getWorkgroupDimensionSize(wgSize.width, pSpecializationInfo), + auto& wgSize = _shaderConversionResultInfo.entryPoint.workgroupSize; + return MVKMTLFunction(mtlFunc, _shaderConversionResultInfo, MTLSizeMake(getWorkgroupDimensionSize(wgSize.width, pSpecializationInfo), getWorkgroupDimensionSize(wgSize.height, pSpecializationInfo), getWorkgroupDimensionSize(wgSize.depth, pSpecializationInfo))); } @@ -130,29 +130,28 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD } void MVKShaderLibrary::setEntryPointName(string& funcName) { - _shaderConversionResults.entryPoint.mtlFunctionName = funcName; + _shaderConversionResultInfo.entryPoint.mtlFunctionName = funcName; } void MVKShaderLibrary::setWorkgroupSize(uint32_t x, uint32_t y, uint32_t z) { - auto& wgSize = _shaderConversionResults.entryPoint.workgroupSize; + auto& wgSize = _shaderConversionResultInfo.entryPoint.workgroupSize; wgSize.width.size = x; wgSize.height.size = y; wgSize.depth.size = z; } MVKShaderLibrary::MVKShaderLibrary(MVKVulkanAPIDeviceObject* owner, - const string& mslSourceCode, - const SPIRVToMSLConversionResults& shaderConversionResults) : _owner(owner) { + const SPIRVToMSLConversionResult& conversionResult) : _owner(owner) { MVKShaderLibraryCompiler* slc = new MVKShaderLibraryCompiler(_owner); - NSString* nsSrc = [[NSString alloc] initWithUTF8String: mslSourceCode.c_str()]; // temp retained - _mtlLibrary = slc->newMTLLibrary(nsSrc, shaderConversionResults); // retained + NSString* nsSrc = [[NSString alloc] initWithUTF8String: conversionResult.msl.c_str()]; // temp retained + _mtlLibrary = slc->newMTLLibrary(nsSrc, conversionResult.resultInfo); // retained [nsSrc release]; // release temp string slc->destroy(); - _shaderConversionResults = shaderConversionResults; - _msl = mslSourceCode; + _shaderConversionResultInfo = conversionResult.resultInfo; + _msl = conversionResult.msl; } MVKShaderLibrary::MVKShaderLibrary(MVKVulkanAPIDeviceObject* owner, @@ -176,7 +175,7 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD MVKShaderLibrary::MVKShaderLibrary(const MVKShaderLibrary& other) { _owner = other._owner; _mtlLibrary = [other._mtlLibrary retain]; - _shaderConversionResults = other._shaderConversionResults; + _shaderConversionResultInfo = other._shaderConversionResultInfo; _msl = other._msl; } @@ -186,7 +185,7 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD _mtlLibrary = [other._mtlLibrary retain]; } _owner = other._owner; - _shaderConversionResults = other._shaderConversionResults; + _shaderConversionResultInfo = other._shaderConversionResultInfo; _msl = other._msl; return *this; } @@ -221,8 +220,9 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD bool wasAdded = false; MVKShaderLibrary* shLib = findShaderLibrary(pShaderConfig); if ( !shLib ) { - if (shaderModule->convert(pShaderConfig)) { - shLib = addShaderLibrary(pShaderConfig, shaderModule->getMSL(), shaderModule->getConversionResults()); + SPIRVToMSLConversionResult conversionResult; + if (shaderModule->convert(pShaderConfig, conversionResult)) { + shLib = addShaderLibrary(pShaderConfig, conversionResult); wasAdded = true; } } @@ -246,9 +246,8 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD // Adds and returns a new shader library configured from the specified conversion configuration. MVKShaderLibrary* MVKShaderLibraryCache::addShaderLibrary(SPIRVToMSLConversionConfiguration* pShaderConfig, - const string& mslSourceCode, - const SPIRVToMSLConversionResults& shaderConversionResults) { - MVKShaderLibrary* shLib = new MVKShaderLibrary(_owner, mslSourceCode, shaderConversionResults); + SPIRVToMSLConversionResult& conversionResult) { + MVKShaderLibrary* shLib = new MVKShaderLibrary(_owner, conversionResult); _shaderLibraries.emplace_back(*pShaderConfig, shLib); return shLib; } @@ -294,7 +293,8 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD return mvkLib ? mvkLib->getMTLFunction(pSpecializationInfo, this) : MVKMTLFunctionNull; } -bool MVKShaderModule::convert(SPIRVToMSLConversionConfiguration* pShaderConfig) { +bool MVKShaderModule::convert(SPIRVToMSLConversionConfiguration* pShaderConfig, + SPIRVToMSLConversionResult& conversionResult) { bool shouldLogCode = mvkConfig().debugMode; bool shouldLogEstimatedGLSL = shouldLogCode; @@ -302,27 +302,28 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD // convert the GLSL code to SPIR-V and set it into the SPIR-V conveter. if ( !_spvConverter.hasSPIRV() && _glslConverter.hasGLSL() ) { + GLSLToSPIRVConversionResult glslConversionResult; uint64_t startTime = _device->getPerformanceTimestamp(); - bool wasConverted = _glslConverter.convert(getMVKGLSLConversionShaderStage(pShaderConfig), shouldLogCode, false); + bool wasConverted = _glslConverter.convert(getMVKGLSLConversionShaderStage(pShaderConfig), glslConversionResult, shouldLogCode, false); _device->addActivityPerformance(_device->_performanceStatistics.shaderCompilation.glslToSPRIV, startTime); if (wasConverted) { - if (shouldLogCode) { MVKLogInfo("%s", _glslConverter.getResultLog().c_str()); } - _spvConverter.setSPIRV(_glslConverter.getSPIRV()); + if (shouldLogCode) { MVKLogInfo("%s", glslConversionResult.resultLog.c_str()); } + _spvConverter.setSPIRV(glslConversionResult.spirv); } else { - reportError(VK_ERROR_INVALID_SHADER_NV, "Unable to convert GLSL to SPIR-V:\n%s", _glslConverter.getResultLog().c_str()); + reportError(VK_ERROR_INVALID_SHADER_NV, "Unable to convert GLSL to SPIR-V:\n%s", glslConversionResult.resultLog.c_str()); } shouldLogEstimatedGLSL = false; } uint64_t startTime = _device->getPerformanceTimestamp(); - bool wasConverted = _spvConverter.convert(*pShaderConfig, shouldLogCode, shouldLogCode, shouldLogEstimatedGLSL); + bool wasConverted = _spvConverter.convert(*pShaderConfig, conversionResult, shouldLogCode, shouldLogCode, shouldLogEstimatedGLSL); _device->addActivityPerformance(_device->_performanceStatistics.shaderCompilation.spirvToMSL, startTime); if (wasConverted) { - if (shouldLogCode) { MVKLogInfo("%s", _spvConverter.getResultLog().c_str()); } + if (shouldLogCode) { MVKLogInfo("%s", conversionResult.resultLog.c_str()); } } else { - reportError(VK_ERROR_INVALID_SHADER_NV, "Unable to convert SPIR-V to MSL:\n%s", _spvConverter.getResultLog().c_str()); + reportError(VK_ERROR_INVALID_SHADER_NV, "Unable to convert SPIR-V to MSL:\n%s", conversionResult.resultLog.c_str()); } return wasConverted; } @@ -345,7 +346,6 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD } void MVKShaderModule::setWorkgroupSize(uint32_t x, uint32_t y, uint32_t z) { - _spvConverter.setWorkgroupSize(x, y, z); if(_directMSLLibrary) { _directMSLLibrary->setWorkgroupSize(x, y, z); } } @@ -394,8 +394,9 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD codeHash = mvkHash(pMSLCode, mslCodeLen, codeHash); _device->addActivityPerformance(_device->_performanceStatistics.shaderCompilation.hashShaderCode, startTime); - _spvConverter.setMSL(pMSLCode, nullptr); - _directMSLLibrary = new MVKShaderLibrary(this, _spvConverter.getMSL().c_str(), _spvConverter.getConversionResults()); + SPIRVToMSLConversionResult conversionResult; + conversionResult.msl = pMSLCode; + _directMSLLibrary = new MVKShaderLibrary(this, conversionResult); break; } @@ -441,7 +442,7 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD #pragma mark MVKShaderLibraryCompiler id MVKShaderLibraryCompiler::newMTLLibrary(NSString* mslSourceCode, - const SPIRVToMSLConversionResults& shaderConversionResults) { + const SPIRVToMSLConversionResultInfo& shaderConversionResults) { unique_lock lock(_completionLock); compile(lock, ^{ diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLConversion.mm b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLConversion.mm index 128ffb505..8ff31cf41 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLConversion.mm +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLConversion.mm @@ -32,27 +32,27 @@ MVK_PUBLIC_SYMBOL bool mvkConvertGLSLToSPIRV(const char* glslSource, char** pResultLog, bool shouldLogGLSL, bool shouldLogSPIRV) { - GLSLToSPIRVConverter glslConverter; + + GLSLToSPIRVConversionResult conversionResult; + GLSLToSPIRVConverter glslConverter; glslConverter.setGLSL(glslSource); - bool wasConverted = glslConverter.convert(shaderStage, shouldLogGLSL, shouldLogSPIRV); + bool wasConverted = glslConverter.convert(shaderStage, conversionResult, shouldLogGLSL, shouldLogSPIRV); size_t spvLen = 0; if (pSPIRVCode) { uint32_t* spvCode = NULL; if (wasConverted) { - auto spv = glslConverter.getSPIRV(); - spvLen = spv.size() * sizeof(uint32_t); + spvLen = conversionResult.spirv.size() * sizeof(uint32_t); spvCode = (uint32_t*)malloc(spvLen); - memcpy(spvCode, spv.data(), spvLen); + memcpy(spvCode, conversionResult.spirv.data(), spvLen); } *pSPIRVCode = spvCode; } if (pSPIRVLength) { *pSPIRVLength = spvLen; } if (pResultLog) { - auto log = glslConverter.getResultLog(); - *pResultLog = (char*)malloc(log.size() + 1); - strcpy(*pResultLog, log.data()); + *pResultLog = (char*)malloc(conversionResult.resultLog.size() + 1); + strcpy(*pResultLog, conversionResult.resultLog.data()); } return wasConverted; diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.cpp b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.cpp index bb85a8e42..136aa5c1f 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.cpp +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.cpp @@ -53,13 +53,12 @@ MVK_PUBLIC_SYMBOL void GLSLToSPIRVConverter::setGLSLs(const std::vectorsetAutoMapBindings(true); if (glslShaders.back()->parse(&glslCompilerResources, 100, false, messages)) { if (shouldLogGLSL) { - logMsg(glslShaders.back()->getInfoLog()); - logMsg(glslShaders.back()->getInfoDebugLog()); + logMsg(conversionResult.resultLog, glslShaders.back()->getInfoLog()); + logMsg(conversionResult.resultLog, glslShaders.back()->getInfoDebugLog()); } } else { - logError(glslShaders.back()->getInfoLog()); - logError(glslShaders.back()->getInfoDebugLog()); - return logError("Error compiling GLSL when converting GLSL to SPIR-V."); + logError(conversionResult.resultLog, glslShaders.back()->getInfoLog()); + logError(conversionResult.resultLog, glslShaders.back()->getInfoDebugLog()); + return logError(conversionResult.resultLog, "Error compiling GLSL when converting GLSL to SPIR-V."); } // Add a shader to the program. Each shader added will be linked together. glslProgram.addShader(glslShaders.back().get()); @@ -93,61 +92,57 @@ MVK_PUBLIC_SYMBOL bool GLSLToSPIRVConverter::convert(MVKGLSLConversionShaderStag // Create and link a shader program if ( !glslProgram.link(messages) ) { - logError(glslProgram.getInfoLog()); - logError(glslProgram.getInfoDebugLog()); - return logError("Error creating GLSL program when converting GLSL to SPIR-V."); + logError(conversionResult.resultLog, glslProgram.getInfoLog()); + logError(conversionResult.resultLog, glslProgram.getInfoDebugLog()); + return logError(conversionResult.resultLog, "Error creating GLSL program when converting GLSL to SPIR-V."); } // Output the SPIR-V code from the shader program - glslang::GlslangToSpv(*glslProgram.getIntermediate(stage), _spirv); + glslang::GlslangToSpv(*glslProgram.getIntermediate(stage), conversionResult.spirv); - if (shouldLogSPIRV) { logSPIRV("Converted"); } + if (shouldLogSPIRV) { logSPIRV(conversionResult, "Converted"); } - return _wasConverted; + return wasConverted; } /** Appends the message text to the result log. */ -void GLSLToSPIRVConverter::logMsg(const char* logMsg) { +void GLSLToSPIRVConverter::logMsg(string& log, const char* logMsg) { string trimMsg = trim(logMsg); if ( !trimMsg.empty() ) { - _resultLog += trimMsg; - _resultLog += "\n\n"; + log += trimMsg; + log += "\n\n"; } } /** Appends the error text to the result log, sets the wasConverted property to false, and returns it. */ -bool GLSLToSPIRVConverter::logError(const char* errMsg) { - logMsg(errMsg); - _wasConverted = false; - return _wasConverted; +bool GLSLToSPIRVConverter::logError(string& log, const char* errMsg) { + logMsg(log, errMsg); + return false; } /** Appends the SPIR-V to the result log, indicating whether it is being converted or was converted. */ -void GLSLToSPIRVConverter::logSPIRV(const char* opDesc) { +void GLSLToSPIRVConverter::logSPIRV(GLSLToSPIRVConversionResult& conversionResult, const char* opDesc) { - string spvLog; - mvk::logSPIRV(_spirv, spvLog); - - _resultLog += opDesc; - _resultLog += " SPIR-V:\n"; - _resultLog += spvLog; - _resultLog += "\nEnd SPIR-V\n\n"; + conversionResult.resultLog += opDesc; + conversionResult.resultLog += " SPIR-V:\n"; + mvk::logSPIRV(conversionResult.spirv, conversionResult.resultLog); + conversionResult.resultLog += "\nEnd SPIR-V\n\n"; } /** Validates that the SPIR-V code will disassemble during logging. */ -bool GLSLToSPIRVConverter::validateSPIRV() { - if (_spirv.size() < 5) { return false; } - if (_spirv[0] != spv::MagicNumber) { return false; } - if (_spirv[4] != 0) { return false; } +bool GLSLToSPIRVConverter::validateSPIRV(vector spirv) { + if (spirv.size() < 5) { return false; } + if (spirv[0] != spv::MagicNumber) { return false; } + if (spirv[4] != 0) { return false; } return true; } /** Appends the GLSL to the result log, indicating whether it is being converted or was converted. */ -void GLSLToSPIRVConverter::logGLSL(const char* opDesc) { - _resultLog += opDesc; - _resultLog += " GLSL:\n"; - for (const auto& glsl : _glsls) { _resultLog += glsl + "\n"; } - _resultLog += "End GLSL\n\n"; +void GLSLToSPIRVConverter::logGLSL(string& log, const char* opDesc) { + log += opDesc; + log += " GLSL:\n"; + for (const auto& glsl : _glsls) { log += glsl + "\n"; } + log += "End GLSL\n\n"; } diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.h index c83443da6..53ba9b2cb 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/GLSLToSPIRVConverter.h @@ -27,6 +27,17 @@ namespace mvk { + +#pragma mark - +#pragma mark SPIRVToMSLConversionResult + + /** The results of a GLSL to SPIRV conversion. */ + typedef struct GLSLToSPIRVConversionResult { + std::vector spirv; + std::string resultLog; + } GLSLToSPIRVConversionResult; + + #pragma mark - #pragma mark GLSLToSPIRVConverter @@ -50,8 +61,7 @@ namespace mvk { /** * Sets the GLSL source code that is to be converted to the specified strings. * - * A separate shader will be compiled for each source and linked together into a single - * program. + * A separate shader will be compiled for each source and linked together into a single program. */ void setGLSLs(const std::vector& glslSrcs); @@ -67,36 +77,20 @@ namespace mvk { * The boolean flags indicate whether the original GLSL code and resulting SPIR-V code should * be logged to the result log of this converter. This can be useful during shader debugging. */ - bool convert(MVKGLSLConversionShaderStage shaderStage, bool shouldLogGLSL, bool shouldLogSPIRV); - - /** - * Returns whether the most recent conversion was successful. - * - * The initial value of this property is NO. It is set to YES upon successful conversion. - */ - bool wasConverted() { return _wasConverted; } - - /** Returns the SPIRV code most recently converted by the convert() function. */ - const std::vector& getSPIRV() { return _spirv; } - - /** - * Returns a human-readable log of the most recent conversion activity. - * This may be empty if the conversion was successful. - */ - const std::string& getResultLog() { return _resultLog; } + bool convert(MVKGLSLConversionShaderStage shaderStage, + GLSLToSPIRVConversionResult& conversionResult, + bool shouldLogGLSL, + bool shouldLogSPIRV); protected: - void logMsg(const char* logMsg); - bool logError(const char* errMsg); - void logGLSL(const char* opDesc); - void logSPIRV(const char* opDesc); - bool validateSPIRV(); + void logMsg(std::string& log, const char* logMsg); + bool logError(std::string& log, const char* errMsg); + void logGLSL(std::string& log, const char* opDesc); + void logSPIRV(GLSLToSPIRVConversionResult& conversionResult, const char* opDesc); + bool validateSPIRV(std::vector spirv); void initGLSLCompilerResources(); std::vector _glsls; - std::vector _spirv; - std::string _resultLog; - bool _wasConverted = false; }; } diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVConversion.mm b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVConversion.mm index 3d44b4bd3..257018bf1 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVConversion.mm +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVConversion.mm @@ -32,20 +32,19 @@ MVK_PUBLIC_SYMBOL bool mvkConvertSPIRVToMSL(uint32_t* spvCode, bool shouldLogSPIRV, bool shouldLogMSL) { SPIRVToMSLConversionConfiguration spvCtx; + SPIRVToMSLConversionResult conversionResult; SPIRVToMSLConverter spvConverter; spvConverter.setSPIRV(spvCode, spvLength); - bool wasConverted = spvConverter.convert(spvCtx, shouldLogSPIRV, shouldLogMSL); + bool wasConverted = spvConverter.convert(spvCtx, conversionResult, shouldLogSPIRV, shouldLogMSL); if (pMSL) { - auto& msl = spvConverter.getMSL(); - *pMSL = (char*)malloc(msl.size() + 1); - strcpy(*pMSL, msl.data()); + *pMSL = (char*)malloc(conversionResult.msl.size() + 1); + strcpy(*pMSL, conversionResult.msl.data()); } if (pResultLog) { - auto log = spvConverter.getResultLog(); - *pResultLog = (char*)malloc(log.size() + 1); - strcpy(*pResultLog, log.data()); + *pResultLog = (char*)malloc(conversionResult.resultLog.size() + 1); + strcpy(*pResultLog, conversionResult.resultLog.data()); } return wasConverted; diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.cpp b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.cpp index 3a7f53f4e..f1672e2ba 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.cpp +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.cpp @@ -261,6 +261,7 @@ MVK_PUBLIC_SYMBOL void SPIRVToMSLConverter::setSPIRV(const uint32_t* spirvCode, } MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConversionConfiguration& shaderConfig, + SPIRVToMSLConversionResult& conversionResult, bool shouldLogSPIRV, bool shouldLogMSL, bool shouldLogGLSL) { @@ -270,14 +271,10 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConversionConfigur // spvFile.write((char*)_spirv.data(), _spirv.size() << 2); // spvFile.close(); - _wasConverted = true; - _resultLog.clear(); - _msl.clear(); - _shaderConversionResults.reset(); - - if (shouldLogSPIRV) { logSPIRV("Converting"); } + if (shouldLogSPIRV) { logSPIRV(conversionResult.resultLog, "Converting"); } CompilerMSL* pMSLCompiler = nullptr; + bool wasConverted = true; #ifndef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS try { @@ -341,42 +338,42 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConversionConfigur } } } - _msl = pMSLCompiler->compile(); + conversionResult.msl = pMSLCompiler->compile(); - if (shouldLogMSL) { logSource(_msl, "MSL", "Converted"); } + if (shouldLogMSL) { logSource(conversionResult.resultLog, conversionResult.msl, "MSL", "Converted"); } #ifndef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS } catch (CompilerError& ex) { string errMsg("MSL conversion error: "); errMsg += ex.what(); - logError(errMsg.data()); + logError(conversionResult.resultLog, errMsg.data()); if (shouldLogMSL && pMSLCompiler) { - _msl = pMSLCompiler->get_partial_source(); - logSource(_msl, "MSL", "Partially converted"); + auto partialMSL = pMSLCompiler->get_partial_source(); + logSource(conversionResult.resultLog, partialMSL, "MSL", "Partially converted"); } } #endif // Populate the shader conversion results with info from the compilation run, // and mark which vertex attributes and resource bindings are used by the shader - populateEntryPoint(pMSLCompiler, shaderConfig.options); - _shaderConversionResults.isRasterizationDisabled = pMSLCompiler && pMSLCompiler->get_is_rasterization_disabled(); - _shaderConversionResults.isPositionInvariant = pMSLCompiler && pMSLCompiler->is_position_invariant(); - _shaderConversionResults.needsSwizzleBuffer = pMSLCompiler && pMSLCompiler->needs_swizzle_buffer(); - _shaderConversionResults.needsOutputBuffer = pMSLCompiler && pMSLCompiler->needs_output_buffer(); - _shaderConversionResults.needsPatchOutputBuffer = pMSLCompiler && pMSLCompiler->needs_patch_output_buffer(); - _shaderConversionResults.needsBufferSizeBuffer = pMSLCompiler && pMSLCompiler->needs_buffer_size_buffer(); - _shaderConversionResults.needsInputThreadgroupMem = pMSLCompiler && pMSLCompiler->needs_input_threadgroup_mem(); - _shaderConversionResults.needsDispatchBaseBuffer = pMSLCompiler && pMSLCompiler->needs_dispatch_base_buffer(); - _shaderConversionResults.needsViewRangeBuffer = pMSLCompiler && pMSLCompiler->needs_view_mask_buffer(); + populateEntryPoint(pMSLCompiler, shaderConfig.options, conversionResult.resultInfo.entryPoint); + conversionResult.resultInfo.isRasterizationDisabled = pMSLCompiler && pMSLCompiler->get_is_rasterization_disabled(); + conversionResult.resultInfo.isPositionInvariant = pMSLCompiler && pMSLCompiler->is_position_invariant(); + conversionResult.resultInfo.needsSwizzleBuffer = pMSLCompiler && pMSLCompiler->needs_swizzle_buffer(); + conversionResult.resultInfo.needsOutputBuffer = pMSLCompiler && pMSLCompiler->needs_output_buffer(); + conversionResult.resultInfo.needsPatchOutputBuffer = pMSLCompiler && pMSLCompiler->needs_patch_output_buffer(); + conversionResult.resultInfo.needsBufferSizeBuffer = pMSLCompiler && pMSLCompiler->needs_buffer_size_buffer(); + conversionResult.resultInfo.needsInputThreadgroupMem = pMSLCompiler && pMSLCompiler->needs_input_threadgroup_mem(); + conversionResult.resultInfo.needsDispatchBaseBuffer = pMSLCompiler && pMSLCompiler->needs_dispatch_base_buffer(); + conversionResult.resultInfo.needsViewRangeBuffer = pMSLCompiler && pMSLCompiler->needs_view_mask_buffer(); // When using Metal argument buffers, if the shader is provided with dynamic buffer offsets, // then it needs a buffer to hold these dynamic offsets. - _shaderConversionResults.needsDynamicOffsetBuffer = false; + conversionResult.resultInfo.needsDynamicOffsetBuffer = false; if (shaderConfig.options.mslOptions.argument_buffers) { for (auto& db : shaderConfig.dynamicBufferDescriptors) { if (db.stage == shaderConfig.options.entryPointStage) { - _shaderConversionResults.needsDynamicOffsetBuffer = true; + conversionResult.resultInfo.needsDynamicOffsetBuffer = true; } } } @@ -418,68 +415,64 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConversionConfigur options.separate_shader_objects = true; pGLSLCompiler->set_common_options(options); string glsl = pGLSLCompiler->compile(); - logSource(glsl, "GLSL", "Estimated original"); + logSource(conversionResult.resultLog, glsl, "GLSL", "Estimated original"); #ifndef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS } catch (CompilerError& ex) { string errMsg("Original GLSL extraction error: "); errMsg += ex.what(); - logMsg(errMsg.data()); + logMsg(conversionResult.resultLog, errMsg.data()); if (pGLSLCompiler) { string glsl = pGLSLCompiler->get_partial_source(); - logSource(glsl, "GLSL", "Partially converted"); + logSource(conversionResult.resultLog, glsl, "GLSL", "Partially converted"); } } #endif delete pGLSLCompiler; } - return _wasConverted; + return wasConverted; } // Appends the message text to the result log. -void SPIRVToMSLConverter::logMsg(const char* logMsg) { +void SPIRVToMSLConverter::logMsg(string& log, const char* logMsg) { string trimMsg = trim(logMsg); if ( !trimMsg.empty() ) { - _resultLog += trimMsg; - _resultLog += "\n\n"; + log += trimMsg; + log += "\n\n"; } } -// Appends the error text to the result log, sets the wasConverted property to false, and returns it. -bool SPIRVToMSLConverter::logError(const char* errMsg) { - logMsg(errMsg); - _wasConverted = false; - return _wasConverted; +// Appends the error text to the result log, and returns false to indicate an error. +bool SPIRVToMSLConverter::logError(string& log, const char* errMsg) { + logMsg(log, errMsg); + return false; } // Appends the SPIR-V to the result log, indicating whether it is being converted or was converted. -void SPIRVToMSLConverter::logSPIRV(const char* opDesc) { - - string spvLog; - mvk::logSPIRV(_spirv, spvLog); +void SPIRVToMSLConverter::logSPIRV(string& log, const char* opDesc) { - _resultLog += opDesc; - _resultLog += " SPIR-V:\n"; - _resultLog += spvLog; - _resultLog += "\nEnd SPIR-V\n\n"; + log += opDesc; + log += " SPIR-V:\n"; + mvk::logSPIRV(_spirv, log); + log += "\nEnd SPIR-V\n\n"; // Uncomment one or both of the following lines to get additional debugging and tracability capabilities. // The SPIR-V can be written in binary form to a file, and/or logged in human readable form to the console. // These can be helpful if errors occur during conversion of SPIR-V to MSL. -// writeSPIRVToFile("spvout.spv"); -// printf("\n%s\n", getResultLog().c_str()); +// writeSPIRVToFile("spvout.spv", log); +// printf("\n%s\n", log.c_str()); } // Writes the SPIR-V code to a file. This can be useful for debugging // when the SPRIR-V did not originally come from a known file -void SPIRVToMSLConverter::writeSPIRVToFile(string spvFilepath) { +void SPIRVToMSLConverter::writeSPIRVToFile(string spvFilepath, string& log) { vector fileContents; spirvToBytes(_spirv, fileContents); string errMsg; if (writeFile(spvFilepath, fileContents, errMsg)) { - _resultLog += "Saved SPIR-V to file: " + absolutePath(spvFilepath) + "\n\n"; + log += "Saved SPIR-V to file: " + absolutePath(spvFilepath) + "\n\n"; } else { - _resultLog += "Could not write SPIR-V file. " + errMsg + "\n\n"; + log += "Could not write SPIR-V file. " + errMsg + "\n\n"; } } @@ -492,15 +485,15 @@ bool SPIRVToMSLConverter::validateSPIRV() { } // Appends the source to the result log, prepending with the operation. -void SPIRVToMSLConverter::logSource(string& src, const char* srcLang, const char* opDesc) { - _resultLog += opDesc; - _resultLog += " "; - _resultLog += srcLang; - _resultLog += ":\n"; - _resultLog += src; - _resultLog += "\nEnd "; - _resultLog += srcLang; - _resultLog += "\n\n"; +void SPIRVToMSLConverter::logSource(string& log, string& src, const char* srcLang, const char* opDesc) { + log += opDesc; + log += " "; + log += srcLang; + log += ":\n"; + log += src; + log += "\nEnd "; + log += srcLang; + log += "\n\n"; } void SPIRVToMSLConverter::populateWorkgroupDimension(SPIRVWorkgroupSizeDimension& wgDim, @@ -513,7 +506,8 @@ void SPIRVToMSLConverter::populateWorkgroupDimension(SPIRVWorkgroupSizeDimension // Populates the entry point with info extracted from the SPRI-V compiler. void SPIRVToMSLConverter::populateEntryPoint(Compiler* pCompiler, - SPIRVToMSLConversionOptions& options) { + SPIRVToMSLConversionOptions& options, + SPIRVEntryPoint& entryPoint) { if ( !pCompiler ) { return; } @@ -528,14 +522,13 @@ void SPIRVToMSLConverter::populateEntryPoint(Compiler* pCompiler, } } - auto& ep = _shaderConversionResults.entryPoint; - ep.mtlFunctionName = spvEP.name; - ep.supportsFastMath = !spvEP.flags.get(ExecutionModeSignedZeroInfNanPreserve); + entryPoint.mtlFunctionName = spvEP.name; + entryPoint.supportsFastMath = !spvEP.flags.get(ExecutionModeSignedZeroInfNanPreserve); SpecializationConstant widthSC, heightSC, depthSC; pCompiler->get_work_group_size_specialization_constants(widthSC, heightSC, depthSC); - auto& wgSize = ep.workgroupSize; + auto& wgSize = entryPoint.workgroupSize; populateWorkgroupDimension(wgSize.width, spvEP.workgroup_size.x, widthSC); populateWorkgroupDimension(wgSize.height, spvEP.workgroup_size.y, heightSC); populateWorkgroupDimension(wgSize.depth, spvEP.workgroup_size.z, depthSC); diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h index 1acc2bec0..34c02b283 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h @@ -192,7 +192,7 @@ namespace mvk { #pragma mark - -#pragma mark SPIRVToMSLConversionResults +#pragma mark SPIRVToMSLConversionResult /** * Describes one dimension of the workgroup size of a SPIR-V entry point, including whether @@ -227,12 +227,12 @@ namespace mvk { } SPIRVEntryPoint; /** - * Contains the results of the shader conversion that can be used to populate a pipeline. + * Contains information about a shader conversion that can be used to populate a pipeline. * * THIS STRUCT IS STREAMED OUT AS PART OF THE PIEPLINE CACHE. * CHANGES TO THIS STRUCT SHOULD BE CAPTURED IN THE STREAMING LOGIC OF THE PIPELINE CACHE. */ - typedef struct SPIRVToMSLConversionResults { + typedef struct SPIRVToMSLConversionResultInfo { SPIRVEntryPoint entryPoint; bool isRasterizationDisabled = false; bool isPositionInvariant = false; @@ -245,9 +245,14 @@ namespace mvk { bool needsDispatchBaseBuffer = false; bool needsViewRangeBuffer = false; - void reset() { *this = SPIRVToMSLConversionResults(); } + } SPIRVToMSLConversionResultInfo; - } SPIRVToMSLConversionResults; + /** The results of a SPIRV to MSL conversion. */ + typedef struct SPIRVToMSLConversionResult { + SPIRVToMSLConversionResultInfo resultInfo = {}; + std::string msl; + std::string resultLog; + } SPIRVToMSLConversionResult; #pragma mark - @@ -281,61 +286,22 @@ namespace mvk { * to the result log of this converter. This can be useful during shader debugging. */ bool convert(SPIRVToMSLConversionConfiguration& shaderConfig, - bool shouldLogSPIRV = false, - bool shouldLogMSL = false, - bool shouldLogGLSL = false); - - /** - * Returns whether the most recent conversion was successful. - * - * The initial value of this property is NO. It is set to YES upon successful conversion. - */ - bool wasConverted() { return _wasConverted; } - - /** - * Returns the Metal Shading Language source code most recently converted - * by the convert() function, or set directly using the setMSL() function. - */ - const std::string& getMSL() { return _msl; } - - /** Returns information about the shader conversion. */ - const SPIRVToMSLConversionResults& getConversionResults() { return _shaderConversionResults; } - - /** Sets the number of threads in a single compute kernel workgroup, per dimension. */ - void setWorkgroupSize(uint32_t x, uint32_t y, uint32_t z) { - auto& wgSize = _shaderConversionResults.entryPoint.workgroupSize; - wgSize.width.size = x; - wgSize.height.size = y; - wgSize.depth.size = z; - } - - /** - * Returns a human-readable log of the most recent conversion activity. - * This may be empty if the conversion was successful. - */ - const std::string& getResultLog() { return _resultLog; } - - /** Sets MSL source code. This can be used when MSL is supplied directly. */ - void setMSL(const std::string& msl, const SPIRVToMSLConversionResults* pShaderConversionResults) { - _msl = msl; - if (pShaderConversionResults) { _shaderConversionResults = *pShaderConversionResults; } - } + SPIRVToMSLConversionResult& conversionResult, + bool shouldLogSPIRV = false, + bool shouldLogMSL = false, + bool shouldLogGLSL = false); protected: - void logMsg(const char* logMsg); - bool logError(const char* errMsg); - void logSPIRV(const char* opDesc); + void logMsg(std::string& log, const char* logMsg); + bool logError(std::string& log, const char* errMsg); + void logSPIRV(std::string& log, const char* opDesc); + void logSource(std::string& log, std::string& src, const char* srcLang, const char* opDesc); bool validateSPIRV(); - void writeSPIRVToFile(std::string spvFilepath); - void logSource(std::string& src, const char* srcLang, const char* opDesc); + void writeSPIRVToFile(std::string spvFilepath, std::string& log); void populateWorkgroupDimension(SPIRVWorkgroupSizeDimension& wgDim, uint32_t size, SPIRV_CROSS_NAMESPACE::SpecializationConstant& spvSpecConst); - void populateEntryPoint(SPIRV_CROSS_NAMESPACE::Compiler* pCompiler, SPIRVToMSLConversionOptions& options); + void populateEntryPoint(SPIRV_CROSS_NAMESPACE::Compiler* pCompiler, SPIRVToMSLConversionOptions& options, SPIRVEntryPoint& entryPoint); std::vector _spirv; - std::string _msl; - std::string _resultLog; - SPIRVToMSLConversionResults _shaderConversionResults; - bool _wasConverted = false; }; } diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp index e38033b9d..9a911e3de 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp +++ b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp @@ -137,24 +137,23 @@ bool MoltenVKShaderConverterTool::convertGLSL(string& glslInFile, } // Convert GLSL to SPIR-V + GLSLToSPIRVConversionResult conversionResult; GLSLToSPIRVConverter glslConverter; glslConverter.setGLSL(glslCode); uint64_t startTime = _glslConversionPerformance.getTimestamp(); - bool wasConverted = glslConverter.convert(shaderStage, _shouldLogConversions, _shouldLogConversions); + bool wasConverted = glslConverter.convert(shaderStage, conversionResult, _shouldLogConversions, _shouldLogConversions); _glslConversionPerformance.accumulate(startTime); if (wasConverted) { - if (_shouldLogConversions) { log(glslConverter.getResultLog().data()); } + if (_shouldLogConversions) { log(conversionResult.resultLog.data()); } } else { string logMsg = "Could not convert GLSL in file: " + absolutePath(path); log(logMsg.data()); - log(glslConverter.getResultLog().data()); + log(conversionResult.resultLog.data()); return false; } - const vector& spv = glslConverter.getSPIRV(); - // Write the SPIR-V code to a file. // If no file has been supplied, create one from the GLSL file name. if (_shouldWriteSPIRV) { @@ -162,9 +161,9 @@ bool MoltenVKShaderConverterTool::convertGLSL(string& glslInFile, if (path.empty()) { path = pathWithExtension(glslInFile, _shouldOutputAsHeaders ? "h" : "spv", _shouldIncludeOrigPathExtn, _origPathExtnSep); } if (_shouldOutputAsHeaders) { - spirvToHeaderBytes(spv, fileContents, fileName(path, false)); + spirvToHeaderBytes(conversionResult.spirv, fileContents, fileName(path, false)); } else { - spirvToBytes(spv, fileContents); + spirvToBytes(conversionResult.spirv, fileContents); } if (writeFile(path, fileContents, errMsg)) { @@ -177,7 +176,7 @@ bool MoltenVKShaderConverterTool::convertGLSL(string& glslInFile, } } - return convertSPIRV(spv, glslInFile, mslOutFile, false); + return convertSPIRV(conversionResult.spirv, glslInFile, mslOutFile, false); } // Read SPIR-V code from a SPIR-V file, convert to MSL, and write the MSL code to files. @@ -227,25 +226,25 @@ bool MoltenVKShaderConverterTool::convertSPIRV(const vector& spv, spvConverter.setSPIRV(spv); uint64_t startTime = _spvConversionPerformance.getTimestamp(); - bool wasConverted = spvConverter.convert(mslContext, shouldLogSPV, _shouldLogConversions, (_shouldLogConversions && shouldLogSPV)); + SPIRVToMSLConversionResult conversionResult; + bool wasConverted = spvConverter.convert(mslContext, conversionResult, shouldLogSPV, _shouldLogConversions, (_shouldLogConversions && shouldLogSPV)); _spvConversionPerformance.accumulate(startTime); if (wasConverted) { - if (_shouldLogConversions) { log(spvConverter.getResultLog().data()); } + if (_shouldLogConversions) { log(conversionResult.resultLog.data()); } } else { string errMsg = "Could not convert SPIR-V in file: " + absolutePath(inFile); log(errMsg.data()); - log(spvConverter.getResultLog().data()); + log(conversionResult.resultLog.data()); return false; } // Write the MSL to file string path = mslOutFile; if (mslOutFile.empty()) { path = pathWithExtension(inFile, "metal", _shouldIncludeOrigPathExtn, _origPathExtnSep); } - const string& msl = spvConverter.getMSL(); string compileErrMsg; - bool wasCompiled = compile(msl, compileErrMsg, _mslVersionMajor, _mslVersionMinor, _mslVersionPatch); + bool wasCompiled = compile(conversionResult.msl, compileErrMsg, _mslVersionMajor, _mslVersionMinor, _mslVersionPatch); if (compileErrMsg.size() > 0) { string preamble = wasCompiled ? "is valid but the validation compilation produced warnings: " : "failed a validation compilation: "; compileErrMsg = "Generated MSL " + preamble + compileErrMsg; @@ -255,7 +254,7 @@ bool MoltenVKShaderConverterTool::convertSPIRV(const vector& spv, } vector fileContents; - fileContents.insert(fileContents.end(), msl.begin(), msl.end()); + fileContents.insert(fileContents.end(), conversionResult.msl.begin(), conversionResult.msl.end()); string writeErrMsg; if (writeFile(path, fileContents, writeErrMsg)) { string logMsg = "Saved MSL to file: " + fileName(path); From 7f70e3750d87f5476037a0cb715552c5b6b79d87 Mon Sep 17 00:00:00 2001 From: sean Date: Tue, 28 Feb 2023 18:30:50 +0100 Subject: [PATCH 60/72] Fix: Remove XCODE_12_2 & only use Apple8 on Xcode 14 --- Common/MVKCommonEnvironment.h | 4 ---- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 8 ++++---- MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm | 4 ++-- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Common/MVKCommonEnvironment.h b/Common/MVKCommonEnvironment.h index 4f2401c24..ae4c6e348 100644 --- a/Common/MVKCommonEnvironment.h +++ b/Common/MVKCommonEnvironment.h @@ -96,10 +96,6 @@ extern "C" { # define MVK_XCODE_13 ((__MAC_OS_X_VERSION_MAX_ALLOWED >= 120000) || \ (__IPHONE_OS_VERSION_MAX_ALLOWED >= 150000)) // Also covers tvOS #endif -#ifndef MVK_XCODE_12_2 -# define MVK_XCODE_12_2 ((__MAC_OS_X_VERSION_MAX_ALLOWED >= 110000) || \ - (__IPHONE_OS_VERSION_MAX_ALLOWED >= 140200)) // Also covers tvOS -#endif #ifndef MVK_XCODE_12 # define MVK_XCODE_12 ((__MAC_OS_X_VERSION_MAX_ALLOWED >= 101600) || \ (__IPHONE_OS_VERSION_MAX_ALLOWED >= 140000)) // Also covers tvOS diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 876d68306..a4b71d486 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -2789,7 +2789,7 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope #if (MVK_IOS || MVK_MACOS) && MVK_XCODE_12 if (supportsMTLGPUFamily(Apple7)) { gpuFam = MTLGPUFamilyApple7; } #endif -#if (MVK_IOS || MVK_MACOS) && MVK_XCODE_13 +#if MVK_XCODE_14 || (MVK_IOS && MVK_XCODE_13) if (supportsMTLGPUFamily(Apple8)) { gpuFam = MTLGPUFamilyApple8; } #endif @@ -3205,7 +3205,7 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope logMsg += "\n\tsupports the following Metal Versions, GPU's and Feature Sets:"; logMsg += "\n\t\tMetal Shading Language %s"; -#if (MVK_IOS || MVK_MACOS) && MVK_XCODE_13 +#if MVK_XCODE_14 || (MVK_IOS && MVK_XCODE_13) if (supportsMTLGPUFamily(Apple8)) { logMsg += "\n\t\tGPU Family Apple 8"; } #endif #if (MVK_IOS || MVK_MACOS) && MVK_XCODE_12 @@ -4752,8 +4752,8 @@ uint64_t mvkGetRegistryID(id mtlDevice) { bool mvkSupportsBCTextureCompression(id mtlDevice) { #if MVK_IOS || MVK_TVOS || MVK_MACCAT return false; - #endif - #if MVK_MACOS && !MVK_MACCAT +#endif +#if MVK_MACOS && !MVK_MACCAT #if MVK_XCODE_12 if ([mtlDevice respondsToSelector: @selector(supportsBCTextureCompression)]) { return mtlDevice.supportsBCTextureCompression; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm index f8af88872..714341685 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPixelFormats.mm @@ -28,7 +28,7 @@ // Add stub defs for unsupported MTLPixelFormats per platform #if MVK_MACOS -# if !MVK_XCODE_12_2 // macOS 11.0 / iOS 14.2 +# if !MVK_XCODE_12 // macOS 11.0 / iOS 14.2 # define MTLPixelFormatR8Unorm_sRGB MTLPixelFormatInvalid # define MTLPixelFormatRG8Unorm_sRGB MTLPixelFormatInvalid # define MTLPixelFormatABGR4Unorm MTLPixelFormatInvalid @@ -1491,7 +1491,7 @@ addFeatSetMTLPixFmtCaps( macOS_GPUFamily1_v3, BGR10A2Unorm, RFCMRB ); -#if MVK_XCODE_12_2 +#if MVK_XCODE_12 if ([mtlDevice respondsToSelector: @selector(supports32BitMSAA)] && !mtlDevice.supports32BitMSAA) { From c205c53ad9a1e400d90d25b42c6fd9465a32b69f Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Fri, 3 Mar 2023 10:39:26 -0500 Subject: [PATCH 61/72] Reduce memory footprint of retained MSL source code. - Add MVKCompressor template class, and mvkCompress() & mvkDecompress() functions to support general data compression. - Add MVKConfiguration::shaderSourceCompressionAlgorithm and env var MVK_CONFIG_SHADER_COMPRESSION_ALGORITHM to support compressing MSL shader source code held in a pipeline cache. - Add MVKShaderCompilationPerformance::mslCompress and mslDecompress to allow performance of MSL compression to be tracked and queried. - Add support for logging performance stats accumulated in a VkDevice, when it is destroyed. Good for CTS testing. - Change MVKConfiguration::logActivityPerformanceInline boolean to activityPerformanceLoggingStyle enumeration value. - Add MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE environment variable and build setting to set MVKConfiguration::activityPerformanceLoggingStyle value. --- Docs/Whats_New.md | 11 ++- MoltenVK/MoltenVK.xcodeproj/project.pbxproj | 16 ++-- MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 60 ++++++++++--- MoltenVK/MoltenVK/GPUObjects/MVKDevice.h | 6 +- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 54 +++++++----- MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm | 21 +++-- .../MoltenVK/GPUObjects/MVKShaderModule.h | 23 +++-- .../MoltenVK/GPUObjects/MVKShaderModule.mm | 59 ++++++++++--- MoltenVK/MoltenVK/Layers/MVKLayers.mm | 1 - MoltenVK/MoltenVK/Utility/MVKCodec.h | 88 ++++++++++++++++++- .../Utility/{MVKCodec.cpp => MVKCodec.mm} | 75 +++++++++++++++- MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp | 14 ++- MoltenVK/MoltenVK/Utility/MVKEnvironment.h | 12 ++- .../SPIRVToMSLConverter.h | 2 +- Scripts/runcts | 14 +-- 15 files changed, 369 insertions(+), 87 deletions(-) rename MoltenVK/MoltenVK/Utility/{MVKCodec.cpp => MVKCodec.mm} (53%) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 7591865ff..4c0d11741 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -32,8 +32,17 @@ Released TBA - Change rounding of surface size provided by Metal from truncation to rounding-with-half-to-even. - Queue submissions retain wait semaphores until `MTLCommandBuffer` finishes. - Use a different visibility buffer for each `MTLCommandBuffer` in a queue submit. -- Reduce memory footprint of retained MSL source code. - Work around problems with using explicit LoD with arrayed depth images on Apple Silicon. +- Reduce memory footprint of MSL source code retained in pipeline cache. +- Add `MVKConfiguration::shaderSourceCompressionAlgorithm` and + env var `MVK_CONFIG_SHADER_COMPRESSION_ALGORITHM` to support + compressing MSL shader source code held in a pipeline cache. +- Add `MVKShaderCompilationPerformance::mslCompress` and `mslDecompress` + to allow performance of MSL compression to be tracked and queried. +- Add support for logging performance stats accumulated in a `VkDevice`, when it is destroyed. +- Change `MVKConfiguration::logActivityPerformanceInline` boolean to `activityPerformanceLoggingStyle` enumeration value. +- Add `MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE` environment variable and + build setting to set `MVKConfiguration::activityPerformanceLoggingStyle` value. - Update `VK_MVK_MOLTENVK_SPEC_VERSION` to version `37`. diff --git a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj index 887839120..2c4b87eb0 100644 --- a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj +++ b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj @@ -112,7 +112,7 @@ 2FEA0AAA24902F9F00EEF3AD /* MVKOSExtensions.mm in Sources */ = {isa = PBXBuildFile; fileRef = A9B51BD2225E986A00AC74D2 /* MVKOSExtensions.mm */; }; 2FEA0AAB24902F9F00EEF3AD /* MVKShaderModule.mm in Sources */ = {isa = PBXBuildFile; fileRef = A94FB7981C7DFB4800632CA3 /* MVKShaderModule.mm */; }; 2FEA0AAC24902F9F00EEF3AD /* MVKSync.mm in Sources */ = {isa = PBXBuildFile; fileRef = A94FB79E1C7DFB4800632CA3 /* MVKSync.mm */; }; - 2FEA0AAD24902F9F00EEF3AD /* MVKCodec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45557A4D21C9EFF3008868BD /* MVKCodec.cpp */; }; + 2FEA0AAD24902F9F00EEF3AD /* MVKCodec.mm in Sources */ = {isa = PBXBuildFile; fileRef = 45557A4D21C9EFF3008868BD /* MVKCodec.mm */; }; 2FEA0AAE24902F9F00EEF3AD /* MVKCmdPipeline.mm in Sources */ = {isa = PBXBuildFile; fileRef = A94FB76F1C7DFB4800632CA3 /* MVKCmdPipeline.mm */; }; 2FEA0AAF24902F9F00EEF3AD /* MVKLayers.mm in Sources */ = {isa = PBXBuildFile; fileRef = A94FB7A11C7DFB4800632CA3 /* MVKLayers.mm */; }; 2FEA0AB024902F9F00EEF3AD /* MVKFramebuffer.mm in Sources */ = {isa = PBXBuildFile; fileRef = A94FB7881C7DFB4800632CA3 /* MVKFramebuffer.mm */; }; @@ -136,8 +136,8 @@ 4553AEFC2251617100E8EBCD /* MVKBlockObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 4553AEF62251617100E8EBCD /* MVKBlockObserver.m */; }; 4553AEFD2251617100E8EBCD /* MVKBlockObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 4553AEFA2251617100E8EBCD /* MVKBlockObserver.h */; }; 4553AEFE2251617100E8EBCD /* MVKBlockObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 4553AEFA2251617100E8EBCD /* MVKBlockObserver.h */; }; - 45557A5221C9EFF3008868BD /* MVKCodec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45557A4D21C9EFF3008868BD /* MVKCodec.cpp */; }; - 45557A5321C9EFF3008868BD /* MVKCodec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45557A4D21C9EFF3008868BD /* MVKCodec.cpp */; }; + 45557A5221C9EFF3008868BD /* MVKCodec.mm in Sources */ = {isa = PBXBuildFile; fileRef = 45557A4D21C9EFF3008868BD /* MVKCodec.mm */; }; + 45557A5321C9EFF3008868BD /* MVKCodec.mm in Sources */ = {isa = PBXBuildFile; fileRef = 45557A4D21C9EFF3008868BD /* MVKCodec.mm */; }; 45557A5421C9EFF3008868BD /* MVKCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = 45557A5121C9EFF3008868BD /* MVKCodec.h */; }; 45557A5521C9EFF3008868BD /* MVKCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = 45557A5121C9EFF3008868BD /* MVKCodec.h */; }; A9096E5E1F81E16300DFBEA6 /* MVKCmdDispatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = A9096E5D1F81E16300DFBEA6 /* MVKCmdDispatch.mm */; }; @@ -428,7 +428,7 @@ 453638312508A4C7000EFFD3 /* MTLRenderPassDepthAttachmentDescriptor+MoltenVK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MTLRenderPassDepthAttachmentDescriptor+MoltenVK.h"; sourceTree = ""; }; 4553AEF62251617100E8EBCD /* MVKBlockObserver.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MVKBlockObserver.m; sourceTree = ""; }; 4553AEFA2251617100E8EBCD /* MVKBlockObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKBlockObserver.h; sourceTree = ""; }; - 45557A4D21C9EFF3008868BD /* MVKCodec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MVKCodec.cpp; sourceTree = ""; }; + 45557A4D21C9EFF3008868BD /* MVKCodec.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MVKCodec.mm; sourceTree = ""; }; 45557A5121C9EFF3008868BD /* MVKCodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKCodec.h; sourceTree = ""; }; 45557A5721CD83C3008868BD /* MVKDXTnCodec.def */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = MVKDXTnCodec.def; sourceTree = ""; }; A9096E5C1F81E16300DFBEA6 /* MVKCmdDispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MVKCmdDispatch.h; sourceTree = ""; }; @@ -691,8 +691,8 @@ A9D7104E25CDE05E00E38106 /* MVKBitArray.h */, 4553AEFA2251617100E8EBCD /* MVKBlockObserver.h */, 4553AEF62251617100E8EBCD /* MVKBlockObserver.m */, - 45557A4D21C9EFF3008868BD /* MVKCodec.cpp */, 45557A5121C9EFF3008868BD /* MVKCodec.h */, + 45557A4D21C9EFF3008868BD /* MVKCodec.mm */, 45557A5721CD83C3008868BD /* MVKDXTnCodec.def */, A9A5E9C525C0822700E9085E /* MVKEnvironment.cpp */, A98149431FB6A3F7005F00B4 /* MVKEnvironment.h */, @@ -1368,7 +1368,7 @@ 2FEA0AAA24902F9F00EEF3AD /* MVKOSExtensions.mm in Sources */, 2FEA0AAB24902F9F00EEF3AD /* MVKShaderModule.mm in Sources */, 2FEA0AAC24902F9F00EEF3AD /* MVKSync.mm in Sources */, - 2FEA0AAD24902F9F00EEF3AD /* MVKCodec.cpp in Sources */, + 2FEA0AAD24902F9F00EEF3AD /* MVKCodec.mm in Sources */, 2FEA0AAE24902F9F00EEF3AD /* MVKCmdPipeline.mm in Sources */, 2FEA0AAF24902F9F00EEF3AD /* MVKLayers.mm in Sources */, 2FEA0AB024902F9F00EEF3AD /* MVKFramebuffer.mm in Sources */, @@ -1427,7 +1427,7 @@ A9B51BD7225E986A00AC74D2 /* MVKOSExtensions.mm in Sources */, A94FB80E1C7DFB4800632CA3 /* MVKShaderModule.mm in Sources */, A94FB81A1C7DFB4800632CA3 /* MVKSync.mm in Sources */, - 45557A5221C9EFF3008868BD /* MVKCodec.cpp in Sources */, + 45557A5221C9EFF3008868BD /* MVKCodec.mm in Sources */, A94FB7BE1C7DFB4800632CA3 /* MVKCmdPipeline.mm in Sources */, A94FB81E1C7DFB4800632CA3 /* MVKLayers.mm in Sources */, A94FB7EE1C7DFB4800632CA3 /* MVKFramebuffer.mm in Sources */, @@ -1487,7 +1487,7 @@ A9B51BD8225E986A00AC74D2 /* MVKOSExtensions.mm in Sources */, A94FB80F1C7DFB4800632CA3 /* MVKShaderModule.mm in Sources */, A94FB81B1C7DFB4800632CA3 /* MVKSync.mm in Sources */, - 45557A5321C9EFF3008868BD /* MVKCodec.cpp in Sources */, + 45557A5321C9EFF3008868BD /* MVKCodec.mm in Sources */, A94FB7BF1C7DFB4800632CA3 /* MVKCmdPipeline.mm in Sources */, A94FB81F1C7DFB4800632CA3 /* MVKLayers.mm in Sources */, A94FB7EF1C7DFB4800632CA3 /* MVKFramebuffer.mm in Sources */, diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index a6b4803fc..7377f05f2 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -130,6 +130,24 @@ typedef enum MVKConfigFastMath { MVK_CONFIG_FAST_MATH_MAX_ENUM = 0x7FFFFFFF } MVKConfigFastMath; +/** Identifies available system data compression algorithms. */ +typedef enum MVKConfigCompressionAlgorithm { + MVK_CONFIG_COMPRESSION_ALGORITHM_NONE = 0, /**< No compression. */ + MVK_CONFIG_COMPRESSION_ALGORITHM_LZFSE = 1, /**< Apple proprietary. Good balance of high performance and small compression size, particularly for larger data content. */ + MVK_CONFIG_COMPRESSION_ALGORITHM_ZLIB = 2, /**< Open cross-platform ZLib format. For smaller data content, has better performance and smaller size than LZFSE. */ + MVK_CONFIG_COMPRESSION_ALGORITHM_LZ4 = 3, /**< Fastest performance. Largest compression size. */ + MVK_CONFIG_COMPRESSION_ALGORITHM_LZMA = 4, /**< Slowest performance. Smallest compression size, particular with larger content. */ + MVK_CONFIG_COMPRESSION_ALGORITHM_MAX_ENUM = 0x7FFFFFFF, +} MVKConfigCompressionAlgorithm; + +/** Identifies the style of activity performance logging to use. */ +typedef enum MVKConfigActivityPerformanceLoggingStyle { + MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_FRAME_COUNT = 0, /**< Repeatedly log performance after a configured number of frames. */ + MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_IMMEDIATE = 1, /**< Log immediately after each performance measurement. */ + MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_DEVICE_LIFETIME = 2, /**< Log at the end of the VkDevice lifetime. This is useful for one-shot apps such as testing frameworks. */ + MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_MAX_ENUM = 0x7FFFFFFF, +} MVKConfigActivityPerformanceLoggingStyle; + /** * MoltenVK configuration settings. * @@ -361,8 +379,8 @@ typedef struct { * If enabled, performance statistics, as defined by the MVKPerformanceStatistics structure, * are collected, and can be retrieved via the vkGetPerformanceStatisticsMVK() function. * - * You can also use the performanceLoggingFrameCount or logActivityPerformanceInline - * parameters to automatically log the performance statistics collected by this parameter. + * You can also use the activityPerformanceLoggingStyle and performanceLoggingFrameCount + * parameters to configure when to log the performance statistics collected by this parameter. * * The value of this parameter must be changed before creating a VkDevice, * for the change to take effect. @@ -770,21 +788,20 @@ typedef struct { VkBool32 useMTLHeap; /** - * Controls whether MoltenVK should log the performance of individual activities as they happen. - * If this setting is enabled, activity performance will be logged when each activity happens. - * If this setting is disabled, activity performance will be logged when frame peformance is - * logged as determined by the performanceLoggingFrameCount value. + * Controls when MoltenVK should log activity performance events. * * The value of this parameter must be changed before creating a VkDevice, * for the change to take effect. * * The initial value or this parameter is set by the - * MVK_CONFIG_PERFORMANCE_LOGGING_INLINE + * MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE * runtime environment variable or MoltenVK compile-time build setting. - * If neither is set, this setting is disabled by default, and activity - * performance will be logged only when frame activity is logged. + * If neither is set, this setting is set to + * MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_FRAME_COUNT by default, + * and activity performance will be logged when frame activity is logged. */ - VkBool32 logActivityPerformanceInline; + MVKConfigActivityPerformanceLoggingStyle activityPerformanceLoggingStyle; +#define logActivityPerformanceInline activityPerformanceLoggingStyle /** * Controls the Vulkan API version that MoltenVK should advertise in vkEnumerateInstanceVersion(). @@ -877,6 +894,27 @@ typedef struct { */ MVKUseMetalArgumentBuffers useMetalArgumentBuffers; + /** + * Controls the type of compression to use on the MSL source code that is stored in memory + * for use in a pipeline cache. After being converted from SPIR-V, or loaded directly into + * a VkShaderModule, and then compiled into a MTLLibrary, the MSL source code is no longer + * needed for operation, but it is retained so it can be written out as part of a pipeline + * cache export. When a large number of shaders are loaded, this can consume significant + * memory. In such a case, this parameter can be used to compress the MSL source code that + * is awaiting export as part of a pipeline cache. + * + * The value of this parameter can be changed at any time, and will affect the size of + * the cached MSL from subsequent shader compilations. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_SHADER_COMPRESSION_ALGORITHM + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is set to + * MVK_CONFIG_COMPRESSION_ALGORITHM_NONE by default, + * and MoltenVK will not compress the MSL source code after compilation into a MTLLibrary. + */ + MVKConfigCompressionAlgorithm shaderSourceCompressionAlgorithm; + } MVKConfiguration; /** Identifies the type of rounding Metal uses for float to integer conversions in particular calculatons. */ @@ -999,6 +1037,8 @@ typedef struct { MVKPerformanceTracker spirvToMSL; /** Convert SPIR-V to MSL source code. */ MVKPerformanceTracker mslCompile; /** Compile MSL source code into a MTLLibrary. */ MVKPerformanceTracker mslLoad; /** Load pre-compiled MSL code into a MTLLibrary. */ + MVKPerformanceTracker mslCompress; /** Compress MSL source code after compiling a MTLLibrary, to hold it in a pipeline cache. */ + MVKPerformanceTracker mslDecompress; /** Decompress MSL source code to write the MSL when serializing a pipeline cache. */ MVKPerformanceTracker shaderLibraryFromCache; /** Retrieve a shader library from the cache, lazily creating it if needed. */ MVKPerformanceTracker functionRetrieval; /** Retrieve a MTLFunction from a MTLLibrary. */ MVKPerformanceTracker functionSpecialization; /** Specialize a retrieved MTLFunction. */ diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h index f58d9ee39..c9b0e97e3 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h @@ -686,7 +686,9 @@ class MVKDevice : public MVKDispatchableVulkanAPIObject { // Log call not locked. Very minor chance that the tracker data will be updated during log call, // resulting in an inconsistent report. Not worth taking lock perf hit for rare inline reporting. - if (_logActivityPerformanceInline) { logActivityPerformance(activityTracker, _performanceStatistics, true); } + if (_activityPerformanceLoggingStyle == MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_IMMEDIATE) { + logActivityPerformance(activityTracker, _performanceStatistics, true); + } } }; @@ -891,7 +893,7 @@ class MVKDevice : public MVKDispatchableVulkanAPIObject { id _defaultMTLSamplerState = nil; id _dummyBlitMTLBuffer = nil; uint32_t _globalVisibilityQueryCount = 0; - bool _logActivityPerformanceInline = false; + MVKConfigActivityPerformanceLoggingStyle _activityPerformanceLoggingStyle = MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_FRAME_COUNT; bool _isPerformanceTracking = false; bool _isCurrentlyAutoGPUCapturing = false; bool _isUsingMetalArgumentBuffers = false; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 11ab94432..60bb270da 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -4000,7 +4000,7 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope } void MVKDevice::logPerformanceSummary() { - if (_logActivityPerformanceInline) { return; } + if (_activityPerformanceLoggingStyle == MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_IMMEDIATE) { return; } // Get a copy to minimize time under lock MVKPerformanceStatistics perfStats; @@ -4014,6 +4014,8 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope logActivityPerformance(perfStats.shaderCompilation.spirvToMSL, perfStats); logActivityPerformance(perfStats.shaderCompilation.mslCompile, perfStats); logActivityPerformance(perfStats.shaderCompilation.mslLoad, perfStats); + logActivityPerformance(perfStats.shaderCompilation.mslCompress, perfStats); + logActivityPerformance(perfStats.shaderCompilation.mslDecompress, perfStats); logActivityPerformance(perfStats.shaderCompilation.shaderLibraryFromCache, perfStats); logActivityPerformance(perfStats.shaderCompilation.functionRetrieval, perfStats); logActivityPerformance(perfStats.shaderCompilation.functionSpecialization, perfStats); @@ -4028,6 +4030,8 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope if (&activity == &perfStats.shaderCompilation.spirvToMSL) { return "Convert SPIR-V to MSL source code"; } if (&activity == &perfStats.shaderCompilation.mslCompile) { return "Compile MSL source code into a MTLLibrary"; } if (&activity == &perfStats.shaderCompilation.mslLoad) { return "Load pre-compiled MSL code into a MTLLibrary"; } + if (&activity == &perfStats.shaderCompilation.mslCompress) { return "Compress MSL source code after compiling a MTLLibrary"; } + if (&activity == &perfStats.shaderCompilation.mslDecompress) { return "Decompress MSL source code during pipeline cache write"; } if (&activity == &perfStats.shaderCompilation.shaderLibraryFromCache) { return "Retrieve shader library from the cache"; } if (&activity == &perfStats.shaderCompilation.functionRetrieval) { return "Retrieve a MTLFunction from a MTLLibrary"; } if (&activity == &perfStats.shaderCompilation.functionSpecialization) { return "Specialize a retrieved MTLFunction"; } @@ -4377,29 +4381,25 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope void MVKDevice::initPerformanceTracking() { _isPerformanceTracking = mvkConfig().performanceTracking; - _logActivityPerformanceInline = mvkConfig().logActivityPerformanceInline; - - MVKPerformanceTracker initPerf; - initPerf.count = 0; - initPerf.averageDuration = 0.0; - initPerf.minimumDuration = 0.0; - initPerf.maximumDuration = 0.0; - - _performanceStatistics.shaderCompilation.hashShaderCode = initPerf; - _performanceStatistics.shaderCompilation.spirvToMSL = initPerf; - _performanceStatistics.shaderCompilation.mslCompile = initPerf; - _performanceStatistics.shaderCompilation.mslLoad = initPerf; - _performanceStatistics.shaderCompilation.shaderLibraryFromCache = initPerf; - _performanceStatistics.shaderCompilation.functionRetrieval = initPerf; - _performanceStatistics.shaderCompilation.functionSpecialization = initPerf; - _performanceStatistics.shaderCompilation.pipelineCompile = initPerf; - _performanceStatistics.pipelineCache.sizePipelineCache = initPerf; - _performanceStatistics.pipelineCache.writePipelineCache = initPerf; - _performanceStatistics.pipelineCache.readPipelineCache = initPerf; - _performanceStatistics.queue.mtlQueueAccess = initPerf; - _performanceStatistics.queue.mtlCommandBufferCompletion = initPerf; - _performanceStatistics.queue.nextCAMetalDrawable = initPerf; - _performanceStatistics.queue.frameInterval = initPerf; + _activityPerformanceLoggingStyle = mvkConfig().activityPerformanceLoggingStyle; + + _performanceStatistics.shaderCompilation.hashShaderCode = {}; + _performanceStatistics.shaderCompilation.spirvToMSL = {}; + _performanceStatistics.shaderCompilation.mslCompile = {}; + _performanceStatistics.shaderCompilation.mslLoad = {}; + _performanceStatistics.shaderCompilation.mslCompress = {}; + _performanceStatistics.shaderCompilation.mslDecompress = {}; + _performanceStatistics.shaderCompilation.shaderLibraryFromCache = {}; + _performanceStatistics.shaderCompilation.functionRetrieval = {}; + _performanceStatistics.shaderCompilation.functionSpecialization = {}; + _performanceStatistics.shaderCompilation.pipelineCompile = {}; + _performanceStatistics.pipelineCache.sizePipelineCache = {}; + _performanceStatistics.pipelineCache.writePipelineCache = {}; + _performanceStatistics.pipelineCache.readPipelineCache = {}; + _performanceStatistics.queue.mtlQueueAccess = {}; + _performanceStatistics.queue.mtlCommandBufferCompletion = {}; + _performanceStatistics.queue.nextCAMetalDrawable = {}; + _performanceStatistics.queue.frameInterval = {}; } void MVKDevice::initPhysicalDevice(MVKPhysicalDevice* physicalDevice, const VkDeviceCreateInfo* pCreateInfo) { @@ -4666,9 +4666,15 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope } MVKDevice::~MVKDevice() { + if (_activityPerformanceLoggingStyle == MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_DEVICE_LIFETIME) { + MVKLogInfo("Device activity performance summary:"); + logPerformanceSummary(); + } + for (auto& queues : _queuesByQueueFamilyIndex) { mvkDestroyContainerContents(queues); } + if (_commandResourceFactory) { _commandResourceFactory->destroy(); } [_globalVisibilityResultMTLBuffer release]; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm index 59230540c..426d11824 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm @@ -2004,7 +2004,7 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 bool next() { return (++_index < (_pSLCache ? _pSLCache->_shaderLibraries.size() : 0)); } SPIRVToMSLConversionConfiguration& getShaderConversionConfig() { return _pSLCache->_shaderLibraries[_index].first; } - std::string& getMSL() { return _pSLCache->_shaderLibraries[_index].second->_msl; } + MVKCompressor& getCompressedMSL() { return _pSLCache->_shaderLibraries[_index].second->getCompressedMSL(); } SPIRVToMSLConversionResultInfo& getShaderConversionResultInfo() { return _pSLCache->_shaderLibraries[_index].second->_shaderConversionResultInfo; } MVKShaderCacheIterator(MVKShaderLibraryCache* pSLCache) : _pSLCache(pSLCache) {} @@ -2087,7 +2087,7 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 writer(smKey); writer(cacheIter.getShaderConversionConfig()); writer(cacheIter.getShaderConversionResultInfo()); - writer(cacheIter.getMSL()); + writer(cacheIter.getCompressedMSL()); _device->addActivityPerformance(activityTracker, startTime); } } @@ -2149,14 +2149,16 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 SPIRVToMSLConversionConfiguration shaderConversionConfig; reader(shaderConversionConfig); - SPIRVToMSLConversionResult shaderConversionResult; - reader(shaderConversionResult.resultInfo); - reader(shaderConversionResult.msl); + SPIRVToMSLConversionResultInfo resultInfo; + reader(resultInfo); + + MVKCompressor compressedMSL; + reader(compressedMSL); // Add the shader library to the staging cache. MVKShaderLibraryCache* slCache = getShaderLibraryCache(smKey); _device->addActivityPerformance(_device->_performanceStatistics.pipelineCache.readPipelineCache, startTime); - slCache->addShaderLibrary(&shaderConversionConfig, shaderConversionResult); + slCache->addShaderLibrary(&shaderConversionConfig, resultInfo, compressedMSL); break; } @@ -2394,6 +2396,13 @@ void serialize(Archive & archive, MVKShaderModuleKey& k) { k.codeHash); } +template +void serialize(Archive & archive, MVKCompressor& comp) { + archive(comp._compressed, + comp._uncompressedSize, + comp._algorithm); +} + #pragma mark Construction diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h index 3d7e3e4fb..029699273 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h @@ -20,6 +20,7 @@ #include "MVKDevice.h" #include "MVKSync.h" +#include "MVKCodec.h" #include "MVKSmallVector.h" #include #include @@ -84,10 +85,13 @@ class MVKShaderLibrary : public MVKBaseObject { */ void setWorkgroupSize(uint32_t x, uint32_t y, uint32_t z); - /** Constructs an instance from the specified MSL source code. */ - MVKShaderLibrary(MVKVulkanAPIDeviceObject* owner, const SPIRVToMSLConversionResult& conversionResult); + MVKShaderLibrary(MVKVulkanAPIDeviceObject* owner, + const SPIRVToMSLConversionResult& conversionResult); + + MVKShaderLibrary(MVKVulkanAPIDeviceObject* owner, + const SPIRVToMSLConversionResultInfo& resultInfo, + const MVKCompressor compressedMSL); - /** Constructs an instance from the specified compiled MSL code data. */ MVKShaderLibrary(MVKVulkanAPIDeviceObject* owner, const void* mslCompiledCodeData, size_t mslCompiledCodeLength); @@ -106,11 +110,15 @@ class MVKShaderLibrary : public MVKBaseObject { MVKMTLFunction getMTLFunction(const VkSpecializationInfo* pSpecializationInfo, MVKShaderModule* shaderModule); void handleCompilationError(NSError* err, const char* opDesc); MTLFunctionConstant* getFunctionConstant(NSArray* mtlFCs, NSUInteger mtlFCID); + void compileLibrary(const std::string& msl); + void compressMSL(const std::string& msl); + void decompressMSL(std::string& msl); + MVKCompressor& getCompressedMSL() { return _compressedMSL; } MVKVulkanAPIDeviceObject* _owner; id _mtlLibrary; + MVKCompressor _compressedMSL; SPIRVToMSLConversionResultInfo _shaderConversionResultInfo; - std::string _msl; }; @@ -146,8 +154,11 @@ class MVKShaderLibraryCache : public MVKBaseObject { friend MVKShaderModule; MVKShaderLibrary* findShaderLibrary(SPIRVToMSLConversionConfiguration* pShaderConfig); - MVKShaderLibrary* addShaderLibrary(SPIRVToMSLConversionConfiguration* pShaderConfig, - SPIRVToMSLConversionResult& conversionResult); + MVKShaderLibrary* addShaderLibrary(const SPIRVToMSLConversionConfiguration* pShaderConfig, + const SPIRVToMSLConversionResult& conversionResult); + MVKShaderLibrary* addShaderLibrary(const SPIRVToMSLConversionConfiguration* pShaderConfig, + const SPIRVToMSLConversionResultInfo& resultInfo, + const MVKCompressor compressedMSL); void merge(MVKShaderLibraryCache* other); MVKVulkanAPIDeviceObject* _owner; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm index ce2e9975d..7d7f6db2a 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm @@ -19,7 +19,6 @@ #include "MVKShaderModule.h" #include "MVKPipeline.h" #include "MVKFoundation.h" -#include using namespace std; @@ -140,18 +139,45 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD wgSize.depth.size = z; } +// Sets the cached MSL source code, after first compressing it. +void MVKShaderLibrary::compressMSL(const string& msl) { + MVKDevice* mvkDev = _owner->getDevice(); + uint64_t startTime = mvkDev->getPerformanceTimestamp(); + _compressedMSL.compress(msl, mvkConfig().shaderSourceCompressionAlgorithm); + mvkDev->addActivityPerformance(mvkDev->_performanceStatistics.shaderCompilation.mslCompress, startTime); +} + +// Decompresses the cached MSL into the string. +void MVKShaderLibrary::decompressMSL(string& msl) { + MVKDevice* mvkDev = _owner->getDevice(); + uint64_t startTime = mvkDev->getPerformanceTimestamp(); + _compressedMSL.decompress(msl); + mvkDev->addActivityPerformance(mvkDev->_performanceStatistics.shaderCompilation.mslDecompress, startTime); +} + MVKShaderLibrary::MVKShaderLibrary(MVKVulkanAPIDeviceObject* owner, const SPIRVToMSLConversionResult& conversionResult) : _owner(owner) { - MVKShaderLibraryCompiler* slc = new MVKShaderLibraryCompiler(_owner); + _shaderConversionResultInfo = conversionResult.resultInfo; + compressMSL(conversionResult.msl); + compileLibrary(conversionResult.msl); +} - NSString* nsSrc = [[NSString alloc] initWithUTF8String: conversionResult.msl.c_str()]; // temp retained - _mtlLibrary = slc->newMTLLibrary(nsSrc, conversionResult.resultInfo); // retained - [nsSrc release]; // release temp string +MVKShaderLibrary::MVKShaderLibrary(MVKVulkanAPIDeviceObject* owner, + const SPIRVToMSLConversionResultInfo& resultInfo, + const MVKCompressor compressedMSL) : _owner(owner) { + _shaderConversionResultInfo = resultInfo; + _compressedMSL = compressedMSL; + string msl; + decompressMSL(msl); + compileLibrary(msl); +} +void MVKShaderLibrary::compileLibrary(const string& msl) { + MVKShaderLibraryCompiler* slc = new MVKShaderLibraryCompiler(_owner); + NSString* nsSrc = [[NSString alloc] initWithUTF8String: msl.c_str()]; // temp retained + _mtlLibrary = slc->newMTLLibrary(nsSrc, _shaderConversionResultInfo); // retained + [nsSrc release]; // release temp string slc->destroy(); - - _shaderConversionResultInfo = conversionResult.resultInfo; - _msl = conversionResult.msl; } MVKShaderLibrary::MVKShaderLibrary(MVKVulkanAPIDeviceObject* owner, @@ -176,7 +202,7 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD _owner = other._owner; _mtlLibrary = [other._mtlLibrary retain]; _shaderConversionResultInfo = other._shaderConversionResultInfo; - _msl = other._msl; + _compressedMSL = other._compressedMSL; } MVKShaderLibrary& MVKShaderLibrary::operator=(const MVKShaderLibrary& other) { @@ -186,7 +212,7 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD } _owner = other._owner; _shaderConversionResultInfo = other._shaderConversionResultInfo; - _msl = other._msl; + _compressedMSL = other._compressedMSL; return *this; } @@ -245,13 +271,22 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD } // Adds and returns a new shader library configured from the specified conversion configuration. -MVKShaderLibrary* MVKShaderLibraryCache::addShaderLibrary(SPIRVToMSLConversionConfiguration* pShaderConfig, - SPIRVToMSLConversionResult& conversionResult) { +MVKShaderLibrary* MVKShaderLibraryCache::addShaderLibrary(const SPIRVToMSLConversionConfiguration* pShaderConfig, + const SPIRVToMSLConversionResult& conversionResult) { MVKShaderLibrary* shLib = new MVKShaderLibrary(_owner, conversionResult); _shaderLibraries.emplace_back(*pShaderConfig, shLib); return shLib; } +// Adds and returns a new shader library configured from contents read from a pipeline cache. +MVKShaderLibrary* MVKShaderLibraryCache::addShaderLibrary(const SPIRVToMSLConversionConfiguration* pShaderConfig, + const SPIRVToMSLConversionResultInfo& resultInfo, + const MVKCompressor compressedMSL) { + MVKShaderLibrary* shLib = new MVKShaderLibrary(_owner, resultInfo, compressedMSL); + _shaderLibraries.emplace_back(*pShaderConfig, shLib); + return shLib; +} + // Merge another shader library cache with this one. Handle null input. void MVKShaderLibraryCache::merge(MVKShaderLibraryCache* other) { if ( !other ) { return; } diff --git a/MoltenVK/MoltenVK/Layers/MVKLayers.mm b/MoltenVK/MoltenVK/Layers/MVKLayers.mm index 3405a56e4..040712b31 100644 --- a/MoltenVK/MoltenVK/Layers/MVKLayers.mm +++ b/MoltenVK/MoltenVK/Layers/MVKLayers.mm @@ -19,7 +19,6 @@ #include "MVKLayers.h" #include "MVKEnvironment.h" #include "MVKFoundation.h" -#include "vk_mvk_moltenvk.h" #include using namespace std; diff --git a/MoltenVK/MoltenVK/Utility/MVKCodec.h b/MoltenVK/MoltenVK/Utility/MVKCodec.h index 136f42043..595a50fa6 100644 --- a/MoltenVK/MoltenVK/Utility/MVKCodec.h +++ b/MoltenVK/MoltenVK/Utility/MVKCodec.h @@ -19,17 +19,18 @@ #pragma once -#include "MVKFoundation.h" +#include "MVKEnvironment.h" +#include #include +#pragma mark - #pragma mark Texture data codecs /** * This is the base class implemented by all codecs supported by MoltenVK. - * Objects of this class are used to decompress texture data for upload to a - * 3D texture. + * Objects of this class are used to decompress texture data for upload to a 3D texture. */ class MVKCodec { @@ -43,8 +44,89 @@ class MVKCodec { }; + +#pragma mark - +#pragma mark General data compressor + +/** + * Holds compressed data, along with information allowing it to be decompressed again. + * The template class C must support the basic data container methods data(), size() and resize(). + * + * THIS CLASS IS STREAMED OUT AS PART OF THE PIEPLINE CACHE. + * STURCTURAL CHANGES TO THIS CLASS MUST BE CAPTURED IN THE STREAMING LOGIC OF THE PIPELINE CACHE. + */ +template +class MVKCompressor { + +public: + + /** + * Compresses the content in the data container using the algorithm, and retains + * the compressed content. If an error occurs, or if the compressed data is actually + * larger (which can happen with some compression algorithms if the source is small), + * the uncompressed content is retained. Returns true if the content was successfully + * compressed, or returns false if the content was retained as uncompressed, + */ + bool compress(const C& uncompressed, MVKConfigCompressionAlgorithm algorithm) { + + _uncompressedSize = uncompressed.size(); + _compressed.resize(_uncompressedSize); + _algorithm = algorithm; + size_t compSize = mvkCompress((uint8_t*)uncompressed.data(), uncompressed.size(), + _compressed.data(), _compressed.size(), + _algorithm); + + bool wasCompressed = (compSize > 0); + if ( !wasCompressed ) { + _algorithm = MVK_CONFIG_COMPRESSION_ALGORITHM_NONE; + compSize = mvkCompress((uint8_t*)uncompressed.data(), uncompressed.size(), + _compressed.data(), _compressed.size(), + _algorithm); + } + + _compressed.resize(compSize); + _compressed.shrink_to_fit(); + + return wasCompressed; + } + + /** Decompress the retained compressed content into the data container. */ + void decompress(C& uncompressed) { + uncompressed.resize(_uncompressedSize); + mvkDecompress(_compressed.data(), _compressed.size(), + (uint8_t*)uncompressed.data(), uncompressed.size(), + _algorithm); + } + + std::vector _compressed; + size_t _uncompressedSize = 0; + MVKConfigCompressionAlgorithm _algorithm = MVK_CONFIG_COMPRESSION_ALGORITHM_NONE; +}; + + +#pragma mark - +#pragma mark Support functions + /** Returns an appropriate codec for the given format, or nullptr if the format is not supported. */ std::unique_ptr mvkCreateCodec(VkFormat format); /** Returns whether or not the given format can be decompressed. */ bool mvkCanDecodeFormat(VkFormat format); + +/** + * Compresses the source bytes into the destination bytes using a compression algorithm, + * and returns the number of bytes written to dstBytes. If an error occurs, or the compressed + * data is larger than dstSize, no data is copied to dstBytes, and zero is returned. + */ +size_t mvkCompress(const uint8_t* srcBytes, size_t srcSize, + uint8_t* dstBytes, size_t dstSize, + MVKConfigCompressionAlgorithm compAlgo); + +/** + * Decompresses the source bytes into the destination bytes using a compression algorithm, + * and returns the number of bytes written to dstBytes. If an error occurs, or the decompressed + * data is larger than dstSize, no data is copied to dstBytes, and zero is returned. + */ +size_t mvkDecompress(const uint8_t* srcBytes, size_t srcSize, + uint8_t* dstBytes, size_t dstSize, + MVKConfigCompressionAlgorithm compAlgo); diff --git a/MoltenVK/MoltenVK/Utility/MVKCodec.cpp b/MoltenVK/MoltenVK/Utility/MVKCodec.mm similarity index 53% rename from MoltenVK/MoltenVK/Utility/MVKCodec.cpp rename to MoltenVK/MoltenVK/Utility/MVKCodec.mm index 09669e49e..7c07d6afd 100644 --- a/MoltenVK/MoltenVK/Utility/MVKCodec.cpp +++ b/MoltenVK/MoltenVK/Utility/MVKCodec.mm @@ -18,10 +18,13 @@ #include "MVKCodec.h" +#include "MVKBaseObject.h" +#include "MVKFoundation.h" #include #include +using namespace std; using simd::float3; using simd::float4; @@ -62,8 +65,8 @@ class MVKDXTnCodec : public MVKCodec { for (uint32_t y = 0; y < extent.height; y += 4) { for (uint32_t x = 0; x < extent.width; x += 4) { VkExtent2D blockExtent; - blockExtent.width = std::min(extent.width - x, 4u); - blockExtent.height = std::min(extent.height - y, 4u); + blockExtent.width = min(extent.width - x, 4u); + blockExtent.height = min(extent.height - y, 4u); decompressDXTnBlock(pSrcRow + x * (blockByteCount / 4), pDestRow + x * 4, blockExtent, destLayout.rowPitch, _format); } @@ -90,7 +93,11 @@ class MVKDXTnCodec : public MVKCodec { VkFormat _format; }; -std::unique_ptr mvkCreateCodec(VkFormat format) { + +#pragma mark - +#pragma mark Support functions + +unique_ptr mvkCreateCodec(VkFormat format) { switch (format) { case VK_FORMAT_BC1_RGB_UNORM_BLOCK: case VK_FORMAT_BC1_RGB_SRGB_BLOCK: @@ -100,7 +107,7 @@ std::unique_ptr mvkCreateCodec(VkFormat format) { case VK_FORMAT_BC2_SRGB_BLOCK: case VK_FORMAT_BC3_UNORM_BLOCK: case VK_FORMAT_BC3_SRGB_BLOCK: - return std::unique_ptr(new MVKDXTnCodec(format)); + return unique_ptr(new MVKDXTnCodec(format)); default: return nullptr; @@ -123,3 +130,63 @@ bool mvkCanDecodeFormat(VkFormat format) { return false; } } + +static NSDataCompressionAlgorithm getSystemCompressionAlgo(MVKConfigCompressionAlgorithm compAlgo) { + switch (compAlgo) { + case MVK_CONFIG_COMPRESSION_ALGORITHM_NONE: return NSDataCompressionAlgorithmLZFSE; + case MVK_CONFIG_COMPRESSION_ALGORITHM_LZFSE: return NSDataCompressionAlgorithmLZFSE; + case MVK_CONFIG_COMPRESSION_ALGORITHM_LZ4: return NSDataCompressionAlgorithmLZ4; + case MVK_CONFIG_COMPRESSION_ALGORITHM_LZMA: return NSDataCompressionAlgorithmLZMA; + case MVK_CONFIG_COMPRESSION_ALGORITHM_ZLIB: return NSDataCompressionAlgorithmZlib; + default: return NSDataCompressionAlgorithmLZFSE; + } +} + +// Only copy into the dstBytes if it can fit, otherwise the data will be corrupted +static size_t mvkCompressDecompress(const uint8_t* srcBytes, size_t srcSize, + uint8_t* dstBytes, size_t dstSize, + MVKConfigCompressionAlgorithm compAlgo, + bool isCompressing) { + size_t dstByteCount = 0; + if (compAlgo != MVK_CONFIG_COMPRESSION_ALGORITHM_NONE) { + @autoreleasepool { + NSDataCompressionAlgorithm sysCompAlgo = getSystemCompressionAlgo(compAlgo); + NSData* srcData = [NSData dataWithBytesNoCopy: (void*)srcBytes length: srcSize freeWhenDone: NO]; + + NSError* err = nil; + NSData* dstData = (isCompressing + ? [srcData compressedDataUsingAlgorithm: sysCompAlgo error: &err] + : [srcData decompressedDataUsingAlgorithm: sysCompAlgo error: &err]); + if ( !err ) { + size_t dataLen = dstData.length; + if (dstSize >= dataLen) { + [dstData getBytes: dstBytes length: dstSize]; + dstByteCount = dataLen; + } + } else { + MVKBaseObject::reportError(nullptr, VK_ERROR_FORMAT_NOT_SUPPORTED, + "Could not %scompress data (Error code %li):\n%s", + (isCompressing ? "" : "de"), + (long)err.code, err.localizedDescription.UTF8String); + } + } + } else if (dstSize >= srcSize) { + mvkCopy(dstBytes, srcBytes, srcSize); + dstByteCount = srcSize; + } + return dstByteCount; +} + +size_t mvkCompress(const uint8_t* srcBytes, size_t srcSize, + uint8_t* dstBytes, size_t dstSize, + MVKConfigCompressionAlgorithm compAlgo) { + + return mvkCompressDecompress(srcBytes, srcSize, dstBytes, dstSize, compAlgo, true); +} + +size_t mvkDecompress(const uint8_t* srcBytes, size_t srcSize, + uint8_t* dstBytes, size_t dstSize, + MVKConfigCompressionAlgorithm compAlgo) { + + return mvkCompressDecompress(srcBytes, srcSize, dstBytes, dstSize, compAlgo, false); +} diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp b/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp index 9861a359d..1381c616b 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.cpp @@ -39,7 +39,7 @@ static void mvkInitConfigFromEnvVars() { MVK_SET_FROM_ENV_OR_BUILD_INT64 (evCfg.metalCompileTimeout, MVK_CONFIG_METAL_COMPILE_TIMEOUT); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.performanceTracking, MVK_CONFIG_PERFORMANCE_TRACKING); MVK_SET_FROM_ENV_OR_BUILD_INT32 (evCfg.performanceLoggingFrameCount, MVK_CONFIG_PERFORMANCE_LOGGING_FRAME_COUNT); - MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.logActivityPerformanceInline, MVK_CONFIG_PERFORMANCE_LOGGING_INLINE); + MVK_SET_FROM_ENV_OR_BUILD_INT32 (evCfg.activityPerformanceLoggingStyle, MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.displayWatermark, MVK_CONFIG_DISPLAY_WATERMARK); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.specializedQueueFamilies, MVK_CONFIG_SPECIALIZED_QUEUE_FAMILIES); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.switchSystemGPU, MVK_CONFIG_SWITCH_SYSTEM_GPU); @@ -62,6 +62,7 @@ static void mvkInitConfigFromEnvVars() { MVK_SET_FROM_ENV_OR_BUILD_INT32 (evCfg.advertiseExtensions, MVK_CONFIG_ADVERTISE_EXTENSIONS); MVK_SET_FROM_ENV_OR_BUILD_BOOL (evCfg.resumeLostDevice, MVK_CONFIG_RESUME_LOST_DEVICE); MVK_SET_FROM_ENV_OR_BUILD_INT32 (evCfg.useMetalArgumentBuffers, MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS); + MVK_SET_FROM_ENV_OR_BUILD_INT32 (evCfg.shaderSourceCompressionAlgorithm, MVK_CONFIG_SHADER_COMPRESSION_ALGORITHM); // Deprected legacy VkSemaphore MVK_ALLOW_METAL_FENCES and MVK_ALLOW_METAL_EVENTS config. // Legacy MVK_ALLOW_METAL_EVENTS is covered by MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE, @@ -75,6 +76,17 @@ static void mvkInitConfigFromEnvVars() { evCfg.semaphoreUseMTLEvent = (MVKVkSemaphoreSupportStyle)false; // Disabled. Also semaphoreSupportStyle MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE. } + // Deprecated legacy env var MVK_CONFIG_PERFORMANCE_LOGGING_INLINE config. If legacy + // MVK_CONFIG_PERFORMANCE_LOGGING_INLINE env var was used, and activityPerformanceLoggingStyle + // was not already set by MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE, set + // activityPerformanceLoggingStyle to MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_IMMEDIATE. + bool logPerfInline; + MVK_SET_FROM_ENV_OR_BUILD_BOOL(logPerfInline, MVK_CONFIG_PERFORMANCE_LOGGING_INLINE); + if (logPerfInline && evCfg.activityPerformanceLoggingStyle == MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_FRAME_COUNT) { + evCfg.activityPerformanceLoggingStyle = MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_IMMEDIATE; + } + + mvkSetConfig(evCfg); } diff --git a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h index 16833d08a..cec1740e7 100644 --- a/MoltenVK/MoltenVK/Utility/MVKEnvironment.h +++ b/MoltenVK/MoltenVK/Utility/MVKEnvironment.h @@ -151,8 +151,11 @@ void mvkSetConfig(const MVKConfiguration& mvkConfig); # define MVK_CONFIG_PERFORMANCE_LOGGING_FRAME_COUNT 0 #endif -/** Log activity performance every time an activity occurs. Disabled by default. */ -# ifndef MVK_CONFIG_PERFORMANCE_LOGGING_INLINE +/** Activity performance logging style. Default is to log after a configured number of frames. */ +# ifndef MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE +# define MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_FRAME_COUNT +# endif +# ifndef MVK_CONFIG_PERFORMANCE_LOGGING_INLINE // Deprecated # define MVK_CONFIG_PERFORMANCE_LOGGING_INLINE 0 # endif @@ -286,3 +289,8 @@ void mvkSetConfig(const MVKConfiguration& mvkConfig); #ifndef MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS # define MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS_NEVER #endif + +/** Compress MSL shader source code in a pipeline cache. Defaults to no compression. */ +#ifndef MVK_CONFIG_SHADER_COMPRESSION_ALGORITHM +# define MVK_CONFIG_SHADER_COMPRESSION_ALGORITHM MVK_CONFIG_COMPRESSION_ALGORITHM_NONE +#endif diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h index 34c02b283..765e110ff 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h @@ -279,7 +279,7 @@ namespace mvk { bool hasSPIRV() { return !_spirv.empty(); } /** - * Converts SPIR-V code, set using setSPIRV() to MSL code, which can be retrieved using getMSL(). + * Converts SPIR-V code, set using setSPIRV() to MSL code. * * The boolean flags indicate whether the original SPIR-V code, the resulting MSL code, * and optionally, the original GLSL (as converted from the SPIR_V), should be logged diff --git a/Scripts/runcts b/Scripts/runcts index 4cc33e788..2349e75d0 100755 --- a/Scripts/runcts +++ b/Scripts/runcts @@ -94,22 +94,24 @@ if [ "${is_portability}" != "" ]; then export MVK_CONFIG_ADVERTISE_EXTENSIONS=0xA fi +# ----- Metal validation settings ------ export METAL_DEVICE_WRAPPER_TYPE=1 export METAL_ERROR_MODE=3 export METAL_DEBUG_ERROR_MODE=3 # ----- MoltenVK config settings ------ -export MVK_CONFIG_LOG_LEVEL=1 +export MVK_CONFIG_LOG_LEVEL=1 #(1 = Errors only, 3 = Info) export MVK_DEBUG=0 -# Additional MoltenVK configuration can be set here by -# editing below, or can be set before calling this script. +# Additional MoltenVK configuration can be set here by editing below. export MVK_CONFIG_RESUME_LOST_DEVICE=1 export MVK_CONFIG_FAST_MATH_ENABLED=1 -export MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS=0 #(2 = VK_EXT_descriptor_indexing enabled) export MVK_CONFIG_FORCE_LOW_POWER_GPU=0 -export MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE=2 #(2 = MTLEvents always) - +export MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS=0 #(2 = VK_EXT_descriptor_indexing enabled) +export MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE=2 #(2 = MTLEvents always) +export MVK_CONFIG_SHADER_COMPRESSION_ALGORITHM=0 #(2 = ZLIB, 3 = LZ4) +export MVK_CONFIG_PERFORMANCE_TRACKING=0 +export MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE=2 #(2 = Device lifetime) # -------------- Operation -------------------- From a46dfde1fc62e12b53ac11055f38671e8db68b59 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 6 Mar 2023 12:12:29 -0500 Subject: [PATCH 62/72] Add support extension VK_EXT_pipeline_creation_cache_control. - Adjust locks and performance timing on shader cache lookups. --- Docs/MoltenVK_Runtime_UserGuide.md | 1 + Docs/Whats_New.md | 1 + MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 26 +++- .../GPUObjects/MVKDeviceFeatureStructs.def | 67 ++++---- MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h | 33 +++- MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm | 145 ++++++++++++------ .../MoltenVK/GPUObjects/MVKShaderModule.h | 14 +- .../MoltenVK/GPUObjects/MVKShaderModule.mm | 24 +-- MoltenVK/MoltenVK/Layers/MVKExtensions.def | 1 + 9 files changed, 203 insertions(+), 109 deletions(-) diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index 805671a33..d61496e7e 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -329,6 +329,7 @@ In addition to core *Vulkan* functionality, **MoltenVK** also supports the foll - `VK_EXT_memory_budget` *(requires Metal 2.0)* - `VK_EXT_metal_objects` - `VK_EXT_metal_surface` +- `VK_EXT_pipeline_creation_cache_control` - `VK_EXT_post_depth_coverage` *(iOS and macOS, requires family 4 (A11) or better Apple GPU)* - `VK_EXT_private_data ` - `VK_EXT_robustness2` diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 4c0d11741..5c8957044 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -19,6 +19,7 @@ MoltenVK 1.2.3 Released TBA - Add support for extensions: + - `VK_EXT_pipeline_creation_cache_control` - `VK_EXT_swapchain_maintenance1` - `VK_EXT_surface_maintenance1` - Fix crash when `VkCommandBufferInheritanceInfo::renderPass` is `VK_NULL_HANDLE` during dynamic rendering. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 60bb270da..efa11fea1 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -390,6 +390,11 @@ swapchainMaintenance1Features->swapchainMaintenance1 = true; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT: { + auto* pipelineCreationCacheControlFeatures = (VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*)next; + pipelineCreationCacheControlFeatures->pipelineCreationCacheControl = true; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: { auto* texelBuffAlignFeatures = (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*)next; texelBuffAlignFeatures->texelBufferAlignment = _metalFeatures.texelBuffers && [_mtlDevice respondsToSelector: @selector(minimumLinearTextureAlignmentForPixelFormat:)]; @@ -3726,10 +3731,16 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope const PipelineInfoType* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) { + bool ignoreFurtherPipelines = false; VkResult rslt = VK_SUCCESS; MVKPipelineCache* mvkPLC = (MVKPipelineCache*)pipelineCache; for (uint32_t plIdx = 0; plIdx < count; plIdx++) { + + // Ensure all slots are purposefully set. + pPipelines[plIdx] = VK_NULL_HANDLE; + if (ignoreFurtherPipelines) { continue; } + const PipelineInfoType* pCreateInfo = &pCreateInfos[plIdx]; // See if this pipeline has a parent. This can come either directly @@ -3742,18 +3753,19 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope parentPL = vkParentPL ? (MVKPipeline*)vkParentPL : VK_NULL_HANDLE; } - // Create the pipeline and if creation was successful, insert the new pipeline - // in the return array and add it to the pipeline cache (if the cache was specified). - // If creation was unsuccessful, insert NULL into the return array, change the - // result code of this function, and destroy the broken pipeline. + // Create the pipeline and if creation was successful, insert the new pipeline in the return array. MVKPipeline* mvkPL = new PipelineType(this, mvkPLC, parentPL, pCreateInfo); VkResult plRslt = mvkPL->getConfigurationResult(); if (plRslt == VK_SUCCESS) { pPipelines[plIdx] = (VkPipeline)mvkPL; } else { - rslt = plRslt; - pPipelines[plIdx] = VK_NULL_HANDLE; - mvkPL->destroy(); + // If creation was unsuccessful, destroy the broken pipeline, change the result + // code of this function, and if the VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT + // flag is set, don't build any further pipelines. + mvkPL->destroy(); + if (rslt == VK_SUCCESS) { rslt = plRslt; } + ignoreFurtherPipelines = (_enabledPipelineCreationCacheControlFeatures.pipelineCreationCacheControl && + mvkIsAnyFlagEnabled(pCreateInfo->flags, VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT)); } } diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def index c6de213e1..050863271 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def @@ -35,39 +35,40 @@ #pragma push_macro("INTEL") #undef INTEL -MVK_DEVICE_FEATURE(16BitStorage, 16BIT_STORAGE, 4) -MVK_DEVICE_FEATURE(8BitStorage, 8BIT_STORAGE, 3) -MVK_DEVICE_FEATURE(BufferDeviceAddress, BUFFER_DEVICE_ADDRESS, 3) -MVK_DEVICE_FEATURE(DescriptorIndexing, DESCRIPTOR_INDEXING, 20) -MVK_DEVICE_FEATURE(DynamicRendering, DYNAMIC_RENDERING, 1) -MVK_DEVICE_FEATURE(HostQueryReset, HOST_QUERY_RESET, 1) -MVK_DEVICE_FEATURE(ImagelessFramebuffer, IMAGELESS_FRAMEBUFFER, 1) -MVK_DEVICE_FEATURE(ImageRobustness, IMAGE_ROBUSTNESS, 1) -MVK_DEVICE_FEATURE(InlineUniformBlock, INLINE_UNIFORM_BLOCK, 2) -MVK_DEVICE_FEATURE(Multiview, MULTIVIEW, 3) -MVK_DEVICE_FEATURE(PrivateData, PRIVATE_DATA, 1) -MVK_DEVICE_FEATURE(ProtectedMemory, PROTECTED_MEMORY, 1) -MVK_DEVICE_FEATURE(SamplerYcbcrConversion, SAMPLER_YCBCR_CONVERSION, 1) -MVK_DEVICE_FEATURE(ScalarBlockLayout, SCALAR_BLOCK_LAYOUT, 1) -MVK_DEVICE_FEATURE(SeparateDepthStencilLayouts, SEPARATE_DEPTH_STENCIL_LAYOUTS, 1) -MVK_DEVICE_FEATURE(ShaderDrawParameters, SHADER_DRAW_PARAMETERS, 1) -MVK_DEVICE_FEATURE(ShaderAtomicInt64, SHADER_ATOMIC_INT64, 2) -MVK_DEVICE_FEATURE(ShaderFloat16Int8, SHADER_FLOAT16_INT8, 2) -MVK_DEVICE_FEATURE(ShaderSubgroupExtendedTypes, SHADER_SUBGROUP_EXTENDED_TYPES, 1) -MVK_DEVICE_FEATURE(SubgroupSizeControl, SUBGROUP_SIZE_CONTROL, 2) -MVK_DEVICE_FEATURE(TextureCompressionASTCHDR, TEXTURE_COMPRESSION_ASTC_HDR, 1) -MVK_DEVICE_FEATURE(TimelineSemaphore, TIMELINE_SEMAPHORE, 1) -MVK_DEVICE_FEATURE(UniformBufferStandardLayout, UNIFORM_BUFFER_STANDARD_LAYOUT, 1) -MVK_DEVICE_FEATURE(VariablePointer, VARIABLE_POINTER, 2) -MVK_DEVICE_FEATURE(VulkanMemoryModel, VULKAN_MEMORY_MODEL, 3) -MVK_DEVICE_FEATURE_EXTN(FragmentShaderBarycentric, FRAGMENT_SHADER_BARYCENTRIC, KHR, 1) -MVK_DEVICE_FEATURE_EXTN(PortabilitySubset, PORTABILITY_SUBSET, KHR, 15) -MVK_DEVICE_FEATURE_EXTN(FragmentShaderInterlock, FRAGMENT_SHADER_INTERLOCK, EXT, 3) -MVK_DEVICE_FEATURE_EXTN(Robustness2, ROBUSTNESS_2, EXT, 3) -MVK_DEVICE_FEATURE_EXTN(SwapchainMaintenance1, SWAPCHAIN_MAINTENANCE_1, EXT, 1) -MVK_DEVICE_FEATURE_EXTN(TexelBufferAlignment, TEXEL_BUFFER_ALIGNMENT, EXT, 1) -MVK_DEVICE_FEATURE_EXTN(VertexAttributeDivisor, VERTEX_ATTRIBUTE_DIVISOR, EXT, 2) -MVK_DEVICE_FEATURE_EXTN(ShaderIntegerFunctions2, SHADER_INTEGER_FUNCTIONS_2, INTEL, 1) +MVK_DEVICE_FEATURE(16BitStorage, 16BIT_STORAGE, 4) +MVK_DEVICE_FEATURE(8BitStorage, 8BIT_STORAGE, 3) +MVK_DEVICE_FEATURE(BufferDeviceAddress, BUFFER_DEVICE_ADDRESS, 3) +MVK_DEVICE_FEATURE(DescriptorIndexing, DESCRIPTOR_INDEXING, 20) +MVK_DEVICE_FEATURE(DynamicRendering, DYNAMIC_RENDERING, 1) +MVK_DEVICE_FEATURE(HostQueryReset, HOST_QUERY_RESET, 1) +MVK_DEVICE_FEATURE(ImagelessFramebuffer, IMAGELESS_FRAMEBUFFER, 1) +MVK_DEVICE_FEATURE(ImageRobustness, IMAGE_ROBUSTNESS, 1) +MVK_DEVICE_FEATURE(InlineUniformBlock, INLINE_UNIFORM_BLOCK, 2) +MVK_DEVICE_FEATURE(Multiview, MULTIVIEW, 3) +MVK_DEVICE_FEATURE(PrivateData, PRIVATE_DATA, 1) +MVK_DEVICE_FEATURE(ProtectedMemory, PROTECTED_MEMORY, 1) +MVK_DEVICE_FEATURE(SamplerYcbcrConversion, SAMPLER_YCBCR_CONVERSION, 1) +MVK_DEVICE_FEATURE(ScalarBlockLayout, SCALAR_BLOCK_LAYOUT, 1) +MVK_DEVICE_FEATURE(SeparateDepthStencilLayouts, SEPARATE_DEPTH_STENCIL_LAYOUTS, 1) +MVK_DEVICE_FEATURE(ShaderDrawParameters, SHADER_DRAW_PARAMETERS, 1) +MVK_DEVICE_FEATURE(ShaderAtomicInt64, SHADER_ATOMIC_INT64, 2) +MVK_DEVICE_FEATURE(ShaderFloat16Int8, SHADER_FLOAT16_INT8, 2) +MVK_DEVICE_FEATURE(ShaderSubgroupExtendedTypes, SHADER_SUBGROUP_EXTENDED_TYPES, 1) +MVK_DEVICE_FEATURE(SubgroupSizeControl, SUBGROUP_SIZE_CONTROL, 2) +MVK_DEVICE_FEATURE(TextureCompressionASTCHDR, TEXTURE_COMPRESSION_ASTC_HDR, 1) +MVK_DEVICE_FEATURE(TimelineSemaphore, TIMELINE_SEMAPHORE, 1) +MVK_DEVICE_FEATURE(UniformBufferStandardLayout, UNIFORM_BUFFER_STANDARD_LAYOUT, 1) +MVK_DEVICE_FEATURE(VariablePointer, VARIABLE_POINTER, 2) +MVK_DEVICE_FEATURE(VulkanMemoryModel, VULKAN_MEMORY_MODEL, 3) +MVK_DEVICE_FEATURE_EXTN(FragmentShaderBarycentric, FRAGMENT_SHADER_BARYCENTRIC, KHR, 1) +MVK_DEVICE_FEATURE_EXTN(PortabilitySubset, PORTABILITY_SUBSET, KHR, 15) +MVK_DEVICE_FEATURE_EXTN(FragmentShaderInterlock, FRAGMENT_SHADER_INTERLOCK, EXT, 3) +MVK_DEVICE_FEATURE_EXTN(Robustness2, ROBUSTNESS_2, EXT, 3) +MVK_DEVICE_FEATURE_EXTN(PipelineCreationCacheControl, PIPELINE_CREATION_CACHE_CONTROL, EXT, 1) +MVK_DEVICE_FEATURE_EXTN(SwapchainMaintenance1, SWAPCHAIN_MAINTENANCE_1, EXT, 1) +MVK_DEVICE_FEATURE_EXTN(TexelBufferAlignment, TEXEL_BUFFER_ALIGNMENT, EXT, 1) +MVK_DEVICE_FEATURE_EXTN(VertexAttributeDivisor, VERTEX_ATTRIBUTE_DIVISOR, EXT, 2) +MVK_DEVICE_FEATURE_EXTN(ShaderIntegerFunctions2, SHADER_INTEGER_FUNCTIONS_2, INTEL, 1) #pragma pop_macro("INTEL") #undef MVK_DEVICE_FEATURE_EXTN diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h index f08eb11c2..caffd5c24 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h @@ -155,8 +155,18 @@ class MVKPipeline : public MVKVulkanAPIDeviceObject { /** Returns the number of descriptor sets in this pipeline layout. */ uint32_t getDescriptorSetCount() { return _descriptorSetCount; } + /** Returns the pipeline cache used by this pipeline. */ + MVKPipelineCache* getPipelineCache() { return _pipelineCache; } + + /** Returns whether the pipeline creation fail if a pipeline compile is required. */ + bool shouldFailOnPipelineCompileRequired() { + return (_device->_enabledPipelineCreationCacheControlFeatures.pipelineCreationCacheControl && + mvkIsAnyFlagEnabled(_flags, VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT)); + } + /** Constructs an instance for the device. layout, and parent (which may be NULL). */ - MVKPipeline(MVKDevice* device, MVKPipelineCache* pipelineCache, MVKPipelineLayout* layout, MVKPipeline* parent); + MVKPipeline(MVKDevice* device, MVKPipelineCache* pipelineCache, MVKPipelineLayout* layout, + VkPipelineCreateFlags flags, MVKPipeline* parent); protected: void propagateDebugName() override {} @@ -172,6 +182,7 @@ class MVKPipeline : public MVKVulkanAPIDeviceObject { MVKShaderImplicitRezBinding _dynamicOffsetBufferIndex; MVKShaderImplicitRezBinding _indirectParamsIndex; MVKShaderImplicitRezBinding _pushConstantsBufferIndex; + VkPipelineCreateFlags _flags; uint32_t _descriptorSetCount; bool _stageUsesPushConstants[kMVKShaderStageCount]; bool _fullImageViewSwizzle; @@ -324,6 +335,9 @@ class MVKGraphicsPipeline : public MVKPipeline { bool verifyImplicitBuffer(bool needsBuffer, MVKShaderImplicitRezBinding& index, MVKShaderStage stage, const char* name); uint32_t getTranslatedVertexBinding(uint32_t binding, uint32_t translationOffset, uint32_t maxBinding); uint32_t getImplicitBufferIndex(MVKShaderStage stage, uint32_t bufferIndexOffset); + MVKMTLFunction getMTLFunction(SPIRVToMSLConversionConfiguration& shaderConfig, + const VkPipelineShaderStageCreateInfo* pShaderStage, + const char* pStageName); const VkPipelineShaderStageCreateInfo* _pVertexSS = nullptr; const VkPipelineShaderStageCreateInfo* _pTessCtlSS = nullptr; @@ -456,8 +470,14 @@ class MVKPipelineCache : public MVKVulkanAPIDeviceObject { */ VkResult writeData(size_t* pDataSize, void* pData); - /** Return a shader library from the shader conversion configuration and sourced from the specified shader module. */ - MVKShaderLibrary* getShaderLibrary(SPIRVToMSLConversionConfiguration* pContext, MVKShaderModule* shaderModule); + /** + * Return a shader library for the shader conversion configuration, from the + * pipeline's pipeline cache, or compiled from source in the shader module. + */ + MVKShaderLibrary* getShaderLibrary(SPIRVToMSLConversionConfiguration* pContext, + MVKShaderModule* shaderModule, + MVKPipeline* pipeline, + uint64_t startTime = 0); /** Merges the contents of the specified number of pipeline caches into this cache. */ VkResult mergePipelineCaches(uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches); @@ -474,11 +494,18 @@ class MVKPipelineCache : public MVKVulkanAPIDeviceObject { MVKShaderLibraryCache* getShaderLibraryCache(MVKShaderModuleKey smKey); void readData(const VkPipelineCacheCreateInfo* pCreateInfo); void writeData(std::ostream& outstream, bool isCounting = false); + MVKShaderLibrary* getShaderLibraryImpl(SPIRVToMSLConversionConfiguration* pContext, + MVKShaderModule* shaderModule, + MVKPipeline* pipeline, + uint64_t startTime); + VkResult writeDataImpl(size_t* pDataSize, void* pData); + VkResult mergePipelineCachesImpl(uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches); void markDirty(); std::unordered_map _shaderCache; size_t _dataSize = 0; std::mutex _shaderCacheLock; + bool _isExternallySynchronized = false; }; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm index 426d11824..c254df95b 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm @@ -208,9 +208,11 @@ } } -MVKPipeline::MVKPipeline(MVKDevice* device, MVKPipelineCache* pipelineCache, MVKPipelineLayout* layout, MVKPipeline* parent) : +MVKPipeline::MVKPipeline(MVKDevice* device, MVKPipelineCache* pipelineCache, MVKPipelineLayout* layout, + VkPipelineCreateFlags flags, MVKPipeline* parent) : MVKVulkanAPIDeviceObject(device), _pipelineCache(pipelineCache), + _flags(flags), _descriptorSetCount(layout->getDescriptorSetCount()), _fullImageViewSwizzle(mvkConfig().fullImageViewSwizzle) { @@ -393,7 +395,7 @@ MVKPipelineCache* pipelineCache, MVKPipeline* parent, const VkGraphicsPipelineCreateInfo* pCreateInfo) : - MVKPipeline(device, pipelineCache, (MVKPipelineLayout*)pCreateInfo->layout, parent) { + MVKPipeline(device, pipelineCache, (MVKPipelineLayout*)pCreateInfo->layout, pCreateInfo->flags, parent) { // Determine rasterization early, as various other structs are validated and interpreted in this context. const VkPipelineRenderingCreateInfo* pRendInfo = getRenderingCreateInfo(pCreateInfo); @@ -431,6 +433,14 @@ } } + // Tessellation - must ignore allowed bad pTessellationState pointer if not tess pipeline + _outputControlPointCount = reflectData.numControlPoints; + mvkSetOrClear(&_tessInfo, (_pTessCtlSS && _pTessEvalSS) ? pCreateInfo->pTessellationState : nullptr); + + // Render pipeline state. Do this as early as possible, to fail fast if pipeline requires a fail on cache-miss. + initMTLRenderPipelineState(pCreateInfo, reflectData); + if ( !_hasValidMTLPipelineStates ) { return; } + // Track dynamic state const VkPipelineDynamicStateCreateInfo* pDS = pCreateInfo->pDynamicState; if (pDS) { @@ -455,10 +465,6 @@ } } - // Tessellation - must ignore allowed bad pTessellationState pointer if not tess pipeline - _outputControlPointCount = reflectData.numControlPoints; - mvkSetOrClear(&_tessInfo, (_pTessCtlSS && _pTessEvalSS) ? pCreateInfo->pTessellationState : nullptr); - // Rasterization _mtlCullMode = MTLCullModeNone; _mtlFrontWinding = MTLWindingCounterClockwise; @@ -481,9 +487,6 @@ // Must run after _isRasterizing and _dynamicState are populated initCustomSamplePositions(pCreateInfo); - // Render pipeline state - initMTLRenderPipelineState(pCreateInfo, reflectData); - // Depth stencil content - clearing will disable depth and stencil testing // Must ignore allowed bad pDepthStencilState pointer if rasterization disabled or no depth attachment mvkSetOrClear(&_depthStencilInfo, _isRasterizingDepthStencil ? pCreateInfo->pDepthStencilState : nullptr); @@ -605,8 +608,10 @@ } else { getOrCompilePipeline(plDesc, _mtlPipelineState); } + [plDesc release]; // temp release + } else { + _hasValidMTLPipelineStates = false; } - [plDesc release]; // temp release } else { // In this case, we need to create three render pipelines. But, the way Metal handles // index buffers for compute stage-in means we have to defer creation of stage 1 until @@ -621,6 +626,8 @@ if (getOrCompilePipeline(tcPLDesc, _mtlTessControlStageState, "Tessellation control")) { getOrCompilePipeline(rastPLDesc, _mtlPipelineState); } + } else { + _hasValidMTLPipelineStates = false; } [tcPLDesc release]; // temp release [rastPLDesc release]; // temp release @@ -910,13 +917,10 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 shaderConfig.options.mslOptions.disable_rasterization = !_isRasterizing; addVertexInputToShaderConversionConfig(shaderConfig, pCreateInfo); - MVKMTLFunction func = ((MVKShaderModule*)_pVertexSS->module)->getMTLFunction(&shaderConfig, _pVertexSS->pSpecializationInfo, _pipelineCache); + MVKMTLFunction func = getMTLFunction(shaderConfig, _pVertexSS, "Vertex"); id mtlFunc = func.getMTLFunction(); - if ( !mtlFunc ) { - setConfigurationResult(reportError(VK_ERROR_INVALID_SHADER_NV, "Vertex shader function could not be compiled into pipeline. See previous logged error.")); - return false; - } plDesc.vertexFunction = mtlFunc; + if ( !mtlFunc ) { return false; } auto& funcRslts = func.shaderConversionResults; plDesc.rasterizationEnabled = !funcRslts.isRasterizationDisabled; @@ -975,22 +979,19 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 addVertexInputToShaderConversionConfig(shaderConfig, pCreateInfo); addNextStageInputToShaderConversionConfig(shaderConfig, tcInputs); + // We need to compile this function three times, with no indexing, 16-bit indices, and 32-bit indices. static const CompilerMSL::Options::IndexType indexTypes[] = { CompilerMSL::Options::IndexType::None, CompilerMSL::Options::IndexType::UInt16, CompilerMSL::Options::IndexType::UInt32, }; - // We need to compile this function three times, with no indexing, 16-bit indices, and 32-bit indices. MVKMTLFunction func; for (uint32_t i = 0; i < sizeof(indexTypes)/sizeof(indexTypes[0]); i++) { shaderConfig.options.mslOptions.vertex_index_type = indexTypes[i]; - func = ((MVKShaderModule*)_pVertexSS->module)->getMTLFunction(&shaderConfig, _pVertexSS->pSpecializationInfo, _pipelineCache); + func = getMTLFunction(shaderConfig, _pVertexSS, "Vertex"); id mtlFunc = func.getMTLFunction(); - if ( !mtlFunc ) { - setConfigurationResult(reportError(VK_ERROR_INVALID_SHADER_NV, "Vertex shader function could not be compiled into pipeline. See previous logged error.")); - return false; - } _mtlTessVertexFunctions[i] = [mtlFunc retain]; + if ( !mtlFunc ) { return false; } auto& funcRslts = func.shaderConversionResults; _needsVertexSwizzleBuffer = funcRslts.needsSwizzleBuffer; @@ -1044,13 +1045,10 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 addPrevStageOutputToShaderConversionConfig(shaderConfig, vtxOutputs); addNextStageInputToShaderConversionConfig(shaderConfig, teInputs); - MVKMTLFunction func = ((MVKShaderModule*)_pTessCtlSS->module)->getMTLFunction(&shaderConfig, _pTessCtlSS->pSpecializationInfo, _pipelineCache); + MVKMTLFunction func = getMTLFunction(shaderConfig, _pTessCtlSS, "Tessellation control"); id mtlFunc = func.getMTLFunction(); - if ( !mtlFunc ) { - setConfigurationResult(reportError(VK_ERROR_INVALID_SHADER_NV, "Tessellation control shader function could not be compiled into pipeline. See previous logged error.")); - return false; - } plDesc.computeFunction = mtlFunc; + if ( !mtlFunc ) { return false; } auto& funcRslts = func.shaderConversionResults; _needsTessCtlSwizzleBuffer = funcRslts.needsSwizzleBuffer; @@ -1105,14 +1103,10 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 shaderConfig.options.mslOptions.disable_rasterization = !_isRasterizing; addPrevStageOutputToShaderConversionConfig(shaderConfig, tcOutputs); - MVKMTLFunction func = ((MVKShaderModule*)_pTessEvalSS->module)->getMTLFunction(&shaderConfig, _pTessEvalSS->pSpecializationInfo, _pipelineCache); + MVKMTLFunction func = getMTLFunction(shaderConfig, _pTessEvalSS, "Tessellation evaluation"); id mtlFunc = func.getMTLFunction(); - if ( !mtlFunc ) { - setConfigurationResult(reportError(VK_ERROR_INVALID_SHADER_NV, "Tessellation evaluation shader function could not be compiled into pipeline. See previous logged error.")); - return false; - } - // Yeah, you read that right. Tess. eval functions are a kind of vertex function in Metal. - plDesc.vertexFunction = mtlFunc; + plDesc.vertexFunction = mtlFunc; // Yeah, you read that right. Tess. eval functions are a kind of vertex function in Metal. + if ( !mtlFunc ) { return false; } auto& funcRslts = func.shaderConversionResults; plDesc.rasterizationEnabled = !funcRslts.isRasterizationDisabled; @@ -1166,13 +1160,10 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 } addPrevStageOutputToShaderConversionConfig(shaderConfig, shaderOutputs); - MVKMTLFunction func = ((MVKShaderModule*)_pFragmentSS->module)->getMTLFunction(&shaderConfig, _pFragmentSS->pSpecializationInfo, _pipelineCache); + MVKMTLFunction func = getMTLFunction(shaderConfig, _pFragmentSS, "Fragment"); id mtlFunc = func.getMTLFunction(); - if ( !mtlFunc ) { - setConfigurationResult(reportError(VK_ERROR_INVALID_SHADER_NV, "Fragment shader function could not be compiled into pipeline. See previous logged error.")); - return false; - } plDesc.fragmentFunction = mtlFunc; + if ( !mtlFunc ) { return false; } auto& funcRslts = func.shaderConversionResults; _needsFragmentSwizzleBuffer = funcRslts.needsSwizzleBuffer; @@ -1796,6 +1787,23 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 (mvkMTLPrimitiveTopologyClassFromVkPrimitiveTopology(pCreateInfo->pInputAssemblyState->topology) == MTLPrimitiveTopologyClassTriangle)))); } +MVKMTLFunction MVKGraphicsPipeline::getMTLFunction(SPIRVToMSLConversionConfiguration& shaderConfig, + const VkPipelineShaderStageCreateInfo* pShaderStage, + const char* pStageName) { + MVKShaderModule* shaderModule = (MVKShaderModule*)pShaderStage->module; + MVKMTLFunction func = shaderModule->getMTLFunction(&shaderConfig, + pShaderStage->pSpecializationInfo, + this); + if ( !func.getMTLFunction() ) { + if (shouldFailOnPipelineCompileRequired()) { + setConfigurationResult(VK_PIPELINE_COMPILE_REQUIRED); + } else { + setConfigurationResult(reportError(VK_ERROR_INVALID_SHADER_NV, "%s shader function could not be compiled into pipeline. See previous logged error.", pStageName)); + } + } + return func; +} + MVKGraphicsPipeline::~MVKGraphicsPipeline() { @synchronized (getMTLDevice()) { [_mtlTessVertexStageDesc release]; @@ -1830,7 +1838,7 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 MVKPipelineCache* pipelineCache, MVKPipeline* parent, const VkComputePipelineCreateInfo* pCreateInfo) : - MVKPipeline(device, pipelineCache, (MVKPipelineLayout*)pCreateInfo->layout, parent) { + MVKPipeline(device, pipelineCache, (MVKPipelineLayout*)pCreateInfo->layout, pCreateInfo->flags, parent) { _allowsDispatchBase = mvkAreAllFlagsEnabled(pCreateInfo->flags, VK_PIPELINE_CREATE_DISPATCH_BASE_BIT); @@ -1863,7 +1871,7 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 if ( !_mtlPipelineState ) { _hasValidMTLPipelineStates = false; } } else { - setConfigurationResult(reportError(VK_ERROR_INVALID_SHADER_NV, "Compute shader function could not be compiled into pipeline. See previous logged error.")); + _hasValidMTLPipelineStates = false; } if (_needsSwizzleBuffer && _swizzleBufferIndex.stages[kMVKShaderStageCompute] > _device->_pMetalFeatures->maxPerStageBufferCount) { @@ -1931,8 +1939,14 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 shaderConfig.options.mslOptions.dynamic_offsets_buffer_index = _dynamicOffsetBufferIndex.stages[kMVKShaderStageCompute]; shaderConfig.options.mslOptions.indirect_params_buffer_index = _indirectParamsIndex.stages[kMVKShaderStageCompute]; - MVKMTLFunction func = ((MVKShaderModule*)pSS->module)->getMTLFunction(&shaderConfig, pSS->pSpecializationInfo, _pipelineCache); - + MVKMTLFunction func = ((MVKShaderModule*)pSS->module)->getMTLFunction(&shaderConfig, pSS->pSpecializationInfo, this); + if ( !func.getMTLFunction() ) { + if (shouldFailOnPipelineCompileRequired()) { + setConfigurationResult(VK_PIPELINE_COMPILE_REQUIRED); + } else { + setConfigurationResult(reportError(VK_ERROR_INVALID_SHADER_NV, "Compute shader function could not be compiled into pipeline. See previous logged error.")); + } + } auto& funcRslts = func.shaderConversionResults; _needsSwizzleBuffer = funcRslts.needsSwizzleBuffer; _needsBufferSizeBuffer = funcRslts.needsBufferSizeBuffer; @@ -1959,12 +1973,25 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 #pragma mark MVKPipelineCache // Return a shader library from the specified shader conversion configuration sourced from the specified shader module. -MVKShaderLibrary* MVKPipelineCache::getShaderLibrary(SPIRVToMSLConversionConfiguration* pContext, MVKShaderModule* shaderModule) { - lock_guard lock(_shaderCacheLock); +MVKShaderLibrary* MVKPipelineCache::getShaderLibrary(SPIRVToMSLConversionConfiguration* pContext, + MVKShaderModule* shaderModule, + MVKPipeline* pipeline, + uint64_t startTime) { + if (_isExternallySynchronized) { + return getShaderLibraryImpl(pContext, shaderModule, pipeline, startTime); + } else { + lock_guard lock(_shaderCacheLock); + return getShaderLibraryImpl(pContext, shaderModule, pipeline, startTime); + } +} +MVKShaderLibrary* MVKPipelineCache::getShaderLibraryImpl(SPIRVToMSLConversionConfiguration* pContext, + MVKShaderModule* shaderModule, + MVKPipeline* pipeline, + uint64_t startTime) { bool wasAdded = false; MVKShaderLibraryCache* slCache = getShaderLibraryCache(shaderModule->getKey()); - MVKShaderLibrary* shLib = slCache->getShaderLibrary(pContext, shaderModule, &wasAdded); + MVKShaderLibrary* shLib = slCache->getShaderLibrary(pContext, shaderModule, pipeline, &wasAdded, startTime); if (wasAdded) { markDirty(); } return shLib; } @@ -2013,14 +2040,21 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 int32_t _index = -1; }; +VkResult MVKPipelineCache::writeData(size_t* pDataSize, void* pData) { + if (_isExternallySynchronized) { + return writeDataImpl(pDataSize, pData); + } else { + lock_guard lock(_shaderCacheLock); + return writeDataImpl(pDataSize, pData); + } +} + // If pData is not null, serializes at most pDataSize bytes of the contents of the cache into that // memory location, and returns the number of bytes serialized in pDataSize. If pData is null, // returns the number of bytes required to serialize the contents of this pipeline cache. // This is the compliment of the readData() function. The two must be kept aligned. -VkResult MVKPipelineCache::writeData(size_t* pDataSize, void* pData) { +VkResult MVKPipelineCache::writeDataImpl(size_t* pDataSize, void* pData) { #if MVK_USE_CEREAL - lock_guard lock(_shaderCacheLock); - try { if ( !pDataSize ) { return VK_SUCCESS; } @@ -2184,6 +2218,15 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 } VkResult MVKPipelineCache::mergePipelineCaches(uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) { + if (_isExternallySynchronized) { + return mergePipelineCachesImpl(srcCacheCount, pSrcCaches); + } else { + lock_guard lock(_shaderCacheLock); + return mergePipelineCachesImpl(srcCacheCount, pSrcCaches); + } +} + +VkResult MVKPipelineCache::mergePipelineCachesImpl(uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) { for (uint32_t srcIdx = 0; srcIdx < srcCacheCount; srcIdx++) { MVKPipelineCache* srcPLC = (MVKPipelineCache*)pSrcCaches[srcIdx]; for (auto& srcPair : srcPLC->_shaderCache) { @@ -2406,7 +2449,11 @@ void serialize(Archive & archive, MVKCompressor& comp) { #pragma mark Construction -MVKPipelineCache::MVKPipelineCache(MVKDevice* device, const VkPipelineCacheCreateInfo* pCreateInfo) : MVKVulkanAPIDeviceObject(device) { +MVKPipelineCache::MVKPipelineCache(MVKDevice* device, const VkPipelineCacheCreateInfo* pCreateInfo) : + MVKVulkanAPIDeviceObject(device), + _isExternallySynchronized(device->_enabledPipelineCreationCacheControlFeatures.pipelineCreationCacheControl && + mvkIsAnyFlagEnabled(pCreateInfo->flags, VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT)) { + readData(pCreateInfo); } diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h index 029699273..a7e3417fb 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.h @@ -134,15 +134,17 @@ class MVKShaderLibraryCache : public MVKBaseObject { MVKVulkanAPIObject* getVulkanAPIObject() override { return _owner->getVulkanAPIObject(); }; /** - * Returns a shader library from the shader conversion configuration sourced from the shader module, - * lazily creating the shader library from source code in the shader module, if needed. + * Returns a shader library from the shader conversion configuration sourced from the + * shader module, lazily creating the shader library from source code in the shader + * module, if needed, and if the pipeline is not configured to fail if a pipeline compile + * is required. In that case, the new shader library is not created, and nil is returned. * * If pWasAdded is not nil, this function will set it to true if a new shader library was created, * and to false if an existing shader library was found and returned. */ MVKShaderLibrary* getShaderLibrary(SPIRVToMSLConversionConfiguration* pShaderConfig, - MVKShaderModule* shaderModule, - bool* pWasAdded = nullptr); + MVKShaderModule* shaderModule, MVKPipeline* pipeline, + bool* pWasAdded, uint64_t startTime = 0); MVKShaderLibraryCache(MVKVulkanAPIDeviceObject* owner) : _owner(owner) {}; @@ -153,7 +155,7 @@ class MVKShaderLibraryCache : public MVKBaseObject { friend MVKPipelineCache; friend MVKShaderModule; - MVKShaderLibrary* findShaderLibrary(SPIRVToMSLConversionConfiguration* pShaderConfig); + MVKShaderLibrary* findShaderLibrary(SPIRVToMSLConversionConfiguration* pShaderConfig, uint64_t startTime = 0); MVKShaderLibrary* addShaderLibrary(const SPIRVToMSLConversionConfiguration* pShaderConfig, const SPIRVToMSLConversionResult& conversionResult); MVKShaderLibrary* addShaderLibrary(const SPIRVToMSLConversionConfiguration* pShaderConfig, @@ -205,7 +207,7 @@ class MVKShaderModule : public MVKVulkanAPIDeviceObject { /** Returns the Metal shader function, possibly specialized. */ MVKMTLFunction getMTLFunction(SPIRVToMSLConversionConfiguration* pShaderConfig, const VkSpecializationInfo* pSpecializationInfo, - MVKPipelineCache* pipelineCache); + MVKPipeline* pipeline); /** Convert the SPIR-V to MSL, using the specified shader conversion configuration. */ bool convert(SPIRVToMSLConversionConfiguration* pShaderConfig, diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm index 7d7f6db2a..3c6da5dfd 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm @@ -241,11 +241,11 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD #pragma mark MVKShaderLibraryCache MVKShaderLibrary* MVKShaderLibraryCache::getShaderLibrary(SPIRVToMSLConversionConfiguration* pShaderConfig, - MVKShaderModule* shaderModule, - bool* pWasAdded) { + MVKShaderModule* shaderModule, MVKPipeline* pipeline, + bool* pWasAdded, uint64_t startTime) { bool wasAdded = false; - MVKShaderLibrary* shLib = findShaderLibrary(pShaderConfig); - if ( !shLib ) { + MVKShaderLibrary* shLib = findShaderLibrary(pShaderConfig, startTime); + if ( !shLib && !pipeline->shouldFailOnPipelineCompileRequired() ) { SPIRVToMSLConversionResult conversionResult; if (shaderModule->convert(pShaderConfig, conversionResult)) { shLib = addShaderLibrary(pShaderConfig, conversionResult); @@ -260,10 +260,13 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD // Finds and returns a shader library matching the shader config, or returns nullptr if it doesn't exist. // If a match is found, the shader config is aligned with the shader config of the matching library. -MVKShaderLibrary* MVKShaderLibraryCache::findShaderLibrary(SPIRVToMSLConversionConfiguration* pShaderConfig) { +MVKShaderLibrary* MVKShaderLibraryCache::findShaderLibrary(SPIRVToMSLConversionConfiguration* pShaderConfig, + uint64_t startTime) { for (auto& slPair : _shaderLibraries) { if (slPair.first.matches(*pShaderConfig)) { pShaderConfig->alignWith(slPair.first); + MVKDevice* mkvDev = _owner->getDevice(); + mkvDev->addActivityPerformance(mkvDev->_performanceStatistics.shaderCompilation.shaderLibraryFromCache, startTime); return slPair.second; } } @@ -308,18 +311,17 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD MVKMTLFunction MVKShaderModule::getMTLFunction(SPIRVToMSLConversionConfiguration* pShaderConfig, const VkSpecializationInfo* pSpecializationInfo, - MVKPipelineCache* pipelineCache) { - lock_guard lock(_accessLock); - + MVKPipeline* pipeline) { MVKShaderLibrary* mvkLib = _directMSLLibrary; if ( !mvkLib ) { uint64_t startTime = _device->getPerformanceTimestamp(); + MVKPipelineCache* pipelineCache = pipeline->getPipelineCache(); if (pipelineCache) { - mvkLib = pipelineCache->getShaderLibrary(pShaderConfig, this); + mvkLib = pipelineCache->getShaderLibrary(pShaderConfig, this, pipeline, startTime); } else { - mvkLib = _shaderLibraryCache.getShaderLibrary(pShaderConfig, this); + lock_guard lock(_accessLock); + mvkLib = _shaderLibraryCache.getShaderLibrary(pShaderConfig, this, pipeline, nullptr, startTime); } - _device->addActivityPerformance(_device->_performanceStatistics.shaderCompilation.shaderLibraryFromCache, startTime); } else { mvkLib->setEntryPointName(pShaderConfig->options.entryPointName); pShaderConfig->markAllInterfaceVarsAndResourcesUsed(); diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.def b/MoltenVK/MoltenVK/Layers/MVKExtensions.def index 598757c2c..c619f4b4e 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.def +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.def @@ -104,6 +104,7 @@ MVK_EXTENSION(EXT_inline_uniform_block, EXT_INLINE_UNIFORM_BLOCK, MVK_EXTENSION(EXT_memory_budget, EXT_MEMORY_BUDGET, DEVICE, 10.13, 11.0) MVK_EXTENSION(EXT_metal_objects, EXT_METAL_OBJECTS, DEVICE, 10.11, 8.0) MVK_EXTENSION(EXT_metal_surface, EXT_METAL_SURFACE, INSTANCE, 10.11, 8.0) +MVK_EXTENSION(EXT_pipeline_creation_cache_control, EXT_PIPELINE_CREATION_CACHE_CONTROL, DEVICE, 10.11, 8.0) MVK_EXTENSION(EXT_post_depth_coverage, EXT_POST_DEPTH_COVERAGE, DEVICE, 11.0, 11.0) MVK_EXTENSION(EXT_private_data, EXT_PRIVATE_DATA, DEVICE, 10.11, 8.0) MVK_EXTENSION(EXT_robustness2, EXT_ROBUSTNESS_2, DEVICE, 10.11, 8.0) From fb7aa4373804767395b130f3643089e9f133effc Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Tue, 7 Mar 2023 09:18:48 -0500 Subject: [PATCH 63/72] Fix minor typo found in code review. --- MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm index 3c6da5dfd..2eb57ebb4 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKShaderModule.mm @@ -265,8 +265,8 @@ static uint32_t getWorkgroupDimensionSize(const SPIRVWorkgroupSizeDimension& wgD for (auto& slPair : _shaderLibraries) { if (slPair.first.matches(*pShaderConfig)) { pShaderConfig->alignWith(slPair.first); - MVKDevice* mkvDev = _owner->getDevice(); - mkvDev->addActivityPerformance(mkvDev->_performanceStatistics.shaderCompilation.shaderLibraryFromCache, startTime); + MVKDevice* mvkDev = _owner->getDevice(); + mvkDev->addActivityPerformance(mvkDev->_performanceStatistics.shaderCompilation.shaderLibraryFromCache, startTime); return slPair.second; } } From 8046d82215005c4dbca5e8725055eefcde464cc1 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Tue, 7 Mar 2023 21:06:21 -0800 Subject: [PATCH 64/72] updates from latest PR comments from Hollings --- Docs/MoltenVK_Runtime_UserGuide.md | 23 +++++++++++++++++----- Docs/Whats_New.md | 2 +- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 7 ++++++- MoltenVK/MoltenVK/Layers/MVKExtensions.def | 2 +- 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index 7b89c5725..e80c66703 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -223,20 +223,32 @@ To link **MoltenVK** to your application as a dynamic library (`.dylib`), follow ### Install *MoltenVK* replacing the Vulkan SDK .dylib -There are a few potential issues when building **MoltenVK** to replace the version installed via the *[Vulkan SDK](https://vulkan.lunarg.com/sdk/home)* standard install process, which lives in `/usr/local/lib/libMoltenVK.dylib`. +There are a few potential issues when building **MoltenVK** to replace the version installed via +the *[Vulkan SDK](https://vulkan.lunarg.com/sdk/home)* standard install process, which lives in +`/usr/local/lib/libMoltenVK.dylib`. -1. You must *remove* the existing `.dylib` file before copying the new one, because of the way that the gatekeeper system works to prevent malicious overwriting of files in standard locations such as `/usr/local`: +1. You must *remove* the existing `.dylib` file before copying the new one, because of the way +that the gatekeeper system works to prevent malicious overwriting of files in standard locations +such as `/usr/local`: ```bash $ sudo rm /usr/local/lib/libMoltenVK.dylib $ sudo cp Package/Release/MoltenVK/dylib/macOS/libMoltenVK.dylib /usr/local/lib ``` -If you do not do the remove first, your application will terminate immediately with a singularly unhelpful `Killed: 9` message. +If you do not do the remove first, your application will terminate immediately with a +singularly unhelpful `Killed: 9` message. Alternatively, moving the existing `.dylib` to a +backup name and making a symbolic link to the Package location above is particularly useful +for repeated building and testing. -2. Do *not* copy the `MoltenVK_icd.json` file from the newly-built package to `/usr/local/share/vulkan/icd.d` -- it will not work and will result in errors about not being able to initialize the instance. The one installed by Vulkan SDK uses a relative path to specify the location of the `.dylib`, whereas the one in the package specifies it in the same directory. +2. Do *not* copy the `MoltenVK_icd.json` file from the newly-built package to +`/usr/local/share/vulkan/icd.d` -- it will not work and will result in errors about not being +able to initialize the instance. The one installed by Vulkan SDK uses a relative path to +specify the location of the `.dylib`, whereas the one in the package specifies it in the same +directory. -3. The default config for command-line build has verbose logging info turned on -- if you want it to be like the original, use this command for building: +3. The default config for command-line build has verbose logging info turned on -- if you want +it to be like the original, use this command for building: ```bash $ make macos MVK_CONFIG_LOG_LEVEL=1 @@ -325,6 +337,7 @@ In addition to core *Vulkan* functionality, **MoltenVK** also supports the foll - `VK_KHR_sampler_mirror_clamp_to_edge` *(requires a Mac GPU or Apple family 7 GPU)* - `VK_KHR_sampler_ycbcr_conversion` - `VK_KHR_separate_depth_stencil_layouts` +- `VK_EXT_shader_atomic_float` *(requires Metal 3.0)* - `VK_KHR_shader_draw_parameters` - `VK_KHR_shader_float_controls` - `VK_KHR_shader_float16_int8` diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 634865bab..09286d7ef 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -22,7 +22,7 @@ Released TBA was sometimes incorrectly disabled due to a Metal driver bug. - Work around problems with using explicit LoD with arrayed depth images on Apple Silicon. - +- Added support for `VK_EXT_shader_atomic_float` *(requires Metal 3.0)*. MoltenVK 1.2.2 diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 815cb1d7c..3acd6bb29 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -403,7 +403,12 @@ } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: { auto* atomicFloatFeatures = (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*)next; - atomicFloatFeatures->shaderBufferFloat32AtomicAdd = _metalFeatures.mslVersion >= 030000; + mvkClear(atomicFloatFeatures); + bool atomicFloatEnabled = _metalFeatures.mslVersion >= 030000; + atomicFloatFeatures->shaderBufferFloat32Atomics = atomicFloatEnabled; + atomicFloatFeatures->shaderBufferFloat32AtomicAdd = atomicFloatEnabled; + atomicFloatFeatures->shaderSharedFloat32Atomics = atomicFloatEnabled; + atomicFloatFeatures->shaderSharedFloat32AtomicAdd = atomicFloatEnabled; break; } default: diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.def b/MoltenVK/MoltenVK/Layers/MVKExtensions.def index ec57fbf44..224cdbe07 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.def +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.def @@ -111,9 +111,9 @@ MVK_EXTENSION(EXT_sample_locations, EXT_SAMPLE_LOCATIONS, MVK_EXTENSION(EXT_sampler_filter_minmax, EXT_SAMPLER_FILTER_MINMAX, DEVICE, MVK_NA, MVK_NA) MVK_EXTENSION(EXT_scalar_block_layout, EXT_SCALAR_BLOCK_LAYOUT, DEVICE, 10.11, 8.0) MVK_EXTENSION(EXT_separate_stencil_usage, EXT_SEPARATE_STENCIL_USAGE, DEVICE, 10.11, 8.0) +MVK_EXTENSION(EXT_shader_atomic_float, EXT_SHADER_ATOMIC_FLOAT, DEVICE, 13.0, 16.0) MVK_EXTENSION(EXT_shader_stencil_export, EXT_SHADER_STENCIL_EXPORT, DEVICE, 10.14, 12.0) MVK_EXTENSION(EXT_shader_viewport_index_layer, EXT_SHADER_VIEWPORT_INDEX_LAYER, DEVICE, 10.11, 8.0) -MVK_EXTENSION(EXT_shader_atomic_float, EXT_SHADER_ATOMIC_FLOAT, DEVICE, 13.0, 16.0) MVK_EXTENSION(EXT_subgroup_size_control, EXT_SUBGROUP_SIZE_CONTROL, DEVICE, 10.14, 13.0) MVK_EXTENSION(EXT_swapchain_colorspace, EXT_SWAPCHAIN_COLOR_SPACE, INSTANCE, 10.11, 9.0) MVK_EXTENSION(EXT_texel_buffer_alignment, EXT_TEXEL_BUFFER_ALIGNMENT, DEVICE, 10.13, 11.0) From e2e412cf31a9f4878dd96fdb3236028be64c6e15 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Wed, 8 Mar 2023 12:21:50 -0800 Subject: [PATCH 65/72] undo WhatsNew --- Docs/Whats_New.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 09286d7ef..634865bab 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -22,7 +22,7 @@ Released TBA was sometimes incorrectly disabled due to a Metal driver bug. - Work around problems with using explicit LoD with arrayed depth images on Apple Silicon. -- Added support for `VK_EXT_shader_atomic_float` *(requires Metal 3.0)*. + MoltenVK 1.2.2 From f191b0a31a0e1d2011153f84d6ceaf3733cac833 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Wed, 8 Mar 2023 19:04:52 -0500 Subject: [PATCH 66/72] Various maintenance updates. - Cleanup VkPhysicalDeviceShaderAtomicFloatFeaturesEXT enablement and documentation. - Cleanup VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT enablement. - Expand MVK_CONFIG_TRACE_VULKAN_CALLS to log thread ID only if requested. --- Docs/MoltenVK_Runtime_UserGuide.md | 6 +- Docs/Whats_New.md | 4 +- MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 13 +++-- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 37 +++++++----- .../GPUObjects/MVKDeviceFeatureStructs.def | 3 +- MoltenVK/MoltenVK/Vulkan/vulkan.mm | 58 +++++++++++++------ 6 files changed, 79 insertions(+), 42 deletions(-) diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index a015c8571..cfa4e142a 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -22,7 +22,7 @@ Table of Contents - [Installing **MoltenVK** in Your *Vulkan* Application](#install) - [Install *MoltenVK* as a Universal `XCFramework`](#install_xcfwk) - [Install *MoltenVK* as a Dynamic Library](#install_dylib) - - [Install *MoltenVK* replacing the Vulkan SDK .dylib](#install_vksdk) + - [Install *MoltenVK* replacing the Vulkan SDK `libMoltenVK.dylib`](#install_vksdk) - [Build and Runtime Requirements](#requirements) - [Interacting with the **MoltenVK** Runtime](#interaction) - [MoltenVK `VK_MVK_moltenvk` Extension](#moltenvk_extension) @@ -221,7 +221,7 @@ To link **MoltenVK** to your application as a dynamic library (`.dylib`), follow -### Install *MoltenVK* replacing the Vulkan SDK .dylib +### Install *MoltenVK* replacing the Vulkan SDK `libMoltenVK.dylib` There are a few potential issues when building **MoltenVK** to replace the version installed via the *[Vulkan SDK](https://vulkan.lunarg.com/sdk/home)* standard install process, which lives in @@ -337,7 +337,6 @@ In addition to core *Vulkan* functionality, **MoltenVK** also supports the foll - `VK_KHR_sampler_mirror_clamp_to_edge` *(requires a Mac GPU or Apple family 7 GPU)* - `VK_KHR_sampler_ycbcr_conversion` - `VK_KHR_separate_depth_stencil_layouts` -- `VK_EXT_shader_atomic_float` *(requires Metal 3.0)* - `VK_KHR_shader_draw_parameters` - `VK_KHR_shader_float_controls` - `VK_KHR_shader_float16_int8` @@ -371,6 +370,7 @@ In addition to core *Vulkan* functionality, **MoltenVK** also supports the foll - `VK_EXT_sample_locations` - `VK_EXT_scalar_block_layout` - `VK_EXT_separate_stencil_usage` +- `VK_EXT_shader_atomic_float` *(requires Metal 3.0)* - `VK_EXT_shader_stencil_export` *(requires Mac GPU family 2 or iOS GPU family 5)* - `VK_EXT_shader_viewport_index_layer` - `VK_EXT_subgroup_size_control` *(requires Metal 2.1 on Mac or Metal 2.2 and Apple family 4 on iOS)* diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 5c8957044..0bba8b251 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -20,8 +20,9 @@ Released TBA - Add support for extensions: - `VK_EXT_pipeline_creation_cache_control` - - `VK_EXT_swapchain_maintenance1` + - `VK_EXT_shader_atomic_float` - `VK_EXT_surface_maintenance1` + - `VK_EXT_swapchain_maintenance1` - Fix crash when `VkCommandBufferInheritanceInfo::renderPass` is `VK_NULL_HANDLE` during dynamic rendering. - Do not clear attachments when dynamic rendering is resumed. - Allow ending dynamic rendering to trigger next multiview pass if needed. @@ -44,6 +45,7 @@ Released TBA - Change `MVKConfiguration::logActivityPerformanceInline` boolean to `activityPerformanceLoggingStyle` enumeration value. - Add `MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE` environment variable and build setting to set `MVKConfiguration::activityPerformanceLoggingStyle` value. +- Expand `MVK_CONFIG_TRACE_VULKAN_CALLS` to log thread ID only if requested. - Update `VK_MVK_MOLTENVK_SPEC_VERSION` to version `37`. diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index 7377f05f2..66a3fede4 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -71,11 +71,14 @@ typedef enum MVKConfigLogLevel { /** Identifies the level of Vulkan call trace logging MoltenVK should perform. */ typedef enum MVKConfigTraceVulkanCalls { - MVK_CONFIG_TRACE_VULKAN_CALLS_NONE = 0, /**< No Vulkan call logging. */ - MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER = 1, /**< Log the name of each Vulkan call when the call is entered. */ - MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT = 2, /**< Log the name of each Vulkan call when the call is entered and exited. This effectively brackets any other logging activity within the scope of the Vulkan call. */ - MVK_CONFIG_TRACE_VULKAN_CALLS_DURATION = 3, /**< Same as MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT, plus logs the time spent inside the Vulkan function. */ - MVK_CONFIG_TRACE_VULKAN_CALLS_MAX_ENUM = 0x7FFFFFFF + MVK_CONFIG_TRACE_VULKAN_CALLS_NONE = 0, /**< No Vulkan call logging. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER = 1, /**< Log the name of each Vulkan call when the call is entered. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_THREAD_ID = 2, /**< Log the name and thread ID of each Vulkan call when the call is entered. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT = 3, /**< Log the name of each Vulkan call when the call is entered and exited. This effectively brackets any other logging activity within the scope of the Vulkan call. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT_THREAD_ID = 4, /**< Log the name and thread ID of each Vulkan call when the call is entered and name when exited. This effectively brackets any other logging activity within the scope of the Vulkan call. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_DURATION = 5, /**< Same as MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT, plus logs the time spent inside the Vulkan function. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_DURATION_THREAD_ID = 6, /**< Same as MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT_THREAD_ID, plus logs the time spent inside the Vulkan function. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_MAX_ENUM = 0x7FFFFFFF } MVKConfigTraceVulkanCalls; /** Identifies the scope for Metal to run an automatic GPU capture for diagnostic debugging purposes. */ diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 9fdf44d01..6a0bd6f2c 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -378,6 +378,11 @@ interlockFeatures->fragmentShaderShadingRateInterlock = false; // Requires variable rate shading; not supported yet in Metal break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT: { + auto* pipelineCreationCacheControlFeatures = (VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*)next; + pipelineCreationCacheControlFeatures->pipelineCreationCacheControl = true; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: { auto* robustness2Features = (VkPhysicalDeviceRobustness2FeaturesEXT*)next; robustness2Features->robustBufferAccess2 = false; @@ -385,16 +390,28 @@ robustness2Features->nullDescriptor = false; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: { + auto* atomicFloatFeatures = (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*)next; + bool atomicFloatEnabled = _metalFeatures.mslVersion >= 030000; + atomicFloatFeatures->shaderBufferFloat32Atomics = atomicFloatEnabled; + atomicFloatFeatures->shaderBufferFloat32AtomicAdd = atomicFloatEnabled; + atomicFloatFeatures->shaderBufferFloat64Atomics = false; + atomicFloatFeatures->shaderBufferFloat64AtomicAdd = false; + atomicFloatFeatures->shaderSharedFloat32Atomics = atomicFloatEnabled; + atomicFloatFeatures->shaderSharedFloat32AtomicAdd = atomicFloatEnabled; + atomicFloatFeatures->shaderSharedFloat64Atomics = false; + atomicFloatFeatures->shaderSharedFloat64AtomicAdd = false; + atomicFloatFeatures->shaderImageFloat32Atomics = false; + atomicFloatFeatures->shaderImageFloat32AtomicAdd = false; + atomicFloatFeatures->sparseImageFloat32Atomics = false; + atomicFloatFeatures->sparseImageFloat32AtomicAdd = false; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: { auto* swapchainMaintenance1Features = (VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*)next; swapchainMaintenance1Features->swapchainMaintenance1 = true; break; } - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT: { - auto* pipelineCreationCacheControlFeatures = (VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*)next; - pipelineCreationCacheControlFeatures->pipelineCreationCacheControl = true; - break; - } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: { auto* texelBuffAlignFeatures = (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*)next; texelBuffAlignFeatures->texelBufferAlignment = _metalFeatures.texelBuffers && [_mtlDevice respondsToSelector: @selector(minimumLinearTextureAlignmentForPixelFormat:)]; @@ -411,16 +428,6 @@ shaderIntFuncsFeatures->shaderIntegerFunctions2 = true; break; } - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: { - auto* atomicFloatFeatures = (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*)next; - mvkClear(atomicFloatFeatures); - bool atomicFloatEnabled = _metalFeatures.mslVersion >= 030000; - atomicFloatFeatures->shaderBufferFloat32Atomics = atomicFloatEnabled; - atomicFloatFeatures->shaderBufferFloat32AtomicAdd = atomicFloatEnabled; - atomicFloatFeatures->shaderSharedFloat32Atomics = atomicFloatEnabled; - atomicFloatFeatures->shaderSharedFloat32AtomicAdd = atomicFloatEnabled; - break; - } default: break; } diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def index 050863271..0674e4c18 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def @@ -63,8 +63,9 @@ MVK_DEVICE_FEATURE(VulkanMemoryModel, VULKAN_MEMORY_MODEL, MVK_DEVICE_FEATURE_EXTN(FragmentShaderBarycentric, FRAGMENT_SHADER_BARYCENTRIC, KHR, 1) MVK_DEVICE_FEATURE_EXTN(PortabilitySubset, PORTABILITY_SUBSET, KHR, 15) MVK_DEVICE_FEATURE_EXTN(FragmentShaderInterlock, FRAGMENT_SHADER_INTERLOCK, EXT, 3) -MVK_DEVICE_FEATURE_EXTN(Robustness2, ROBUSTNESS_2, EXT, 3) MVK_DEVICE_FEATURE_EXTN(PipelineCreationCacheControl, PIPELINE_CREATION_CACHE_CONTROL, EXT, 1) +MVK_DEVICE_FEATURE_EXTN(Robustness2, ROBUSTNESS_2, EXT, 3) +MVK_DEVICE_FEATURE_EXTN(ShaderAtomicFloat, SHADER_ATOMIC_FLOAT, EXT, 12) MVK_DEVICE_FEATURE_EXTN(SwapchainMaintenance1, SWAPCHAIN_MAINTENANCE_1, EXT, 1) MVK_DEVICE_FEATURE_EXTN(TexelBufferAlignment, TEXEL_BUFFER_ALIGNMENT, EXT, 1) MVK_DEVICE_FEATURE_EXTN(VertexAttributeDivisor, VERTEX_ATTRIBUTE_DIVISOR, EXT, 2) diff --git a/MoltenVK/MoltenVK/Vulkan/vulkan.mm b/MoltenVK/MoltenVK/Vulkan/vulkan.mm index dfea51b2d..03abf9b9e 100644 --- a/MoltenVK/MoltenVK/Vulkan/vulkan.mm +++ b/MoltenVK/MoltenVK/Vulkan/vulkan.mm @@ -50,35 +50,59 @@ // Optionally log start of function calls to stderr static inline uint64_t MVKTraceVulkanCallStartImpl(const char* funcName) { - MVKConfigTraceVulkanCalls traceLvl = mvkConfig().traceVulkanCalls; - if (traceLvl == MVK_CONFIG_TRACE_VULKAN_CALLS_NONE || - traceLvl > MVK_CONFIG_TRACE_VULKAN_CALLS_DURATION) { return 0; } + bool includeThread = false; + bool includeExit = false; + bool includeDuration = false; - uint64_t gtid, mtid; - const uint32_t kThreadNameBuffSize = 256; - char threadName[kThreadNameBuffSize]; - pthread_t tid = pthread_self(); - mtid = pthread_mach_thread_np(tid); // Mach thread ID - pthread_threadid_np(tid, >id); // Global system-wide thead ID - pthread_getname_np(tid, threadName, kThreadNameBuffSize); + switch (mvkConfig().traceVulkanCalls) { + case MVK_CONFIG_TRACE_VULKAN_CALLS_DURATION: + includeDuration = true; // fallthrough + case MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT: + includeExit = true; // fallthrough + case MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER: + break; + + case MVK_CONFIG_TRACE_VULKAN_CALLS_DURATION_THREAD_ID: + includeDuration = true; // fallthrough + case MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT_THREAD_ID: + includeExit = true; // fallthrough + case MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_THREAD_ID: + includeThread = true; // fallthrough + break; + + case MVK_CONFIG_TRACE_VULKAN_CALLS_NONE: + default: + return 0; + } - fprintf(stderr, "[mvk-trace] %s()%s [%llu/%llu/%s]\n", - funcName, (traceLvl >= MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT) ? " {" : "", - mtid, gtid, threadName); + if (includeThread) { + uint64_t gtid, mtid; + const uint32_t kThreadNameBuffSize = 256; + char threadName[kThreadNameBuffSize]; + pthread_t tid = pthread_self(); + mtid = pthread_mach_thread_np(tid); // Mach thread ID + pthread_threadid_np(tid, >id); // Global system-wide thead ID + pthread_getname_np(tid, threadName, kThreadNameBuffSize); + fprintf(stderr, "[mvk-trace] %s()%s [%llu/%llu/%s]\n", funcName, includeExit ? " {" : "", mtid, gtid, threadName); + } else { + fprintf(stderr, "[mvk-trace] %s()%s\n", funcName, includeExit ? " {" : ""); + } - return (traceLvl == MVK_CONFIG_TRACE_VULKAN_CALLS_DURATION) ? mvkGetTimestamp() : 0; + return includeDuration ? mvkGetTimestamp() : 0; } // Optionally log end of function calls and timings to stderr static inline void MVKTraceVulkanCallEndImpl(const char* funcName, uint64_t startTime) { switch(mvkConfig().traceVulkanCalls) { - case MVK_CONFIG_TRACE_VULKAN_CALLS_DURATION: - fprintf(stderr, "[mvk-trace] } %s [%.4f ms]\n", funcName, mvkGetElapsedMilliseconds(startTime)); - break; case MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT: + case MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT_THREAD_ID: fprintf(stderr, "[mvk-trace] } %s\n", funcName); break; + case MVK_CONFIG_TRACE_VULKAN_CALLS_DURATION: + case MVK_CONFIG_TRACE_VULKAN_CALLS_DURATION_THREAD_ID: + fprintf(stderr, "[mvk-trace] } %s [%.4f ms]\n", funcName, mvkGetElapsedMilliseconds(startTime)); + break; default: break; } From b69f437cd1654ce5363dcaf1dda1467d96f0d9c8 Mon Sep 17 00:00:00 2001 From: Jan Sikorski Date: Thu, 16 Mar 2023 11:38:30 +0100 Subject: [PATCH 67/72] Fixed invalid local variable reuse. --- MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm index c254df95b..652699ac2 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm @@ -1240,8 +1240,8 @@ static MTLVertexFormat mvkAdjustFormatVectorToSize(MTLVertexFormat format, uint3 // Vertex buffer divisors (step rates) std::unordered_set zeroDivisorBindings; if (pVertexInputDivisorState) { - vbCnt = pVertexInputDivisorState->vertexBindingDivisorCount; - for (uint32_t i = 0; i < vbCnt; i++) { + uint32_t vbdCnt = pVertexInputDivisorState->vertexBindingDivisorCount; + for (uint32_t i = 0; i < vbdCnt; i++) { const VkVertexInputBindingDivisorDescriptionEXT* pVKVB = &pVertexInputDivisorState->pVertexBindingDivisors[i]; if (shaderConfig.isVertexBufferUsed(pVKVB->binding)) { uint32_t vbIdx = getMetalBufferIndexForVertexAttributeBinding(pVKVB->binding); From cd8d0c30bb61ef042e599f2dd77343085296ec66 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Sun, 19 Mar 2023 22:53:36 -0400 Subject: [PATCH 68/72] Add support for VK_EXT_external_memory_host extension. - To expose host memory page size, add mvkGetHostMemoryPageSize() and MVKPhysicalDeviceMetalFeatures::hostMemoryPageSize. - MVKPhysicalDevice::getProperties() sort EXT property structs alphabetically (unrelated). - MVKExtensions.def fix alignment in OS versions (unrelated). --- Common/MVKOSExtensions.h | 2 + Common/MVKOSExtensions.mm | 2 + Docs/MoltenVK_Runtime_UserGuide.md | 1 + Docs/Whats_New.md | 1 + MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 1 + MoltenVK/MoltenVK/GPUObjects/MVKDevice.h | 6 ++ MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 59 +++++++++++++++---- .../MoltenVK/GPUObjects/MVKDeviceMemory.h | 1 + .../MoltenVK/GPUObjects/MVKDeviceMemory.mm | 46 ++++++++++++--- MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm | 1 + MoltenVK/MoltenVK/Layers/MVKExtensions.def | 5 +- MoltenVK/MoltenVK/Vulkan/vulkan.mm | 17 ++++++ 12 files changed, 120 insertions(+), 22 deletions(-) diff --git a/Common/MVKOSExtensions.h b/Common/MVKOSExtensions.h index 86d2e8d32..fde73c5c1 100644 --- a/Common/MVKOSExtensions.h +++ b/Common/MVKOSExtensions.h @@ -162,3 +162,5 @@ uint64_t mvkGetAvailableMemorySize(); /** Returns the amount of memory currently used by this process. */ uint64_t mvkGetUsedMemorySize(); +/** Returns the size of a page of host memory on this platform. */ +uint64_t mvkGetHostMemoryPageSize(); diff --git a/Common/MVKOSExtensions.mm b/Common/MVKOSExtensions.mm index 2999870c6..6c023086a 100644 --- a/Common/MVKOSExtensions.mm +++ b/Common/MVKOSExtensions.mm @@ -136,3 +136,5 @@ uint64_t mvkGetUsedMemorySize() { return 0; } +uint64_t mvkGetHostMemoryPageSize() { return sysconf(_SC_PAGESIZE); } + diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index cfa4e142a..79027beb9 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -356,6 +356,7 @@ In addition to core *Vulkan* functionality, **MoltenVK** also supports the foll - `VK_EXT_descriptor_indexing` *(initial release limited to Metal Tier 1: 96/128 textures, 16 samplers, except macOS 11.0 (Big Sur) or later, or on older versions of macOS using an Intel GPU, and if Metal argument buffers enabled in config)* +- `VK_EXT_external_memory_host` - `VK_EXT_fragment_shader_interlock` *(requires Metal 2.0 and Raster Order Groups)* - `VK_EXT_host_query_reset` - `VK_EXT_image_robustness` diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 0bba8b251..82698ee63 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -19,6 +19,7 @@ MoltenVK 1.2.3 Released TBA - Add support for extensions: + - `VK_EXT_external_memory_host` - `VK_EXT_pipeline_creation_cache_control` - `VK_EXT_shader_atomic_float` - `VK_EXT_surface_maintenance1` diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index 66a3fede4..44a5be5a4 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -1023,6 +1023,7 @@ typedef struct { VkBool32 shaderBarycentricCoordinates; /**< If true, fragment shader barycentric coordinates are supported. */ MTLArgumentBuffersTier argumentBuffersTier; /**< The argument buffer tier available on this device, as a Metal enumeration. */ VkBool32 needsSampleDrefLodArrayWorkaround; /**< If true, sampling from arrayed depth images with explicit LoD is broken and needs a workaround. */ + VkDeviceSize hostMemoryPageSize; /**< The size of a page of host memory on this platform. */ } MVKPhysicalDeviceMetalFeatures; /** MoltenVK performance of a particular type of activity. */ diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h index c9b0e97e3..22f8649eb 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.h @@ -444,6 +444,7 @@ class MVKPhysicalDevice : public MVKDispatchableVulkanAPIObject { uint32_t _hostCoherentMemoryTypes; uint32_t _privateMemoryTypes; uint32_t _lazilyAllocatedMemoryTypes; + VkExternalMemoryProperties _hostPointerExternalMemoryProperties; VkExternalMemoryProperties _mtlBufferExternalMemoryProperties; VkExternalMemoryProperties _mtlTextureExternalMemoryProperties; }; @@ -514,6 +515,11 @@ class MVKDevice : public MVKDispatchableVulkanAPIObject { /** Populates the device group peer memory features. */ void getPeerMemoryFeatures(uint32_t heapIndex, uint32_t localDevice, uint32_t remoteDevice, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); + /** Returns the properties of the host memory pointer. */ + VkResult getMemoryHostPointerProperties(VkExternalMemoryHandleTypeFlagBits handleType, + const void* pHostPointer, + VkMemoryHostPointerPropertiesEXT* pMemHostPtrProps); + #pragma mark Object lifecycle diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 6a0bd6f2c..8b25cbdbb 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -694,9 +694,16 @@ portabilityProps->minVertexInputBindingStrideAlignment = (uint32_t)_metalFeatures.vertexStrideAlignment; break; } - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: { - auto* divisorProps = (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*)next; - divisorProps->maxVertexAttribDivisor = kMVKUndefinedLargeUInt32; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: { + auto* extMemHostProps = (VkPhysicalDeviceExternalMemoryHostPropertiesEXT*)next; + extMemHostProps->minImportedHostPointerAlignment = _metalFeatures.hostMemoryPageSize; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: { + // This isn't implemented yet, but when it is, it is expected that we'll wind up doing it manually. + auto* robustness2Props = (VkPhysicalDeviceRobustness2PropertiesEXT*)next; + robustness2Props->robustStorageBufferAccessSizeAlignment = 1; + robustness2Props->robustUniformBufferAccessSizeAlignment = 1; break; } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: { @@ -709,11 +716,9 @@ sampLocnProps->variableSampleLocations = VK_FALSE; break; } - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: { - // This isn't implemented yet, but when it is, it is expected that we'll wind up doing it manually. - auto* robustness2Props = (VkPhysicalDeviceRobustness2PropertiesEXT*)next; - robustness2Props->robustStorageBufferAccessSizeAlignment = 1; - robustness2Props->robustUniformBufferAccessSizeAlignment = 1; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: { + auto* divisorProps = (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*)next; + divisorProps->maxVertexAttribDivisor = kMVKUndefinedLargeUInt32; break; } default: @@ -1055,15 +1060,17 @@ VkExternalMemoryProperties& MVKPhysicalDevice::getExternalBufferProperties(VkExternalMemoryHandleTypeFlagBits handleType) { switch (handleType) { - case VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_KHR: return _mtlBufferExternalMemoryProperties; - default: return _emptyExtMemProps; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: return _hostPointerExternalMemoryProperties; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_KHR: return _mtlBufferExternalMemoryProperties; + default: return _emptyExtMemProps; } } VkExternalMemoryProperties& MVKPhysicalDevice::getExternalImageProperties(VkExternalMemoryHandleTypeFlagBits handleType) { switch (handleType) { - case VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_KHR: return _mtlTextureExternalMemoryProperties; - default: return _emptyExtMemProps; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: return _hostPointerExternalMemoryProperties; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_KHR: return _mtlTextureExternalMemoryProperties; + default: return _emptyExtMemProps; } } @@ -1599,6 +1606,8 @@ // Start with all Metal features cleared mvkClear(&_metalFeatures); + _metalFeatures.hostMemoryPageSize = mvkGetHostMemoryPageSize(); + _metalFeatures.maxPerStageBufferCount = 31; _metalFeatures.maxMTLBufferSize = (256 * MEBI); _metalFeatures.dynamicMTLBufferSize = 0; @@ -2993,6 +3002,11 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope void MVKPhysicalDevice::initExternalMemoryProperties() { + // Common + _hostPointerExternalMemoryProperties.externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT; + _hostPointerExternalMemoryProperties.exportFromImportedHandleTypes = 0; + _hostPointerExternalMemoryProperties.compatibleHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT; + // Buffers _mtlBufferExternalMemoryProperties.externalMemoryFeatures = (VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT | VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT); @@ -3469,6 +3483,27 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope *pPeerMemoryFeatures = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT | VK_PEER_MEMORY_FEATURE_COPY_DST_BIT; } +VkResult MVKDevice::getMemoryHostPointerProperties(VkExternalMemoryHandleTypeFlagBits handleType, + const void* pHostPointer, + VkMemoryHostPointerPropertiesEXT* pMemHostPtrProps) { + if (pMemHostPtrProps) { + switch (handleType) { + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: + pMemHostPtrProps->memoryTypeBits = _physicalDevice->getHostVisibleMemoryTypes(); + break; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT: + // Vulkan requires only host-visible memory types here, but Metal + // only supports Private storage for cross-device buffer sharing. + pMemHostPtrProps->memoryTypeBits = 0; + break; + default: + pMemHostPtrProps->memoryTypeBits = 0; + break; + } + } + return VK_SUCCESS; +} + #pragma mark Object lifecycle diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.h b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.h index 2f428e365..848984afd 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.h @@ -170,6 +170,7 @@ class MVKDeviceMemory : public MVKVulkanAPIDeviceObject { MTLStorageMode _mtlStorageMode; MTLCPUCacheMode _mtlCPUCacheMode; bool _isDedicated = false; + bool _isHostMemImported = false; }; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm index 0eb447f4a..63300acee 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm @@ -181,6 +181,9 @@ if (_mtlHeap) { return true; } + // Can't create a MTLHeap on a imported memory + if (_isHostMemImported) { return true; } + // Don't bother if we don't have placement heaps. if (!getDevice()->_pMetalFeatures->placementHeaps) { return true; } @@ -233,7 +236,12 @@ } [_mtlBuffer makeAliasable]; } else if (_pHostMemory) { - _mtlBuffer = [getMTLDevice() newBufferWithBytes: _pHostMemory length: memLen options: getMTLResourceOptions()]; // retained + auto rezOpts = getMTLResourceOptions(); + if (_isHostMemImported) { + _mtlBuffer = [getMTLDevice() newBufferWithBytesNoCopy: _pHostMemory length: memLen options: rezOpts deallocator: nil]; // retained + } else { + _mtlBuffer = [getMTLDevice() newBufferWithBytes: _pHostMemory length: memLen options: rezOpts]; // retained + } freeHostMemory(); } else { _mtlBuffer = [getMTLDevice() newBufferWithLength: memLen options: getMTLResourceOptions()]; // retained @@ -264,7 +272,7 @@ } void MVKDeviceMemory::freeHostMemory() { - free(_pHostMemory); + if ( !_isHostMemImported ) { free(_pHostMemory); } _pHostMemory = nullptr; } @@ -296,6 +304,27 @@ _isDedicated = dedicatedImage || dedicatedBuffer; break; } + case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: { + auto* pMemHostPtrInfo = (VkImportMemoryHostPointerInfoEXT*)next; + if (mvkIsAnyFlagEnabled(_vkMemPropFlags, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT)) { + switch (pMemHostPtrInfo->handleType) { + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: + _pHostMemory = pMemHostPtrInfo->pHostPointer; + _isHostMemImported = true; + break; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT: + // Vulkan requires only host-visible memory types here, but Metal + // only supports Private storage for cross-device buffer sharing. + setConfigurationResult(reportError(VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR, "vkAllocateMemory(): Metal does not support host-visible memory for cross-device memory sharing.")); + break; + default: + break; + } + } else { + setConfigurationResult(reportError(VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR, "vkAllocateMemory(): Imported memory must be host-visible.")); + } + break; + } case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: { auto* pExpMemInfo = (VkExportMemoryAllocateInfo*)next; handleTypes = pExpMemInfo->handleTypes; @@ -333,7 +362,7 @@ #if MVK_MACOS if (isMemoryHostCoherent() ) { if (!((MVKImage*)dedicatedImage)->_isLinear) { - setConfigurationResult(reportError(VK_ERROR_OUT_OF_DEVICE_MEMORY, "Host-coherent VkDeviceMemory objects cannot be associated with optimal-tiling images.")); + setConfigurationResult(reportError(VK_ERROR_OUT_OF_DEVICE_MEMORY, "vkAllocateMemory(): Host-coherent VkDeviceMemory objects cannot be associated with optimal-tiling images.")); } else { if (!_device->_pMetalFeatures->sharedLinearTextures) { // Need to use the managed mode for images. @@ -341,7 +370,7 @@ } // Nonetheless, we need a buffer to be able to map the memory at will. if (!ensureMTLBuffer() ) { - setConfigurationResult(reportError(VK_ERROR_OUT_OF_DEVICE_MEMORY, "Could not allocate a host-coherent VkDeviceMemory of size %llu bytes. The maximum memory-aligned size of a host-coherent VkDeviceMemory is %llu bytes.", _allocationSize, _device->_pMetalFeatures->maxMTLBufferSize)); + setConfigurationResult(reportError(VK_ERROR_OUT_OF_DEVICE_MEMORY, "vkAllocateMemory(): Could not allocate a host-coherent VkDeviceMemory of size %llu bytes. The maximum memory-aligned size of a host-coherent VkDeviceMemory is %llu bytes.", _allocationSize, _device->_pMetalFeatures->maxMTLBufferSize)); } } } @@ -359,15 +388,16 @@ // If we can, create a MTLHeap. This should happen before creating the buffer, allowing us to map its contents. if ( !_isDedicated ) { if (!ensureMTLHeap()) { - setConfigurationResult(reportError(VK_ERROR_OUT_OF_DEVICE_MEMORY, "Could not allocate VkDeviceMemory of size %llu bytes.", _allocationSize)); + setConfigurationResult(reportError(VK_ERROR_OUT_OF_DEVICE_MEMORY, "vkAllocateMemory(): Could not allocate VkDeviceMemory of size %llu bytes.", _allocationSize)); return; } } - // If memory needs to be coherent it must reside in an MTLBuffer, since an open-ended map() must work. + // If memory needs to be coherent it must reside in a MTLBuffer, since an open-ended map() must work. + // If memory was imported, a MTLBuffer must be created on it. // Or if a MTLBuffer will be exported, ensure it exists. - if ((isMemoryHostCoherent() || willExportMTLBuffer) && !ensureMTLBuffer() ) { - setConfigurationResult(reportError(VK_ERROR_OUT_OF_DEVICE_MEMORY, "Could not allocate a host-coherent or exportable VkDeviceMemory of size %llu bytes. The maximum memory-aligned size of a host-coherent VkDeviceMemory is %llu bytes.", _allocationSize, _device->_pMetalFeatures->maxMTLBufferSize)); + if ((isMemoryHostCoherent() || _isHostMemImported || willExportMTLBuffer) && !ensureMTLBuffer() ) { + setConfigurationResult(reportError(VK_ERROR_OUT_OF_DEVICE_MEMORY, "vkAllocateMemory(): Could not allocate a host-coherent or exportable VkDeviceMemory of size %llu bytes. The maximum memory-aligned size of a host-coherent VkDeviceMemory is %llu bytes.", _allocationSize, _device->_pMetalFeatures->maxMTLBufferSize)); } } diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm index dc953db56..4d5f3c929 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm @@ -721,6 +721,7 @@ ADD_DVC_EXT_ENTRY_POINT(vkCmdDebugMarkerBeginEXT, EXT_DEBUG_MARKER); ADD_DVC_EXT_ENTRY_POINT(vkCmdDebugMarkerEndEXT, EXT_DEBUG_MARKER); ADD_DVC_EXT_ENTRY_POINT(vkCmdDebugMarkerInsertEXT, EXT_DEBUG_MARKER); + ADD_DVC_EXT_ENTRY_POINT(vkGetMemoryHostPointerPropertiesEXT, EXT_EXTERNAL_MEMORY_HOST); ADD_DVC_EXT_ENTRY_POINT(vkSetHdrMetadataEXT, EXT_HDR_METADATA); ADD_DVC_EXT_ENTRY_POINT(vkExportMetalObjectsEXT, EXT_METAL_OBJECTS); ADD_DVC_EXT_ENTRY_POINT(vkCreatePrivateDataSlotEXT, EXT_PRIVATE_DATA); diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.def b/MoltenVK/MoltenVK/Layers/MVKExtensions.def index efedcbc2f..515029c95 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.def +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.def @@ -44,7 +44,7 @@ MVK_EXTENSION(KHR_16bit_storage, KHR_16BIT_STORAGE, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_8bit_storage, KHR_8BIT_STORAGE, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_bind_memory2, KHR_BIND_MEMORY_2, DEVICE, 10.11, 8.0) -MVK_EXTENSION(KHR_buffer_device_address, KHR_BUFFER_DEVICE_ADDRESS, DEVICE, 13.0, 16.0) +MVK_EXTENSION(KHR_buffer_device_address, KHR_BUFFER_DEVICE_ADDRESS, DEVICE, 13.0, 16.0) MVK_EXTENSION(KHR_copy_commands2, KHR_COPY_COMMANDS_2, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_create_renderpass2, KHR_CREATE_RENDERPASS_2, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_dedicated_allocation, KHR_DEDICATED_ALLOCATION, DEVICE, 10.11, 8.0) @@ -91,11 +91,12 @@ MVK_EXTENSION(KHR_timeline_semaphore, KHR_TIMELINE_SEMAPHORE, MVK_EXTENSION(KHR_uniform_buffer_standard_layout, KHR_UNIFORM_BUFFER_STANDARD_LAYOUT, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_variable_pointers, KHR_VARIABLE_POINTERS, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_vulkan_memory_model, KHR_VULKAN_MEMORY_MODEL, DEVICE, MVK_NA, MVK_NA) -MVK_EXTENSION(EXT_buffer_device_address, EXT_BUFFER_DEVICE_ADDRESS, DEVICE, 13.0, 16.0) +MVK_EXTENSION(EXT_buffer_device_address, EXT_BUFFER_DEVICE_ADDRESS, DEVICE, 13.0, 16.0) MVK_EXTENSION(EXT_debug_marker, EXT_DEBUG_MARKER, DEVICE, 10.11, 8.0) MVK_EXTENSION(EXT_debug_report, EXT_DEBUG_REPORT, INSTANCE, 10.11, 8.0) MVK_EXTENSION(EXT_debug_utils, EXT_DEBUG_UTILS, INSTANCE, 10.11, 8.0) MVK_EXTENSION(EXT_descriptor_indexing, EXT_DESCRIPTOR_INDEXING, DEVICE, 10.11, 8.0) +MVK_EXTENSION(EXT_external_memory_host, EXT_EXTERNAL_MEMORY_HOST, DEVICE, 10.11, 8.0) MVK_EXTENSION(EXT_fragment_shader_interlock, EXT_FRAGMENT_SHADER_INTERLOCK, DEVICE, 10.13, 11.0) MVK_EXTENSION(EXT_hdr_metadata, EXT_HDR_METADATA, DEVICE, 10.15, MVK_NA) MVK_EXTENSION(EXT_host_query_reset, EXT_HOST_QUERY_RESET, DEVICE, 10.11, 8.0) diff --git a/MoltenVK/MoltenVK/Vulkan/vulkan.mm b/MoltenVK/MoltenVK/Vulkan/vulkan.mm index 03abf9b9e..d3c365a46 100644 --- a/MoltenVK/MoltenVK/Vulkan/vulkan.mm +++ b/MoltenVK/MoltenVK/Vulkan/vulkan.mm @@ -3228,6 +3228,23 @@ MVK_PUBLIC_VULKAN_SYMBOL void vkSubmitDebugUtilsMessageEXT( } +#pragma mark - +#pragma mark VK_EXT_external_memory_host extension + +MVK_PUBLIC_VULKAN_SYMBOL VkResult vkGetMemoryHostPointerPropertiesEXT( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + const void* pHostPointer, + VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) { + + MVKTraceVulkanCallStart(); + MVKDevice* mvkDvc = MVKDevice::getMVKDevice(device); + VkResult rslt = mvkDvc->getMemoryHostPointerProperties(handleType, pHostPointer, pMemoryHostPointerProperties); + MVKTraceVulkanCallEnd(); + return rslt; +} + + #pragma mark - #pragma mark VK_EXT_hdr_metadata extension From cc83a49b9921538cefe102ebeda20cc47da20151 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 20 Mar 2023 11:16:40 -0400 Subject: [PATCH 69/72] Add support for host mapped external memory from another GPU. - Allow MTLBuffer.contents from another GPU as support for the VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT handle type. --- MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 29 +++++++++++-------- .../MoltenVK/GPUObjects/MVKDeviceMemory.mm | 6 +--- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 8b25cbdbb..3494740e7 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -1060,17 +1060,25 @@ VkExternalMemoryProperties& MVKPhysicalDevice::getExternalBufferProperties(VkExternalMemoryHandleTypeFlagBits handleType) { switch (handleType) { - case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: return _hostPointerExternalMemoryProperties; - case VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_KHR: return _mtlBufferExternalMemoryProperties; - default: return _emptyExtMemProps; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT: + return _hostPointerExternalMemoryProperties; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_KHR: + return _mtlBufferExternalMemoryProperties; + default: + return _emptyExtMemProps; } } VkExternalMemoryProperties& MVKPhysicalDevice::getExternalImageProperties(VkExternalMemoryHandleTypeFlagBits handleType) { switch (handleType) { - case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: return _hostPointerExternalMemoryProperties; - case VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_KHR: return _mtlTextureExternalMemoryProperties; - default: return _emptyExtMemProps; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT: + return _hostPointerExternalMemoryProperties; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_KHR: + return _mtlTextureExternalMemoryProperties; + default: + return _emptyExtMemProps; } } @@ -3005,7 +3013,8 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope // Common _hostPointerExternalMemoryProperties.externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT; _hostPointerExternalMemoryProperties.exportFromImportedHandleTypes = 0; - _hostPointerExternalMemoryProperties.compatibleHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT; + _hostPointerExternalMemoryProperties.compatibleHandleTypes = (VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT | + VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT); // Buffers _mtlBufferExternalMemoryProperties.externalMemoryFeatures = (VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT | @@ -3489,12 +3498,8 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope if (pMemHostPtrProps) { switch (handleType) { case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: - pMemHostPtrProps->memoryTypeBits = _physicalDevice->getHostVisibleMemoryTypes(); - break; case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT: - // Vulkan requires only host-visible memory types here, but Metal - // only supports Private storage for cross-device buffer sharing. - pMemHostPtrProps->memoryTypeBits = 0; + pMemHostPtrProps->memoryTypeBits = _physicalDevice->getHostVisibleMemoryTypes(); break; default: pMemHostPtrProps->memoryTypeBits = 0; diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm index 63300acee..d475a0301 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm @@ -309,14 +309,10 @@ if (mvkIsAnyFlagEnabled(_vkMemPropFlags, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT)) { switch (pMemHostPtrInfo->handleType) { case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT: _pHostMemory = pMemHostPtrInfo->pHostPointer; _isHostMemImported = true; break; - case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT: - // Vulkan requires only host-visible memory types here, but Metal - // only supports Private storage for cross-device buffer sharing. - setConfigurationResult(reportError(VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR, "vkAllocateMemory(): Metal does not support host-visible memory for cross-device memory sharing.")); - break; default: break; } From 4e344a6921c46548a5803e66eaa43f56c48ad051 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Wed, 22 Mar 2023 14:27:25 -0400 Subject: [PATCH 70/72] Update dependency libraries to match Vulkan SDK 1.3.243. Update Whats New document. --- Docs/Whats_New.md | 11 ++++++++++- .../Vulkan-Headers_repo_revision | 2 +- ExternalRevisions/Vulkan-Tools_repo_revision | 2 +- ExternalRevisions/glslang_repo_revision | 2 +- Templates/spirv-tools/build.zip | Bin 52550 -> 53465 bytes 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 82698ee63..ef3d3eb3d 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -16,7 +16,7 @@ Copyright (c) 2015-2023 [The Brenwill Workshop Ltd.](http://www.brenwill.com) MoltenVK 1.2.3 -------------- -Released TBA +Released 2023/03/22 - Add support for extensions: - `VK_EXT_external_memory_host` @@ -36,6 +36,9 @@ Released TBA - Queue submissions retain wait semaphores until `MTLCommandBuffer` finishes. - Use a different visibility buffer for each `MTLCommandBuffer` in a queue submit. - Work around problems with using explicit LoD with arrayed depth images on Apple Silicon. +- Fix issue when `VkPipelineVertexInputDivisorStateCreateInfoEXT::vertexBindingDivisorCount` + doesn't match `VkPipelineVertexInputStateCreateInfo::vertexBindingDescriptionCount`. +- Support Apple Silicon pixel formats on a MoltenVK `x86_64` build that is running on Apple Silicon using Rosetta2. - Reduce memory footprint of MSL source code retained in pipeline cache. - Add `MVKConfiguration::shaderSourceCompressionAlgorithm` and env var `MVK_CONFIG_SHADER_COMPRESSION_ALGORITHM` to support @@ -48,6 +51,11 @@ Released TBA build setting to set `MVKConfiguration::activityPerformanceLoggingStyle` value. - Expand `MVK_CONFIG_TRACE_VULKAN_CALLS` to log thread ID only if requested. - Update `VK_MVK_MOLTENVK_SPEC_VERSION` to version `37`. +- Update dependency libraries to match _Vulkan SDK 1.3.243_. +- Update to latest SPIRV-Cross: + - MSL: Add support for `OpAtomicFAddEXT` atomic add on float types + - MSL: Add a workaround for broken `level()` arguments. + - MSL: Deduplicate function constants. @@ -70,6 +78,7 @@ Released 2023/01/23 - Update `VkPhysicalDeviceLimits::maxDrawIndexedIndexValue` to acknowledge automatic primitive restart. - Update copyright notices to year 2023. +- Update dependency libraries to match _Vulkan SDK 1.3.239_. - Update to latest SPIRV-Cross: - MSL: Add support for writable images in iOS Tier2 argument buffers. - MSL: Fix potentially uninitialized warnings. diff --git a/ExternalRevisions/Vulkan-Headers_repo_revision b/ExternalRevisions/Vulkan-Headers_repo_revision index 511208ff7..327903d25 100644 --- a/ExternalRevisions/Vulkan-Headers_repo_revision +++ b/ExternalRevisions/Vulkan-Headers_repo_revision @@ -1 +1 @@ -1a43b498b8e680d641af0e0a4b4bb47947b7a364 +65ad768d8603671fc1085fe115019e72a595ced8 diff --git a/ExternalRevisions/Vulkan-Tools_repo_revision b/ExternalRevisions/Vulkan-Tools_repo_revision index 69dd3a0dd..a36355f59 100644 --- a/ExternalRevisions/Vulkan-Tools_repo_revision +++ b/ExternalRevisions/Vulkan-Tools_repo_revision @@ -1 +1 @@ -36464b5cf9ade4e412aacd06d95cb02857021bba +f196c8d3cafcaf7e628b7b76a799c940999ee984 diff --git a/ExternalRevisions/glslang_repo_revision b/ExternalRevisions/glslang_repo_revision index cd6a5b28a..4ec3c5381 100644 --- a/ExternalRevisions/glslang_repo_revision +++ b/ExternalRevisions/glslang_repo_revision @@ -1 +1 @@ -6d41bb9c557c5a0eec61ffba1f775dc5f717a8f7 +14e5a04e70057972eef8a40df422e30a3b70e4b5 diff --git a/Templates/spirv-tools/build.zip b/Templates/spirv-tools/build.zip index 328300c4d2987e3b069814438799f817654e67cf..c78f151c340a212042a4167694c1a2818e4feb8e 100644 GIT binary patch delta 38554 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 XE9(Nl#oC2_`C}bm#-HuQv>fn%je;kP delta 37637 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 From 20e255b4e6d56a9cb2d0c8221fe2163d578bacce Mon Sep 17 00:00:00 2001 From: sean Date: Wed, 22 Mar 2023 20:06:53 +0100 Subject: [PATCH 71/72] Add: VK_KHR_map_memory2 --- Docs/MoltenVK_Runtime_UserGuide.md | 1 + .../Vulkan-Headers_repo_revision | 2 +- .../MoltenVK/GPUObjects/MVKDeviceMemory.h | 6 +-- .../MoltenVK/GPUObjects/MVKDeviceMemory.mm | 19 ++++---- MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm | 2 + MoltenVK/MoltenVK/Layers/MVKExtensions.def | 1 + MoltenVK/MoltenVK/Vulkan/vulkan.mm | 44 ++++++++++++++++++- 7 files changed, 59 insertions(+), 16 deletions(-) diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index 79027beb9..a4d951594 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -330,6 +330,7 @@ In addition to core *Vulkan* functionality, **MoltenVK** also supports the foll - `VK_KHR_maintenance1` - `VK_KHR_maintenance2` - `VK_KHR_maintenance3` +- `VK_KHR_map_memory2` - `VK_KHR_multiview` - `VK_KHR_portability_subset` - `VK_KHR_push_descriptor` diff --git a/ExternalRevisions/Vulkan-Headers_repo_revision b/ExternalRevisions/Vulkan-Headers_repo_revision index 327903d25..c0981ee2e 100644 --- a/ExternalRevisions/Vulkan-Headers_repo_revision +++ b/ExternalRevisions/Vulkan-Headers_repo_revision @@ -1 +1 @@ -65ad768d8603671fc1085fe115019e72a595ced8 +fa204df59c6caea6b9be3cf0754a88cd89056a87 diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.h b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.h index 848984afd..9fee83534 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.h +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.h @@ -78,10 +78,10 @@ class MVKDeviceMemory : public MVKVulkanAPIDeviceObject { * Maps the memory address at the specified offset from the start of this memory allocation, * and returns the address in the specified data reference. */ - VkResult map(VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData); - + VkResult map(const VkMemoryMapInfoKHR* mapInfo, void** ppData); + /** Unmaps a previously mapped memory range. */ - void unmap(); + VkResult unmap(const VkMemoryUnmapInfoKHR* unmapInfo); /** * If this device memory is currently mapped to host memory, returns the range within diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm index d475a0301..e7e97ea9f 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDeviceMemory.mm @@ -36,8 +36,7 @@ setLabelIfNotNil(_mtlBuffer, _debugName); } -VkResult MVKDeviceMemory::map(VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) { - +VkResult MVKDeviceMemory::map(const VkMemoryMapInfoKHR* pMemoryMapInfo, void** ppData) { if ( !isMemoryHostAccessible() ) { return reportError(VK_ERROR_MEMORY_MAP_FAILED, "Private GPU-only memory cannot be mapped to host memory."); } @@ -50,25 +49,23 @@ return reportError(VK_ERROR_OUT_OF_HOST_MEMORY, "Could not allocate %llu bytes of host-accessible device memory.", _allocationSize); } - _mappedRange.offset = offset; - _mappedRange.size = adjustMemorySize(size, offset); + _mappedRange.offset = pMemoryMapInfo->offset; + _mappedRange.size = adjustMemorySize(pMemoryMapInfo->size, pMemoryMapInfo->offset); - *ppData = (void*)((uintptr_t)_pMemory + offset); + *ppData = (void*)((uintptr_t)_pMemory + pMemoryMapInfo->offset); // Coherent memory does not require flushing by app, so we must flush now // to support Metal textures that actually reside in non-coherent memory. if (mvkIsAnyFlagEnabled(_vkMemPropFlags, VK_MEMORY_PROPERTY_HOST_COHERENT_BIT)) { - pullFromDevice(offset, size); + pullFromDevice(pMemoryMapInfo->offset, pMemoryMapInfo->size); } return VK_SUCCESS; } -void MVKDeviceMemory::unmap() { - +VkResult MVKDeviceMemory::unmap(const VkMemoryUnmapInfoKHR* pUnmapMemoryInfo) { if ( !isMapped() ) { - reportError(VK_ERROR_MEMORY_MAP_FAILED, "Memory is not mapped. Call vkMapMemory() first."); - return; + return reportError(VK_ERROR_MEMORY_MAP_FAILED, "Memory is not mapped. Call vkMapMemory() first."); } // Coherent memory does not require flushing by app, so we must flush now @@ -79,6 +76,8 @@ _mappedRange.offset = 0; _mappedRange.size = 0; + + return VK_SUCCESS; } VkResult MVKDeviceMemory::flushToDevice(VkDeviceSize offset, VkDeviceSize size) { diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm index 4d5f3c929..c6849c7d7 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm @@ -707,6 +707,8 @@ // Device extension functions: ADD_DVC_EXT_ENTRY_POINT(vkCmdPushDescriptorSetKHR, KHR_PUSH_DESCRIPTOR); ADD_DVC_EXT2_ENTRY_POINT(vkCmdPushDescriptorSetWithTemplateKHR, KHR_PUSH_DESCRIPTOR, KHR_DESCRIPTOR_UPDATE_TEMPLATE); + ADD_DVC_EXT_ENTRY_POINT(vkMapMemory2KHR, KHR_MAP_MEMORY_2); + ADD_DVC_EXT_ENTRY_POINT(vkUnmapMemory2KHR, KHR_MAP_MEMORY_2); ADD_DVC_EXT_ENTRY_POINT(vkCreateSwapchainKHR, KHR_SWAPCHAIN); ADD_DVC_EXT_ENTRY_POINT(vkDestroySwapchainKHR, KHR_SWAPCHAIN); ADD_DVC_EXT_ENTRY_POINT(vkGetSwapchainImagesKHR, KHR_SWAPCHAIN); diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.def b/MoltenVK/MoltenVK/Layers/MVKExtensions.def index 515029c95..ce68d29f8 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.def +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.def @@ -70,6 +70,7 @@ MVK_EXTENSION(KHR_image_format_list, KHR_IMAGE_FORMAT_LIST, MVK_EXTENSION(KHR_maintenance1, KHR_MAINTENANCE1, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_maintenance2, KHR_MAINTENANCE2, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_maintenance3, KHR_MAINTENANCE3, DEVICE, 10.11, 8.0) +MVK_EXTENSION(KHR_map_memory2, KHR_MAP_MEMORY_2, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_multiview, KHR_MULTIVIEW, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_portability_subset, KHR_PORTABILITY_SUBSET, DEVICE, 10.11, 8.0) MVK_EXTENSION(KHR_push_descriptor, KHR_PUSH_DESCRIPTOR, DEVICE, 10.11, 8.0) diff --git a/MoltenVK/MoltenVK/Vulkan/vulkan.mm b/MoltenVK/MoltenVK/Vulkan/vulkan.mm index d3c365a46..be2307cbb 100644 --- a/MoltenVK/MoltenVK/Vulkan/vulkan.mm +++ b/MoltenVK/MoltenVK/Vulkan/vulkan.mm @@ -492,8 +492,16 @@ MVK_PUBLIC_VULKAN_SYMBOL VkResult vkMapMemory( void** ppData) { MVKTraceVulkanCallStart(); + VkMemoryMapInfoKHR mapInfo = {}; + mapInfo.sType = VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR; + mapInfo.pNext = nullptr; + mapInfo.flags = flags; + mapInfo.memory = mem; + mapInfo.offset = offset; + mapInfo.size = size; + MVKDeviceMemory* mvkMem = (MVKDeviceMemory*)mem; - VkResult rslt = mvkMem->map(offset, size, flags, ppData); + VkResult rslt = mvkMem->map(&mapInfo, ppData); MVKTraceVulkanCallEnd(); return rslt; } @@ -503,8 +511,13 @@ MVK_PUBLIC_VULKAN_SYMBOL void vkUnmapMemory( VkDeviceMemory mem) { MVKTraceVulkanCallStart(); + VkMemoryUnmapInfoKHR unmapInfo = {}; + unmapInfo.sType = VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR; + unmapInfo.pNext = nullptr; + unmapInfo.flags = 0; + unmapInfo.memory = mem; MVKDeviceMemory* mvkMem = (MVKDeviceMemory*)mem; - mvkMem->unmap(); + mvkMem->unmap(&unmapInfo); MVKTraceVulkanCallEnd(); } @@ -2727,6 +2740,33 @@ MVK_PUBLIC_VULKAN_SYMBOL void vkCmdResolveImage2( MVK_PUBLIC_VULKAN_CORE_ALIAS(vkGetDescriptorSetLayoutSupport, KHR); +#pragma mark - +#pragma mark VK_KHR_map_memory2 extension + +MVK_PUBLIC_VULKAN_SYMBOL VkResult vkMapMemory2KHR( + VkDevice device, + const VkMemoryMapInfoKHR* pMemoryMapInfo, + void** ppData) { + + MVKTraceVulkanCallStart(); + MVKDeviceMemory* mvkMem = (MVKDeviceMemory*)pMemoryMapInfo->memory; + VkResult rslt = mvkMem->map(pMemoryMapInfo, ppData); + MVKTraceVulkanCallEnd(); + return rslt; +} + +MVK_PUBLIC_VULKAN_SYMBOL VkResult vkUnmapMemory2KHR( + VkDevice device, + const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo) { + + MVKTraceVulkanCallStart(); + MVKDeviceMemory* mvkMem = (MVKDeviceMemory*)pMemoryUnmapInfo->memory; + VkResult rslt = mvkMem->unmap(pMemoryUnmapInfo); + MVKTraceVulkanCallEnd(); + return rslt; +} + + #pragma mark - #pragma mark VK_KHR_push_descriptor extension From aa03097b4dddb4b56629a9fb08911172c37e9b57 Mon Sep 17 00:00:00 2001 From: sean <43609023+spnda@users.noreply.github.com> Date: Fri, 24 Mar 2023 15:08:06 +0100 Subject: [PATCH 72/72] Fix order --- MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm index c6849c7d7..8988f7763 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm @@ -705,10 +705,10 @@ ADD_INST_EXT_ENTRY_POINT(vkGetMTLCommandQueueMVK, MVK_MOLTENVK); // Device extension functions: - ADD_DVC_EXT_ENTRY_POINT(vkCmdPushDescriptorSetKHR, KHR_PUSH_DESCRIPTOR); - ADD_DVC_EXT2_ENTRY_POINT(vkCmdPushDescriptorSetWithTemplateKHR, KHR_PUSH_DESCRIPTOR, KHR_DESCRIPTOR_UPDATE_TEMPLATE); ADD_DVC_EXT_ENTRY_POINT(vkMapMemory2KHR, KHR_MAP_MEMORY_2); ADD_DVC_EXT_ENTRY_POINT(vkUnmapMemory2KHR, KHR_MAP_MEMORY_2); + ADD_DVC_EXT_ENTRY_POINT(vkCmdPushDescriptorSetKHR, KHR_PUSH_DESCRIPTOR); + ADD_DVC_EXT2_ENTRY_POINT(vkCmdPushDescriptorSetWithTemplateKHR, KHR_PUSH_DESCRIPTOR, KHR_DESCRIPTOR_UPDATE_TEMPLATE); ADD_DVC_EXT_ENTRY_POINT(vkCreateSwapchainKHR, KHR_SWAPCHAIN); ADD_DVC_EXT_ENTRY_POINT(vkDestroySwapchainKHR, KHR_SWAPCHAIN); ADD_DVC_EXT_ENTRY_POINT(vkGetSwapchainImagesKHR, KHR_SWAPCHAIN);