summaryrefslogtreecommitdiffstats
path: root/source/compiler-core/slang-artifact-container-util.h
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2023-04-20 11:55:26 -0400
committerGitHub <noreply@github.com>2023-04-20 11:55:26 -0400
commit467fa3a5dcdd36e310b084747d6f4fcd6ca81249 (patch)
tree193104aad3da77fffddb4b9be3edad4bcfdf76ac /source/compiler-core/slang-artifact-container-util.h
parent4d24f55226870055c8dcbb3409efc5355da134d7 (diff)
Improvements outputting containers (#2815)
* #include an absolute path didn't work - because paths were taken to always be relative. * Moved JSON source map writing logic to JSONSourceMapUtil. * Use ArtifactHandler to read/write SourceMaps. Use ObjectCastableAdapter to hold SourceMap Only serialize SourceMap <-> JSON on demand. * Make some types swappable. * BoxValue impl. * Added asBoxValue. * Remove const get funcs. * Fix typo in asBoxValue. * Fix another typo in asBoxValue. * Slightly simplify conversion to blob of SourceMap. * WIP Api improvements around sourcemap/artifact/line-directive. * Small fix for asBoxValue * WIP outputting container with multiple artifacts. * Added ArtifactContailerUtil::filter to produce an artifact hierarchy that only contains "signficant" and "blobable" artifacts. * Make emitting IR disjoint to using a container. Added -emit-ir option. Simplfiy output. * Fix typo in options parsing. * Add a test that ouputs with an emit source map. * Enable emitting our SlangIR module if no targets are specified. * Fix issues constructing container. * Extra checks getting obfuscated source map from a translation unit. * Fix typo.
Diffstat (limited to 'source/compiler-core/slang-artifact-container-util.h')
-rw-r--r--source/compiler-core/slang-artifact-container-util.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/compiler-core/slang-artifact-container-util.h b/source/compiler-core/slang-artifact-container-util.h
index c6e836245..0ee99de26 100644
--- a/source/compiler-core/slang-artifact-container-util.h
+++ b/source/compiler-core/slang-artifact-container-util.h
@@ -36,6 +36,14 @@ struct ArtifactContainerUtil
/// Read an artifact that represents a container as an artifact hierarchy
static SlangResult readContainer(IArtifact* artifact, ComPtr<IArtifact>& outArtifact);
+
+ /// Creates a copy of artifact where
+ /// * All artifacts are blobs
+ /// * Any generic containers that are empty are dropped
+ /// * Any sub artifact that can't be blobed and isn't significant is ignored
+ ///
+ /// A future improvement would be to take a function to also control what makes it to the output
+ static SlangResult filter(IArtifact* artifact, ComPtr<IArtifact>& outArtifact);
};
} // namespace Slang