From 082c48d96c5f8f6b4f560d705fe731da14409cb4 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 29 Mar 2023 17:05:07 -0700 Subject: Update checkpoint policy to make obvious recompute decisions. (#2753) * Update checkpoint policy to make obvious recompute decisions. Also adds an optimization to fold updateElement chains on the same array or struct into a single makeArray or makeStruct. * Bug fixes around array types with different int typed count. * change test. * Fix. --------- Co-authored-by: Yong He --- source/slang/slang-check-expr.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/slang/slang-check-expr.cpp') diff --git a/source/slang/slang-check-expr.cpp b/source/slang/slang-check-expr.cpp index cfcb15269..a14ed38d8 100644 --- a/source/slang/slang-check-expr.cpp +++ b/source/slang/slang-check-expr.cpp @@ -1546,7 +1546,12 @@ namespace Slang // it is possible that we are referring to a generic value param if (auto declRefExpr = expr.as()) { - auto declRef = getDeclRef(m_astBuilder, declRefExpr); + auto checkedExpr = as(CheckTerm(expr.getExpr())); + if (!checkedExpr) + return nullptr; + + SubstExpr substExpr(checkedExpr, expr.getSubsts()); + auto declRef = getDeclRef(m_astBuilder, substExpr); if (auto genericValParamRef = declRef.as()) { -- cgit v1.2.3