[JS IC] Drop special IdSignatureSerializer for IC
This commit is contained in:
committed by
teamcityserver
parent
4a601ebf95
commit
b1251c1716
+4
-17
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.ir.backend.js.ic
|
||||
import org.jetbrains.kotlin.backend.common.serialization.CompatibilityMode
|
||||
import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable
|
||||
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureSerializer
|
||||
import org.jetbrains.kotlin.backend.common.serialization.signature.PublicIdSignatureComputer
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.backend.js.JsMapping
|
||||
import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsGlobalDeclarationTable
|
||||
@@ -79,7 +78,7 @@ class IcSerializer(
|
||||
|
||||
val symbolToSignature = fileDeserializer.symbolDeserializer.deserializedSymbols.entries.associate { (idSig, symbol) -> symbol to idSig }.toMutableMap()
|
||||
|
||||
val icDeclarationTable = IcDeclarationTable(globalDeclarationTable, irFactory, 1000000, 1000000, symbolToSignature)
|
||||
val icDeclarationTable = IcDeclarationTable(globalDeclarationTable, irFactory, 1000000, symbolToSignature)
|
||||
val fileSerializer = JsIrFileSerializer(
|
||||
linker.messageLogger,
|
||||
icDeclarationTable,
|
||||
@@ -138,12 +137,12 @@ class IcSerializer(
|
||||
class IcDeclarationTable(
|
||||
globalDeclarationTable: JsGlobalDeclarationTable,
|
||||
val irFactory: PersistentIrFactory,
|
||||
newLocalIndex: Long,
|
||||
newScopeIndex: Int,
|
||||
startIndex: Int,
|
||||
val existingMappings: MutableMap<IrSymbol, IdSignature>
|
||||
) : DeclarationTable(globalDeclarationTable) {
|
||||
|
||||
override val signaturer: IdSignatureSerializer = IdSignatureSerializerWithForIC(globalDeclarationTable.publicIdSignatureComputer, this, newLocalIndex, newScopeIndex)
|
||||
override val signaturer: IdSignatureSerializer =
|
||||
IdSignatureSerializer(globalDeclarationTable.publicIdSignatureComputer, this, startIndex)
|
||||
|
||||
override fun signatureByDeclaration(declaration: IrDeclaration, compatibleMode: Boolean): IdSignature {
|
||||
return existingMappings.getOrPut(declaration.symbol) {
|
||||
@@ -153,18 +152,6 @@ class IcSerializer(
|
||||
}
|
||||
}
|
||||
|
||||
class IdSignatureSerializerWithForIC(
|
||||
publicSignatureBuilder: PublicIdSignatureComputer,
|
||||
table: DeclarationTable,
|
||||
localIndexOffset: Long = 0,
|
||||
scopeIndexOffset: Int = 0,
|
||||
) : IdSignatureSerializer(publicSignatureBuilder, table) {
|
||||
init {
|
||||
localIndex = localIndexOffset
|
||||
scopeIndex = scopeIndexOffset
|
||||
}
|
||||
}
|
||||
|
||||
fun storeOrder(file: IrFile, fileDeclarations: Iterable<IrDeclaration>, idSigToLong: (IrSymbol) -> Long): SerializedOrder {
|
||||
val topLevelSignatures = mutableListOf<Long>()
|
||||
val containerSignatures = mutableListOf<Long>()
|
||||
|
||||
+1
-10
@@ -7,12 +7,10 @@ package org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.overrides.FakeOverrideBuilder
|
||||
import org.jetbrains.kotlin.backend.common.serialization.*
|
||||
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureSerializer
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.backend.js.JsMapping
|
||||
import org.jetbrains.kotlin.ir.backend.js.ic.IcModuleDeserializer
|
||||
import org.jetbrains.kotlin.ir.backend.js.ic.IdSignatureSerializerWithForIC
|
||||
import org.jetbrains.kotlin.ir.backend.js.ic.SerializedIcData
|
||||
import org.jetbrains.kotlin.ir.builders.TranslationPluginContext
|
||||
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
||||
@@ -35,14 +33,7 @@ class JsIrLinker(
|
||||
private val useGlobalSignatures: Boolean = false,
|
||||
) : KotlinIrLinker(currentModule, messageLogger, builtIns, symbolTable, emptyList()) {
|
||||
|
||||
override val fakeOverrideBuilder = FakeOverrideBuilder(
|
||||
this, symbolTable, JsManglerIr, IrTypeSystemContextImpl(builtIns), signatureSerializerFactory = { publicSignatureBuilder, table ->
|
||||
if (useGlobalSignatures) IdSignatureSerializerWithForIC(publicSignatureBuilder, table) else IdSignatureSerializer(
|
||||
publicSignatureBuilder,
|
||||
table
|
||||
)
|
||||
}
|
||||
)
|
||||
override val fakeOverrideBuilder = FakeOverrideBuilder(this, symbolTable, JsManglerIr, IrTypeSystemContextImpl(builtIns))
|
||||
|
||||
override fun isBuiltInModule(moduleDescriptor: ModuleDescriptor): Boolean =
|
||||
moduleDescriptor === moduleDescriptor.builtIns.builtInsModule
|
||||
|
||||
Reference in New Issue
Block a user