summaryrefslogtreecommitdiff
path: root/source/slang/slang-lower-to-ir.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-02-20 12:24:00 -0800
committerGitHub <noreply@github.com>2024-02-20 12:24:00 -0800
commit4d20fd329956ac89408b1628a8291fea01bc9a6d (patch)
tree8e62d9c1ec05142fd25d0b31073fdb56d44691b0 /source/slang/slang-lower-to-ir.cpp
parent8e9b61e3bac69dbb37a1451b62302e688a017ced (diff)
Refactor compiler option representations. (#3598)
* Refactor compiler option representation. * Fix binary compatibility. * Add a test for specifying compiler options at link time. * Fix binary compatibility. * Fix binary compatibility. * Fix backward compatibility on matrix layout. * Fix. * Fix. * Fix. * Fix gfx. * Fix gfx. * Fix dynamic dispatch. * Polish.
Diffstat (limited to 'source/slang/slang-lower-to-ir.cpp')
-rw-r--r--source/slang/slang-lower-to-ir.cpp24
1 files changed, 11 insertions, 13 deletions
diff --git a/source/slang/slang-lower-to-ir.cpp b/source/slang/slang-lower-to-ir.cpp
index 8fef6f535..8531e4029 100644
--- a/source/slang/slang-lower-to-ir.cpp
+++ b/source/slang/slang-lower-to-ir.cpp
@@ -2342,8 +2342,6 @@ static void addNameHint(
String name = getNameForNameHint(context, decl);
if(name.getLength() == 0)
return;
- if (name == "MyBlockName2")
- printf("break");
context->irBuilder->addNameHintDecoration(inst, name.getUnownedSlice());
}
@@ -10238,7 +10236,7 @@ RefPtr<IRModule> generateIRForTranslationUnit(
SharedIRGenContext sharedContextStorage(
session,
translationUnit->compileRequest->getSink(),
- translationUnit->compileRequest->getLinkage()->m_obfuscateCode,
+ translationUnit->compileRequest->optionSet.shouldObfuscateCode(),
translationUnit->getModuleDecl(),
translationUnit->compileRequest->getLinkage());
SharedIRGenContext* sharedContext = &sharedContextStorage;
@@ -10252,7 +10250,7 @@ RefPtr<IRModule> generateIRForTranslationUnit(
IRBuilder* builder = &builderStorage;
context->irBuilder = builder;
- context->includeDebugInfo = compileRequest->getLinkage()->debugInfoLevel != DebugInfoLevel::None;
+ context->includeDebugInfo = compileRequest->getLinkage()->m_optionSet.getDebugInfoLevel() != DebugInfoLevel::None;
// We need to emit IR for all public/exported symbols
// in the translation unit.
@@ -10450,7 +10448,7 @@ RefPtr<IRModule> generateIRForTranslationUnit(
Linkage* linkage = compileRequest->getLinkage();
- stripOptions.shouldStripNameHints = linkage->m_obfuscateCode;
+ stripOptions.shouldStripNameHints = linkage->m_optionSet.shouldObfuscateCode();
// If we are generating an obfuscated source map, we don't want to strip locs,
// we want to generate *new* locs that can be mapped (via source map)
@@ -10474,7 +10472,7 @@ RefPtr<IRModule> generateIRForTranslationUnit(
options.keepExportsAlive = true;
eliminateDeadCode(module, options);
- if (linkage->m_obfuscateCode)
+ if (linkage->m_optionSet.shouldObfuscateCode())
{
// The obfuscated source map is stored on the module
obfuscateModuleLocs(module, compileRequest->getSourceManager());
@@ -10494,7 +10492,7 @@ RefPtr<IRModule> generateIRForTranslationUnit(
// If we are being asked to dump IR during compilation,
// then we can dump the initial IR for the module here.
- if(compileRequest->shouldDumpIR)
+ if(compileRequest->optionSet.shouldDumpIR())
{
DiagnosticSinkWriter writer(compileRequest->getSink());
@@ -10525,7 +10523,7 @@ struct SpecializedComponentTypeIRGenContext : ComponentTypeVisitor
SharedIRGenContext sharedContextStorage(
session,
sink,
- linkage->m_obfuscateCode,
+ linkage->m_optionSet.shouldObfuscateCode(),
nullptr,
linkage
);
@@ -10664,7 +10662,7 @@ struct TypeConformanceIRGenContext
linkage = typeConformance->getLinkage();
session = linkage->getSessionImpl();
- SharedIRGenContext sharedContextStorage(session, sink, linkage->m_obfuscateCode, nullptr, linkage);
+ SharedIRGenContext sharedContextStorage(session, sink, linkage->m_optionSet.shouldObfuscateCode(), nullptr, linkage);
SharedIRGenContext* sharedContext = &sharedContextStorage;
IRGenContext contextStorage(sharedContext, linkage->getASTBuilder());
@@ -11016,7 +11014,7 @@ RefPtr<IRModule> TargetProgram::createIRModuleForLayout(DiagnosticSink* sink)
SharedIRGenContext sharedContextStorage(
session,
sink,
- linkage->m_obfuscateCode,
+ linkage->m_optionSet.shouldObfuscateCode(),
nullptr,
linkage);
auto sharedContext = &sharedContextStorage;
@@ -11111,12 +11109,12 @@ RefPtr<IRModule> TargetProgram::createIRModuleForLayout(DiagnosticSink* sink)
}
// Lets strip and run DCE here
- if (linkage->m_obfuscateCode)
+ if (linkage->m_optionSet.shouldObfuscateCode())
{
IRStripOptions stripOptions;
- stripOptions.shouldStripNameHints = linkage->m_obfuscateCode;
- stripOptions.stripSourceLocs = linkage->m_obfuscateCode;
+ stripOptions.shouldStripNameHints = true;
+ stripOptions.stripSourceLocs = true;;
stripFrontEndOnlyInstructions(irModule, stripOptions);