changeset 17187:bd760d193008

updated CHANGELOG.md
author Doug Simon <doug.simon@oracle.com>
date Tue, 23 Sep 2014 13:19:30 +0200
parents ca13853abf0d
children 55a924683e72
files CHANGELOG.md graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeGenerator.java
diffstat 4 files changed, 2 insertions(+), 265 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGELOG.md	Tue Sep 23 13:18:14 2014 +0200
+++ b/CHANGELOG.md	Tue Sep 23 13:19:30 2014 +0200
@@ -2,6 +2,7 @@
 
 ## `tip`
 ### Graal
+* Changed name suite specification from `mx/projects.py` to `mx/suite.py`.
 * ...
 
 ### Truffle
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java	Tue Sep 23 13:18:14 2014 +0200
+++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java	Tue Sep 23 13:19:30 2014 +0200
@@ -1116,25 +1116,6 @@
     }
 
     /**
-     * Gets an input or successor list at a given position.
-     *
-     * @param position
-     */
-    public NodeList<? extends Node> getNodeListAt(Position position) {
-        throw new NoSuchElementException();
-    }
-
-    /**
-     * Sets an input or successor list at a given position.
-     *
-     * @param position
-     * @param list
-     */
-    public void setNodeListAt(Position position, NodeList<? extends Node> list) {
-        throw new NoSuchElementException();
-    }
-
-    /**
      * Updates an input or successor of this node at a given position. The existing, non-null input
      * or successor at {@code position} is notified of the change via
      * {@link #updateUsages(Node, Node)} or {@link #updatePredecessor(Node, Node)}.
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java	Tue Sep 23 13:18:14 2014 +0200
+++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java	Tue Sep 23 13:19:30 2014 +0200
@@ -372,7 +372,7 @@
      *
      * <pre>
      *     if (node.getNodeClass().is(BeginNode.class)) { ... }
-     *
+     * 
      *     // Due to generated Node classes, the test below
      *     // is *not* the same as the test above:
      *     if (node.getClass() == BeginNode.class) { ... }
@@ -1021,9 +1021,6 @@
     }
 
     public NodeList<?> getNodeList(Node node, Position pos) {
-        if (Node.USE_GENERATED_NODES) {
-            return node.getNodeListAt(pos);
-        }
         long offset = pos.isInput() ? inputOffsets[pos.getIndex()] : successorOffsets[pos.getIndex()];
         assert pos.getSubIndex() == Node.NODE_LIST;
         return getNodeList(node, offset);
--- a/graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeGenerator.java	Tue Sep 23 13:18:14 2014 +0200
+++ b/graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeGenerator.java	Tue Sep 23 13:19:30 2014 +0200
@@ -540,248 +540,6 @@
         return cls;
     }
 
-    private void createGetFieldMethod(CodeTypeElement cls, List<VariableElement> fields, TypeMirror returnType, String name) {
-        if (!fields.isEmpty()) {
-            CodeExecutableElement method = new CodeExecutableElement(modifiers(PROTECTED, FINAL), returnType, name);
-            addParameter(method, getType(int.class), "at");
-            CodeTreeBuilder b = method.createBuilder();
-            createGetFieldCases(b, fields, returnType, null);
-            cls.add(method);
-        }
-    }
-
-    private void createGetFieldCases(CodeTreeBuilder b, List<VariableElement> fields, TypeMirror returnType, String returnExpressionSuffix) {
-        for (int i = 0; i < fields.size(); i++) {
-            VariableElement field = fields.get(i);
-            b.startIf().string("at == " + i).end().startBlock();
-            b.startReturn();
-            if (returnExpressionSuffix == null && !isAssignableWithErasure(field, types.asElement(returnType))) {
-                b.cast(((DeclaredType) returnType).asElement().getSimpleName().toString());
-            }
-            b.string(genClassName + ".this." + field.getSimpleName());
-            if (returnExpressionSuffix != null) {
-                b.string(returnExpressionSuffix);
-            }
-            b.end();
-            b.end();
-        }
-        b.startThrow().startNew(getType(NoSuchElementException.class)).end().end();
-    }
-
-    private void createSetNodeListAtCases(CodeTreeBuilder b, List<VariableElement> fields, TypeMirror returnType, String returnExpressionSuffix) {
-        for (int i = 0; i < fields.size(); i++) {
-            VariableElement field = fields.get(i);
-            b.startIf().string("at == " + i).end().startBlock();
-            if (returnExpressionSuffix == null && !isAssignableWithErasure(field, types.asElement(returnType))) {
-                b.cast(((DeclaredType) returnType).asElement().getSimpleName().toString());
-            }
-            b.startStatement();
-            b.string(genClassName + ".this." + field.getSimpleName(), " = ");
-            b.cast(field.asType(), CodeTreeBuilder.singleString("list"));
-            b.end();
-            b.end();
-        }
-    }
-
-    private void createUpdateOrInitializeFieldCases(CodeTreeBuilder b, List<VariableElement> fields, boolean isInitialization, boolean isList) {
-        boolean elseIf = false;
-        for (int i = 0; i < fields.size(); i++) {
-            VariableElement field = fields.get(i);
-            String fieldRef = genClassName + ".this." + field.getSimpleName();
-            if (!isList) {
-                elseIf = b.startIf(elseIf);
-                b.string("at == " + i).end().startBlock();
-                if (!isInitialization) {
-                    b.startStatement().string("Node old = ");
-                    if (!isAssignableWithErasure(field, Node)) {
-                        b.cast(Node.asType(), CodeTreeBuilder.singleString(fieldRef));
-                    } else {
-                        b.string(fieldRef);
-                    }
-                    b.end();
-                }
-                b.startStatement().string(fieldRef, " = ");
-                if (!isAssignableWithErasure(Node, field)) {
-                    b.cast(field.asType(), CodeTreeBuilder.singleString("newValue"));
-                } else {
-                    b.string("newValue");
-                }
-                b.end();
-                if (!isInitialization) {
-                    b.startIf().string("pos.isInput()").end().startBlock();
-                    b.startStatement().string("updateUsages(old, newValue)").end();
-                    b.end();
-                    b.startElseBlock();
-                    b.startStatement().string("updatePredecessor(old, newValue)").end();
-                    b.end();
-                }
-                b.end();
-            } else {
-                elseIf = b.startIf(elseIf);
-                b.string("at == " + i).end().startBlock();
-                DeclaredType nodeListOfNode = types.getDeclaredType(NodeList, types.getWildcardType(Node.asType(), null));
-                b.declaration(nodeListOfNode, "list", fieldRef);
-                if (!isInitialization) {
-                    // if (pos.getSubIndex() < list.size()) {
-                    b.startIf().string("pos.getSubIndex() < list.size()").end().startBlock();
-                    b.startStatement().string("list.set(pos.getSubIndex(), newValue)").end();
-                    b.end();
-                    b.startElseBlock();
-                }
-
-                b.startWhile().string("list.size() <= pos.getSubIndex()").end().startBlock();
-                b.startStatement().string("list.add(null)").end();
-                b.end();
-
-                if (isInitialization) {
-                    b.startStatement().string("list.initialize(pos.getSubIndex(), newValue)").end();
-                } else {
-                    b.startStatement().string("list.add(newValue)").end();
-                    b.end();
-                }
-
-                b.end();
-            }
-        }
-        b.startElseBlock();
-        b.startThrow().startNew(getType(NoSuchElementException.class)).end().end();
-        b.end();
-    }
-
-    private void createPositionAccessibleFieldOrderClass(PackageElement packageElement) {
-        CodeTypeElement cls = new CodeTypeElement(modifiers(PUBLIC, STATIC), ElementKind.CLASS, packageElement, "FieldOrder");
-        cls.getImplements().add(getType("com.oracle.graal.graph.NodeClass.PositionFieldOrder"));
-
-        CodeExecutableElement method = new CodeExecutableElement(modifiers(PUBLIC), getType(String[].class), "getOrderedFieldNames");
-
-        addParameter(method, getType(boolean.class), "input", false);
-
-        CodeTreeBuilder b = method.createBuilder();
-        b.startIf().string("input").end().startBlock();
-        String initializer = concat(inputFields, inputListFields).stream().map(v -> v.getSimpleName().toString()).collect(Collectors.joining("\", \"", "\"", "\""));
-        b.startStatement().string("return new String[] {", initializer, "}").end();
-        b.end();
-        b.startElseBlock();
-        initializer = concat(successorFields, successorListFields).stream().map(v -> v.getSimpleName().toString()).collect(Collectors.joining("\", \"", "\"", "\""));
-        b.startStatement().string("return new String[] {", initializer, "}").end();
-        b.end();
-        cls.add(method);
-
-        genClass.add(cls);
-
-    }
-
-    private void createAllIteratorClass(NodeRefsType nodeRefsType, TypeMirror inputsIteratorType, PackageElement packageElement, List<VariableElement> nodeFields, List<VariableElement> nodeListFields) {
-
-        String name = "All" + nodeRefsType + "Iterator";
-        CodeTypeElement cls = new CodeTypeElement(modifiers(PRIVATE, FINAL), ElementKind.CLASS, packageElement, name);
-        cls.setSuperClass(inputsIteratorType);
-
-        // forward() method
-        CodeExecutableElement method = new CodeExecutableElement(modifiers(PROTECTED), getType(void.class), "forward");
-        CodeTreeBuilder b = method.createBuilder();
-        int nodeFieldsSize = nodeFields.size();
-        int nodeListFieldsSize = nodeListFields.size();
-        String cond = "index < " + nodeFieldsSize;
-        if (GENERATE_ASSERTIONS) {
-            b.startAssert().string("needsForward").end();
-        }
-        b.startStatement().string("needsForward = false").end();
-        b.startIf().string(cond).end().startBlock();
-        b.startStatement().string("index++").end();
-        b.startIf().string(cond).end().startBlock();
-        b.startStatement().string("nextElement = getNode(index)").end();
-        b.startStatement().string("return").end();
-        b.end();
-        b.end();
-        b.startElseBlock();
-        b.startStatement().string("subIndex++").end();
-        b.end();
-        int count = nodeFieldsSize + nodeListFieldsSize;
-        b.startWhile().string("index < " + count).end().startBlock();
-        b.startIf().string("subIndex == 0").end().startBlock();
-        b.startStatement().string("list = getNodeList(index - " + nodeFieldsSize + ")").end();
-        b.end();
-        b.startIf().string("subIndex < list.size()").end().startBlock();
-        b.startStatement().string("nextElement = list.get(subIndex)").end();
-        b.startStatement().string("return").end();
-        b.end();
-        b.startStatement().string("subIndex = 0").end();
-        b.startStatement().string("index++").end();
-        b.end();
-
-        cls.add(method);
-
-        genClass.add(cls);
-    }
-
-    private void createWithModCountIteratorClass(NodeRefsType nodeRefsType, TypeMirror superType, PackageElement packageElement) {
-
-        String name = nodeRefsType + "WithModCountIterator";
-        CodeTypeElement cls = new CodeTypeElement(modifiers(PRIVATE, FINAL), ElementKind.CLASS, packageElement, name);
-        cls.setSuperClass(superType);
-
-        // modCount field
-        cls.add(new CodeVariableElement(modifiers(PRIVATE, FINAL), getType(int.class), "modCount"));
-
-        // Constructor
-        CodeExecutableElement ctor = new CodeExecutableElement(Collections.emptySet(), null, name);
-        CodeTreeBuilder b = ctor.createBuilder();
-        b.startAssert().staticReference(getType("com.oracle.graal.graph.Graph"), "MODIFICATION_COUNTS_ENABLED").end();
-        b.startStatement().string("this.modCount = modCount()").end();
-        cls.add(ctor);
-
-        // hasNext, next and nextPosition methods
-        overrideModWithCounterMethod(cls, "hasNext", getType(boolean.class));
-        overrideModWithCounterMethod(cls, "next", Node.asType());
-        overrideModWithCounterMethod(cls, "nextPosition", Position.asType());
-
-        genClass.add(cls);
-    }
-
-    private static void overrideModWithCounterMethod(CodeTypeElement cls, String name, TypeMirror returnType) {
-        CodeExecutableElement method = new CodeExecutableElement(modifiers(PUBLIC), returnType, name);
-        CodeTreeBuilder b = method.createBuilder();
-        b.startTryBlock();
-        b.startStatement().string("return super." + name + "()").end();
-        b.end().startFinallyBlock();
-        b.startAssert().string("modCount == modCount() : \"must not be modified\"").end();
-        b.end();
-        cls.add(method);
-    }
-
-    private void createIterableClass(NodeRefsType nodeRefsType, PackageElement packageElement) {
-
-        String name = nodeRefsType + "Iterable";
-        CodeTypeElement cls = new CodeTypeElement(modifiers(PRIVATE), ElementKind.CLASS, packageElement, name);
-        cls.getImplements().add(getType("com.oracle.graal.graph.NodeClassIterable"));
-
-        // iterator() method
-        CodeExecutableElement method = new CodeExecutableElement(modifiers(PUBLIC, FINAL), getType("com.oracle.graal.graph.NodeRefIterator"), "iterator");
-        CodeTreeBuilder b = method.createBuilder();
-        b.startIf().staticReference(getType("com.oracle.graal.graph.Graph"), "MODIFICATION_COUNTS_ENABLED").end().startBlock();
-        b.startStatement().string("return new " + nodeRefsType + "WithModCountIterator()").end();
-        b.end();
-        b.startElseBlock();
-        b.startStatement().string("return new " + nodeRefsType + "Iterator()").end();
-        b.end();
-        cls.add(method);
-
-        // withNullIterator() method
-        method = new CodeExecutableElement(modifiers(PUBLIC, FINAL), getType("com.oracle.graal.graph.NodePosIterator"), "withNullIterator");
-        b = method.createBuilder();
-        b.startStatement().string("return new All" + nodeRefsType + "Iterator()").end();
-        cls.add(method);
-
-        // contains(Node) method
-        method = new CodeExecutableElement(modifiers(PUBLIC, FINAL), getType(boolean.class), "contains");
-        addParameter(method, Node.asType(), "n");
-        b = method.createBuilder();
-        b.startStatement().string("return " + nodeRefsType.name().toLowerCase() + "Contains(n)").end();
-        cls.add(method);
-        genClass.add(cls);
-    }
-
     private void createContainsMethod(NodeRefsType nodeRefsType, List<VariableElement> nodeFields, List<VariableElement> nodeListFields) {
         CodeExecutableElement method = new CodeExecutableElement(modifiers(PUBLIC, FINAL), getType(boolean.class), nodeRefsType.name().toLowerCase() + "Contains");
         addParameter(method, Node.asType(), "n");