blob: 72f2c6130f7be011aa30d4226301ea2c8fc79bf7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
// slang-ir-specialize.h
#pragma once
namespace Slang
{
struct IRModule;
class DiagnosticSink;
class TargetProgram;
struct SpecializationOptions
{
// Option that allows specializeModule to generate dynamic-dispatch code
// wherever possible to open up more specialization opportunities.
//
bool lowerWitnessLookups = false;
};
/// Specialize generic and interface-based code to use concrete types.
bool specializeModule(
TargetProgram* target,
IRModule* module,
DiagnosticSink* sink,
SpecializationOptions options);
void finalizeSpecialization(IRModule* module);
} // namespace Slang
|