summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ir-util.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-04-28 23:28:23 -0700
committerGitHub <noreply@github.com>2023-04-28 23:28:23 -0700
commitc571bcb025009f9c662e8d631fa49dbfed560287 (patch)
tree3ade836c28920210b3dc1af5e8447d4804dc03ad /source/slang/slang-ir-util.cpp
parent5adecbe837d27cf4e0a554ae13a0338743a8cb4b (diff)
SSA Register Allocation improvements. (#2857)
* SSA Register Allocation improvements. * Fix. * Rename `Use`->`UseOrPseudoUse`. --------- Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-ir-util.cpp')
-rw-r--r--source/slang/slang-ir-util.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/source/slang/slang-ir-util.cpp b/source/slang/slang-ir-util.cpp
index a69e13562..95240a26c 100644
--- a/source/slang/slang-ir-util.cpp
+++ b/source/slang/slang-ir-util.cpp
@@ -759,6 +759,21 @@ void removePhiArgs(IRInst* phiParam)
}
}
+int getParamIndexInBlock(IRParam* paramInst)
+{
+ auto block = as<IRBlock>(paramInst->getParent());
+ if (!block)
+ return -1;
+ int paramIndex = 0;
+ for (auto param : block->getParams())
+ {
+ if (param == paramInst)
+ return paramIndex;
+ paramIndex++;
+ }
+ return -1;
+}
+
struct GenericChildrenMigrationContextImpl
{
IRCloneEnv cloneEnv;