summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--slang.h1
-rw-r--r--source/slang/slang-compiler-options.h5
-rw-r--r--source/slang/slang-lower-to-ir.cpp10
-rw-r--r--source/slang/slang-options.cpp2
4 files changed, 13 insertions, 5 deletions
diff --git a/slang.h b/slang.h
index a758df2be..a5a0a3cff 100644
--- a/slang.h
+++ b/slang.h
@@ -864,6 +864,7 @@ extern "C"
DisableShortCircuit, // bool
MinimumSlangOptimization, // bool
DisableNonEssentialValidations, // bool
+ DisableSourceMap, // bool
// Target
diff --git a/source/slang/slang-compiler-options.h b/source/slang/slang-compiler-options.h
index 221d0189f..e1ce21789 100644
--- a/source/slang/slang-compiler-options.h
+++ b/source/slang/slang-compiler-options.h
@@ -371,6 +371,11 @@ namespace Slang
return !getBoolOption(CompilerOptionName::DisableNonEssentialValidations);
}
+ bool shouldHaveSourceMap()
+ {
+ return !getBoolOption(CompilerOptionName::DisableSourceMap);
+ }
+
FloatingPointMode getFloatingPointMode()
{
return getEnumOption<FloatingPointMode>(CompilerOptionName::FloatingPointMode);
diff --git a/source/slang/slang-lower-to-ir.cpp b/source/slang/slang-lower-to-ir.cpp
index 403e2a921..5c4196839 100644
--- a/source/slang/slang-lower-to-ir.cpp
+++ b/source/slang/slang-lower-to-ir.cpp
@@ -10984,13 +10984,13 @@ RefPtr<IRModule> generateIRForTranslationUnit(
//
eliminateDeadCode(module, dceOptions);
+ if (stripOptions.shouldStripNameHints && linkage->m_optionSet.shouldHaveSourceMap())
+ {
+ // The obfuscated source map is stored on the module
+ obfuscateModuleLocs(module, compileRequest->getSourceManager());
+ }
}
- if (linkage->m_optionSet.shouldObfuscateCode())
- {
- // The obfuscated source map is stored on the module
- obfuscateModuleLocs(module, compileRequest->getSourceManager());
- }
// TODO: consider doing some more aggressive optimizations
// (in particular specialization of generics) here, so
diff --git a/source/slang/slang-options.cpp b/source/slang/slang-options.cpp
index dcc0f521d..a51ea01fe 100644
--- a/source/slang/slang-options.cpp
+++ b/source/slang/slang-options.cpp
@@ -292,6 +292,7 @@ void initCommandOptions(CommandOptions& options)
{ OptionKind::IgnoreCapabilities,"-ignore-capabilities", nullptr, "Do not warn or error if capabilities are violated"},
{ OptionKind::MinimumSlangOptimization, "-minimum-slang-optimization", nullptr, "Perform minimum code optimization in Slang to favor compilation time."},
{ OptionKind::DisableNonEssentialValidations, "-disable-non-essential-validations", nullptr, "Disable non-essential IR validations such as use of uninitialized variables."},
+ { OptionKind::DisableSourceMap, "-disable-source-map", nullptr, "Disable source mapping in the Obfuscation."},
{ OptionKind::ModuleName, "-module-name", "-module-name <name>",
"Set the module name to use when compiling multiple .slang source files into a single module."},
{ OptionKind::Output, "-o", "-o <path>",
@@ -1686,6 +1687,7 @@ SlangResult OptionsParser::_parse(
case OptionKind::IgnoreCapabilities:
case OptionKind::MinimumSlangOptimization:
case OptionKind::DisableNonEssentialValidations:
+ case OptionKind::DisableSourceMap:
case OptionKind::DefaultImageFormatUnknown:
case OptionKind::Obfuscate:
case OptionKind::OutputIncludes: