diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/slang-emit.cpp | 26 | ||||
| -rw-r--r-- | source/slang/slang-ir.cpp | 20 | ||||
| -rw-r--r-- | source/slang/slang-ir.h | 1 | ||||
| -rw-r--r-- | source/slang/slang-lower-to-ir.cpp | 9 |
4 files changed, 27 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; |
