Mercurial > hg > truffle
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"); |