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

#include "slang-ir-insts.h"

namespace Slang
{
    struct IRModule;

    struct IRDeadCodeEliminationOptions
    {
        bool keepExportsAlive = false;
        bool keepLayoutsAlive = false;
    };

        /// Eliminate "dead" code from the given IR module.
        ///
        /// This pass is primarily designed for flow-insensitive
        /// "global" dead code elimination (DCE), such as removing
        /// types that are unused, functions that are never called,
        /// etc.
        /// Returns true if changed.
    bool eliminateDeadCode(
        IRModule*                           module,
        IRDeadCodeEliminationOptions const& options = IRDeadCodeEliminationOptions());

    bool eliminateDeadCode(
        IRInst* root,
        IRDeadCodeEliminationOptions const& options = IRDeadCodeEliminationOptions());

    bool shouldInstBeLiveIfParentIsLive(IRInst* inst, IRDeadCodeEliminationOptions options);

    bool isWeakReferenceOperand(IRInst* inst, UInt operandIndex);
}
back to top