From 6c7120d684cc46caafbe348d658158c0060a7638 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 5 Jul 2023 14:37:48 -0700 Subject: Bottleneck DeclRef creation through ASTBuilder. (#2689) * Bottleneck DeclRef creation through ASTBuilder. * Fix clang error. * Fix. * Fix. * More fix. * Rebase on top of tree. --------- Co-authored-by: Yong He --- source/slang/slang-mangle.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'source/slang/slang-mangle.cpp') diff --git a/source/slang/slang-mangle.cpp b/source/slang/slang-mangle.cpp index 3b0d12da8..ee34358ab 100644 --- a/source/slang/slang-mangle.cpp +++ b/source/slang/slang-mangle.cpp @@ -355,7 +355,7 @@ namespace Slang ManglingContext* context, DeclRef declRef) { - auto parentDeclRef = declRef.getParent(); + auto parentDeclRef = declRef.getParent(context->astBuilder); auto parentGenericDeclRef = parentDeclRef.as(); if( parentDeclRef ) { @@ -441,7 +441,7 @@ namespace Slang // information about the parameters of the generic here. emitRaw(context, "g"); UInt genericParameterCount = 0; - for( auto mm : getMembers(parentGenericDeclRef) ) + for( auto mm : getMembers(context->astBuilder, parentGenericDeclRef) ) { if(mm.is()) { @@ -463,7 +463,7 @@ namespace Slang emit(context, genericParameterCount); OrderedDictionary> genericConstraints; - for (auto mm : getMembers(parentGenericDeclRef)) + for (auto mm : getMembers(context->astBuilder, parentGenericDeclRef)) { if (auto genericTypeParamDecl = mm.as()) { @@ -478,13 +478,13 @@ namespace Slang {} } - auto canonicalizedConstraints = getCanonicalGenericConstraints(parentGenericDeclRef); + auto canonicalizedConstraints = getCanonicalGenericConstraints(context->astBuilder, parentGenericDeclRef); for (auto& constraint : canonicalizedConstraints) { for (auto type : constraint.value) { emitRaw(context, "C"); - emitQualifiedName(context, DeclRef(constraint.key, nullptr)); + emitQualifiedName(context, context->astBuilder->getSpecializedDeclRef(constraint.key, nullptr)); emitType(context, type); } } @@ -501,7 +501,7 @@ namespace Slang // if( auto callableDeclRef = declRef.as()) { - auto parameters = getParameters(callableDeclRef); + auto parameters = getParameters(context->astBuilder, callableDeclRef); UInt parameterCount = parameters.getCount(); emitRaw(context, "p"); @@ -598,7 +598,7 @@ namespace Slang String getMangledName(ASTBuilder* astBuilder, DeclRefBase const & declRef) { return getMangledName(astBuilder, - DeclRef(declRef.decl, declRef.substitutions)); + astBuilder->getSpecializedDeclRef(declRef.decl, declRef.substitutions)); } String getMangledName(ASTBuilder* astBuilder, Decl* decl) -- cgit v1.2.3