[JS IR] Memory consumption optimization
- Remove IR after JS AST generation - Remove JS AST after/during JS code generation
This commit is contained in:
committed by
Space
parent
14b7db0187
commit
453faeaa45
@@ -258,7 +258,7 @@ abstract class AbstractInvalidationTest : KotlinTestWithEnvironment() {
|
||||
)
|
||||
|
||||
val rebuiltModules = mutableSetOf<String>()
|
||||
val jsOutput = jsExecutableProducer.buildExecutable(true) { rebuiltModules += it }
|
||||
val jsOutput = jsExecutableProducer.buildExecutable(multiModule = true, outJsProgram = true) { rebuiltModules += it }
|
||||
verifyJsExecutableProducerBuildModules(projStep.id, rebuiltModules, projStep.dirtyJS)
|
||||
verifyJsCode(projStep.id, testInfo.last().moduleName, jsOutput)
|
||||
}
|
||||
|
||||
@@ -70,13 +70,9 @@ abstract class AbstractJsKLibABITestCase : AbstractKlibABITestCase() {
|
||||
icCompatibleIr2Js = true
|
||||
)
|
||||
|
||||
val transformer = IrModuleToJsTransformerTmp(
|
||||
ir.context,
|
||||
emptyList(),
|
||||
relativeRequirePath = false
|
||||
)
|
||||
val transformer = IrModuleToJsTransformerTmp(ir.context, emptyList())
|
||||
|
||||
val compiledResult = transformer.generateModule(ir.allModules, setOf(TranslationMode.FULL_DCE_MINIMIZED_NAMES))
|
||||
val compiledResult = transformer.generateModule(ir.allModules, setOf(TranslationMode.FULL_DCE_MINIMIZED_NAMES), false)
|
||||
|
||||
val dceOutput = compiledResult.outputs[TranslationMode.FULL_DCE_MINIMIZED_NAMES] ?: error("No DCE output")
|
||||
|
||||
@@ -122,4 +118,4 @@ abstract class AbstractJsKLibABITestCase : AbstractKlibABITestCase() {
|
||||
companion object {
|
||||
private const val BIN_DIR_NAME = "_bins_js"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ class JsIrBackendFacade(
|
||||
caches = testServices.jsIrIncrementalDataProvider.getCaches(),
|
||||
relativeRequirePath = false
|
||||
)
|
||||
jsExecutableProducer.buildExecutable(it.perModule)
|
||||
jsExecutableProducer.buildExecutable(it.perModule, true)
|
||||
},
|
||||
tsDefinitions = null
|
||||
)
|
||||
@@ -173,11 +173,7 @@ class JsIrBackendFacade(
|
||||
val dceOutputFile = File(JsEnvironmentConfigurator.getJsModuleArtifactPath(testServices, module.name, TranslationMode.FULL_DCE_MINIMIZED_NAMES) + ".js")
|
||||
if (!esModules) {
|
||||
if (runNewIr2Js) {
|
||||
val transformer = IrModuleToJsTransformerTmp(
|
||||
loweredIr.context,
|
||||
mainArguments,
|
||||
relativeRequirePath = false
|
||||
)
|
||||
val transformer = IrModuleToJsTransformerTmp(loweredIr.context, mainArguments)
|
||||
|
||||
// If runIrDce then include DCE results
|
||||
// If perModuleOnly then skip whole program
|
||||
@@ -186,7 +182,8 @@ class JsIrBackendFacade(
|
||||
.filter { (!it.dce || runIrDce) && (!perModuleOnly || it.perModule) }
|
||||
.filter { it.dce == it.minimizedMemberNames }
|
||||
.toSet()
|
||||
return BinaryArtifacts.Js.JsIrArtifact(outputFile, transformer.generateModule(loweredIr.allModules, translationModes)).dump(module)
|
||||
val compilationOut = transformer.generateModule(loweredIr.allModules, translationModes, false)
|
||||
return BinaryArtifacts.Js.JsIrArtifact(outputFile, compilationOut).dump(module)
|
||||
} else {
|
||||
val transformer = IrModuleToJsTransformer(
|
||||
loweredIr.context,
|
||||
|
||||
Reference in New Issue
Block a user