https://github.com/shader-slang/slang
Raw File
Tip revision: 5902acdabc4445a65741a7a6a3a95f223e301059 authored by Yong He on 23 January 2024, 07:19:40 UTC
[LSP] Fetch configs directly from didConfigurationChanged message. (#3478)
Tip revision: 5902acd
slang-ir-specialize-function-call.h
// slang-ir-specialize-function-call.h
#pragma once

namespace Slang
{
    struct CodeGenContext;
    struct IRInst;
    struct IRModule;
    struct IRParam;
    class Module;

    class FunctionCallSpecializeCondition
    {
    public:
        virtual bool doesParamWantSpecialization(IRParam* param, IRInst* arg) = 0;

        virtual bool isParamSuitableForSpecialization(IRParam* param, IRInst* arg);
    };


    /// Specialize calls to functions with certain type of parameters.
    ///
    /// For any function that has a specific type of input parameters
    /// this pass will rewrite its call sites that pass suitable arguments
    /// (e.g., direct references to global shader parameters) to instead call
    /// a specialized variant of the function that does not have
    /// those resource parameters (and instead, e.g, refers to the
    /// global shader parameters directly).
    /// Returns true if any changes are made.
    bool specializeFunctionCalls(
        CodeGenContext* codeGenContext,
        IRModule* module,
        FunctionCallSpecializeCondition* condition);
}
back to top