summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-03-07 13:19:44 -0800
committerGitHub <noreply@github.com>2024-03-07 13:19:44 -0800
commit240727db40552180446c1f14acc371f690db10e4 (patch)
tree45853db6e7405d37ab0ceafb8c1d5afb029de511 /source/slang/slang-emit.cpp
parentaf108c72894fdfb18438bd1c0cfb452b625cb6a6 (diff)
Uniformity analysis. (#3704)
* Uniformity analysis. * Add [NonUniformReturn] decorations to some hlsl intrinsic functions.
Diffstat (limited to 'source/slang/slang-emit.cpp')
-rw-r--r--source/slang/slang-emit.cpp8
1 files changed, 8 insertions, 0 deletions
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);