From 240727db40552180446c1f14acc371f690db10e4 Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 7 Mar 2024 13:19:44 -0800 Subject: Uniformity analysis. (#3704) * Uniformity analysis. * Add [NonUniformReturn] decorations to some hlsl intrinsic functions. --- source/slang/slang-emit.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source/slang/slang-emit.cpp') diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp index 2217bc143..1d72fd233 100644 --- a/source/slang/slang-emit.cpp +++ b/source/slang/slang-emit.cpp @@ -71,6 +71,7 @@ #include "slang-ir-string-hash.h" #include "slang-ir-simplify-for-emit.h" #include "slang-ir-pytorch-cpp-binding.h" +#include "slang-ir-uniformity.h" #include "slang-ir-vk-invert-y.h" #include "slang-legalize-types.h" #include "slang-lower-to-ir.h" @@ -371,6 +372,13 @@ Result linkAndOptimizeIR( simplifyIR(targetProgram, irModule, IRSimplificationOptions::getDefault(), sink); + if (targetProgram->getOptionSet().getBoolOption(CompilerOptionName::ValidateUniformity)) + { + validateUniformity(irModule, sink); + if (sink->getErrorCount() != 0) + return SLANG_FAIL; + } + // Fill in default matrix layout into matrix types that left layout unspecified. specializeMatrixLayout(codeGenContext->getTargetProgram(), irModule); -- cgit v1.2.3