Mercurial > hg > graal-jvmci-8
comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java @ 21453:37f65dc8c713
Optimize singleton factory lists.
author | Kevin Menard <kevin.j.menard@oracle.com> |
---|---|
date | Thu, 21 May 2015 11:15:56 -0400 |
parents | 833e088ee7d3 |
children |
comparison
equal
deleted
inserted
replaced
21452:a0ae5a2ac5cf | 21453:37f65dc8c713 |
---|---|
166 | 166 |
167 CodeExecutableElement method = new CodeExecutableElement(modifiers(PUBLIC, STATIC), listType, "getFactories"); | 167 CodeExecutableElement method = new CodeExecutableElement(modifiers(PUBLIC, STATIC), listType, "getFactories"); |
168 | 168 |
169 CodeTreeBuilder builder = method.createBuilder(); | 169 CodeTreeBuilder builder = method.createBuilder(); |
170 builder.startReturn(); | 170 builder.startReturn(); |
171 builder.startStaticCall(context.getType(Arrays.class), "asList"); | 171 |
172 if (factoryList.size() > 1) { | |
173 builder.startStaticCall(context.getType(Arrays.class), "asList"); | |
174 } else { | |
175 builder.startStaticCall(context.getType(Collections.class), "singletonList"); | |
176 } | |
172 | 177 |
173 for (NodeData child : factoryList) { | 178 for (NodeData child : factoryList) { |
174 builder.startGroup(); | 179 builder.startGroup(); |
175 NodeData childNode = child; | 180 NodeData childNode = child; |
176 List<NodeData> factories = new ArrayList<>(); | 181 List<NodeData> factories = new ArrayList<>(); |