diff 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
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java	Thu May 21 15:53:02 2015 +0200
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java	Thu May 21 11:15:56 2015 -0400
@@ -168,7 +168,12 @@
 
         CodeTreeBuilder builder = method.createBuilder();
         builder.startReturn();
-        builder.startStaticCall(context.getType(Arrays.class), "asList");
+
+        if (factoryList.size() > 1) {
+            builder.startStaticCall(context.getType(Arrays.class), "asList");
+        } else {
+            builder.startStaticCall(context.getType(Collections.class), "singletonList");
+        }
 
         for (NodeData child : factoryList) {
             builder.startGroup();