comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java @ 12399:980db6c0bcd3

Truffle-DSL: fixed invalid @SlowPath on generic execute methods. (GRAAL-490 #resolve)
author Christian Humer <christian.humer@gmail.com>
date Mon, 14 Oct 2013 13:25:25 +0200
parents c78612fb0120
children 85dcc7f59c34
comparison
equal deleted inserted replaced
12398:c78612fb0120 12399:980db6c0bcd3
1313 1313
1314 private CodeExecutableElement createGenericExecute(NodeData node, SpecializationGroup group) { 1314 private CodeExecutableElement createGenericExecute(NodeData node, SpecializationGroup group) {
1315 TypeMirror genericReturnType = node.getGenericSpecialization().getReturnType().getType(); 1315 TypeMirror genericReturnType = node.getGenericSpecialization().getReturnType().getType();
1316 CodeExecutableElement method = new CodeExecutableElement(modifiers(PROTECTED), genericReturnType, EXECUTE_GENERIC_NAME); 1316 CodeExecutableElement method = new CodeExecutableElement(modifiers(PROTECTED), genericReturnType, EXECUTE_GENERIC_NAME);
1317 1317
1318 method.getAnnotationMirrors().add(new CodeAnnotationMirror(getContext().getTruffleTypes().getSlowPath())); 1318 if (!node.getGenericSpecialization().hasFrame(getContext())) {
1319 1319 method.getAnnotationMirrors().add(new CodeAnnotationMirror(getContext().getTruffleTypes().getSlowPath()));
1320 }
1320 addInternalValueParameters(method, node.getGenericSpecialization(), node.needsFrame(), false); 1321 addInternalValueParameters(method, node.getGenericSpecialization(), node.needsFrame(), false);
1321 final CodeTreeBuilder builder = method.createBuilder(); 1322 final CodeTreeBuilder builder = method.createBuilder();
1322 1323
1323 builder.tree(createExecuteTree(builder, node.getGenericSpecialization(), group, false, new CodeBlock<SpecializationData>() { 1324 builder.tree(createExecuteTree(builder, node.getGenericSpecialization(), group, false, new CodeBlock<SpecializationData>() {
1324 1325