changeset 17178:bef7eac46e1e

Merge
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Mon, 22 Sep 2014 09:29:37 -0700
parents 805a26002dc7 (current diff) 371cf2a6500a (diff)
children 6d8ae4c6725f
files mx/projects
diffstat 11 files changed, 1221 insertions(+), 994 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/match/MatchPattern.java	Mon Sep 22 09:21:29 2014 -0700
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/match/MatchPattern.java	Mon Sep 22 09:29:37 2014 -0700
@@ -312,7 +312,7 @@
             return name;
         } else {
             String nodeName = nodeClass.getSimpleName();
-            nodeName = nodeName.substring(0, nodeName.length() - 4);
+            nodeName = nodeName.substring(0, nodeName.length() - (Node.USE_GENERATED_NODES ? 7 : 4));
             if (patterns.length == 0) {
                 return nodeName + (name != null ? "=" + name : "");
             } else {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graal/com.oracle.graal.debug.test/src/com/oracle/graal/debug/test/DebugTimerTest.java	Mon Sep 22 09:29:37 2014 -0700
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2013, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package com.oracle.graal.debug.test;
+
+import static org.junit.Assert.*;
+
+import org.junit.*;
+
+import com.oracle.graal.debug.*;
+import com.oracle.graal.debug.internal.*;
+
+public class DebugTimerTest {
+
+    private static void sleep(long millis) {
+        try {
+            Thread.sleep(millis);
+        } catch (InterruptedException e) {
+        }
+    }
+
+    @Test
+    public void test1() {
+        DebugConfig debugConfig = Debug.fixedConfig(0, 0, false, false, true, false, null, null, System.out);
+        try (DebugConfigScope dcs = new DebugConfigScope(debugConfig); Debug.Scope s = Debug.scope("DebugTimerTest")) {
+
+            DebugTimer timerA = Debug.timer("TimerA");
+            DebugTimer timerB = Debug.timer("TimerB");
+
+            try (TimerCloseable a1 = timerA.start()) {
+                sleep(50);
+                try (TimerCloseable b1 = timerB.start()) {
+                    sleep(50);
+                }
+            }
+
+            Assert.assertTrue(timerB.getCurrentValue() < timerA.getCurrentValue());
+            if (timerA.getFlat() != null && timerB.getFlat() != null) {
+                assertTrue(timerB.getFlat().getCurrentValue() < timerA.getFlat().getCurrentValue());
+                assertEquals(timerA.getFlat().getCurrentValue(), timerA.getCurrentValue() - timerB.getFlat().getCurrentValue(), 10D);
+            }
+        }
+    }
+
+    @Test
+    public void test2() {
+        DebugConfig debugConfig = Debug.fixedConfig(0, 0, false, false, true, false, null, null, System.out);
+        try (DebugConfigScope dcs = new DebugConfigScope(debugConfig); Debug.Scope s = Debug.scope("DebugTimerTest")) {
+            DebugTimer timerC = Debug.timer("TimerC");
+            try (TimerCloseable c1 = timerC.start()) {
+                sleep(50);
+                try (TimerCloseable c2 = timerC.start()) {
+                    sleep(50);
+                    try (TimerCloseable c3 = timerC.start()) {
+                        sleep(50);
+                        try (TimerCloseable c4 = timerC.start()) {
+                            sleep(50);
+                            try (TimerCloseable c5 = timerC.start()) {
+                                sleep(50);
+                            }
+                        }
+                    }
+                }
+            }
+            if (timerC.getFlat() != null) {
+                assertEquals(timerC.getFlat().getCurrentValue(), timerC.getCurrentValue());
+            }
+        }
+    }
+
+    @Test
+    public void test3() {
+        DebugConfig debugConfig = Debug.fixedConfig(0, 0, false, false, true, false, null, null, System.out);
+        try (DebugConfigScope dcs = new DebugConfigScope(debugConfig); Debug.Scope s = Debug.scope("DebugTimerTest")) {
+
+            DebugTimer timerD = Debug.timer("TimerD");
+            DebugTimer timerE = Debug.timer("TimerE");
+
+            try (TimerCloseable d1 = timerD.start()) {
+                sleep(50);
+                try (TimerCloseable e1 = timerE.start()) {
+                    sleep(50);
+                    try (TimerCloseable d2 = timerD.start()) {
+                        sleep(50);
+                        try (TimerCloseable d3 = timerD.start()) {
+                            sleep(50);
+                        }
+                    }
+                }
+            }
+
+            Assert.assertTrue(timerE.getCurrentValue() < timerD.getCurrentValue());
+            if (timerD.getFlat() != null && timerE.getFlat() != null) {
+                assertTrue(timerE.getFlat().getCurrentValue() < timerD.getFlat().getCurrentValue());
+                assertEquals(timerD.getFlat().getCurrentValue(), timerD.getCurrentValue() - timerE.getFlat().getCurrentValue(), 10D);
+            }
+        }
+    }
+}
--- a/graal/com.oracle.graal.debug/src/com/oracle/graal/debug/Debug.java	Mon Sep 22 09:21:29 2014 -0700
+++ b/graal/com.oracle.graal.debug/src/com/oracle/graal/debug/Debug.java	Mon Sep 22 09:29:37 2014 -0700
@@ -929,7 +929,7 @@
 
     private static DebugMetric createMetric(String format, Object arg1, Object arg2) {
         String name = formatDebugName(format, arg1, arg2);
-        boolean conditional = enabledMetrics == null || !enabledMetrics.contains(name);
+        boolean conditional = enabledMetrics == null || !findMatch(enabledMetrics, enabledMetricsSubstrings, name);
         if (!ENABLED && conditional) {
             return VOID_METRIC;
         }
@@ -1083,32 +1083,57 @@
 
     private static final Set<String> enabledMetrics;
     private static final Set<String> enabledTimers;
+    private static final Set<String> enabledMetricsSubstrings = new HashSet<>();
+    private static final Set<String> enabledTimersSubstrings = new HashSet<>();
+
     static {
         Set<String> metrics = new HashSet<>();
         Set<String> timers = new HashSet<>();
-        parseMetricAndTimerSystemProperties(metrics, timers);
-        enabledMetrics = metrics.isEmpty() ? null : metrics;
-        enabledTimers = timers.isEmpty() ? null : timers;
+        parseMetricAndTimerSystemProperties(metrics, timers, enabledMetricsSubstrings, enabledTimersSubstrings);
+        enabledMetrics = metrics.isEmpty() && enabledMetricsSubstrings.isEmpty() ? null : metrics;
+        enabledTimers = timers.isEmpty() && enabledTimersSubstrings.isEmpty() ? null : timers;
+    }
+
+    private static boolean findMatch(Set<String> haystack, Set<String> haystackSubstrings, String needle) {
+        if (haystack.contains(needle)) {
+            return true;
+        }
+        if (!haystackSubstrings.isEmpty()) {
+            for (String h : haystackSubstrings) {
+                if (needle.startsWith(h)) {
+                    return true;
+                }
+            }
+        }
+        return false;
     }
 
     public static boolean areUnconditionalTimersEnabled() {
-        return enabledTimers != null && !enabledTimers.isEmpty();
+        return enabledTimers != null;
     }
 
     public static boolean areUnconditionalMetricsEnabled() {
-        return enabledMetrics != null && !enabledMetrics.isEmpty();
+        return enabledMetrics != null;
     }
 
-    protected static void parseMetricAndTimerSystemProperties(Set<String> metrics, Set<String> timers) {
+    protected static void parseMetricAndTimerSystemProperties(Set<String> metrics, Set<String> timers, Set<String> metricsSubstrings, Set<String> timersSubstrings) {
         do {
             try {
                 for (Map.Entry<Object, Object> e : System.getProperties().entrySet()) {
                     String name = e.getKey().toString();
                     if (name.startsWith(ENABLE_METRIC_PROPERTY_NAME_PREFIX) && Boolean.parseBoolean(e.getValue().toString())) {
-                        metrics.add(name.substring(ENABLE_METRIC_PROPERTY_NAME_PREFIX.length()));
+                        if (name.endsWith("*")) {
+                            metricsSubstrings.add(name.substring(ENABLE_METRIC_PROPERTY_NAME_PREFIX.length(), name.length() - 1));
+                        } else {
+                            metrics.add(name.substring(ENABLE_METRIC_PROPERTY_NAME_PREFIX.length()));
+                        }
                     }
                     if (name.startsWith(ENABLE_TIMER_PROPERTY_NAME_PREFIX) && Boolean.parseBoolean(e.getValue().toString())) {
-                        timers.add(name.substring(ENABLE_TIMER_PROPERTY_NAME_PREFIX.length()));
+                        if (name.endsWith("*")) {
+                            timersSubstrings.add(name.substring(ENABLE_TIMER_PROPERTY_NAME_PREFIX.length(), name.length() - 1));
+                        } else {
+                            timers.add(name.substring(ENABLE_TIMER_PROPERTY_NAME_PREFIX.length()));
+                        }
                     }
                 }
                 return;
@@ -1206,7 +1231,7 @@
 
     private static DebugTimer createTimer(String format, Object arg1, Object arg2) {
         String name = formatDebugName(format, arg1, arg2);
-        boolean conditional = enabledTimers == null || !enabledTimers.contains(name);
+        boolean conditional = enabledTimers == null || !findMatch(enabledTimers, enabledTimersSubstrings, name);
         if (!ENABLED && conditional) {
             return VOID_TIMER;
         }
--- a/graal/com.oracle.graal.debug/src/com/oracle/graal/debug/DebugTimer.java	Mon Sep 22 09:21:29 2014 -0700
+++ b/graal/com.oracle.graal.debug/src/com/oracle/graal/debug/DebugTimer.java	Mon Sep 22 09:29:37 2014 -0700
@@ -67,4 +67,14 @@
      * Gets the time unit of this timer.
      */
     TimeUnit getTimeUnit();
+
+    /**
+     * Gets the timer recording the amount time spent within a timed scope minus the time spent in
+     * any nested timed scopes.
+     *
+     * @return null if this timer does not support flat timing
+     */
+    default DebugTimer getFlat() {
+        return null;
+    }
 }
--- a/graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/TimerImpl.java	Mon Sep 22 09:21:29 2014 -0700
+++ b/graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/TimerImpl.java	Mon Sep 22 09:29:37 2014 -0700
@@ -43,17 +43,33 @@
      */
     private static final ThreadLocal<AbstractTimer> currentTimer = new ThreadLocal<>();
 
-    private final DebugValue flat;
+    private final FlatTimer flat;
+
+    static class FlatTimer extends DebugValue implements DebugTimer {
+        private final TimerImpl accm;
+
+        public FlatTimer(TimerImpl accm, String name) {
+            super(name + "_Flat", accm.isConditional());
+            this.accm = accm;
+        }
+
+        @Override
+        public String toString(long value) {
+            return valueToString(value);
+        }
+
+        public TimeUnit getTimeUnit() {
+            return accm.getTimeUnit();
+        }
+
+        public TimerCloseable start() {
+            return accm.start();
+        }
+    }
 
     public TimerImpl(String name, boolean conditional) {
         super(name + "_Accm", conditional);
-        this.flat = new DebugValue(name + "_Flat", conditional) {
-
-            @Override
-            public String toString(long value) {
-                return valueToString(value);
-            }
-        };
+        this.flat = new FlatTimer(this, name);
     }
 
     @Override
@@ -68,9 +84,9 @@
 
             AbstractTimer result;
             if (threadMXBean.isCurrentThreadCpuTimeSupported()) {
-                result = new CpuTimeTimer(startTime);
+                result = new CpuTimeTimer(this, startTime);
             } else {
-                result = new SystemNanosTimer(startTime);
+                result = new SystemNanosTimer(this, startTime);
             }
             currentTimer.set(result);
             return result;
@@ -83,6 +99,10 @@
         return String.format("%d.%d ms", value / 1000000, (value / 100000) % 10);
     }
 
+    public DebugTimer getFlat() {
+        return flat;
+    }
+
     @Override
     public String toString(long value) {
         return valueToString(value);
@@ -92,14 +112,16 @@
         return TimeUnit.NANOSECONDS;
     }
 
-    private abstract class AbstractTimer implements TimerCloseable {
+    private static abstract class AbstractTimer implements TimerCloseable {
 
         private final AbstractTimer parent;
+        private final TimerImpl timer;
         private final long startTime;
         private long nestedTimeToSubtract;
 
-        private AbstractTimer(long startTime) {
+        private AbstractTimer(TimerImpl timer, long startTime) {
             this.parent = currentTimer.get();
+            this.timer = timer;
             this.startTime = startTime;
         }
 
@@ -108,12 +130,25 @@
             long endTime = currentTime();
             long timeSpan = endTime - startTime;
             if (parent != null) {
-                parent.nestedTimeToSubtract += timeSpan;
+                if (timer != parent.timer) {
+                    parent.nestedTimeToSubtract += timeSpan;
+
+                    // Look for our timer in an outer timing scope and fix up
+                    // the adjustment to the flat time
+                    AbstractTimer ancestor = parent.parent;
+                    while (ancestor != null) {
+                        if (ancestor.timer == timer) {
+                            ancestor.nestedTimeToSubtract -= timeSpan;
+                            break;
+                        }
+                        ancestor = ancestor.parent;
+                    }
+                }
             }
             currentTimer.set(parent);
             long flatTime = timeSpan - nestedTimeToSubtract;
-            TimerImpl.this.addToCurrentValue(timeSpan);
-            flat.addToCurrentValue(flatTime);
+            timer.addToCurrentValue(timeSpan);
+            timer.flat.addToCurrentValue(flatTime);
         }
 
         protected abstract long currentTime();
@@ -121,8 +156,8 @@
 
     private final class SystemNanosTimer extends AbstractTimer {
 
-        public SystemNanosTimer(long startTime) {
-            super(startTime);
+        public SystemNanosTimer(TimerImpl timer, long startTime) {
+            super(timer, startTime);
         }
 
         @Override
@@ -133,8 +168,8 @@
 
     private final class CpuTimeTimer extends AbstractTimer {
 
-        public CpuTimeTimer(long startTime) {
-            super(startTime);
+        public CpuTimeTimer(TimerImpl timer, long startTime) {
+            super(timer, startTime);
         }
 
         @Override
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java	Mon Sep 22 09:21:29 2014 -0700
+++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java	Mon Sep 22 09:29:37 2014 -0700
@@ -51,7 +51,15 @@
 
     private static final Object GetNodeClassLock = new Object();
 
-    private static final DebugTimer NodeClassCreation = Debug.timer("NodeClassCreation");
+    // Timers for creation of a NodeClass instance
+    private static final DebugTimer Init = Debug.timer("NodeClass.Init");
+    private static final DebugTimer Init_PositionFieldOrderLoad = Debug.timer("NodeClass.Init.PositionFieldOrderLoad");
+    private static final DebugTimer Init_PositionFieldOrderSort = Debug.timer("NodeClass.Init.PositionFieldOrderSort");
+    private static final DebugTimer Init_FieldScanning = Debug.timer("NodeClass.Init.FieldScanning");
+    private static final DebugTimer Init_Offsets = Debug.timer("NodeClass.Init.Offsets");
+    private static final DebugTimer Init_Naming = Debug.timer("NodeClass.Init.Naming");
+    private static final DebugTimer Init_AllowedUsages = Debug.timer("NodeClass.Init.AllowedUsages");
+    private static final DebugTimer Init_IterableIds = Debug.timer("NodeClass.Init.IterableIds");
 
     /**
      * Gets the {@link NodeClass} associated with a given {@link Class}.
@@ -67,7 +75,7 @@
             // The creation of a NodeClass must be serialized as the NodeClass constructor accesses
             // both FieldIntrospection.allClasses and NodeClass.nextIterableId.
             synchronized (GetNodeClassLock) {
-                try (TimerCloseable t = NodeClassCreation.start()) {
+                try (TimerCloseable t = Init.start()) {
                     value = (NodeClass) allClasses.get(key);
                     if (value == null) {
                         GeneratedNode gen = c.getAnnotation(GeneratedNode.class);
@@ -144,7 +152,10 @@
     }
 
     /**
-     * Defines the order of fields in a node class that accessed via {@link Position}s.
+     * Defines the order of fields in a node class accessed via {@link Position}s.
+     *
+     * This is required so that field positions are consistent in a configuration that mixes
+     * (runtime) field offsets with (annotation processing time) field iterators.
      */
     public interface PositionFieldOrder {
         /**
@@ -162,16 +173,19 @@
             return new long[0];
         }
         if (pfo != null) {
-            List<String> fields = Arrays.asList(pfo.getOrderedFieldNames(input));
-            long[] offsets = new long[fields.size()];
-            assert list1.size() + list2.size() == fields.size();
-            for (Map.Entry<Long, String> e : names.entrySet()) {
-                int index = fields.indexOf(e.getValue());
-                if (index != -1) {
-                    offsets[index] = e.getKey();
+            try (TimerCloseable t = Init_PositionFieldOrderSort.start()) {
+
+                List<String> fields = Arrays.asList(pfo.getOrderedFieldNames(input));
+                long[] offsets = new long[fields.size()];
+                assert list1.size() + list2.size() == fields.size();
+                for (Map.Entry<Long, String> e : names.entrySet()) {
+                    int index = fields.indexOf(e.getValue());
+                    if (index != -1) {
+                        offsets[index] = e.getKey();
+                    }
                 }
+                return offsets;
             }
-            return offsets;
         }
         return sortedLongCopy(list1, list2);
     }
@@ -188,30 +202,34 @@
         this.isSimplifiable = Simplifiable.class.isAssignableFrom(clazz);
 
         FieldScanner scanner = new FieldScanner(calcOffset);
-        scanner.scan(clazz);
-
-        directInputCount = scanner.inputOffsets.size();
+        try (TimerCloseable t = Init_FieldScanning.start()) {
+            scanner.scan(clazz);
+        }
 
-        isLeafNode = scanner.inputOffsets.isEmpty() && scanner.inputListOffsets.isEmpty() && scanner.successorOffsets.isEmpty() && scanner.successorListOffsets.isEmpty();
+        try (TimerCloseable t1 = Init_Offsets.start()) {
+            directInputCount = scanner.inputOffsets.size();
 
-        PositionFieldOrder pfo = lookupPositionFieldOrder(clazz);
+            isLeafNode = scanner.inputOffsets.isEmpty() && scanner.inputListOffsets.isEmpty() && scanner.successorOffsets.isEmpty() && scanner.successorListOffsets.isEmpty();
 
-        inputOffsets = sortedOffsets(true, pfo, scanner.fieldNames, scanner.inputOffsets, scanner.inputListOffsets);
+            PositionFieldOrder pfo = lookupPositionFieldOrder(clazz);
+
+            inputOffsets = sortedOffsets(true, pfo, scanner.fieldNames, scanner.inputOffsets, scanner.inputListOffsets);
 
-        inputTypes = new InputType[inputOffsets.length];
-        inputOptional = new boolean[inputOffsets.length];
-        for (int i = 0; i < inputOffsets.length; i++) {
-            inputTypes[i] = scanner.types.get(inputOffsets[i]);
-            assert inputTypes[i] != null;
-            inputOptional[i] = scanner.optionalInputs.contains(inputOffsets[i]);
-        }
-        directSuccessorCount = scanner.successorOffsets.size();
-        successorOffsets = sortedOffsets(false, pfo, scanner.fieldNames, scanner.successorOffsets, scanner.successorListOffsets);
+            inputTypes = new InputType[inputOffsets.length];
+            inputOptional = new boolean[inputOffsets.length];
+            for (int i = 0; i < inputOffsets.length; i++) {
+                inputTypes[i] = scanner.types.get(inputOffsets[i]);
+                assert inputTypes[i] != null;
+                inputOptional[i] = scanner.optionalInputs.contains(inputOffsets[i]);
+            }
+            directSuccessorCount = scanner.successorOffsets.size();
+            successorOffsets = sortedOffsets(false, pfo, scanner.fieldNames, scanner.successorOffsets, scanner.successorListOffsets);
 
-        dataOffsets = sortedLongCopy(scanner.dataOffsets);
-        dataTypes = new Class[dataOffsets.length];
-        for (int i = 0; i < dataOffsets.length; i++) {
-            dataTypes[i] = scanner.fieldTypes.get(dataOffsets[i]);
+            dataOffsets = sortedLongCopy(scanner.dataOffsets);
+            dataTypes = new Class[dataOffsets.length];
+            for (int i = 0; i < dataOffsets.length; i++) {
+                dataTypes[i] = scanner.fieldTypes.get(dataOffsets[i]);
+            }
         }
 
         fieldNames = scanner.fieldNames;
@@ -220,30 +238,35 @@
         canGVN = Node.ValueNumberable.class.isAssignableFrom(clazz);
         startGVNNumber = clazz.hashCode();
 
-        String newShortName = clazz.getSimpleName();
-        if (newShortName.endsWith("Node") && !newShortName.equals("StartNode") && !newShortName.equals("EndNode")) {
-            newShortName = newShortName.substring(0, newShortName.length() - 4);
-        }
         String newNameTemplate = null;
-        NodeInfo info = clazz.getAnnotation(NodeInfo.class);
-        assert info != null : "missing " + NodeInfo.class.getSimpleName() + " annotation on " + clazz;
-        if (!info.shortName().isEmpty()) {
-            newShortName = info.shortName();
-        }
-        if (!info.nameTemplate().isEmpty()) {
-            newNameTemplate = info.nameTemplate();
+        String newShortName;
+        try (TimerCloseable t1 = Init_Naming.start()) {
+            newShortName = clazz.getSimpleName();
+            if (newShortName.endsWith("Node") && !newShortName.equals("StartNode") && !newShortName.equals("EndNode")) {
+                newShortName = newShortName.substring(0, newShortName.length() - 4);
+            }
+            NodeInfo info = clazz.getAnnotation(NodeInfo.class);
+            assert info != null : "missing " + NodeInfo.class.getSimpleName() + " annotation on " + clazz;
+            if (!info.shortName().isEmpty()) {
+                newShortName = info.shortName();
+            }
+            if (!info.nameTemplate().isEmpty()) {
+                newNameTemplate = info.nameTemplate();
+            }
         }
         EnumSet<InputType> newAllowedUsageTypes = EnumSet.noneOf(InputType.class);
-        Class<?> current = clazz;
-        do {
-            NodeInfo currentInfo = current.getAnnotation(NodeInfo.class);
-            if (currentInfo != null) {
-                if (currentInfo.allowedUsageTypes().length > 0) {
-                    newAllowedUsageTypes.addAll(Arrays.asList(currentInfo.allowedUsageTypes()));
+        try (TimerCloseable t1 = Init_AllowedUsages.start()) {
+            Class<?> current = clazz;
+            do {
+                NodeInfo currentInfo = current.getAnnotation(NodeInfo.class);
+                if (currentInfo != null) {
+                    if (currentInfo.allowedUsageTypes().length > 0) {
+                        newAllowedUsageTypes.addAll(Arrays.asList(currentInfo.allowedUsageTypes()));
+                    }
                 }
-            }
-            current = current.getSuperclass();
-        } while (current != Node.class);
+                current = current.getSuperclass();
+            } while (current != Node.class);
+        }
         this.nameTemplate = newNameTemplate == null ? newShortName : newNameTemplate;
         this.allowedUsageTypes = newAllowedUsageTypes;
         this.shortName = newShortName;
@@ -252,20 +275,22 @@
             this.iterableId = presetIterableId;
         } else if (IterableNodeType.class.isAssignableFrom(clazz)) {
             ITERABLE_NODE_TYPES.increment();
-            this.iterableId = nextIterableId++;
+            try (TimerCloseable t1 = Init_IterableIds.start()) {
+                this.iterableId = nextIterableId++;
 
-            Class<?> superclass = clazz.getSuperclass();
-            while (superclass != NODE_CLASS) {
-                if (IterableNodeType.class.isAssignableFrom(superclass)) {
-                    NodeClass superNodeClass = NodeClass.get(superclass);
-                    assert !containsId(this.iterableId, superNodeClass.iterableIds);
-                    superNodeClass.iterableIds = Arrays.copyOf(superNodeClass.iterableIds, superNodeClass.iterableIds.length + 1);
-                    superNodeClass.iterableIds[superNodeClass.iterableIds.length - 1] = this.iterableId;
+                Class<?> superclass = clazz.getSuperclass();
+                while (superclass != NODE_CLASS) {
+                    if (IterableNodeType.class.isAssignableFrom(superclass)) {
+                        NodeClass superNodeClass = NodeClass.get(superclass);
+                        assert !containsId(this.iterableId, superNodeClass.iterableIds);
+                        superNodeClass.iterableIds = Arrays.copyOf(superNodeClass.iterableIds, superNodeClass.iterableIds.length + 1);
+                        superNodeClass.iterableIds[superNodeClass.iterableIds.length - 1] = this.iterableId;
+                    }
+                    superclass = superclass.getSuperclass();
                 }
-                superclass = superclass.getSuperclass();
+
+                this.iterableIds = new int[]{iterableId};
             }
-
-            this.iterableIds = new int[]{iterableId};
         } else {
             this.iterableId = Node.NOT_ITERABLE;
             this.iterableIds = null;
@@ -275,11 +300,13 @@
 
     private PositionFieldOrder lookupPositionFieldOrder(Class<?> clazz) throws GraalInternalError {
         if (USE_GENERATED_NODES && !isAbstract(clazz.getModifiers()) && !isLeafNode) {
-            String name = clazz.getName().replace('$', '_') + "Gen$FieldOrder";
-            try {
-                return (PositionFieldOrder) Class.forName(name, true, getClazz().getClassLoader()).newInstance();
-            } catch (Exception e) {
-                throw new GraalInternalError("Could not find generated class " + name + " for " + getClazz());
+            try (TimerCloseable t = Init_PositionFieldOrderLoad.start()) {
+                String name = clazz.getName().replace('$', '_') + "Gen$FieldOrder";
+                try {
+                    return (PositionFieldOrder) Class.forName(name, true, getClazz().getClassLoader()).newInstance();
+                } catch (Exception e) {
+                    throw new GraalInternalError("Could not find generated class " + name + " for " + getClazz());
+                }
             }
         }
         return null;
@@ -345,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) { ... }
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java	Mon Sep 22 09:21:29 2014 -0700
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java	Mon Sep 22 09:29:37 2014 -0700
@@ -22,14 +22,11 @@
  */
 package com.oracle.graal.truffle;
 
-import static com.oracle.graal.compiler.common.GraalOptions.*;
-
 import java.util.*;
 import java.util.Map.Entry;
 
 import com.oracle.graal.api.code.*;
 import com.oracle.graal.api.meta.*;
-import com.oracle.graal.compiler.common.*;
 import com.oracle.graal.debug.*;
 import com.oracle.graal.debug.Debug.Scope;
 import com.oracle.graal.graph.Graph.Mark;
@@ -98,8 +95,7 @@
         return graph;
     }
 
-    public StructuredGraph lookup(final ResolvedJavaMethod method, final NodeInputList<ValueNode> arguments, final Assumptions assumptions, final CanonicalizerPhase finalCanonicalizer,
-                    boolean ignoreSlowPath) {
+    public StructuredGraph lookup(ResolvedJavaMethod method, NodeInputList<ValueNode> arguments, Assumptions assumptions, CanonicalizerPhase canonicalizer, boolean ignoreSlowPath) {
 
         if (!ignoreSlowPath && method.getAnnotation(CompilerDirectives.SlowPath.class) != null) {
             return null;
@@ -149,8 +145,7 @@
             // Convert deopt to guards.
             new ConvertDeoptimizeToGuardPhase().apply(graph);
 
-            CanonicalizerPhase canonicalizerPhase = new CanonicalizerPhase(!ImmutableCode.getValue());
-            PartialEscapePhase partialEscapePhase = new PartialEscapePhase(false, canonicalizerPhase);
+            PartialEscapePhase partialEscapePhase = new PartialEscapePhase(false, canonicalizer);
 
             while (true) {
 
@@ -161,7 +156,7 @@
                 conditionalEliminationPhase.apply(graph);
 
                 // Canonicalize / constant propagate.
-                canonicalizerPhase.apply(graph, phaseContext);
+                canonicalizer.apply(graph, phaseContext);
 
                 boolean inliningProgress = false;
                 for (MethodCallTargetNode methodCallTarget : graph.getNodes(MethodCallTargetNode.class)) {
@@ -170,14 +165,14 @@
                     }
                     if (methodCallTarget.isAlive() && methodCallTarget.invoke() != null && shouldInline(methodCallTarget)) {
                         inliningProgress = true;
-                        lookupDoInline(graph, phaseContext, canonicalizerPhase, methodCallTarget);
+                        lookupDoInline(graph, phaseContext, canonicalizer, methodCallTarget);
                     }
                 }
 
                 // Convert deopt to guards.
                 new ConvertDeoptimizeToGuardPhase().apply(graph);
 
-                new EarlyReadEliminationPhase(canonicalizerPhase).apply(graph, phaseContext);
+                new EarlyReadEliminationPhase(canonicalizer).apply(graph, phaseContext);
 
                 if (!inliningProgress) {
                     break;
@@ -215,7 +210,7 @@
         }
     }
 
-    private Mark lookupProcessMacroSubstitutions(final StructuredGraph graph, Mark mark) throws GraalInternalError {
+    private Mark lookupProcessMacroSubstitutions(StructuredGraph graph, Mark mark) {
         // Make sure macro substitutions such as
         // CompilerDirectives.transferToInterpreter get processed first.
         for (Node newNode : graph.getNewNodes(mark)) {
@@ -232,7 +227,7 @@
         return graph.getMark();
     }
 
-    private void lookupDoInline(final StructuredGraph graph, final PhaseContext phaseContext, CanonicalizerPhase canonicalizerPhase, MethodCallTargetNode methodCallTarget) {
+    private void lookupDoInline(StructuredGraph graph, PhaseContext phaseContext, CanonicalizerPhase canonicalizer, MethodCallTargetNode methodCallTarget) {
         List<Node> canonicalizerUsages = new ArrayList<>();
         for (Node n : methodCallTarget.invoke().asNode().usages()) {
             if (n instanceof Canonicalizable) {
@@ -241,7 +236,7 @@
         }
         List<ValueNode> argumentSnapshot = methodCallTarget.arguments().snapshot();
         Mark beforeInvokeMark = graph.getMark();
-        expandInvoke(methodCallTarget);
+        expandInvoke(methodCallTarget, canonicalizer);
         for (Node arg : argumentSnapshot) {
             if (arg != null) {
                 for (Node argUsage : arg.usages()) {
@@ -251,13 +246,13 @@
                 }
             }
         }
-        canonicalizerPhase.applyIncremental(graph, phaseContext, canonicalizerUsages);
+        canonicalizer.applyIncremental(graph, phaseContext, canonicalizerUsages);
     }
 
-    private void expandInvoke(MethodCallTargetNode methodCallTargetNode) {
+    private void expandInvoke(MethodCallTargetNode methodCallTargetNode, CanonicalizerPhase canonicalizer) {
         StructuredGraph inlineGraph = providers.getReplacements().getMethodSubstitution(methodCallTargetNode.targetMethod());
         if (inlineGraph == null) {
-            inlineGraph = TruffleCacheImpl.this.lookup(methodCallTargetNode.targetMethod(), methodCallTargetNode.arguments(), null, null, false);
+            inlineGraph = TruffleCacheImpl.this.lookup(methodCallTargetNode.targetMethod(), methodCallTargetNode.arguments(), null, canonicalizer, false);
         }
         if (inlineGraph == this.markerGraph) {
             // Can happen for recursive calls.
@@ -286,7 +281,7 @@
         return false;
     }
 
-    private boolean shouldInline(final MethodCallTargetNode methodCallTargetNode) {
+    private boolean shouldInline(MethodCallTargetNode methodCallTargetNode) {
         boolean result = (methodCallTargetNode.invokeKind() == InvokeKind.Special || methodCallTargetNode.invokeKind() == InvokeKind.Static) && methodCallTargetNode.targetMethod().canBeInlined() &&
                         !methodCallTargetNode.targetMethod().isNative() && methodCallTargetNode.targetMethod().getAnnotation(ExplodeLoop.class) == null &&
                         methodCallTargetNode.targetMethod().getAnnotation(CompilerDirectives.SlowPath.class) == null &&
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeCost.java	Mon Sep 22 09:21:29 2014 -0700
+++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeCost.java	Mon Sep 22 09:29:37 2014 -0700
@@ -29,7 +29,7 @@
 /**
  * Represents a rough estimate for the cost of a {@link Node}. This estimate can be used by runtime
  * systems or guest languages to implement heuristics based on Truffle ASTs.
- * 
+ *
  * @see Node#getCost()
  */
 public enum NodeCost {
@@ -54,7 +54,7 @@
 
     /**
      * This node represents a polymorphic version of an operation. For multiple chained polymorphic
-     * nodes the first may return {@link #MONOMORPHIC} and all addtional nodes should return
+     * nodes the first may return {@link #MONOMORPHIC} and all additional nodes should return
      * {@link #POLYMORPHIC}.
      */
     POLYMORPHIC,
--- a/mx/projects	Mon Sep 22 09:21:29 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,876 +0,0 @@
-# The format of this file is described in the documentation for my.py.
-mxversion=1.0
-suite=graal
-
-jrelibrary@JFR@jar=jfr.jar
-
-library@JUNIT@path=lib/junit-4.11.jar
-library@JUNIT@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/junit-4.11.jar,http://repo1.maven.org/maven2/junit/junit/4.11/junit-4.11.jar
-library@JUNIT@sha1=4e031bb61df09069aeb2bffb4019e7a5034a4ee0
-library@JUNIT@eclipse.container=org.eclipse.jdt.junit.JUNIT_CONTAINER/4
-library@JUNIT@sourcePath=lib/junit-4.11-sources.jar
-library@JUNIT@sourceUrls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/junit-4.11-sources.jar,http://repo1.maven.org/maven2/junit/junit/4.11/junit-4.11-sources.jar
-library@JUNIT@sourceSha1=28e0ad201304e4a4abf999ca0570b7cffc352c3c
-library@JUNIT@dependencies=HAMCREST
-
-library@HAMCREST@path=lib/hamcrest-core-1.3.jar
-library@HAMCREST@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/hamcrest-core-1.3.jar,http://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
-library@HAMCREST@sha1=42a25dc3219429f0e5d060061f71acb49bf010a0
-library@HAMCREST@sourcePath=lib/hamcrest-core-1.3-sources.jar
-library@HAMCREST@sourceUrls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/hamcrest-core-1.3-sources.jar,http://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar
-library@HAMCREST@sourceSha1=1dc37250fbc78e23a65a67fbbaf71d2e9cbc3c0b
-
-#library@CHECKSTYLE@path=lib/checkstyle-5.5-all.jar
-#library@CHECKSTYLE@urls=jar:http://sourceforge.net/projects/checkstyle/files/checkstyle/5.5/checkstyle-5.5-bin.zip/download!/checkstyle-5.5/checkstyle-5.5-all.jar
-
-library@HCFDIS@path=lib/hcfdis-2.jar
-library@HCFDIS@urls=http://lafo.ssw.uni-linz.ac.at/hcfdis-2.jar
-library@HCFDIS@sha1=bc8b2253436485e9dbaf81771c259ccfa1a24c80
-
-library@FINDBUGS_DIST@path=lib/findbugs-dist-3.0.0.zip
-library@FINDBUGS_DIST@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/findbugs-3.0.0.zip,http://sourceforge.net/projects/findbugs/files/findbugs/3.0.0/findbugs-3.0.0.zip/download
-library@FINDBUGS_DIST@sha1=6e56d67f238dbcd60acb88a81655749aa6419c5b
-
-library@C1VISUALIZER_DIST@path=lib/c1visualizer_2014-04-22.zip
-library@C1VISUALIZER_DIST@urls=https://java.net/downloads/c1visualizer/c1visualizer_2014-04-22.zip
-library@C1VISUALIZER_DIST@sha1=220488d87affb569b893c7201f8ce5d2b0e03141
-
-library@JOL_INTERNALS@path=lib/jol-internals.jar
-library@JOL_INTERNALS@urls=http://lafo.ssw.uni-linz.ac.at/truffle/jol/jol-internals.jar
-library@JOL_INTERNALS@sha1=508bcd26a4d7c4c44048990c6ea789a3b11a62dc
-
-library@FINDBUGS@path=lib/findbugs-3.0.0.jar
-library@FINDBUGS@urls=jar:http://lafo.ssw.uni-linz.ac.at/graal-external-deps/findbugs-3.0.0.zip!/findbugs-3.0.0/lib/findbugs.jar,jar:http://sourceforge.net/projects/findbugs/files/findbugs/3.0.0/findbugs-3.0.0.zip/download!/findbugs-3.0.0/lib/findbugs.jar
-library@FINDBUGS@sha1=e9a938f0cb34e2ab5853f9ecb1989f6f590ee385
-
-library@DACAPO@path=lib/dacapo-9.12-bach.jar
-library@DACAPO@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/dacapo-9.12-bach.jar,http://softlayer.dl.sourceforge.net/project/dacapobench/9.12-bach/dacapo-9.12-bach.jar
-library@DACAPO@sha1=2626a9546df09009f6da0df854e6dc1113ef7dd4
-
-library@JACOCOAGENT@path=lib/jacocoagent.jar
-library@JACOCOAGENT@urls=http://lafo.ssw.uni-linz.ac.at/jacoco/jacocoagent-0.7.1-1.jar
-library@JACOCOAGENT@sha1=2f73a645b02e39290e577ce555f00b02004650b0
-
-library@JACOCOREPORT@path=lib/jacocoreport.jar
-library@JACOCOREPORT@urls=http://lafo.ssw.uni-linz.ac.at/jacoco/jacocoreport-0.7.1-2.jar
-library@JACOCOREPORT@sha1=a630436391832d697a12c8f7daef8655d7a1efd2
-
-library@DACAPO_SCALA@path=lib/dacapo-scala-0.1.0-20120216.jar
-library@DACAPO_SCALA@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/dacapo-scala-0.1.0-20120216.jar,http://repo.scalabench.org/snapshots/org/scalabench/benchmarks/scala-benchmark-suite/0.1.0-SNAPSHOT/scala-benchmark-suite-0.1.0-20120216.103539-3.jar
-library@DACAPO_SCALA@sha1=59b64c974662b5cf9dbd3cf9045d293853dd7a51
-
-library@OKRA@path=lib/okra-1.10.jar
-library@OKRA@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/okra-1.10.jar,http://cr.openjdk.java.net/~tdeneau/okra-1.10.jar
-library@OKRA@sha1=96eb3c0ec808ed944ba88d1eb9311058fe0f3d1e
-library@OKRA@sourcePath=lib/okra-1.10-src.jar
-library@OKRA@sourceUrls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/okra-1.10-src.jar,http://cr.openjdk.java.net/~tdeneau/okra-1.10-src.jar
-library@OKRA@sourceSha1=75751bb148fcebaba78ff590f883a114b2b09176
-
-library@OKRA_WITH_SIM@path=lib/okra-1.10-with-sim.jar
-library@OKRA_WITH_SIM@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/okra-1.10-with-sim.jar,http://cr.openjdk.java.net/~tdeneau/okra-1.10-with-sim.jar
-library@OKRA_WITH_SIM@sha1=7b8db879f1dbcf571290add78d9af24e15a2a50d
-library@OKRA_WITH_SIM@sourcePath=lib/okra-1.10-with-sim-src.jar
-library@OKRA_WITH_SIM@sourceSha1=7eefd94f16a3e3fd3b8f470cf91e265c6f5e7767
-library@OKRA_WITH_SIM@sourceUrls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/okra-1.10-with-sim-src.jar,http://cr.openjdk.java.net/~tdeneau/okra-1.10-with-sim-src.jar
-
-library@ASM@path=lib/asm-5.0.3.jar
-library@ASM@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/asm-5.0.3.jar,http://central.maven.org/maven2/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar
-library@ASM@sha1=dcc2193db20e19e1feca8b1240dbbc4e190824fa
-library@ASM@sourcePath=lib/asm-5.0.3-sources.jar
-library@ASM@sourceSha1=f0f24f6666c1a15c7e202e91610476bd4ce59368
-library@ASM@sourceUrls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/asm-5.0.3-sources.jar,http://central.maven.org/maven2/org/ow2/asm/asm/5.0.3/asm-5.0.3-sources.jar
-
-library@JAVA_ALLOCATION_INSTRUMENTER@path=lib/java-allocation-instrumenter.jar
-library@JAVA_ALLOCATION_INSTRUMENTER@sourcePath=lib/java-allocation-instrumenter.jar
-library@JAVA_ALLOCATION_INSTRUMENTER@urls=http://lafo.ssw.uni-linz.ac.at/java-allocation-instrumenter/java-allocation-instrumenter-8f0db117e64e.jar
-library@JAVA_ALLOCATION_INSTRUMENTER@sha1=476d9a44cd19d6b55f81571077dfa972a4f8a083
-library@JAVA_ALLOCATION_INSTRUMENTER@bootClassPathAgent=true
-
-library@VECMATH@path=lib/vecmath-1.3.1.jar
-library@VECMATH@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/vecmath-1.3.1.jar,http://mirrors.ibiblio.org/pub/mirrors/maven/java3d/jars/vecmath-1.3.1.jar
-library@VECMATH@sha1=a0ae4f51da409fa0c20fa0ca59e6bbc9413ae71d
-
-distribution@GRAAL@path=build/graal.jar
-distribution@GRAAL@subDir=graal
-distribution@GRAAL@sourcesPath=build/graal.src.zip
-distribution@GRAAL@dependencies=\
-com.oracle.graal.hotspot.amd64,\
-com.oracle.graal.hotspot.ptx,\
-com.oracle.graal.hotspot.sparc,\
-com.oracle.graal.hotspot,\
-com.oracle.graal.hotspot.jfr,\
-com.oracle.graal.hotspot.hsail
-distribution@GRAAL@exclude=FINDBUGS
-
-distribution@GRAAL_LOADER@path=build/graal-loader.jar
-distribution@GRAAL_LOADER@subDir=graal
-distribution@GRAAL_LOADER@sourcesPath=build/graal-loader.src.zip
-distribution@GRAAL_LOADER@dependencies=com.oracle.graal.hotspot.loader
-
-distribution@TRUFFLE@path=build/truffle.jar
-distribution@TRUFFLE@subDir=graal
-distribution@TRUFFLE@sourcesPath=build/truffle.src.zip
-distribution@TRUFFLE@javaCompliance=1.7
-distribution@TRUFFLE@dependencies=\
-com.oracle.truffle.api.dsl,\
-com.oracle.nfi
-
-distribution@GRAAL_TRUFFLE@path=build/graal-truffle.jar
-distribution@GRAAL_TRUFFLE@subDir=graal
-distribution@GRAAL_TRUFFLE@sourcesPath=build/graal-truffle.src.zip
-distribution@GRAAL_TRUFFLE@dependencies=\
-com.oracle.graal.truffle,\
-com.oracle.graal.truffle.hotspot.amd64
-distribution@GRAAL_TRUFFLE@exclude=FINDBUGS
-distribution@GRAAL_TRUFFLE@distDependencies=GRAAL,TRUFFLE
-
-distribution@TRUFFLE-DSL-PROCESSOR@path=build/truffle-dsl-processor.jar
-distribution@TRUFFLE-DSL-PROCESSOR@subDir=graal
-distribution@TRUFFLE-DSL-PROCESSOR@sourcesPath=build/truffle-dsl-processor.src.zip
-distribution@TRUFFLE-DSL-PROCESSOR@javaCompliance=1.7
-distribution@TRUFFLE-DSL-PROCESSOR@dependencies=\
-com.oracle.truffle.dsl.processor
-distribution@TRUFFLE-DSL-PROCESSOR@distDependencies=TRUFFLE
-
-# nfi
-project@com.oracle.nfi@subDir=graal
-project@com.oracle.nfi@sourceDirs=src
-project@com.oracle.nfi@dependencies=
-project@com.oracle.nfi@checkstyle=com.oracle.graal.graph
-project@com.oracle.nfi@javaCompliance=1.7
-
-# nfi.test
-project@com.oracle.nfi.test@subDir=graal
-project@com.oracle.nfi.test@sourceDirs=test
-project@com.oracle.nfi.test@dependencies=com.oracle.nfi,com.oracle.graal.compiler.common,JUNIT
-project@com.oracle.nfi.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.nfi.test@javaCompliance=1.7
-
-# graal.api.collections
-project@com.oracle.graal.api.collections@subDir=graal
-project@com.oracle.graal.api.collections@sourceDirs=src
-project@com.oracle.graal.api.collections@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.api.collections@javaCompliance=1.8
-project@com.oracle.graal.api.collections@workingSets=API,Graal
-
-# graal.api.runtime
-project@com.oracle.graal.api.runtime@subDir=graal
-project@com.oracle.graal.api.runtime@sourceDirs=src
-project@com.oracle.graal.api.runtime@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.api.runtime@javaCompliance=1.8
-project@com.oracle.graal.api.runtime@workingSets=API,Graal
-
-# graal.api.test
-project@com.oracle.graal.api.test@subDir=graal
-project@com.oracle.graal.api.test@sourceDirs=src
-project@com.oracle.graal.api.test@dependencies=JUNIT,com.oracle.graal.api.runtime
-project@com.oracle.graal.api.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.api.test@javaCompliance=1.8
-project@com.oracle.graal.api.test@workingSets=API,Graal,Test
-
-# graal.api.meta
-project@com.oracle.graal.api.meta@subDir=graal
-project@com.oracle.graal.api.meta@sourceDirs=src
-project@com.oracle.graal.api.meta@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.api.meta@javaCompliance=1.8
-project@com.oracle.graal.api.meta@workingSets=API,Graal
-
-# graal.api.meta.test
-project@com.oracle.graal.api.meta.test@subDir=graal
-project@com.oracle.graal.api.meta.test@sourceDirs=src
-project@com.oracle.graal.api.meta.test@dependencies=JUNIT,com.oracle.graal.runtime,com.oracle.graal.java
-project@com.oracle.graal.api.meta.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.api.meta.test@javaCompliance=1.8
-project@com.oracle.graal.api.meta.test@workingSets=API,Graal,Test
-
-# graal.api.code
-project@com.oracle.graal.api.code@subDir=graal
-project@com.oracle.graal.api.code@sourceDirs=src
-project@com.oracle.graal.api.code@dependencies=com.oracle.graal.api.meta
-project@com.oracle.graal.api.code@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.api.code@javaCompliance=1.8
-project@com.oracle.graal.api.code@workingSets=API,Graal
-
-# graal.api.replacements
-project@com.oracle.graal.api.replacements@subDir=graal
-project@com.oracle.graal.api.replacements@sourceDirs=src
-project@com.oracle.graal.api.replacements@dependencies=com.oracle.graal.api.meta
-project@com.oracle.graal.api.replacements@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.api.replacements@javaCompliance=1.8
-project@com.oracle.graal.api.replacements@workingSets=API,Graal,Replacements
-
-# graal.service.processor
-project@com.oracle.graal.service.processor@subDir=graal
-project@com.oracle.graal.service.processor@sourceDirs=src
-project@com.oracle.graal.service.processor@dependencies=com.oracle.graal.api.runtime
-project@com.oracle.graal.service.processor@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.service.processor@javaCompliance=1.8
-project@com.oracle.graal.service.processor@workingSets=Codegen,HotSpot
-
-# graal.amd64
-project@com.oracle.graal.amd64@subDir=graal
-project@com.oracle.graal.amd64@sourceDirs=src
-project@com.oracle.graal.amd64@dependencies=com.oracle.graal.api.code
-project@com.oracle.graal.amd64@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.amd64@javaCompliance=1.8
-project@com.oracle.graal.amd64@workingSets=Graal,AMD64
-
-# graal.ptx
-project@com.oracle.graal.ptx@subDir=graal
-project@com.oracle.graal.ptx@sourceDirs=src
-project@com.oracle.graal.ptx@dependencies=com.oracle.graal.api.code
-project@com.oracle.graal.ptx@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.ptx@javaCompliance=1.8
-project@com.oracle.graal.ptx@workingSets=Graal,PTX
-
-# graal.sparc
-project@com.oracle.graal.sparc@subDir=graal
-project@com.oracle.graal.sparc@sourceDirs=src
-project@com.oracle.graal.sparc@dependencies=com.oracle.graal.api.code
-project@com.oracle.graal.sparc@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.sparc@javaCompliance=1.8
-project@com.oracle.graal.sparc@workingSets=Graal,SPARC
-
-# graal.hotspotvmconfig
-project@com.oracle.graal.hotspotvmconfig@subDir=graal
-project@com.oracle.graal.hotspotvmconfig@sourceDirs=src
-project@com.oracle.graal.hotspotvmconfig@dependencies=com.oracle.graal.compiler.common
-project@com.oracle.graal.hotspotvmconfig@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.hotspotvmconfig@annotationProcessors=com.oracle.graal.service.processor
-project@com.oracle.graal.hotspotvmconfig@javaCompliance=1.8
-project@com.oracle.graal.hotspotvmconfig@workingSets=Graal,HotSpot
-
-# graal.hotspot
-project@com.oracle.graal.hotspot@subDir=graal
-project@com.oracle.graal.hotspot@sourceDirs=src
-project@com.oracle.graal.hotspot@dependencies=com.oracle.graal.replacements,com.oracle.graal.runtime,com.oracle.graal.printer,com.oracle.graal.baseline,com.oracle.graal.hotspotvmconfig,com.oracle.nfi
-project@com.oracle.graal.hotspot@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.hotspot@annotationProcessors=com.oracle.graal.replacements.verifier,com.oracle.graal.service.processor
-project@com.oracle.graal.hotspot@javaCompliance=1.8
-project@com.oracle.graal.hotspot@workingSets=Graal,HotSpot
-
-# graal.hotspot
-project@com.oracle.graal.hotspot.loader@subDir=graal
-project@com.oracle.graal.hotspot.loader@sourceDirs=src
-project@com.oracle.graal.hotspot.loader@dependencies=
-project@com.oracle.graal.hotspot.loader@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.hotspot.loader@javaCompliance=1.8
-project@com.oracle.graal.hotspot.loader@workingSets=Graal,HotSpot
-
-# graal.hotspot.sourcegen
-project@com.oracle.graal.hotspot.sourcegen@subDir=graal
-project@com.oracle.graal.hotspot.sourcegen@sourceDirs=src
-project@com.oracle.graal.hotspot.sourcegen@dependencies=com.oracle.graal.hotspot
-project@com.oracle.graal.hotspot.sourcegen@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.hotspot.sourcegen@javaCompliance=1.8
-project@com.oracle.graal.hotspot.sourcegen@workingSets=Graal,HotSpot
-
-# graal.hotspot.jfr
-project@com.oracle.graal.hotspot.jfr@subDir=graal
-project@com.oracle.graal.hotspot.jfr@sourceDirs=src
-project@com.oracle.graal.hotspot.jfr@dependencies=com.oracle.graal.hotspot,JFR
-project@com.oracle.graal.hotspot.jfr@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.hotspot.jfr@annotationProcessors=com.oracle.graal.service.processor
-project@com.oracle.graal.hotspot.jfr@javaCompliance=1.8
-project@com.oracle.graal.hotspot.jfr@profile=
-project@com.oracle.graal.hotspot.jfr@workingSets=Graal,HotSpot
-
-# graal.hotspot.amd64
-project@com.oracle.graal.hotspot.amd64@subDir=graal
-project@com.oracle.graal.hotspot.amd64@sourceDirs=src
-project@com.oracle.graal.hotspot.amd64@dependencies=com.oracle.graal.compiler.amd64,com.oracle.graal.hotspot,com.oracle.graal.replacements.amd64
-project@com.oracle.graal.hotspot.amd64@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.hotspot.amd64@annotationProcessors=com.oracle.graal.service.processor
-project@com.oracle.graal.hotspot.amd64@javaCompliance=1.8
-project@com.oracle.graal.hotspot.amd64@workingSets=Graal,HotSpot,AMD64
-
-# graal.hotspot.sparc
-project@com.oracle.graal.hotspot.sparc@subDir=graal
-project@com.oracle.graal.hotspot.sparc@sourceDirs=src
-project@com.oracle.graal.hotspot.sparc@dependencies=com.oracle.graal.compiler.sparc
-project@com.oracle.graal.hotspot.sparc@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.hotspot.sparc@annotationProcessors=com.oracle.graal.service.processor
-project@com.oracle.graal.hotspot.sparc@javaCompliance=1.8
-project@com.oracle.graal.hotspot.sparc@workingSets=Graal,HotSpot,SPARC
-
-# graal.hotspot.ptx
-project@com.oracle.graal.hotspot.ptx@subDir=graal
-project@com.oracle.graal.hotspot.ptx@sourceDirs=src
-project@com.oracle.graal.hotspot.ptx@dependencies=com.oracle.graal.ptx,com.oracle.graal.compiler.ptx,com.oracle.graal.hotspot,com.oracle.graal.gpu
-project@com.oracle.graal.hotspot.ptx@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.hotspot.ptx@annotationProcessors=com.oracle.graal.service.processor
-project@com.oracle.graal.hotspot.ptx@javaCompliance=1.8
-project@com.oracle.graal.hotspot.ptx@workingSets=Graal,HotSpot,PTX
-
-# graal.hotspot.hsail
-project@com.oracle.graal.hotspot.hsail@subDir=graal
-project@com.oracle.graal.hotspot.hsail@sourceDirs=src
-project@com.oracle.graal.hotspot.hsail@dependencies=com.oracle.graal.replacements.hsail,com.oracle.graal.hotspot,com.oracle.graal.gpu
-project@com.oracle.graal.hotspot.hsail@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.hotspot.hsail@annotationProcessors=com.oracle.graal.service.processor
-project@com.oracle.graal.hotspot.hsail@javaCompliance=1.8
-project@com.oracle.graal.hotspot.hsail@workingSets=Graal,HotSpot,PTX
-
-# graal.hotspot.server
-project@com.oracle.graal.hotspot.server@subDir=graal
-project@com.oracle.graal.hotspot.server@sourceDirs=src
-project@com.oracle.graal.hotspot.server@dependencies=com.oracle.graal.hotspot
-project@com.oracle.graal.hotspot.server@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.hotspot.server@javaCompliance=1.8
-project@com.oracle.graal.hotspot.server@workingSets=Graal,HotSpot
-
-# graal.hotspot.test
-project@com.oracle.graal.hotspot.test@subDir=graal
-project@com.oracle.graal.hotspot.test@sourceDirs=src
-project@com.oracle.graal.hotspot.test@dependencies=com.oracle.graal.replacements.test,com.oracle.graal.hotspot
-project@com.oracle.graal.hotspot.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.hotspot.test@javaCompliance=1.8
-project@com.oracle.graal.hotspot.test@workingSets=Graal,HotSpot,Test
-
-# graal.hotspot.amd64.test
-project@com.oracle.graal.hotspot.amd64.test@subDir=graal
-project@com.oracle.graal.hotspot.amd64.test@sourceDirs=src
-project@com.oracle.graal.hotspot.amd64.test@dependencies=com.oracle.graal.asm.amd64,com.oracle.graal.compiler.test,com.oracle.graal.hotspot
-project@com.oracle.graal.hotspot.amd64.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.hotspot.amd64.test@javaCompliance=1.8
-project@com.oracle.graal.hotspot.amd64.test@workingSets=Graal,HotSpot,AMD64,Test
-
-# graal.options
-project@com.oracle.graal.options@subDir=graal
-project@com.oracle.graal.options@sourceDirs=src
-project@com.oracle.graal.options@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.options@javaCompliance=1.8
-project@com.oracle.graal.options@workingSets=Graal,Codegen
-
-# graal.options.test
-project@com.oracle.graal.options.test@subDir=graal
-project@com.oracle.graal.options.test@sourceDirs=src
-project@com.oracle.graal.options.test@dependencies=com.oracle.graal.options,JUNIT
-project@com.oracle.graal.options.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.options.test@javaCompliance=1.8
-project@com.oracle.graal.options.test@workingSets=Graal
-
-# graal.nodeinfo
-project@com.oracle.graal.nodeinfo@subDir=graal
-project@com.oracle.graal.nodeinfo@sourceDirs=src
-project@com.oracle.graal.nodeinfo@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.nodeinfo@javaCompliance=1.8
-project@com.oracle.graal.nodeinfo@workingSets=Graal,Graph
-
-# graal.nodeinfo.processor
-project@com.oracle.graal.nodeinfo.processor@subDir=graal
-project@com.oracle.graal.nodeinfo.processor@sourceDirs=src
-project@com.oracle.graal.nodeinfo.processor@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.nodeinfo.processor@dependencies=com.oracle.graal.nodeinfo,com.oracle.truffle.dsl.processor
-project@com.oracle.graal.nodeinfo.processor@javaCompliance=1.8
-project@com.oracle.graal.nodeinfo.processor@workingSets=Graal,Graph
-
-# graal.graph
-project@com.oracle.graal.graph@subDir=graal
-project@com.oracle.graal.graph@sourceDirs=src
-project@com.oracle.graal.graph@dependencies=com.oracle.graal.nodeinfo,com.oracle.graal.debug,com.oracle.graal.compiler.common,com.oracle.graal.api.collections,com.oracle.graal.api.runtime,FINDBUGS
-project@com.oracle.graal.graph@javaCompliance=1.8
-project@com.oracle.graal.graph@annotationProcessors=com.oracle.graal.nodeinfo.processor
-project@com.oracle.graal.graph@workingSets=Graal,Graph
-
-# graal.graph.test
-project@com.oracle.graal.graph.test@subDir=graal
-project@com.oracle.graal.graph.test@sourceDirs=src
-project@com.oracle.graal.graph.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.graph.test@dependencies=JUNIT,com.oracle.graal.graph
-project@com.oracle.graal.graph.test@javaCompliance=1.8
-project@com.oracle.graal.graph.test@workingSets=Graal,Graph,Test
-
-# graal.debug
-project@com.oracle.graal.debug@subDir=graal
-project@com.oracle.graal.debug@sourceDirs=src
-project@com.oracle.graal.debug@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.debug@javaCompliance=1.8
-project@com.oracle.graal.debug@workingSets=Graal,Debug
-
-# graal.debug.test
-project@com.oracle.graal.debug.test@subDir=graal
-project@com.oracle.graal.debug.test@sourceDirs=src
-project@com.oracle.graal.debug.test@dependencies=JUNIT,com.oracle.graal.debug
-project@com.oracle.graal.debug.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.debug.test@javaCompliance=1.8
-project@com.oracle.graal.debug.test@workingSets=Graal,Debug,Test
-
-# graal.lir
-project@com.oracle.graal.lir@subDir=graal
-project@com.oracle.graal.lir@sourceDirs=src
-project@com.oracle.graal.lir@dependencies=com.oracle.graal.compiler.common,com.oracle.graal.asm,com.oracle.graal.debug
-project@com.oracle.graal.lir@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.lir@javaCompliance=1.8
-project@com.oracle.graal.lir@workingSets=Graal,LIR
-
-# graal.lir.test
-project@com.oracle.graal.lir.test@subDir=graal
-project@com.oracle.graal.lir.test@sourceDirs=src
-project@com.oracle.graal.lir.test@dependencies=JUNIT,com.oracle.graal.lir
-project@com.oracle.graal.lir.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.lir.test@javaCompliance=1.8
-project@com.oracle.graal.lir.test@workingSets=Graal,LIR
-
-# graal.lir.amd64
-project@com.oracle.graal.lir.amd64@subDir=graal
-project@com.oracle.graal.lir.amd64@sourceDirs=src
-project@com.oracle.graal.lir.amd64@dependencies=com.oracle.graal.lir,com.oracle.graal.asm.amd64
-project@com.oracle.graal.lir.amd64@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.lir.amd64@javaCompliance=1.8
-project@com.oracle.graal.lir.amd64@workingSets=Graal,LIR,AMD64
-
-# graal.lir.ptx
-project@com.oracle.graal.lir.ptx@subDir=graal
-project@com.oracle.graal.lir.ptx@sourceDirs=src
-project@com.oracle.graal.lir.ptx@dependencies=com.oracle.graal.asm.ptx
-project@com.oracle.graal.lir.ptx@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.lir.ptx@javaCompliance=1.8
-project@com.oracle.graal.lir.ptx@workingSets=Graal,LIR,PTX
-
-# graal.lir.sparc
-project@com.oracle.graal.lir.sparc@subDir=graal
-project@com.oracle.graal.lir.sparc@sourceDirs=src
-project@com.oracle.graal.lir.sparc@dependencies=com.oracle.graal.asm.sparc
-project@com.oracle.graal.lir.sparc@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.lir.sparc@javaCompliance=1.8
-project@com.oracle.graal.lir.sparc@workingSets=Graal,LIR,SPARC
-
-# graal.alloc
-project@com.oracle.graal.alloc@subDir=graal
-project@com.oracle.graal.alloc@sourceDirs=src
-project@com.oracle.graal.alloc@dependencies=com.oracle.graal.compiler.common
-project@com.oracle.graal.alloc@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.alloc@javaCompliance=1.8
-project@com.oracle.graal.alloc@workingSets=Graal
-
-# graal.word
-project@com.oracle.graal.word@subDir=graal
-project@com.oracle.graal.word@sourceDirs=src
-project@com.oracle.graal.word@dependencies=com.oracle.graal.phases
-project@com.oracle.graal.word@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.word@javaCompliance=1.8
-project@com.oracle.graal.word@workingSets=API,Graal
-
-# graal.replacements
-project@com.oracle.graal.replacements@subDir=graal
-project@com.oracle.graal.replacements@sourceDirs=src
-project@com.oracle.graal.replacements@dependencies=com.oracle.graal.compiler,com.oracle.graal.java,com.oracle.graal.word
-project@com.oracle.graal.replacements@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.replacements@javaCompliance=1.8
-project@com.oracle.graal.replacements@annotationProcessors=com.oracle.graal.replacements.verifier,com.oracle.graal.service.processor
-project@com.oracle.graal.replacements@workingSets=Graal,Replacements
-
-# graal.replacements.amd64
-project@com.oracle.graal.replacements.amd64@subDir=graal
-project@com.oracle.graal.replacements.amd64@sourceDirs=src
-project@com.oracle.graal.replacements.amd64@dependencies=com.oracle.graal.replacements
-project@com.oracle.graal.replacements.amd64@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.replacements.amd64@javaCompliance=1.8
-project@com.oracle.graal.replacements.amd64@annotationProcessors=com.oracle.graal.service.processor
-project@com.oracle.graal.replacements.amd64@workingSets=Graal,Replacements,AMD64
-
-# graal.replacements.hsail
-project@com.oracle.graal.replacements.hsail@subDir=graal
-project@com.oracle.graal.replacements.hsail@sourceDirs=src
-project@com.oracle.graal.replacements.hsail@dependencies=com.oracle.graal.compiler.hsail
-project@com.oracle.graal.replacements.hsail@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.replacements.hsail@javaCompliance=1.8
-project@com.oracle.graal.replacements.hsail@workingSets=Graal,Replacements,HSAIL
-
-# graal.replacements.test
-project@com.oracle.graal.replacements.test@subDir=graal
-project@com.oracle.graal.replacements.test@sourceDirs=src
-project@com.oracle.graal.replacements.test@dependencies=com.oracle.graal.compiler.test,com.oracle.graal.replacements
-project@com.oracle.graal.replacements.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.replacements.test@javaCompliance=1.8
-project@com.oracle.graal.replacements.test@workingSets=Graal,Replacements,Test
-
-# graal.replacements.verifier
-project@com.oracle.graal.replacements.verifier@subDir=graal
-project@com.oracle.graal.replacements.verifier@sourceDirs=src
-project@com.oracle.graal.replacements.verifier@dependencies=com.oracle.graal.api.replacements,com.oracle.graal.graph
-project@com.oracle.graal.replacements.verifier@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.replacements.verifier@javaCompliance=1.8
-project@com.oracle.graal.replacements.verifier@workingSets=Graal,Replacements
-
-# graal.nodes
-project@com.oracle.graal.nodes@subDir=graal
-project@com.oracle.graal.nodes@sourceDirs=src
-project@com.oracle.graal.nodes@dependencies=com.oracle.graal.graph,com.oracle.graal.api.replacements,com.oracle.graal.lir
-project@com.oracle.graal.nodes@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.nodes@javaCompliance=1.8
-project@com.oracle.graal.nodes@annotationProcessors=com.oracle.graal.replacements.verifier
-project@com.oracle.graal.nodes@workingSets=Graal,Graph
-
-# graal.nodes.test
-project@com.oracle.graal.nodes.test@subDir=graal
-project@com.oracle.graal.nodes.test@sourceDirs=src
-project@com.oracle.graal.nodes.test@dependencies=com.oracle.graal.compiler.test
-project@com.oracle.graal.nodes.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.nodes.test@javaCompliance=1.8
-project@com.oracle.graal.nodes.test@workingSets=Graal,Graph
-
-# graal.phases
-project@com.oracle.graal.phases@subDir=graal
-project@com.oracle.graal.phases@sourceDirs=src
-project@com.oracle.graal.phases@dependencies=com.oracle.graal.nodes
-project@com.oracle.graal.phases@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.phases@javaCompliance=1.8
-project@com.oracle.graal.phases@workingSets=Graal,Phases
-
-# graal.phases.common
-project@com.oracle.graal.phases.common@subDir=graal
-project@com.oracle.graal.phases.common@sourceDirs=src
-project@com.oracle.graal.phases.common@dependencies=com.oracle.graal.phases
-project@com.oracle.graal.phases.common@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.phases.common@javaCompliance=1.8
-project@com.oracle.graal.phases.common@workingSets=Graal,Phases
-
-# graal.virtual
-project@com.oracle.graal.virtual@subDir=graal
-project@com.oracle.graal.virtual@sourceDirs=src
-project@com.oracle.graal.virtual@dependencies=com.oracle.graal.phases.common
-project@com.oracle.graal.virtual@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.virtual@javaCompliance=1.8
-project@com.oracle.graal.virtual@workingSets=Graal,Phases
-
-# graal.loop
-project@com.oracle.graal.loop@subDir=graal
-project@com.oracle.graal.loop@sourceDirs=src
-project@com.oracle.graal.loop@dependencies=com.oracle.graal.phases.common
-project@com.oracle.graal.loop@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.loop@javaCompliance=1.8
-project@com.oracle.graal.loop@workingSets=Graal,Phases
-
-# graal.compiler
-project@com.oracle.graal.compiler@subDir=graal
-project@com.oracle.graal.compiler@sourceDirs=src
-project@com.oracle.graal.compiler@dependencies=com.oracle.graal.virtual,com.oracle.graal.loop,com.oracle.graal.alloc
-project@com.oracle.graal.compiler@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.compiler@javaCompliance=1.8
-project@com.oracle.graal.compiler@annotationProcessors=com.oracle.graal.service.processor
-project@com.oracle.graal.compiler@workingSets=Graal
-
-# graal.compiler.amd64
-project@com.oracle.graal.compiler.amd64@subDir=graal
-project@com.oracle.graal.compiler.amd64@sourceDirs=src
-project@com.oracle.graal.compiler.amd64@dependencies=com.oracle.graal.compiler,com.oracle.graal.lir.amd64
-project@com.oracle.graal.compiler.amd64@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.compiler.amd64@javaCompliance=1.8
-project@com.oracle.graal.compiler.amd64@workingSets=Graal,AMD64
-
-# graal.compiler.amd64.test
-project@com.oracle.graal.compiler.amd64.test@subDir=graal
-project@com.oracle.graal.compiler.amd64.test@sourceDirs=src
-project@com.oracle.graal.compiler.amd64.test@dependencies=com.oracle.graal.compiler.test
-project@com.oracle.graal.compiler.amd64.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.compiler.amd64.test@javaCompliance=1.8
-project@com.oracle.graal.compiler.amd64.test@workingSets=Graal,AMD64,Test
-
-# graal.compiler.ptx
-project@com.oracle.graal.compiler.ptx@subDir=graal
-project@com.oracle.graal.compiler.ptx@sourceDirs=src
-project@com.oracle.graal.compiler.ptx@dependencies=com.oracle.graal.lir.ptx,com.oracle.graal.compiler
-project@com.oracle.graal.compiler.ptx@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.compiler.ptx@javaCompliance=1.8
-project@com.oracle.graal.compiler.ptx@workingSets=Graal,PTX
-
-# graal.compiler.ptx.test
-project@com.oracle.graal.compiler.ptx.test@subDir=graal
-project@com.oracle.graal.compiler.ptx.test@sourceDirs=src
-project@com.oracle.graal.compiler.ptx.test@dependencies=com.oracle.graal.hotspot.ptx,com.oracle.graal.compiler.test
-project@com.oracle.graal.compiler.ptx.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.compiler.ptx.test@javaCompliance=1.8
-project@com.oracle.graal.compiler.ptx.test@workingSets=Graal,PTX,Test
-
-# graal.compiler.sparc
-project@com.oracle.graal.compiler.sparc@subDir=graal
-project@com.oracle.graal.compiler.sparc@sourceDirs=src
-project@com.oracle.graal.compiler.sparc@dependencies=com.oracle.graal.lir.sparc
-project@com.oracle.graal.compiler.sparc@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.compiler.sparc@javaCompliance=1.8
-project@com.oracle.graal.compiler.sparc@workingSets=Graal,SPARC
-
-# graal.compiler.sparc.test
-project@com.oracle.graal.compiler.sparc.test@subDir=graal
-project@com.oracle.graal.compiler.sparc.test@sourceDirs=src
-project@com.oracle.graal.compiler.sparc.test@dependencies=com.oracle.graal.compiler.test
-project@com.oracle.graal.compiler.sparc.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.compiler.sparc.test@javaCompliance=1.8
-project@com.oracle.graal.compiler.sparc.test@workingSets=Graal,SPARC,Test
-
-# graal.runtime
-project@com.oracle.graal.runtime@subDir=graal
-project@com.oracle.graal.runtime@sourceDirs=src
-project@com.oracle.graal.runtime@dependencies=com.oracle.graal.compiler
-project@com.oracle.graal.runtime@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.runtime@javaCompliance=1.8
-project@com.oracle.graal.runtime@workingSets=Graal
-
-# graal.bytecode
-project@com.oracle.graal.bytecode@subDir=graal
-project@com.oracle.graal.bytecode@sourceDirs=src
-project@com.oracle.graal.bytecode@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.bytecode@javaCompliance=1.8
-project@com.oracle.graal.bytecode@workingSets=Graal,Java
-
-# graal.java
-project@com.oracle.graal.java@subDir=graal
-project@com.oracle.graal.java@sourceDirs=src
-project@com.oracle.graal.java@dependencies=com.oracle.graal.phases,com.oracle.graal.bytecode
-project@com.oracle.graal.java@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.java@javaCompliance=1.8
-project@com.oracle.graal.java@workingSets=Graal,Java
-
-# graal.compiler.common
-project@com.oracle.graal.compiler.common@subDir=graal
-project@com.oracle.graal.compiler.common@sourceDirs=src
-project@com.oracle.graal.compiler.common@dependencies=com.oracle.graal.api.code,com.oracle.graal.options
-project@com.oracle.graal.compiler.common@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.compiler.common@javaCompliance=1.8
-project@com.oracle.graal.compiler.common@workingSets=Graal,Java
-
-# graal.baseline
-project@com.oracle.graal.baseline@subDir=graal
-project@com.oracle.graal.baseline@sourceDirs=src
-project@com.oracle.graal.baseline@dependencies=com.oracle.graal.compiler,com.oracle.graal.java
-project@com.oracle.graal.baseline@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.baseline@javaCompliance=1.8
-project@com.oracle.graal.baseline@workingSets=Graal,Java
-
-# graal.java.decompiler
-project@com.oracle.graal.java.decompiler@subDir=graal
-project@com.oracle.graal.java.decompiler@sourceDirs=src
-project@com.oracle.graal.java.decompiler@dependencies=com.oracle.graal.java
-project@com.oracle.graal.java.decompiler@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.java.decompiler@javaCompliance=1.8
-project@com.oracle.graal.java.decompiler@workingSets=Graal
-
-# graal.java.decompiler.test
-project@com.oracle.graal.java.decompiler.test@subDir=graal
-project@com.oracle.graal.java.decompiler.test@sourceDirs=src
-project@com.oracle.graal.java.decompiler.test@dependencies=JUNIT,com.oracle.graal.printer,com.oracle.graal.runtime
-project@com.oracle.graal.java.decompiler.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.java.decompiler.test@javaCompliance=1.8
-project@com.oracle.graal.java.decompiler.test@workingSets=Graal,Test
-
-# graal.printer
-project@com.oracle.graal.printer@subDir=graal
-project@com.oracle.graal.printer@sourceDirs=src
-project@com.oracle.graal.printer@dependencies=com.oracle.graal.java.decompiler,com.oracle.graal.compiler
-project@com.oracle.graal.printer@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.printer@javaCompliance=1.8
-project@com.oracle.graal.printer@workingSets=Graal,Graph
-
-# graal.test
-project@com.oracle.graal.test@subDir=graal
-project@com.oracle.graal.test@sourceDirs=src
-project@com.oracle.graal.test@dependencies=JUNIT,com.oracle.graal.debug
-project@com.oracle.graal.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.test@javaCompliance=1.8
-project@com.oracle.graal.test@workingSets=Graal,Test
-
-# graal.compiler.test
-project@com.oracle.graal.compiler.test@subDir=graal
-project@com.oracle.graal.compiler.test@sourceDirs=src
-project@com.oracle.graal.compiler.test@dependencies=com.oracle.graal.test,com.oracle.graal.printer,com.oracle.graal.runtime,com.oracle.graal.baseline,JAVA_ALLOCATION_INSTRUMENTER
-project@com.oracle.graal.compiler.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.compiler.test@javaCompliance=1.8
-project@com.oracle.graal.compiler.test@workingSets=Graal,Test
-
-# graal.jtt
-project@com.oracle.graal.jtt@subDir=graal
-project@com.oracle.graal.jtt@sourceDirs=src
-project@com.oracle.graal.jtt@dependencies=com.oracle.graal.compiler.test,ASM
-project@com.oracle.graal.jtt@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.jtt@javaCompliance=1.8
-project@com.oracle.graal.jtt@workingSets=Graal,Test
-
-# graal.asm
-project@com.oracle.graal.asm@subDir=graal
-project@com.oracle.graal.asm@sourceDirs=src
-project@com.oracle.graal.asm@dependencies=com.oracle.graal.api.code
-project@com.oracle.graal.asm@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.asm@javaCompliance=1.8
-project@com.oracle.graal.asm@workingSets=Graal,Assembler
-
-# graal.asm.test
-project@com.oracle.graal.asm.test@subDir=graal
-project@com.oracle.graal.asm.test@sourceDirs=src
-project@com.oracle.graal.asm.test@dependencies=com.oracle.graal.test,com.oracle.graal.runtime
-project@com.oracle.graal.asm.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.asm.test@javaCompliance=1.8
-project@com.oracle.graal.asm.test@workingSets=Graal,Assembler,Test
-
-# graal.asm.amd64
-project@com.oracle.graal.asm.amd64@subDir=graal
-project@com.oracle.graal.asm.amd64@sourceDirs=src
-project@com.oracle.graal.asm.amd64@dependencies=com.oracle.graal.asm,com.oracle.graal.amd64
-project@com.oracle.graal.asm.amd64@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.asm.amd64@javaCompliance=1.8
-project@com.oracle.graal.asm.amd64@workingSets=Graal,Assembler,AMD64
-
-# graal.asm.amd64.test
-project@com.oracle.graal.asm.amd64.test@subDir=graal
-project@com.oracle.graal.asm.amd64.test@sourceDirs=src
-project@com.oracle.graal.asm.amd64.test@dependencies=com.oracle.graal.asm.test,com.oracle.graal.asm.amd64
-project@com.oracle.graal.asm.amd64.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.asm.amd64.test@javaCompliance=1.8
-project@com.oracle.graal.asm.amd64.test@workingSets=Graal,Assembler,AMD64,Test
-
-# graal.gpu
-project@com.oracle.graal.gpu@subDir=graal
-project@com.oracle.graal.gpu@sourceDirs=src
-project@com.oracle.graal.gpu@dependencies=com.oracle.graal.nodes
-project@com.oracle.graal.gpu@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.gpu@javaCompliance=1.8
-
-# graal.hsail
-project@com.oracle.graal.hsail@subDir=graal
-project@com.oracle.graal.hsail@sourceDirs=src
-project@com.oracle.graal.hsail@dependencies=com.oracle.graal.api.code
-project@com.oracle.graal.hsail@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.hsail@javaCompliance=1.8
-
-# graal.lir.hsail
-project@com.oracle.graal.lir.hsail@subDir=graal
-project@com.oracle.graal.lir.hsail@sourceDirs=src
-project@com.oracle.graal.lir.hsail@dependencies=com.oracle.graal.lir,com.oracle.graal.asm.hsail
-project@com.oracle.graal.lir.hsail@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.lir.hsail@javaCompliance=1.8
-
-# graal.compiler.hsail
-project@com.oracle.graal.compiler.hsail@subDir=graal
-project@com.oracle.graal.compiler.hsail@sourceDirs=src
-project@com.oracle.graal.compiler.hsail@dependencies=com.oracle.graal.compiler,com.oracle.graal.lir.hsail
-project@com.oracle.graal.compiler.hsail@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.compiler.hsail@javaCompliance=1.8
-
-# graal.compiler.hsail.test.infra - HSAIL compiler test infrastructure
-project@com.oracle.graal.compiler.hsail.test.infra@subDir=graal
-project@com.oracle.graal.compiler.hsail.test.infra@sourceDirs=src
-project@com.oracle.graal.compiler.hsail.test.infra@dependencies=com.oracle.graal.test,com.oracle.graal.hotspot.hsail,OKRA_WITH_SIM
-project@com.oracle.graal.compiler.hsail.test.infra@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.compiler.hsail.test.infra@javaCompliance=1.8
-
-# graal.compiler.hsail.test
-project@com.oracle.graal.compiler.hsail.test@subDir=graal
-project@com.oracle.graal.compiler.hsail.test@sourceDirs=src
-project@com.oracle.graal.compiler.hsail.test@dependencies=com.oracle.graal.compiler.hsail.test.infra,com.oracle.graal.compiler.test,VECMATH
-project@com.oracle.graal.compiler.hsail.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.compiler.hsail.test@javaCompliance=1.8
-
-# graal.asm.hsail
-project@com.oracle.graal.asm.hsail@subDir=graal
-project@com.oracle.graal.asm.hsail@sourceDirs=src
-project@com.oracle.graal.asm.hsail@dependencies=com.oracle.graal.hsail,OKRA,com.oracle.graal.asm,com.oracle.graal.compiler.common
-project@com.oracle.graal.asm.hsail@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.asm.hsail@javaCompliance=1.8
-
-# graal.asm.ptx
-project@com.oracle.graal.asm.ptx@subDir=graal
-project@com.oracle.graal.asm.ptx@sourceDirs=src
-project@com.oracle.graal.asm.ptx@dependencies=com.oracle.graal.lir
-project@com.oracle.graal.asm.ptx@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.asm.ptx@javaCompliance=1.8
-project@com.oracle.graal.asm.ptx@workingSets=Graal,Assembler,PTX
-
-# graal.asm.sparc
-project@com.oracle.graal.asm.sparc@subDir=graal
-project@com.oracle.graal.asm.sparc@sourceDirs=src
-project@com.oracle.graal.asm.sparc@dependencies=com.oracle.graal.hotspot,com.oracle.graal.sparc
-project@com.oracle.graal.asm.sparc@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.asm.sparc@javaCompliance=1.8
-project@com.oracle.graal.asm.sparc@workingSets=Graal,Assembler,SPARC
-
-# truffle.api
-project@com.oracle.truffle.api@subDir=graal
-project@com.oracle.truffle.api@sourceDirs=src
-project@com.oracle.truffle.api@dependencies=
-project@com.oracle.truffle.api@javaCompliance=1.7
-project@com.oracle.truffle.api@workingSets=API,Truffle
-
-# truffle.api.test
-project@com.oracle.truffle.api.test@subDir=graal
-project@com.oracle.truffle.api.test@sourceDirs=src
-project@com.oracle.truffle.api.test@dependencies=com.oracle.truffle.api,JUNIT
-project@com.oracle.truffle.api.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.truffle.api.test@javaCompliance=1.7
-project@com.oracle.truffle.api.test@workingSets=API,Truffle,Test
-
-# truffle.api.dsl
-project@com.oracle.truffle.api.dsl@subDir=graal
-project@com.oracle.truffle.api.dsl@sourceDirs=src
-project@com.oracle.truffle.api.dsl@dependencies=com.oracle.truffle.api
-project@com.oracle.truffle.api.dsl@checkstyle=com.oracle.truffle.api
-project@com.oracle.truffle.api.dsl@javaCompliance=1.7
-project@com.oracle.truffle.api.dsl@workingSets=API,Truffle,Codegen
-
-# truffle.api.dsl.test
-project@com.oracle.truffle.api.dsl.test@subDir=graal
-project@com.oracle.truffle.api.dsl.test@sourceDirs=src
-project@com.oracle.truffle.api.dsl.test@dependencies=com.oracle.truffle.api.dsl,JUNIT
-project@com.oracle.truffle.api.dsl.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.truffle.api.dsl.test@javaCompliance=1.7
-project@com.oracle.truffle.api.dsl.test@annotationProcessors=com.oracle.truffle.dsl.processor
-project@com.oracle.truffle.api.dsl.test@workingSets=API,Truffle,Codegen,Test
-
-# truffle.dsl.processor
-project@com.oracle.truffle.dsl.processor@subDir=graal
-project@com.oracle.truffle.dsl.processor@sourceDirs=src
-project@com.oracle.truffle.dsl.processor@dependencies=com.oracle.truffle.api.dsl
-project@com.oracle.truffle.dsl.processor@checkstyle=com.oracle.graal.graph
-project@com.oracle.truffle.dsl.processor@javaCompliance=1.7
-project@com.oracle.truffle.dsl.processor@workingSets=Truffle,Codegen
-
-# truffle.sl
-project@com.oracle.truffle.sl@subDir=graal
-project@com.oracle.truffle.sl@sourceDirs=src
-project@com.oracle.truffle.sl@dependencies=com.oracle.truffle.api.dsl
-project@com.oracle.truffle.sl@checkstyle=com.oracle.graal.graph
-project@com.oracle.truffle.sl@javaCompliance=1.8
-project@com.oracle.truffle.sl@annotationProcessors=com.oracle.truffle.dsl.processor
-project@com.oracle.truffle.sl@workingSets=Truffle,SimpleLanguage
-
-# truffle.sl.test
-project@com.oracle.truffle.sl.test@subDir=graal
-project@com.oracle.truffle.sl.test@sourceDirs=src
-project@com.oracle.truffle.sl.test@dependencies=com.oracle.truffle.sl,JUNIT
-project@com.oracle.truffle.sl.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.truffle.sl.test@javaCompliance=1.8
-project@com.oracle.truffle.sl.test@workingSets=Truffle,SimpleLanguage,Test
-
-# graal.truffle
-project@com.oracle.graal.truffle@subDir=graal
-project@com.oracle.graal.truffle@sourceDirs=src
-project@com.oracle.graal.truffle@dependencies=com.oracle.truffle.api,com.oracle.graal.replacements,com.oracle.graal.runtime,com.oracle.graal.printer
-project@com.oracle.graal.truffle@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.truffle@javaCompliance=1.8
-project@com.oracle.graal.truffle@workingSets=Graal,Truffle
-
-# graal.truffle.test
-project@com.oracle.graal.truffle.test@subDir=graal
-project@com.oracle.graal.truffle.test@sourceDirs=src
-project@com.oracle.graal.truffle.test@dependencies=com.oracle.graal.truffle,com.oracle.graal.compiler.test,com.oracle.truffle.sl.test
-project@com.oracle.graal.truffle.test@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.truffle.test@javaCompliance=1.8
-project@com.oracle.graal.truffle.test@workingSets=Graal,Truffle,Test
-
-# graal.truffle.hotspot
-project@com.oracle.graal.truffle.hotspot@subDir=graal
-project@com.oracle.graal.truffle.hotspot@sourceDirs=src
-project@com.oracle.graal.truffle.hotspot@dependencies=com.oracle.graal.truffle,com.oracle.graal.hotspot
-project@com.oracle.graal.truffle.hotspot@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.truffle.hotspot@javaCompliance=1.8
-project@com.oracle.graal.truffle.hotspot@annotationProcessors=com.oracle.graal.service.processor
-project@com.oracle.graal.truffle.hotspot@workingSets=Graal,Truffle
-
-# graal.truffle.hotspot.amd64
-project@com.oracle.graal.truffle.hotspot.amd64@subDir=graal
-project@com.oracle.graal.truffle.hotspot.amd64@sourceDirs=src
-project@com.oracle.graal.truffle.hotspot.amd64@dependencies=com.oracle.graal.truffle.hotspot,com.oracle.graal.asm.amd64
-project@com.oracle.graal.truffle.hotspot.amd64@checkstyle=com.oracle.graal.graph
-project@com.oracle.graal.truffle.hotspot.amd64@javaCompliance=1.8
-project@com.oracle.graal.truffle.hotspot.amd64@annotationProcessors=com.oracle.graal.service.processor
-project@com.oracle.graal.truffle.hotspot.amd64@workingSets=Graal,Truffle
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mx/projects.deprecated	Mon Sep 22 09:29:37 2014 -0700
@@ -0,0 +1,878 @@
+# DO NOT EDIT THIS FILE -- IT WILL SOON BE DELETED.
+
+# The format of this file is described in the documentation for my.py.
+mxversion=1.0
+suite=graal
+
+jrelibrary@JFR@jar=jfr.jar
+
+library@JUNIT@path=lib/junit-4.11.jar
+library@JUNIT@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/junit-4.11.jar,http://repo1.maven.org/maven2/junit/junit/4.11/junit-4.11.jar
+library@JUNIT@sha1=4e031bb61df09069aeb2bffb4019e7a5034a4ee0
+library@JUNIT@eclipse.container=org.eclipse.jdt.junit.JUNIT_CONTAINER/4
+library@JUNIT@sourcePath=lib/junit-4.11-sources.jar
+library@JUNIT@sourceUrls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/junit-4.11-sources.jar,http://repo1.maven.org/maven2/junit/junit/4.11/junit-4.11-sources.jar
+library@JUNIT@sourceSha1=28e0ad201304e4a4abf999ca0570b7cffc352c3c
+library@JUNIT@dependencies=HAMCREST
+
+library@HAMCREST@path=lib/hamcrest-core-1.3.jar
+library@HAMCREST@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/hamcrest-core-1.3.jar,http://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
+library@HAMCREST@sha1=42a25dc3219429f0e5d060061f71acb49bf010a0
+library@HAMCREST@sourcePath=lib/hamcrest-core-1.3-sources.jar
+library@HAMCREST@sourceUrls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/hamcrest-core-1.3-sources.jar,http://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar
+library@HAMCREST@sourceSha1=1dc37250fbc78e23a65a67fbbaf71d2e9cbc3c0b
+
+#library@CHECKSTYLE@path=lib/checkstyle-5.5-all.jar
+#library@CHECKSTYLE@urls=jar:http://sourceforge.net/projects/checkstyle/files/checkstyle/5.5/checkstyle-5.5-bin.zip/download!/checkstyle-5.5/checkstyle-5.5-all.jar
+
+library@HCFDIS@path=lib/hcfdis-2.jar
+library@HCFDIS@urls=http://lafo.ssw.uni-linz.ac.at/hcfdis-2.jar
+library@HCFDIS@sha1=bc8b2253436485e9dbaf81771c259ccfa1a24c80
+
+library@FINDBUGS_DIST@path=lib/findbugs-dist-3.0.0.zip
+library@FINDBUGS_DIST@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/findbugs-3.0.0.zip,http://sourceforge.net/projects/findbugs/files/findbugs/3.0.0/findbugs-3.0.0.zip/download
+library@FINDBUGS_DIST@sha1=6e56d67f238dbcd60acb88a81655749aa6419c5b
+
+library@C1VISUALIZER_DIST@path=lib/c1visualizer_2014-04-22.zip
+library@C1VISUALIZER_DIST@urls=https://java.net/downloads/c1visualizer/c1visualizer_2014-04-22.zip
+library@C1VISUALIZER_DIST@sha1=220488d87affb569b893c7201f8ce5d2b0e03141
+
+library@JOL_INTERNALS@path=lib/jol-internals.jar
+library@JOL_INTERNALS@urls=http://lafo.ssw.uni-linz.ac.at/truffle/jol/jol-internals.jar
+library@JOL_INTERNALS@sha1=508bcd26a4d7c4c44048990c6ea789a3b11a62dc
+
+library@FINDBUGS@path=lib/findbugs-3.0.0.jar
+library@FINDBUGS@urls=jar:http://lafo.ssw.uni-linz.ac.at/graal-external-deps/findbugs-3.0.0.zip!/findbugs-3.0.0/lib/findbugs.jar,jar:http://sourceforge.net/projects/findbugs/files/findbugs/3.0.0/findbugs-3.0.0.zip/download!/findbugs-3.0.0/lib/findbugs.jar
+library@FINDBUGS@sha1=e9a938f0cb34e2ab5853f9ecb1989f6f590ee385
+
+library@DACAPO@path=lib/dacapo-9.12-bach.jar
+library@DACAPO@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/dacapo-9.12-bach.jar,http://softlayer.dl.sourceforge.net/project/dacapobench/9.12-bach/dacapo-9.12-bach.jar
+library@DACAPO@sha1=2626a9546df09009f6da0df854e6dc1113ef7dd4
+
+library@JACOCOAGENT@path=lib/jacocoagent.jar
+library@JACOCOAGENT@urls=http://lafo.ssw.uni-linz.ac.at/jacoco/jacocoagent-0.7.1-1.jar
+library@JACOCOAGENT@sha1=2f73a645b02e39290e577ce555f00b02004650b0
+
+library@JACOCOREPORT@path=lib/jacocoreport.jar
+library@JACOCOREPORT@urls=http://lafo.ssw.uni-linz.ac.at/jacoco/jacocoreport-0.7.1-2.jar
+library@JACOCOREPORT@sha1=a630436391832d697a12c8f7daef8655d7a1efd2
+
+library@DACAPO_SCALA@path=lib/dacapo-scala-0.1.0-20120216.jar
+library@DACAPO_SCALA@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/dacapo-scala-0.1.0-20120216.jar,http://repo.scalabench.org/snapshots/org/scalabench/benchmarks/scala-benchmark-suite/0.1.0-SNAPSHOT/scala-benchmark-suite-0.1.0-20120216.103539-3.jar
+library@DACAPO_SCALA@sha1=59b64c974662b5cf9dbd3cf9045d293853dd7a51
+
+library@OKRA@path=lib/okra-1.10.jar
+library@OKRA@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/okra-1.10.jar,http://cr.openjdk.java.net/~tdeneau/okra-1.10.jar
+library@OKRA@sha1=96eb3c0ec808ed944ba88d1eb9311058fe0f3d1e
+library@OKRA@sourcePath=lib/okra-1.10-src.jar
+library@OKRA@sourceUrls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/okra-1.10-src.jar,http://cr.openjdk.java.net/~tdeneau/okra-1.10-src.jar
+library@OKRA@sourceSha1=75751bb148fcebaba78ff590f883a114b2b09176
+
+library@OKRA_WITH_SIM@path=lib/okra-1.10-with-sim.jar
+library@OKRA_WITH_SIM@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/okra-1.10-with-sim.jar,http://cr.openjdk.java.net/~tdeneau/okra-1.10-with-sim.jar
+library@OKRA_WITH_SIM@sha1=7b8db879f1dbcf571290add78d9af24e15a2a50d
+library@OKRA_WITH_SIM@sourcePath=lib/okra-1.10-with-sim-src.jar
+library@OKRA_WITH_SIM@sourceSha1=7eefd94f16a3e3fd3b8f470cf91e265c6f5e7767
+library@OKRA_WITH_SIM@sourceUrls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/okra-1.10-with-sim-src.jar,http://cr.openjdk.java.net/~tdeneau/okra-1.10-with-sim-src.jar
+
+library@ASM@path=lib/asm-5.0.3.jar
+library@ASM@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/asm-5.0.3.jar,http://central.maven.org/maven2/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar
+library@ASM@sha1=dcc2193db20e19e1feca8b1240dbbc4e190824fa
+library@ASM@sourcePath=lib/asm-5.0.3-sources.jar
+library@ASM@sourceSha1=f0f24f6666c1a15c7e202e91610476bd4ce59368
+library@ASM@sourceUrls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/asm-5.0.3-sources.jar,http://central.maven.org/maven2/org/ow2/asm/asm/5.0.3/asm-5.0.3-sources.jar
+
+library@JAVA_ALLOCATION_INSTRUMENTER@path=lib/java-allocation-instrumenter.jar
+library@JAVA_ALLOCATION_INSTRUMENTER@sourcePath=lib/java-allocation-instrumenter.jar
+library@JAVA_ALLOCATION_INSTRUMENTER@urls=http://lafo.ssw.uni-linz.ac.at/java-allocation-instrumenter/java-allocation-instrumenter-8f0db117e64e.jar
+library@JAVA_ALLOCATION_INSTRUMENTER@sha1=476d9a44cd19d6b55f81571077dfa972a4f8a083
+library@JAVA_ALLOCATION_INSTRUMENTER@bootClassPathAgent=true
+
+library@VECMATH@path=lib/vecmath-1.3.1.jar
+library@VECMATH@urls=http://lafo.ssw.uni-linz.ac.at/graal-external-deps/vecmath-1.3.1.jar,http://mirrors.ibiblio.org/pub/mirrors/maven/java3d/jars/vecmath-1.3.1.jar
+library@VECMATH@sha1=a0ae4f51da409fa0c20fa0ca59e6bbc9413ae71d
+
+distribution@GRAAL@path=build/graal.jar
+distribution@GRAAL@subDir=graal
+distribution@GRAAL@sourcesPath=build/graal.src.zip
+distribution@GRAAL@dependencies=\
+com.oracle.graal.hotspot.amd64,\
+com.oracle.graal.hotspot.ptx,\
+com.oracle.graal.hotspot.sparc,\
+com.oracle.graal.hotspot,\
+com.oracle.graal.hotspot.jfr,\
+com.oracle.graal.hotspot.hsail
+distribution@GRAAL@exclude=FINDBUGS
+
+distribution@GRAAL_LOADER@path=build/graal-loader.jar
+distribution@GRAAL_LOADER@subDir=graal
+distribution@GRAAL_LOADER@sourcesPath=build/graal-loader.src.zip
+distribution@GRAAL_LOADER@dependencies=com.oracle.graal.hotspot.loader
+
+distribution@TRUFFLE@path=build/truffle.jar
+distribution@TRUFFLE@subDir=graal
+distribution@TRUFFLE@sourcesPath=build/truffle.src.zip
+distribution@TRUFFLE@javaCompliance=1.7
+distribution@TRUFFLE@dependencies=\
+com.oracle.truffle.api.dsl,\
+com.oracle.nfi
+
+distribution@GRAAL_TRUFFLE@path=build/graal-truffle.jar
+distribution@GRAAL_TRUFFLE@subDir=graal
+distribution@GRAAL_TRUFFLE@sourcesPath=build/graal-truffle.src.zip
+distribution@GRAAL_TRUFFLE@dependencies=\
+com.oracle.graal.truffle,\
+com.oracle.graal.truffle.hotspot.amd64
+distribution@GRAAL_TRUFFLE@exclude=FINDBUGS
+distribution@GRAAL_TRUFFLE@distDependencies=GRAAL,TRUFFLE
+
+distribution@TRUFFLE-DSL-PROCESSOR@path=build/truffle-dsl-processor.jar
+distribution@TRUFFLE-DSL-PROCESSOR@subDir=graal
+distribution@TRUFFLE-DSL-PROCESSOR@sourcesPath=build/truffle-dsl-processor.src.zip
+distribution@TRUFFLE-DSL-PROCESSOR@javaCompliance=1.7
+distribution@TRUFFLE-DSL-PROCESSOR@dependencies=\
+com.oracle.truffle.dsl.processor
+distribution@TRUFFLE-DSL-PROCESSOR@distDependencies=TRUFFLE
+
+# nfi
+project@com.oracle.nfi@subDir=graal
+project@com.oracle.nfi@sourceDirs=src
+project@com.oracle.nfi@dependencies=
+project@com.oracle.nfi@checkstyle=com.oracle.graal.graph
+project@com.oracle.nfi@javaCompliance=1.7
+
+# nfi.test
+project@com.oracle.nfi.test@subDir=graal
+project@com.oracle.nfi.test@sourceDirs=test
+project@com.oracle.nfi.test@dependencies=com.oracle.nfi,com.oracle.graal.compiler.common,JUNIT
+project@com.oracle.nfi.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.nfi.test@javaCompliance=1.7
+
+# graal.api.collections
+project@com.oracle.graal.api.collections@subDir=graal
+project@com.oracle.graal.api.collections@sourceDirs=src
+project@com.oracle.graal.api.collections@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.api.collections@javaCompliance=1.8
+project@com.oracle.graal.api.collections@workingSets=API,Graal
+
+# graal.api.runtime
+project@com.oracle.graal.api.runtime@subDir=graal
+project@com.oracle.graal.api.runtime@sourceDirs=src
+project@com.oracle.graal.api.runtime@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.api.runtime@javaCompliance=1.8
+project@com.oracle.graal.api.runtime@workingSets=API,Graal
+
+# graal.api.test
+project@com.oracle.graal.api.test@subDir=graal
+project@com.oracle.graal.api.test@sourceDirs=src
+project@com.oracle.graal.api.test@dependencies=JUNIT,com.oracle.graal.api.runtime
+project@com.oracle.graal.api.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.api.test@javaCompliance=1.8
+project@com.oracle.graal.api.test@workingSets=API,Graal,Test
+
+# graal.api.meta
+project@com.oracle.graal.api.meta@subDir=graal
+project@com.oracle.graal.api.meta@sourceDirs=src
+project@com.oracle.graal.api.meta@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.api.meta@javaCompliance=1.8
+project@com.oracle.graal.api.meta@workingSets=API,Graal
+
+# graal.api.meta.test
+project@com.oracle.graal.api.meta.test@subDir=graal
+project@com.oracle.graal.api.meta.test@sourceDirs=src
+project@com.oracle.graal.api.meta.test@dependencies=JUNIT,com.oracle.graal.runtime,com.oracle.graal.java
+project@com.oracle.graal.api.meta.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.api.meta.test@javaCompliance=1.8
+project@com.oracle.graal.api.meta.test@workingSets=API,Graal,Test
+
+# graal.api.code
+project@com.oracle.graal.api.code@subDir=graal
+project@com.oracle.graal.api.code@sourceDirs=src
+project@com.oracle.graal.api.code@dependencies=com.oracle.graal.api.meta
+project@com.oracle.graal.api.code@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.api.code@javaCompliance=1.8
+project@com.oracle.graal.api.code@workingSets=API,Graal
+
+# graal.api.replacements
+project@com.oracle.graal.api.replacements@subDir=graal
+project@com.oracle.graal.api.replacements@sourceDirs=src
+project@com.oracle.graal.api.replacements@dependencies=com.oracle.graal.api.meta
+project@com.oracle.graal.api.replacements@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.api.replacements@javaCompliance=1.8
+project@com.oracle.graal.api.replacements@workingSets=API,Graal,Replacements
+
+# graal.service.processor
+project@com.oracle.graal.service.processor@subDir=graal
+project@com.oracle.graal.service.processor@sourceDirs=src
+project@com.oracle.graal.service.processor@dependencies=com.oracle.graal.api.runtime
+project@com.oracle.graal.service.processor@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.service.processor@javaCompliance=1.8
+project@com.oracle.graal.service.processor@workingSets=Codegen,HotSpot
+
+# graal.amd64
+project@com.oracle.graal.amd64@subDir=graal
+project@com.oracle.graal.amd64@sourceDirs=src
+project@com.oracle.graal.amd64@dependencies=com.oracle.graal.api.code
+project@com.oracle.graal.amd64@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.amd64@javaCompliance=1.8
+project@com.oracle.graal.amd64@workingSets=Graal,AMD64
+
+# graal.ptx
+project@com.oracle.graal.ptx@subDir=graal
+project@com.oracle.graal.ptx@sourceDirs=src
+project@com.oracle.graal.ptx@dependencies=com.oracle.graal.api.code
+project@com.oracle.graal.ptx@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.ptx@javaCompliance=1.8
+project@com.oracle.graal.ptx@workingSets=Graal,PTX
+
+# graal.sparc
+project@com.oracle.graal.sparc@subDir=graal
+project@com.oracle.graal.sparc@sourceDirs=src
+project@com.oracle.graal.sparc@dependencies=com.oracle.graal.api.code
+project@com.oracle.graal.sparc@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.sparc@javaCompliance=1.8
+project@com.oracle.graal.sparc@workingSets=Graal,SPARC
+
+# graal.hotspotvmconfig
+project@com.oracle.graal.hotspotvmconfig@subDir=graal
+project@com.oracle.graal.hotspotvmconfig@sourceDirs=src
+project@com.oracle.graal.hotspotvmconfig@dependencies=com.oracle.graal.compiler.common
+project@com.oracle.graal.hotspotvmconfig@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.hotspotvmconfig@annotationProcessors=com.oracle.graal.service.processor
+project@com.oracle.graal.hotspotvmconfig@javaCompliance=1.8
+project@com.oracle.graal.hotspotvmconfig@workingSets=Graal,HotSpot
+
+# graal.hotspot
+project@com.oracle.graal.hotspot@subDir=graal
+project@com.oracle.graal.hotspot@sourceDirs=src
+project@com.oracle.graal.hotspot@dependencies=com.oracle.graal.replacements,com.oracle.graal.runtime,com.oracle.graal.printer,com.oracle.graal.baseline,com.oracle.graal.hotspotvmconfig,com.oracle.nfi
+project@com.oracle.graal.hotspot@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.hotspot@annotationProcessors=com.oracle.graal.replacements.verifier,com.oracle.graal.service.processor
+project@com.oracle.graal.hotspot@javaCompliance=1.8
+project@com.oracle.graal.hotspot@workingSets=Graal,HotSpot
+
+# graal.hotspot
+project@com.oracle.graal.hotspot.loader@subDir=graal
+project@com.oracle.graal.hotspot.loader@sourceDirs=src
+project@com.oracle.graal.hotspot.loader@dependencies=
+project@com.oracle.graal.hotspot.loader@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.hotspot.loader@javaCompliance=1.8
+project@com.oracle.graal.hotspot.loader@workingSets=Graal,HotSpot
+
+# graal.hotspot.sourcegen
+project@com.oracle.graal.hotspot.sourcegen@subDir=graal
+project@com.oracle.graal.hotspot.sourcegen@sourceDirs=src
+project@com.oracle.graal.hotspot.sourcegen@dependencies=com.oracle.graal.hotspot
+project@com.oracle.graal.hotspot.sourcegen@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.hotspot.sourcegen@javaCompliance=1.8
+project@com.oracle.graal.hotspot.sourcegen@workingSets=Graal,HotSpot
+
+# graal.hotspot.jfr
+project@com.oracle.graal.hotspot.jfr@subDir=graal
+project@com.oracle.graal.hotspot.jfr@sourceDirs=src
+project@com.oracle.graal.hotspot.jfr@dependencies=com.oracle.graal.hotspot,JFR
+project@com.oracle.graal.hotspot.jfr@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.hotspot.jfr@annotationProcessors=com.oracle.graal.service.processor
+project@com.oracle.graal.hotspot.jfr@javaCompliance=1.8
+project@com.oracle.graal.hotspot.jfr@profile=
+project@com.oracle.graal.hotspot.jfr@workingSets=Graal,HotSpot
+
+# graal.hotspot.amd64
+project@com.oracle.graal.hotspot.amd64@subDir=graal
+project@com.oracle.graal.hotspot.amd64@sourceDirs=src
+project@com.oracle.graal.hotspot.amd64@dependencies=com.oracle.graal.compiler.amd64,com.oracle.graal.hotspot,com.oracle.graal.replacements.amd64
+project@com.oracle.graal.hotspot.amd64@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.hotspot.amd64@annotationProcessors=com.oracle.graal.service.processor
+project@com.oracle.graal.hotspot.amd64@javaCompliance=1.8
+project@com.oracle.graal.hotspot.amd64@workingSets=Graal,HotSpot,AMD64
+
+# graal.hotspot.sparc
+project@com.oracle.graal.hotspot.sparc@subDir=graal
+project@com.oracle.graal.hotspot.sparc@sourceDirs=src
+project@com.oracle.graal.hotspot.sparc@dependencies=com.oracle.graal.compiler.sparc
+project@com.oracle.graal.hotspot.sparc@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.hotspot.sparc@annotationProcessors=com.oracle.graal.service.processor
+project@com.oracle.graal.hotspot.sparc@javaCompliance=1.8
+project@com.oracle.graal.hotspot.sparc@workingSets=Graal,HotSpot,SPARC
+
+# graal.hotspot.ptx
+project@com.oracle.graal.hotspot.ptx@subDir=graal
+project@com.oracle.graal.hotspot.ptx@sourceDirs=src
+project@com.oracle.graal.hotspot.ptx@dependencies=com.oracle.graal.ptx,com.oracle.graal.compiler.ptx,com.oracle.graal.hotspot,com.oracle.graal.gpu
+project@com.oracle.graal.hotspot.ptx@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.hotspot.ptx@annotationProcessors=com.oracle.graal.service.processor
+project@com.oracle.graal.hotspot.ptx@javaCompliance=1.8
+project@com.oracle.graal.hotspot.ptx@workingSets=Graal,HotSpot,PTX
+
+# graal.hotspot.hsail
+project@com.oracle.graal.hotspot.hsail@subDir=graal
+project@com.oracle.graal.hotspot.hsail@sourceDirs=src
+project@com.oracle.graal.hotspot.hsail@dependencies=com.oracle.graal.replacements.hsail,com.oracle.graal.hotspot,com.oracle.graal.gpu
+project@com.oracle.graal.hotspot.hsail@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.hotspot.hsail@annotationProcessors=com.oracle.graal.service.processor
+project@com.oracle.graal.hotspot.hsail@javaCompliance=1.8
+project@com.oracle.graal.hotspot.hsail@workingSets=Graal,HotSpot,PTX
+
+# graal.hotspot.server
+project@com.oracle.graal.hotspot.server@subDir=graal
+project@com.oracle.graal.hotspot.server@sourceDirs=src
+project@com.oracle.graal.hotspot.server@dependencies=com.oracle.graal.hotspot
+project@com.oracle.graal.hotspot.server@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.hotspot.server@javaCompliance=1.8
+project@com.oracle.graal.hotspot.server@workingSets=Graal,HotSpot
+
+# graal.hotspot.test
+project@com.oracle.graal.hotspot.test@subDir=graal
+project@com.oracle.graal.hotspot.test@sourceDirs=src
+project@com.oracle.graal.hotspot.test@dependencies=com.oracle.graal.replacements.test,com.oracle.graal.hotspot
+project@com.oracle.graal.hotspot.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.hotspot.test@javaCompliance=1.8
+project@com.oracle.graal.hotspot.test@workingSets=Graal,HotSpot,Test
+
+# graal.hotspot.amd64.test
+project@com.oracle.graal.hotspot.amd64.test@subDir=graal
+project@com.oracle.graal.hotspot.amd64.test@sourceDirs=src
+project@com.oracle.graal.hotspot.amd64.test@dependencies=com.oracle.graal.asm.amd64,com.oracle.graal.compiler.test,com.oracle.graal.hotspot
+project@com.oracle.graal.hotspot.amd64.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.hotspot.amd64.test@javaCompliance=1.8
+project@com.oracle.graal.hotspot.amd64.test@workingSets=Graal,HotSpot,AMD64,Test
+
+# graal.options
+project@com.oracle.graal.options@subDir=graal
+project@com.oracle.graal.options@sourceDirs=src
+project@com.oracle.graal.options@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.options@javaCompliance=1.8
+project@com.oracle.graal.options@workingSets=Graal,Codegen
+
+# graal.options.test
+project@com.oracle.graal.options.test@subDir=graal
+project@com.oracle.graal.options.test@sourceDirs=src
+project@com.oracle.graal.options.test@dependencies=com.oracle.graal.options,JUNIT
+project@com.oracle.graal.options.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.options.test@javaCompliance=1.8
+project@com.oracle.graal.options.test@workingSets=Graal
+
+# graal.nodeinfo
+project@com.oracle.graal.nodeinfo@subDir=graal
+project@com.oracle.graal.nodeinfo@sourceDirs=src
+project@com.oracle.graal.nodeinfo@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.nodeinfo@javaCompliance=1.8
+project@com.oracle.graal.nodeinfo@workingSets=Graal,Graph
+
+# graal.nodeinfo.processor
+project@com.oracle.graal.nodeinfo.processor@subDir=graal
+project@com.oracle.graal.nodeinfo.processor@sourceDirs=src
+project@com.oracle.graal.nodeinfo.processor@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.nodeinfo.processor@dependencies=com.oracle.graal.nodeinfo,com.oracle.truffle.dsl.processor
+project@com.oracle.graal.nodeinfo.processor@javaCompliance=1.8
+project@com.oracle.graal.nodeinfo.processor@workingSets=Graal,Graph
+
+# graal.graph
+project@com.oracle.graal.graph@subDir=graal
+project@com.oracle.graal.graph@sourceDirs=src
+project@com.oracle.graal.graph@dependencies=com.oracle.graal.nodeinfo,com.oracle.graal.debug,com.oracle.graal.compiler.common,com.oracle.graal.api.collections,com.oracle.graal.api.runtime,FINDBUGS
+project@com.oracle.graal.graph@javaCompliance=1.8
+project@com.oracle.graal.graph@annotationProcessors=com.oracle.graal.nodeinfo.processor
+project@com.oracle.graal.graph@workingSets=Graal,Graph
+
+# graal.graph.test
+project@com.oracle.graal.graph.test@subDir=graal
+project@com.oracle.graal.graph.test@sourceDirs=src
+project@com.oracle.graal.graph.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.graph.test@dependencies=JUNIT,com.oracle.graal.graph
+project@com.oracle.graal.graph.test@javaCompliance=1.8
+project@com.oracle.graal.graph.test@workingSets=Graal,Graph,Test
+
+# graal.debug
+project@com.oracle.graal.debug@subDir=graal
+project@com.oracle.graal.debug@sourceDirs=src
+project@com.oracle.graal.debug@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.debug@javaCompliance=1.8
+project@com.oracle.graal.debug@workingSets=Graal,Debug
+
+# graal.debug.test
+project@com.oracle.graal.debug.test@subDir=graal
+project@com.oracle.graal.debug.test@sourceDirs=src
+project@com.oracle.graal.debug.test@dependencies=JUNIT,com.oracle.graal.debug
+project@com.oracle.graal.debug.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.debug.test@javaCompliance=1.8
+project@com.oracle.graal.debug.test@workingSets=Graal,Debug,Test
+
+# graal.lir
+project@com.oracle.graal.lir@subDir=graal
+project@com.oracle.graal.lir@sourceDirs=src
+project@com.oracle.graal.lir@dependencies=com.oracle.graal.compiler.common,com.oracle.graal.asm,com.oracle.graal.debug
+project@com.oracle.graal.lir@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.lir@javaCompliance=1.8
+project@com.oracle.graal.lir@workingSets=Graal,LIR
+
+# graal.lir.test
+project@com.oracle.graal.lir.test@subDir=graal
+project@com.oracle.graal.lir.test@sourceDirs=src
+project@com.oracle.graal.lir.test@dependencies=JUNIT,com.oracle.graal.lir
+project@com.oracle.graal.lir.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.lir.test@javaCompliance=1.8
+project@com.oracle.graal.lir.test@workingSets=Graal,LIR
+
+# graal.lir.amd64
+project@com.oracle.graal.lir.amd64@subDir=graal
+project@com.oracle.graal.lir.amd64@sourceDirs=src
+project@com.oracle.graal.lir.amd64@dependencies=com.oracle.graal.lir,com.oracle.graal.asm.amd64
+project@com.oracle.graal.lir.amd64@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.lir.amd64@javaCompliance=1.8
+project@com.oracle.graal.lir.amd64@workingSets=Graal,LIR,AMD64
+
+# graal.lir.ptx
+project@com.oracle.graal.lir.ptx@subDir=graal
+project@com.oracle.graal.lir.ptx@sourceDirs=src
+project@com.oracle.graal.lir.ptx@dependencies=com.oracle.graal.asm.ptx
+project@com.oracle.graal.lir.ptx@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.lir.ptx@javaCompliance=1.8
+project@com.oracle.graal.lir.ptx@workingSets=Graal,LIR,PTX
+
+# graal.lir.sparc
+project@com.oracle.graal.lir.sparc@subDir=graal
+project@com.oracle.graal.lir.sparc@sourceDirs=src
+project@com.oracle.graal.lir.sparc@dependencies=com.oracle.graal.asm.sparc
+project@com.oracle.graal.lir.sparc@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.lir.sparc@javaCompliance=1.8
+project@com.oracle.graal.lir.sparc@workingSets=Graal,LIR,SPARC
+
+# graal.alloc
+project@com.oracle.graal.alloc@subDir=graal
+project@com.oracle.graal.alloc@sourceDirs=src
+project@com.oracle.graal.alloc@dependencies=com.oracle.graal.compiler.common
+project@com.oracle.graal.alloc@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.alloc@javaCompliance=1.8
+project@com.oracle.graal.alloc@workingSets=Graal
+
+# graal.word
+project@com.oracle.graal.word@subDir=graal
+project@com.oracle.graal.word@sourceDirs=src
+project@com.oracle.graal.word@dependencies=com.oracle.graal.phases
+project@com.oracle.graal.word@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.word@javaCompliance=1.8
+project@com.oracle.graal.word@workingSets=API,Graal
+
+# graal.replacements
+project@com.oracle.graal.replacements@subDir=graal
+project@com.oracle.graal.replacements@sourceDirs=src
+project@com.oracle.graal.replacements@dependencies=com.oracle.graal.compiler,com.oracle.graal.java,com.oracle.graal.word
+project@com.oracle.graal.replacements@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.replacements@javaCompliance=1.8
+project@com.oracle.graal.replacements@annotationProcessors=com.oracle.graal.replacements.verifier,com.oracle.graal.service.processor
+project@com.oracle.graal.replacements@workingSets=Graal,Replacements
+
+# graal.replacements.amd64
+project@com.oracle.graal.replacements.amd64@subDir=graal
+project@com.oracle.graal.replacements.amd64@sourceDirs=src
+project@com.oracle.graal.replacements.amd64@dependencies=com.oracle.graal.replacements
+project@com.oracle.graal.replacements.amd64@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.replacements.amd64@javaCompliance=1.8
+project@com.oracle.graal.replacements.amd64@annotationProcessors=com.oracle.graal.service.processor
+project@com.oracle.graal.replacements.amd64@workingSets=Graal,Replacements,AMD64
+
+# graal.replacements.hsail
+project@com.oracle.graal.replacements.hsail@subDir=graal
+project@com.oracle.graal.replacements.hsail@sourceDirs=src
+project@com.oracle.graal.replacements.hsail@dependencies=com.oracle.graal.compiler.hsail
+project@com.oracle.graal.replacements.hsail@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.replacements.hsail@javaCompliance=1.8
+project@com.oracle.graal.replacements.hsail@workingSets=Graal,Replacements,HSAIL
+
+# graal.replacements.test
+project@com.oracle.graal.replacements.test@subDir=graal
+project@com.oracle.graal.replacements.test@sourceDirs=src
+project@com.oracle.graal.replacements.test@dependencies=com.oracle.graal.compiler.test,com.oracle.graal.replacements
+project@com.oracle.graal.replacements.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.replacements.test@javaCompliance=1.8
+project@com.oracle.graal.replacements.test@workingSets=Graal,Replacements,Test
+
+# graal.replacements.verifier
+project@com.oracle.graal.replacements.verifier@subDir=graal
+project@com.oracle.graal.replacements.verifier@sourceDirs=src
+project@com.oracle.graal.replacements.verifier@dependencies=com.oracle.graal.api.replacements,com.oracle.graal.graph
+project@com.oracle.graal.replacements.verifier@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.replacements.verifier@javaCompliance=1.8
+project@com.oracle.graal.replacements.verifier@workingSets=Graal,Replacements
+
+# graal.nodes
+project@com.oracle.graal.nodes@subDir=graal
+project@com.oracle.graal.nodes@sourceDirs=src
+project@com.oracle.graal.nodes@dependencies=com.oracle.graal.graph,com.oracle.graal.api.replacements,com.oracle.graal.lir
+project@com.oracle.graal.nodes@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.nodes@javaCompliance=1.8
+project@com.oracle.graal.nodes@annotationProcessors=com.oracle.graal.replacements.verifier
+project@com.oracle.graal.nodes@workingSets=Graal,Graph
+
+# graal.nodes.test
+project@com.oracle.graal.nodes.test@subDir=graal
+project@com.oracle.graal.nodes.test@sourceDirs=src
+project@com.oracle.graal.nodes.test@dependencies=com.oracle.graal.compiler.test
+project@com.oracle.graal.nodes.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.nodes.test@javaCompliance=1.8
+project@com.oracle.graal.nodes.test@workingSets=Graal,Graph
+
+# graal.phases
+project@com.oracle.graal.phases@subDir=graal
+project@com.oracle.graal.phases@sourceDirs=src
+project@com.oracle.graal.phases@dependencies=com.oracle.graal.nodes
+project@com.oracle.graal.phases@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.phases@javaCompliance=1.8
+project@com.oracle.graal.phases@workingSets=Graal,Phases
+
+# graal.phases.common
+project@com.oracle.graal.phases.common@subDir=graal
+project@com.oracle.graal.phases.common@sourceDirs=src
+project@com.oracle.graal.phases.common@dependencies=com.oracle.graal.phases
+project@com.oracle.graal.phases.common@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.phases.common@javaCompliance=1.8
+project@com.oracle.graal.phases.common@workingSets=Graal,Phases
+
+# graal.virtual
+project@com.oracle.graal.virtual@subDir=graal
+project@com.oracle.graal.virtual@sourceDirs=src
+project@com.oracle.graal.virtual@dependencies=com.oracle.graal.phases.common
+project@com.oracle.graal.virtual@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.virtual@javaCompliance=1.8
+project@com.oracle.graal.virtual@workingSets=Graal,Phases
+
+# graal.loop
+project@com.oracle.graal.loop@subDir=graal
+project@com.oracle.graal.loop@sourceDirs=src
+project@com.oracle.graal.loop@dependencies=com.oracle.graal.phases.common
+project@com.oracle.graal.loop@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.loop@javaCompliance=1.8
+project@com.oracle.graal.loop@workingSets=Graal,Phases
+
+# graal.compiler
+project@com.oracle.graal.compiler@subDir=graal
+project@com.oracle.graal.compiler@sourceDirs=src
+project@com.oracle.graal.compiler@dependencies=com.oracle.graal.virtual,com.oracle.graal.loop,com.oracle.graal.alloc
+project@com.oracle.graal.compiler@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.compiler@javaCompliance=1.8
+project@com.oracle.graal.compiler@annotationProcessors=com.oracle.graal.service.processor
+project@com.oracle.graal.compiler@workingSets=Graal
+
+# graal.compiler.amd64
+project@com.oracle.graal.compiler.amd64@subDir=graal
+project@com.oracle.graal.compiler.amd64@sourceDirs=src
+project@com.oracle.graal.compiler.amd64@dependencies=com.oracle.graal.compiler,com.oracle.graal.lir.amd64
+project@com.oracle.graal.compiler.amd64@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.compiler.amd64@javaCompliance=1.8
+project@com.oracle.graal.compiler.amd64@workingSets=Graal,AMD64
+
+# graal.compiler.amd64.test
+project@com.oracle.graal.compiler.amd64.test@subDir=graal
+project@com.oracle.graal.compiler.amd64.test@sourceDirs=src
+project@com.oracle.graal.compiler.amd64.test@dependencies=com.oracle.graal.compiler.test
+project@com.oracle.graal.compiler.amd64.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.compiler.amd64.test@javaCompliance=1.8
+project@com.oracle.graal.compiler.amd64.test@workingSets=Graal,AMD64,Test
+
+# graal.compiler.ptx
+project@com.oracle.graal.compiler.ptx@subDir=graal
+project@com.oracle.graal.compiler.ptx@sourceDirs=src
+project@com.oracle.graal.compiler.ptx@dependencies=com.oracle.graal.lir.ptx,com.oracle.graal.compiler
+project@com.oracle.graal.compiler.ptx@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.compiler.ptx@javaCompliance=1.8
+project@com.oracle.graal.compiler.ptx@workingSets=Graal,PTX
+
+# graal.compiler.ptx.test
+project@com.oracle.graal.compiler.ptx.test@subDir=graal
+project@com.oracle.graal.compiler.ptx.test@sourceDirs=src
+project@com.oracle.graal.compiler.ptx.test@dependencies=com.oracle.graal.hotspot.ptx,com.oracle.graal.compiler.test
+project@com.oracle.graal.compiler.ptx.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.compiler.ptx.test@javaCompliance=1.8
+project@com.oracle.graal.compiler.ptx.test@workingSets=Graal,PTX,Test
+
+# graal.compiler.sparc
+project@com.oracle.graal.compiler.sparc@subDir=graal
+project@com.oracle.graal.compiler.sparc@sourceDirs=src
+project@com.oracle.graal.compiler.sparc@dependencies=com.oracle.graal.lir.sparc
+project@com.oracle.graal.compiler.sparc@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.compiler.sparc@javaCompliance=1.8
+project@com.oracle.graal.compiler.sparc@workingSets=Graal,SPARC
+
+# graal.compiler.sparc.test
+project@com.oracle.graal.compiler.sparc.test@subDir=graal
+project@com.oracle.graal.compiler.sparc.test@sourceDirs=src
+project@com.oracle.graal.compiler.sparc.test@dependencies=com.oracle.graal.compiler.test
+project@com.oracle.graal.compiler.sparc.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.compiler.sparc.test@javaCompliance=1.8
+project@com.oracle.graal.compiler.sparc.test@workingSets=Graal,SPARC,Test
+
+# graal.runtime
+project@com.oracle.graal.runtime@subDir=graal
+project@com.oracle.graal.runtime@sourceDirs=src
+project@com.oracle.graal.runtime@dependencies=com.oracle.graal.compiler
+project@com.oracle.graal.runtime@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.runtime@javaCompliance=1.8
+project@com.oracle.graal.runtime@workingSets=Graal
+
+# graal.bytecode
+project@com.oracle.graal.bytecode@subDir=graal
+project@com.oracle.graal.bytecode@sourceDirs=src
+project@com.oracle.graal.bytecode@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.bytecode@javaCompliance=1.8
+project@com.oracle.graal.bytecode@workingSets=Graal,Java
+
+# graal.java
+project@com.oracle.graal.java@subDir=graal
+project@com.oracle.graal.java@sourceDirs=src
+project@com.oracle.graal.java@dependencies=com.oracle.graal.phases,com.oracle.graal.bytecode
+project@com.oracle.graal.java@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.java@javaCompliance=1.8
+project@com.oracle.graal.java@workingSets=Graal,Java
+
+# graal.compiler.common
+project@com.oracle.graal.compiler.common@subDir=graal
+project@com.oracle.graal.compiler.common@sourceDirs=src
+project@com.oracle.graal.compiler.common@dependencies=com.oracle.graal.api.code,com.oracle.graal.options
+project@com.oracle.graal.compiler.common@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.compiler.common@javaCompliance=1.8
+project@com.oracle.graal.compiler.common@workingSets=Graal,Java
+
+# graal.baseline
+project@com.oracle.graal.baseline@subDir=graal
+project@com.oracle.graal.baseline@sourceDirs=src
+project@com.oracle.graal.baseline@dependencies=com.oracle.graal.compiler,com.oracle.graal.java
+project@com.oracle.graal.baseline@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.baseline@javaCompliance=1.8
+project@com.oracle.graal.baseline@workingSets=Graal,Java
+
+# graal.java.decompiler
+project@com.oracle.graal.java.decompiler@subDir=graal
+project@com.oracle.graal.java.decompiler@sourceDirs=src
+project@com.oracle.graal.java.decompiler@dependencies=com.oracle.graal.java
+project@com.oracle.graal.java.decompiler@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.java.decompiler@javaCompliance=1.8
+project@com.oracle.graal.java.decompiler@workingSets=Graal
+
+# graal.java.decompiler.test
+project@com.oracle.graal.java.decompiler.test@subDir=graal
+project@com.oracle.graal.java.decompiler.test@sourceDirs=src
+project@com.oracle.graal.java.decompiler.test@dependencies=JUNIT,com.oracle.graal.printer,com.oracle.graal.runtime
+project@com.oracle.graal.java.decompiler.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.java.decompiler.test@javaCompliance=1.8
+project@com.oracle.graal.java.decompiler.test@workingSets=Graal,Test
+
+# graal.printer
+project@com.oracle.graal.printer@subDir=graal
+project@com.oracle.graal.printer@sourceDirs=src
+project@com.oracle.graal.printer@dependencies=com.oracle.graal.java.decompiler,com.oracle.graal.compiler
+project@com.oracle.graal.printer@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.printer@javaCompliance=1.8
+project@com.oracle.graal.printer@workingSets=Graal,Graph
+
+# graal.test
+project@com.oracle.graal.test@subDir=graal
+project@com.oracle.graal.test@sourceDirs=src
+project@com.oracle.graal.test@dependencies=JUNIT,com.oracle.graal.debug
+project@com.oracle.graal.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.test@javaCompliance=1.8
+project@com.oracle.graal.test@workingSets=Graal,Test
+
+# graal.compiler.test
+project@com.oracle.graal.compiler.test@subDir=graal
+project@com.oracle.graal.compiler.test@sourceDirs=src
+project@com.oracle.graal.compiler.test@dependencies=com.oracle.graal.test,com.oracle.graal.printer,com.oracle.graal.runtime,com.oracle.graal.baseline,JAVA_ALLOCATION_INSTRUMENTER
+project@com.oracle.graal.compiler.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.compiler.test@javaCompliance=1.8
+project@com.oracle.graal.compiler.test@workingSets=Graal,Test
+
+# graal.jtt
+project@com.oracle.graal.jtt@subDir=graal
+project@com.oracle.graal.jtt@sourceDirs=src
+project@com.oracle.graal.jtt@dependencies=com.oracle.graal.compiler.test,ASM
+project@com.oracle.graal.jtt@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.jtt@javaCompliance=1.8
+project@com.oracle.graal.jtt@workingSets=Graal,Test
+
+# graal.asm
+project@com.oracle.graal.asm@subDir=graal
+project@com.oracle.graal.asm@sourceDirs=src
+project@com.oracle.graal.asm@dependencies=com.oracle.graal.api.code
+project@com.oracle.graal.asm@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.asm@javaCompliance=1.8
+project@com.oracle.graal.asm@workingSets=Graal,Assembler
+
+# graal.asm.test
+project@com.oracle.graal.asm.test@subDir=graal
+project@com.oracle.graal.asm.test@sourceDirs=src
+project@com.oracle.graal.asm.test@dependencies=com.oracle.graal.test,com.oracle.graal.runtime
+project@com.oracle.graal.asm.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.asm.test@javaCompliance=1.8
+project@com.oracle.graal.asm.test@workingSets=Graal,Assembler,Test
+
+# graal.asm.amd64
+project@com.oracle.graal.asm.amd64@subDir=graal
+project@com.oracle.graal.asm.amd64@sourceDirs=src
+project@com.oracle.graal.asm.amd64@dependencies=com.oracle.graal.asm,com.oracle.graal.amd64
+project@com.oracle.graal.asm.amd64@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.asm.amd64@javaCompliance=1.8
+project@com.oracle.graal.asm.amd64@workingSets=Graal,Assembler,AMD64
+
+# graal.asm.amd64.test
+project@com.oracle.graal.asm.amd64.test@subDir=graal
+project@com.oracle.graal.asm.amd64.test@sourceDirs=src
+project@com.oracle.graal.asm.amd64.test@dependencies=com.oracle.graal.asm.test,com.oracle.graal.asm.amd64
+project@com.oracle.graal.asm.amd64.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.asm.amd64.test@javaCompliance=1.8
+project@com.oracle.graal.asm.amd64.test@workingSets=Graal,Assembler,AMD64,Test
+
+# graal.gpu
+project@com.oracle.graal.gpu@subDir=graal
+project@com.oracle.graal.gpu@sourceDirs=src
+project@com.oracle.graal.gpu@dependencies=com.oracle.graal.nodes
+project@com.oracle.graal.gpu@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.gpu@javaCompliance=1.8
+
+# graal.hsail
+project@com.oracle.graal.hsail@subDir=graal
+project@com.oracle.graal.hsail@sourceDirs=src
+project@com.oracle.graal.hsail@dependencies=com.oracle.graal.api.code
+project@com.oracle.graal.hsail@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.hsail@javaCompliance=1.8
+
+# graal.lir.hsail
+project@com.oracle.graal.lir.hsail@subDir=graal
+project@com.oracle.graal.lir.hsail@sourceDirs=src
+project@com.oracle.graal.lir.hsail@dependencies=com.oracle.graal.lir,com.oracle.graal.asm.hsail
+project@com.oracle.graal.lir.hsail@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.lir.hsail@javaCompliance=1.8
+
+# graal.compiler.hsail
+project@com.oracle.graal.compiler.hsail@subDir=graal
+project@com.oracle.graal.compiler.hsail@sourceDirs=src
+project@com.oracle.graal.compiler.hsail@dependencies=com.oracle.graal.compiler,com.oracle.graal.lir.hsail
+project@com.oracle.graal.compiler.hsail@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.compiler.hsail@javaCompliance=1.8
+
+# graal.compiler.hsail.test.infra - HSAIL compiler test infrastructure
+project@com.oracle.graal.compiler.hsail.test.infra@subDir=graal
+project@com.oracle.graal.compiler.hsail.test.infra@sourceDirs=src
+project@com.oracle.graal.compiler.hsail.test.infra@dependencies=com.oracle.graal.test,com.oracle.graal.hotspot.hsail,OKRA_WITH_SIM
+project@com.oracle.graal.compiler.hsail.test.infra@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.compiler.hsail.test.infra@javaCompliance=1.8
+
+# graal.compiler.hsail.test
+project@com.oracle.graal.compiler.hsail.test@subDir=graal
+project@com.oracle.graal.compiler.hsail.test@sourceDirs=src
+project@com.oracle.graal.compiler.hsail.test@dependencies=com.oracle.graal.compiler.hsail.test.infra,com.oracle.graal.compiler.test,VECMATH
+project@com.oracle.graal.compiler.hsail.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.compiler.hsail.test@javaCompliance=1.8
+
+# graal.asm.hsail
+project@com.oracle.graal.asm.hsail@subDir=graal
+project@com.oracle.graal.asm.hsail@sourceDirs=src
+project@com.oracle.graal.asm.hsail@dependencies=com.oracle.graal.hsail,OKRA,com.oracle.graal.asm,com.oracle.graal.compiler.common
+project@com.oracle.graal.asm.hsail@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.asm.hsail@javaCompliance=1.8
+
+# graal.asm.ptx
+project@com.oracle.graal.asm.ptx@subDir=graal
+project@com.oracle.graal.asm.ptx@sourceDirs=src
+project@com.oracle.graal.asm.ptx@dependencies=com.oracle.graal.lir
+project@com.oracle.graal.asm.ptx@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.asm.ptx@javaCompliance=1.8
+project@com.oracle.graal.asm.ptx@workingSets=Graal,Assembler,PTX
+
+# graal.asm.sparc
+project@com.oracle.graal.asm.sparc@subDir=graal
+project@com.oracle.graal.asm.sparc@sourceDirs=src
+project@com.oracle.graal.asm.sparc@dependencies=com.oracle.graal.hotspot,com.oracle.graal.sparc
+project@com.oracle.graal.asm.sparc@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.asm.sparc@javaCompliance=1.8
+project@com.oracle.graal.asm.sparc@workingSets=Graal,Assembler,SPARC
+
+# truffle.api
+project@com.oracle.truffle.api@subDir=graal
+project@com.oracle.truffle.api@sourceDirs=src
+project@com.oracle.truffle.api@dependencies=
+project@com.oracle.truffle.api@javaCompliance=1.7
+project@com.oracle.truffle.api@workingSets=API,Truffle
+
+# truffle.api.test
+project@com.oracle.truffle.api.test@subDir=graal
+project@com.oracle.truffle.api.test@sourceDirs=src
+project@com.oracle.truffle.api.test@dependencies=com.oracle.truffle.api,JUNIT
+project@com.oracle.truffle.api.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.truffle.api.test@javaCompliance=1.7
+project@com.oracle.truffle.api.test@workingSets=API,Truffle,Test
+
+# truffle.api.dsl
+project@com.oracle.truffle.api.dsl@subDir=graal
+project@com.oracle.truffle.api.dsl@sourceDirs=src
+project@com.oracle.truffle.api.dsl@dependencies=com.oracle.truffle.api
+project@com.oracle.truffle.api.dsl@checkstyle=com.oracle.truffle.api
+project@com.oracle.truffle.api.dsl@javaCompliance=1.7
+project@com.oracle.truffle.api.dsl@workingSets=API,Truffle,Codegen
+
+# truffle.api.dsl.test
+project@com.oracle.truffle.api.dsl.test@subDir=graal
+project@com.oracle.truffle.api.dsl.test@sourceDirs=src
+project@com.oracle.truffle.api.dsl.test@dependencies=com.oracle.truffle.api.dsl,JUNIT
+project@com.oracle.truffle.api.dsl.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.truffle.api.dsl.test@javaCompliance=1.7
+project@com.oracle.truffle.api.dsl.test@annotationProcessors=com.oracle.truffle.dsl.processor
+project@com.oracle.truffle.api.dsl.test@workingSets=API,Truffle,Codegen,Test
+
+# truffle.dsl.processor
+project@com.oracle.truffle.dsl.processor@subDir=graal
+project@com.oracle.truffle.dsl.processor@sourceDirs=src
+project@com.oracle.truffle.dsl.processor@dependencies=com.oracle.truffle.api.dsl
+project@com.oracle.truffle.dsl.processor@checkstyle=com.oracle.graal.graph
+project@com.oracle.truffle.dsl.processor@javaCompliance=1.7
+project@com.oracle.truffle.dsl.processor@workingSets=Truffle,Codegen
+
+# truffle.sl
+project@com.oracle.truffle.sl@subDir=graal
+project@com.oracle.truffle.sl@sourceDirs=src
+project@com.oracle.truffle.sl@dependencies=com.oracle.truffle.api.dsl
+project@com.oracle.truffle.sl@checkstyle=com.oracle.graal.graph
+project@com.oracle.truffle.sl@javaCompliance=1.8
+project@com.oracle.truffle.sl@annotationProcessors=com.oracle.truffle.dsl.processor
+project@com.oracle.truffle.sl@workingSets=Truffle,SimpleLanguage
+
+# truffle.sl.test
+project@com.oracle.truffle.sl.test@subDir=graal
+project@com.oracle.truffle.sl.test@sourceDirs=src
+project@com.oracle.truffle.sl.test@dependencies=com.oracle.truffle.sl,JUNIT
+project@com.oracle.truffle.sl.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.truffle.sl.test@javaCompliance=1.8
+project@com.oracle.truffle.sl.test@workingSets=Truffle,SimpleLanguage,Test
+
+# graal.truffle
+project@com.oracle.graal.truffle@subDir=graal
+project@com.oracle.graal.truffle@sourceDirs=src
+project@com.oracle.graal.truffle@dependencies=com.oracle.truffle.api,com.oracle.graal.replacements,com.oracle.graal.runtime,com.oracle.graal.printer
+project@com.oracle.graal.truffle@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.truffle@javaCompliance=1.8
+project@com.oracle.graal.truffle@workingSets=Graal,Truffle
+
+# graal.truffle.test
+project@com.oracle.graal.truffle.test@subDir=graal
+project@com.oracle.graal.truffle.test@sourceDirs=src
+project@com.oracle.graal.truffle.test@dependencies=com.oracle.graal.truffle,com.oracle.graal.compiler.test,com.oracle.truffle.sl.test
+project@com.oracle.graal.truffle.test@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.truffle.test@javaCompliance=1.8
+project@com.oracle.graal.truffle.test@workingSets=Graal,Truffle,Test
+
+# graal.truffle.hotspot
+project@com.oracle.graal.truffle.hotspot@subDir=graal
+project@com.oracle.graal.truffle.hotspot@sourceDirs=src
+project@com.oracle.graal.truffle.hotspot@dependencies=com.oracle.graal.truffle,com.oracle.graal.hotspot
+project@com.oracle.graal.truffle.hotspot@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.truffle.hotspot@javaCompliance=1.8
+project@com.oracle.graal.truffle.hotspot@annotationProcessors=com.oracle.graal.service.processor
+project@com.oracle.graal.truffle.hotspot@workingSets=Graal,Truffle
+
+# graal.truffle.hotspot.amd64
+project@com.oracle.graal.truffle.hotspot.amd64@subDir=graal
+project@com.oracle.graal.truffle.hotspot.amd64@sourceDirs=src
+project@com.oracle.graal.truffle.hotspot.amd64@dependencies=com.oracle.graal.truffle.hotspot,com.oracle.graal.asm.amd64
+project@com.oracle.graal.truffle.hotspot.amd64@checkstyle=com.oracle.graal.graph
+project@com.oracle.graal.truffle.hotspot.amd64@javaCompliance=1.8
+project@com.oracle.graal.truffle.hotspot.amd64@annotationProcessors=com.oracle.graal.service.processor
+project@com.oracle.graal.truffle.hotspot.amd64@workingSets=Graal,Truffle
--- a/mxtool/mx.py	Mon Sep 22 09:21:29 2014 -0700
+++ b/mxtool/mx.py	Mon Sep 22 09:29:37 2014 -0700
@@ -847,7 +847,6 @@
                 if attrs is None:
                     attrs = OrderedDict()
                     m[name] = attrs
-                value = expandvars_in_property(value)
                 attrs[attr] = value
     return suite
 
@@ -965,6 +964,22 @@
     suite = None
     dictName = 'suite'
 
+    def expand(value, context):
+        if isinstance(value, types.DictionaryType):
+            for n, v in value.iteritems():
+                value[n] = expand(v, context + [n])
+        elif isinstance(value, types.ListType):
+            for i in range(len(value)):
+                value[i] = expand(value[i], context + [str(i)])
+        else:
+            if not isinstance(value, types.StringTypes):
+                abort('value of ' + '.'.join(context) + ' is of unexpected type ' + str(type(value)))
+            value = expandvars(value)
+            if '$' in value or '%' in value:
+                abort('value of ' + '.'.join(context) + ' contains an undefined environment variable: ' + value)
+
+        return value
+
     moduleName = 'projects'
     modulePath = join(mxDir, moduleName + '.py')
     while exists(modulePath):
@@ -996,7 +1011,7 @@
 
         if not hasattr(module, dictName):
             abort(modulePath + ' must define a variable named "' + dictName + '"')
-        d = getattr(module, dictName)
+        d = expand(getattr(module, dictName), [dictName])
         sections = ['projects', 'libraries', 'jrelibraries', 'distributions'] + (['distribution_extensions'] if suite else ['name', 'mxversion'])
         unknown = d.viewkeys() - sections
         if unknown: