summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ir-lower-generics.h
blob: 8385597b698a2e9d8383657e700854a2a05b4764 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// slang-ir-lower-generics.h
#pragma once

#include "slang-ir.h"

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

/// Lower generic and interface-based code to ordinary types and functions using
/// dynamic dispatch mechanisms.
void lowerGenerics(TargetProgram* targetReq, IRModule* module, DiagnosticSink* sink);

// Clean up any generic-related IR insts that are no longer needed. Called when
// it has been determined that no more dynamic dispatch code will be generated.
void cleanupGenerics(TargetProgram* targetReq, IRModule* module, DiagnosticSink* sink);
} // namespace Slang