[IR BE] Add runtime compilation benchmarks for IR JS compiler

This commit is contained in:
Roman Artemev
2019-09-11 17:53:30 +03:00
committed by romanart
parent e6c855111e
commit 44dfae53f0
3 changed files with 610 additions and 6 deletions
@@ -8,18 +8,16 @@ package org.jetbrains.kotlin.library.impl
import org.jetbrains.kotlin.library.*
abstract class IrWriterImpl(val irLayout: IrKotlinLibraryLayout) : IrWriter {
init {
irLayout.irDir.mkdirs()
}
override fun addDataFlowGraph(dataFlowGraph: ByteArray) {
irLayout.dataFlowGraphFile.writeBytes(dataFlowGraph)
}
}
class IrMonoliticWriterImpl(irLayout: IrKotlinLibraryLayout) : IrWriterImpl(irLayout) {
class IrMonoliticWriterImpl(_irLayout: IrKotlinLibraryLayout) : IrWriterImpl(_irLayout) {
override fun addIr(ir: SerializedIrModule) {
irLayout.irDir.mkdirs()
with(ir.files.sortedBy { it.path }) {
IrArrayWriter(map { it.fileData }).writeIntoFile(irLayout.irFiles.absolutePath)
IrArrayWriter(map { it.declarations }).writeIntoFile(irLayout.irDeclarations.absolutePath)
@@ -31,8 +29,10 @@ class IrMonoliticWriterImpl(irLayout: IrKotlinLibraryLayout) : IrWriterImpl(irLa
}
}
class IrPerFileWriterImpl(irLayout: IrKotlinLibraryLayout) : IrWriterImpl(irLayout) {
class IrPerFileWriterImpl(_irLayout: IrKotlinLibraryLayout) : IrWriterImpl(_irLayout) {
override fun addIr(ir: SerializedIrModule) {
irLayout.irDir.mkdirs()
ir.files.forEach {
serializeFile(it)
}