# HG changeset patch # User Christian Humer # Date 1377877553 -7200 # Node ID e6645c18d1548500a275bfaeea9afaa920d34c7e # Parent 578fc20b93803d95c198662da0229c097c22f317 Truffle-DSL: reduced generated code size by not generating primarily unused primitive type execute methods. diff -r 578fc20b9380 -r e6645c18d154 graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java Fri Aug 30 17:40:16 2013 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java Fri Aug 30 17:45:53 2013 +0200 @@ -2392,15 +2392,13 @@ } private CodeTree createExecuteBody(CodeTreeBuilder parent, SpecializationData specialization, ExecutableTypeData execType) { - TypeData primaryType = specialization.getReturnType().getTypeSystemType(); - CodeTreeBuilder builder = new CodeTreeBuilder(parent); List primaryExecutes = findFunctionalExecutableType(specialization, execType.getEvaluatedCount()); if (primaryExecutes.contains(execType) || primaryExecutes.isEmpty()) { builder.tree(createFunctionalExecute(builder, specialization, execType)); - } else if (needsCastingExecuteMethod(execType, primaryType)) { + } else if (needsCastingExecuteMethod(execType)) { assert !primaryExecutes.isEmpty(); builder.tree(createCastingExecute(builder, specialization, execType, primaryExecutes.get(0))); } else { @@ -2431,13 +2429,10 @@ return method; } - private boolean needsCastingExecuteMethod(ExecutableTypeData execType, TypeData primaryType) { + private boolean needsCastingExecuteMethod(ExecutableTypeData execType) { if (execType.isAbstract()) { return true; } - if (Utils.isPrimitiveOrVoid(primaryType.getPrimitiveType()) && Utils.isPrimitiveOrVoid(execType.getType().getPrimitiveType())) { - return true; - } if (execType.getType().isGeneric()) { return true; }