summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ir-redundancy-removal.h
blob: 9d9fb43f012f8f3dda957d065e0e30cf88252e8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// slang-ir-redundancy-removal.h
#pragma once
#include "slang-compiler.h"

namespace Slang
{
struct IRModule;
struct IRGlobalValueWithCode;

bool removeRedundancy(IRModule* module, bool hoistLoopInvariantInsts);
bool removeRedundancyInFunc(IRGlobalValueWithCode* func, bool hoistLoopInvariantInsts);

bool eliminateRedundantLoadStore(IRGlobalValueWithCode* func);

void removeAvailableInDownstreamModuleDecorations(CodeGenTarget target, IRModule* module);
} // namespace Slang