From 69025ad82238a7402b18d9c566fac1574faef684 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Mon, 31 Aug 2020 13:02:55 -0400 Subject: AST Serialization in Modules (#1524) * First pass at filter for AST serial writing. * Serialization of AST for modules. * Removed some commented out source. Co-authored-by: Tim Foley --- source/slang/slang.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'source/slang/slang.cpp') diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index 074c71f21..c78ca0a4d 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -2993,10 +2993,23 @@ namespace Slang { SlangResult _addLibraryReference(EndToEndCompileRequest* req, Stream* stream) { + // Load up the module + RiffContainer container; + SLANG_RETURN_ON_FAIL(RiffUtil::read(stream, container)); + + List> modules; + + if (SLANG_FAILED(ASTSerialReader::readContainerModules(&container, req->getLinkage(), modules))) + { + req->getSink()->diagnose(SourceLoc(), Diagnostics::unableToAddReferenceToModuleContainer); + return SLANG_FAIL; + } + // Read all of the contained modules List> irModules; List entryPointMangledNames; - if (SLANG_FAILED(IRSerialReader::readStreamModules(stream, req->getSession(), req->getFrontEndReq()->getSourceManager(), irModules, entryPointMangledNames))) + + if (SLANG_FAILED(IRSerialReader::readContainerModules(&container, req->getSession(), req->getFrontEndReq()->getSourceManager(), irModules, entryPointMangledNames))) { req->getSink()->diagnose(SourceLoc(), Diagnostics::unableToAddReferenceToModuleContainer); return SLANG_FAIL; -- cgit v1.2.3