summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2022-05-05 12:30:10 -0400
committerGitHub <noreply@github.com>2022-05-05 09:30:10 -0700
commitaa03cea0da38b2950e6f8694dc8b1405352eda66 (patch)
tree755b275d7556fb48c40550603421e3483e26b24c /source/slang/slang-emit.cpp
parente3e0132743ada1569cefe18bfbf54178330204c4 (diff)
Output SPIR-V lifetimes (#2221)
* #include an absolute path didn't work - because paths were taken to always be relative. * WIP tracking liveness. * Skeleton around adding liveness instructions. * Calling into liveness tracking logic. Adds live start to var insts. * Liveness macros have initial output. * Looking at different initialization scenarios. * Some discussion around liveness. * WIP for working out liveness end. * WIP Updated liveness using use lists. * Is now adding liveness information * Some small fixes. * WIP around liveness. * Seems to output liveness correctly for current scenario. * Tidy up liveness code. * Update comment arounds liveness to current status. * Small fixes to liveness test. * Add support for call in liveness analysis. * Improve liveness example with array access. * Small updates to comments. * Disable liveness test because inconsistencies with output on CI system. * First pass support for GLSL SPIR-V liveness support. * Add the SPIRVOpDecoration. * Fix signature for OpLivenessStop. * Simplified by having a Kind type. * Fix some issues brought up in PR. * Rename liveness instructions. * Merge with var-lifetime. Small improvements. * Improvements to the documentation/naming in GLSL liveness pass. Add comment around possible improvements to the liveness pass.
Diffstat (limited to 'source/slang/slang-emit.cpp')
-rw-r--r--source/slang/slang-emit.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp
index 0f43762c1..1b94c588b 100644
--- a/source/slang/slang-emit.cpp
+++ b/source/slang/slang-emit.cpp
@@ -39,6 +39,7 @@
#include "slang-ir-validate.h"
#include "slang-ir-wrap-structured-buffers.h"
#include "slang-ir-liveness.h"
+#include "slang-ir-glsl-liveness.h"
#include "slang-legalize-types.h"
#include "slang-lower-to-ir.h"
@@ -762,6 +763,11 @@ Result linkAndOptimizeIR(
addLivenessTrackingToModule(irModule);
dumpIRIfEnabled(codeGenContext, irModule, "LIVENESS");
+
+ if (isKhronosTarget(targetRequest))
+ {
+ applyGLSLLiveness(irModule);
+ }
}
// We include one final step to (optionally) dump the IR and validate