https://github.com/shader-slang/slang
Raw File
Tip revision: 768e62f6c7541439e2edc18dad5fb3846d2e05f9 authored by Yong He on 10 October 2022, 22:59:45 UTC
Support multi-level break + single-return conversion + general inline. (#2436)
Tip revision: 768e62f
slang-mangle.h
#ifndef SLANG_MANGLE_H_INCLUDED
#define SLANG_MANGLE_H_INCLUDED

// This file implements the name mangling scheme for the Slang language.

#include "../core/slang-basic.h"
#include "slang-syntax.h"

namespace Slang
{
    struct IRSpecialize;

    String getMangledName(ASTBuilder* astBuilder, Decl* decl);
    String getMangledName(ASTBuilder* astBuilder, DeclRef<Decl> const & declRef);
    String getMangledName(ASTBuilder* astBuilder, DeclRefBase const & declRef);
    String getMangledNameFromNameString(const UnownedStringSlice& name);

    String getHashedName(const UnownedStringSlice& mangledName);

    String getMangledNameForConformanceWitness(
        ASTBuilder* astBuilder,
        Type* sub,
        Type* sup);
    String getMangledNameForConformanceWitness(
        ASTBuilder* astBuilder,
        DeclRef<Decl> sub,
        DeclRef<Decl> sup);
    String getMangledNameForConformanceWitness(
        ASTBuilder* astBuilder,
        DeclRef<Decl> sub,
        Type* sup);
    String getMangledTypeName(
        ASTBuilder* astBuilder,
        Type* type);
}

#endif
back to top