summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-specialize.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-ir-specialize.h')
-rw-r--r--source/slang/slang-ir-specialize.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/source/slang/slang-ir-specialize.h b/source/slang/slang-ir-specialize.h
index 734c76427..72f2c6130 100644
--- a/source/slang/slang-ir-specialize.h
+++ b/source/slang/slang-ir-specialize.h
@@ -7,8 +7,20 @@ 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);
+bool specializeModule(
+ TargetProgram* target,
+ IRModule* module,
+ DiagnosticSink* sink,
+ SpecializationOptions options);
void finalizeSpecialization(IRModule* module);