From f216b77752b9e4aea52882b2110ceb1cc64a2171 Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 13 Sep 2022 13:11:48 -0700 Subject: Deduplicate AST type nodes and cache lookup operations. (#2397) * wip: dedup AST type nodes and cache lookup. * Fix. * Remove profiling. * Fixes. Co-authored-by: Yong He --- source/slang/slang-api.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'source/slang/slang-api.cpp') diff --git a/source/slang/slang-api.cpp b/source/slang/slang-api.cpp index a3b1e5409..45c583060 100644 --- a/source/slang/slang-api.cpp +++ b/source/slang/slang-api.cpp @@ -98,11 +98,19 @@ SLANG_API SlangResult slang_createGlobalSession( { Slang::String cacheFilename; uint64_t dllTimestamp = 0; +#define SLANG_PROFILE_STDLIB_COMPILE 0 +#if SLANG_PROFILE_STDLIB_COMPILE + auto startTime = std::chrono::high_resolution_clock::now(); +#else if (tryLoadStdLibFromCache(globalSession, cacheFilename, dllTimestamp) != SLANG_OK) +#endif { // Compile std lib from embeded source. SLANG_RETURN_ON_FAIL(globalSession->compileStdLib(0)); - +#if SLANG_PROFILE_STDLIB_COMPILE + auto timeElapsed = std::chrono::high_resolution_clock::now() - startTime; + printf("stdlib compilation time: %.1fms\n", timeElapsed.count() / 1000000.0); +#endif // Store the compiled stdlib to cache file. trySaveStdLibToCache(globalSession, cacheFilename, dllTimestamp); } -- cgit v1.2.3