From 28c83e43ad036a5f1d00face584dc9936aebb126 Mon Sep 17 00:00:00 2001 From: Alexander Korepanov Date: Thu, 4 Aug 2022 20:01:52 +0200 Subject: [PATCH] [JS IR] Performance fixes for the IC infrastructure --- .../jetbrains/kotlin/ir/backend/js/ic/CacheUpdater.kt | 10 ++++++---- .../kotlin/ir/backend/js/ic/IncrementalCache.kt | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/CacheUpdater.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/CacheUpdater.kt index ea104b1fee5..1e9a531e3e2 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/CacheUpdater.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/CacheUpdater.kt @@ -322,8 +322,10 @@ class CacheUpdater( } } - val metadata = incrementalCache.fetchSourceFileFullMetadata(libSrcFile) - updatedMetadata[lib, libSrcFile] = DirtyFileMetadata(maybeImportedSignatures, metadata.directDependencies) + if (dirtySrcFiles[lib, libSrcFile] != null) { + val metadata = incrementalCache.fetchSourceFileFullMetadata(libSrcFile) + updatedMetadata[lib, libSrcFile] = DirtyFileMetadata(maybeImportedSignatures, metadata.directDependencies) + } } } @@ -336,7 +338,7 @@ class CacheUpdater( val (dependencyLib, dependencyFile) = idSignatureToFile[it] ?: (libFile to srcFile) updatedMetadata[dependencyLib, dependencyFile]?.also { dependencyMetadata -> dependencyMetadata.addInverseDependency(dependentLibFile, dependentSrcFile, it) - } ?: notFoundIcError("metadata", dependencyLib, dependencyFile) + } } } @@ -348,7 +350,7 @@ class CacheUpdater( updatedMetadata[dependencyLib, dependencyFile]?.also { dependencyMetadata -> dependencyMetadata.addInverseDependency(libFile, srcFile, importedSignature) - } ?: notFoundIcError("metadata", dependencyLib, dependencyFile) + } } } } diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/IncrementalCache.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/IncrementalCache.kt index 1142156b762..fa26ac80ccb 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/IncrementalCache.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/ic/IncrementalCache.kt @@ -213,7 +213,7 @@ class IncrementalCache(private val library: KotlinLibrary, cachePath: String) { private fun commitSourceFileMetadata(srcFile: KotlinSourceFile, signatureToIndexMapping: Map) { val headerCacheFile = srcFile.getCacheFile(METADATA_SUFFIX) - val sourceFileMetadata = kotlinLibrarySourceFileMetadata[srcFile] ?: notFoundIcError("metadata", libraryFile, srcFile) + val sourceFileMetadata = kotlinLibrarySourceFileMetadata[srcFile] ?: return if (sourceFileMetadata.isEmpty()) { headerCacheFile.delete() return