X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fcodegen%2Fssa%2FSSAModule.java;h=7370a58c29d1b2d7428de1f51a89cac94b25a586;hp=e0dbf214f3a8a9a32c2adcec8c2feb98ab7ae225;hb=0861b325fcbbfa8c5985f1e11cfc39154a3808d1;hpb=3448b94a8e90047c88eb62a0542c1596acb701b8 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAModule.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAModule.java index e0dbf214f..7370a58c2 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAModule.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAModule.java @@ -23,12 +23,17 @@ import org.simantics.scl.compiler.internal.codegen.utils.SSALambdaLiftingContext import org.simantics.scl.compiler.internal.codegen.utils.SSASimplificationContext; import org.simantics.scl.compiler.internal.codegen.utils.SSAValidationContext; import org.simantics.scl.compiler.top.SCLCompilerConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import gnu.trove.map.hash.THashMap; import gnu.trove.procedure.TObjectObjectProcedure; import gnu.trove.procedure.TObjectProcedure; public class SSAModule { + + private static final Logger LOGGER = LoggerFactory.getLogger(SSAModule.class); + THashMap functions = new THashMap(); ArrayList staticFields = new ArrayList(); public ArrayList closuresToGenerate = new ArrayList(); @@ -70,11 +75,11 @@ public class SSAModule { try { function.getDefinition().validate(context); } catch(RuntimeException e) { - System.out.println("-- VALIDATE " + function.getName() + " ----------------"); + LOGGER.info("-- VALIDATE " + function.getName() + " ----------------"); PrintingContext printingContext = new PrintingContext(); printingContext.setErrorMarker(context.errorMarker); function.getDefinition().toString(printingContext); - System.out.println(printingContext.toString()); + LOGGER.info(printingContext.toString()); throw e; } } @@ -104,10 +109,10 @@ public class SSAModule { public void generateCode(final ModuleBuilder moduleBuilder) throws CodeBuildingException { final String moduleClassName = moduleBuilder.getNamingPolicy().getModuleClassName(); if(SCLCompilerConfiguration.TRACE_METHOD_CREATION) - System.out.println("Create class " + moduleClassName); + LOGGER.info("Create class " + moduleClassName); final ClassBuilder classFile = new ClassBuilder(moduleBuilder, Opcodes.ACC_PUBLIC, moduleClassName, "java/lang/Object"); - classFile.setSourceFile("_SCL_Module"); + classFile.setSourceFile(moduleBuilder.getNamingPolicy().getModuleName()); functions.forEachValue(new TObjectProcedure() { @Override public boolean execute(SCLConstant function) { @@ -219,4 +224,11 @@ public class SSAModule { for(SCLConstant function : functions.values()) function.saveInlinableDefinition(); } + + public void cleanup() { + for(SSAClosure closure : closuresToGenerate) + closure.cleanup(); + for(SCLConstant constant : functions.values()) + constant.cleanup(); + } }