Add a way to specify optimisitic optimizations when compiling using GraalRuntime

Rémi Forax forax at univ-mlv.fr
Tue Apr 3 14:47:36 PDT 2012


On 04/03/2012 04:47 PM, Thomas Wuerthinger wrote:
> Thanks for your third patch within a couple of days! You keep us quite 
> busy here, which is great ;).

In fact, this patch introduces a kind of worm, it adds a dependency 
between graal.nodes
and graal.compiler but graal.compiler also transitively depends on 
graal.nodes
and the mx script seems not able to cope with circular dependencies :(

I don't know if mx.py can be changed but the patch below fix the problem.

>
> - thomas

Rémi

diff --git a/mx/projects b/mx/projects
--- a/mx/projects
+++ b/mx/projects
@@ -69,13 +69,6 @@
  project at com.oracle.graal.snippets@checkstyle=com.oracle.graal.graph
  project at com.oracle.graal.snippets@javaCompliance=1.7

-# graal.nodes
-project at com.oracle.graal.nodes@subDir=graal
-project at com.oracle.graal.nodes@sourceDirs=src,test
-project at com.oracle.graal.nodes@dependencies=com.oracle.max.cri,com.oracle.graal.graph
-project at com.oracle.graal.nodes@checkstyle=com.oracle.graal.graph
-project at com.oracle.graal.nodes@javaCompliance=1.7
-
  # graal.compiler
  project at com.oracle.graal.compiler@subDir=graal
  project at com.oracle.graal.compiler@sourceDirs=src
@@ -83,6 +76,13 @@
  project at com.oracle.graal.compiler@checkstyle=com.oracle.graal.graph
  project at com.oracle.graal.compiler@javaCompliance=1.7

+# graal.nodes
+project at com.oracle.graal.nodes@subDir=graal
+project at com.oracle.graal.nodes@sourceDirs=src,test
+project at com.oracle.graal.nodes@dependencies=com.oracle.max.cri,com.oracle.graal.graph,com.oracle.graal.compiler
+project at com.oracle.graal.nodes@checkstyle=com.oracle.graal.graph
+project at com.oracle.graal.nodes@javaCompliance=1.7
+
  # graal.java
  project at com.oracle.graal.java@subDir=graal
  project at com.oracle.graal.java@sourceDirs=src
diff --git a/mxtool/mx.py b/mxtool/mx.py
--- a/mxtool/mx.py
+++ b/mxtool/mx.py
@@ -180,6 +180,8 @@
          """
          if self in deps:
              return deps
+        if includeSelf:
+            deps.append(self)
          for name in self.deps:
              assert name != self.name
              dep = _libs.get(name, None)
@@ -190,8 +192,6 @@
                  dep = project(name)
                  if not dep in deps:
                      dep.all_deps(deps, includeLibs)
-        if not self in deps and includeSelf:
-            deps.append(self)
          return deps

      def _compute_max_dep_distances(self, name, distances, dist):



More information about the graal-dev mailing list