summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/slang/slang-emit.cpp26
-rw-r--r--source/slang/slang-ir.cpp20
-rw-r--r--source/slang/slang-ir.h1
-rw-r--r--source/slang/slang-lower-to-ir.cpp9
-rw-r--r--tests/ir/string-literal.slang.expected2
5 files changed, 29 insertions, 29 deletions
diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp
index b08f26137..7d8a4074e 100644
--- a/source/slang/slang-emit.cpp
+++ b/source/slang/slang-emit.cpp
@@ -126,29 +126,6 @@ StructTypeLayout* getGlobalStructLayout(
return getScopeStructLayout(programLayout);
}
-static void dumpIR(
- BackEndCompileRequest* compileRequest,
- IRModule* irModule,
- char const* label)
-{
- DiagnosticSinkWriter writerImpl(compileRequest->getSink());
- WriterHelper writer(&writerImpl);
-
- if(label)
- {
- writer.put("### ");
- writer.put(label);
- writer.put(":\n");
- }
-
- dumpIR(irModule, writer.getWriter());
-
- if( label )
- {
- writer.put("###\n");
- }
-}
-
static void dumpIRIfEnabled(
BackEndCompileRequest* compileRequest,
IRModule* irModule,
@@ -156,7 +133,8 @@ static void dumpIRIfEnabled(
{
if(compileRequest->shouldDumpIR)
{
- dumpIR(compileRequest, irModule, label);
+ DiagnosticSinkWriter writer(compileRequest->getSink());
+ dumpIR(irModule, &writer, label);
}
}
diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp
index f551dcbba..a5e0de0c5 100644
--- a/source/slang/slang-ir.cpp
+++ b/source/slang/slang-ir.cpp
@@ -4637,6 +4637,25 @@ namespace Slang
writer->flush();
}
+ void dumpIR(IRModule* module, ISlangWriter* slangWriter, char const* label)
+ {
+ WriterHelper writer(slangWriter);
+
+ if (label)
+ {
+ writer.put("### ");
+ writer.put(label);
+ writer.put(":\n");
+ }
+
+ dumpIR(module, slangWriter, IRDumpMode::Simplified);
+
+ if (label)
+ {
+ writer.put("###\n");
+ }
+ }
+
String getSlangIRAssembly(IRModule* module, IRDumpMode mode)
{
StringBuilder sb;
@@ -5377,4 +5396,3 @@ namespace Slang
ptrType->getOperand(0)->op == opCode;
}
}
-
diff --git a/source/slang/slang-ir.h b/source/slang/slang-ir.h
index 481e4f601..d95951553 100644
--- a/source/slang/slang-ir.h
+++ b/source/slang/slang-ir.h
@@ -1422,6 +1422,7 @@ String getSlangIRAssembly(IRModule* module, IRDumpMode mode = IRDumpMode::Simpli
void dumpIR(IRModule* module, ISlangWriter* writer, IRDumpMode mode = IRDumpMode::Simplified);
void dumpIR(IRInst* globalVal, ISlangWriter* writer, IRDumpMode mode = IRDumpMode::Simplified);
+void dumpIR(IRModule* module, ISlangWriter* slangWriter, char const* label);
IRInst* createEmptyInst(
IRModule* module,
diff --git a/source/slang/slang-lower-to-ir.cpp b/source/slang/slang-lower-to-ir.cpp
index 322489d89..c72f7aca5 100644
--- a/source/slang/slang-lower-to-ir.cpp
+++ b/source/slang/slang-lower-to-ir.cpp
@@ -7343,9 +7343,10 @@ IRModule* generateIRForTranslationUnit(
}
#if 0
- fprintf(stderr, "### GENERATED\n");
- dumpIR(module);
- fprintf(stderr, "###\n");
+ {
+ DiagnosticSinkWriter writer(compileRequest->getSink());
+ dumpIR(module, &writer, "GENERATED");
+ }
#endif
validateIRModuleIfEnabled(compileRequest, module);
@@ -7451,7 +7452,7 @@ IRModule* generateIRForTranslationUnit(
if(compileRequest->shouldDumpIR)
{
DiagnosticSinkWriter writer(compileRequest->getSink());
- dumpIR(module, &writer);
+ dumpIR(module, &writer, "LOWER-TO-IR");
}
return module;
diff --git a/tests/ir/string-literal.slang.expected b/tests/ir/string-literal.slang.expected
index 3f6b2f0ff..80d7ce67c 100644
--- a/tests/ir/string-literal.slang.expected
+++ b/tests/ir/string-literal.slang.expected
@@ -1,5 +1,6 @@
result code = 0
standard error = {
+### LOWER-TO-IR:
[entryPoint(6, "main")]
[numThreads(1, 1, 1)]
[export("_S3tu04mainp1puV")]
@@ -12,6 +13,7 @@ block %1(
return_void
}
global_hashed_string_literals("Hello \t\n\0x083 World")
+###
}
standard output = {
}