# HG changeset patch # User Christian Humer # Date 1361186520 -3600 # Node ID 5ecf528d41316940652522f69589fa6e92338265 # Parent 6ad077b60cb3e5af44cb52376a88847b18d4418c Removed unnecessary casts from generated specialized execute methods. diff -r 6ad077b60cb3 -r 5ecf528d4131 graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeCodeGenerator.java --- a/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeCodeGenerator.java Fri Feb 15 20:04:03 2013 +0100 +++ b/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeCodeGenerator.java Mon Feb 18 12:22:00 2013 +0100 @@ -186,18 +186,20 @@ TypeSystemData typeSystem = specialization.getNode().getTypeSystem(); // Implict guards based on method signature String andOperator = prefix; - for (NodeFieldData field : specialization.getNode().getFields()) { - ActualParameter param = specialization.findParameter(field.getName()); - TypeData type = param.getActualTypeData(typeSystem); - if (type == null || type.isGeneric()) { - continue; + if (needsCast) { + for (NodeFieldData field : specialization.getNode().getFields()) { + ActualParameter param = specialization.findParameter(field.getName()); + TypeData type = param.getActualTypeData(typeSystem); + if (type == null || type.isGeneric()) { + continue; + } + + body.string(andOperator); + startCallTypeSystemMethod(context, body, specialization.getNode(), TypeSystemCodeGenerator.isTypeMethodName(type)); + body.string(valueName(specialization, param)); + body.end().end(); // call + andOperator = " && "; } - - body.string(andOperator); - startCallTypeSystemMethod(context, body, specialization.getNode(), TypeSystemCodeGenerator.isTypeMethodName(type)); - body.string(valueName(specialization, param)); - body.end().end(); // call - andOperator = " && "; } if (specialization.getGuards().length > 0) {