comparison truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java @ 22003:5bc7f7b867ab

Making debugger always on for each TruffleVM execution. Introducing EventConsumer to process such debugger events. Requesting each RootNode to be associated with a TruffleLanguage, so debugger can find out proper context for each Node where executions gets suspended.
author Jaroslav Tulach <jaroslav.tulach@oracle.com>
date Sat, 18 Jul 2015 18:03:36 +0200
parents 844d6d053d1b
children dc83cc1f94f2
comparison
equal deleted inserted replaced
22002:324997830dc9 22003:5bc7f7b867ab
970 } 970 }
971 971
972 private List<SpecializationData> calculateReachableSpecializations() { 972 private List<SpecializationData> calculateReachableSpecializations() {
973 List<SpecializationData> specializations = new ArrayList<>(); 973 List<SpecializationData> specializations = new ArrayList<>();
974 for (SpecializationData specialization : node.getSpecializations()) { 974 for (SpecializationData specialization : node.getSpecializations()) {
975 if (specialization.isReachable() && // 975 if (specialization.isReachable() && //
976 (specialization.isSpecialized() // 976 (specialization.isSpecialized() //
977 || (specialization.isFallback() && optimizeFallback(specialization)))) { 977 || (specialization.isFallback() && optimizeFallback(specialization)))) {
978 specializations.add(specialization); 978 specializations.add(specialization);
979 } 979 }
980 } 980 }
1231 DSLExpression limitExpression = specialization.getLimitExpression(); 1231 DSLExpression limitExpression = specialization.getLimitExpression();
1232 CodeTree limitExpressionTree; 1232 CodeTree limitExpressionTree;
1233 if (limitExpression == null) { 1233 if (limitExpression == null) {
1234 limitExpressionTree = CodeTreeBuilder.singleString("3"); 1234 limitExpressionTree = CodeTreeBuilder.singleString("3");
1235 } else { 1235 } else {
1236 limitExpressionTree = DSLExpressionGenerator.write(limitExpression, accessParent(null), // 1236 limitExpressionTree = DSLExpressionGenerator.write(limitExpression, accessParent(null), //
1237 castBoundTypes(bindExpressionValues(limitExpression, specialization, currentValues))); 1237 castBoundTypes(bindExpressionValues(limitExpression, specialization, currentValues)));
1238 } 1238 }
1239 1239
1240 builder.startIf().string("countSame(s) < ").tree(limitExpressionTree).end().startBlock(); 1240 builder.startIf().string("countSame(s) < ").tree(limitExpressionTree).end().startBlock();
1241 builder.statement("return s"); 1241 builder.statement("return s");