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-sccp.h
// slang-ir-sccp.h
#pragma once

namespace Slang
{
    struct IRModule;
    struct IRInst;
    class DiagnosticSink;

        /// Apply Sparse Conditional Constant Propagation (SCCP) to a module.
        ///
        /// This optimization replaces instructions that can only ever evaluate
        /// to a single (well-defined) value with that constant value, and
        /// also eliminates conditional branches where the condition will
        /// always evaluate to a constant (which can lead to entire blocks
        /// becoming dead code)
        /// Returns true if IR is changed.
    bool applySparseConditionalConstantPropagation(
        IRModule*       module,
        DiagnosticSink* sink);
    bool applySparseConditionalConstantPropagationForGlobalScope(
        IRModule* module,
        DiagnosticSink* sink);

    bool applySparseConditionalConstantPropagation(IRInst* func, DiagnosticSink* sink);

    IRInst* tryConstantFoldInst(IRModule* module, IRInst* inst);
}

back to top