# HG changeset patch # User Roland Schatz # Date 1366037801 -7200 # Node ID dedfff70763ffe6e073e8ab73651d7c2c770788b # Parent 3476bda8dd785180a9cf10b531dc3086ed9b8dfb Compiler configurations. diff -r 3476bda8dd78 -r dedfff70763f graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Mon Apr 15 16:47:01 2013 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Mon Apr 15 16:56:41 2013 +0200 @@ -31,7 +31,6 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.compiler.alloc.*; import com.oracle.graal.compiler.gen.*; -import com.oracle.graal.compiler.phases.*; import com.oracle.graal.compiler.target.*; import com.oracle.graal.debug.*; import com.oracle.graal.lir.*; @@ -140,7 +139,7 @@ plan.runPhases(PhasePosition.HIGH_LEVEL, graph); - Suites.HIGH_TIER.apply(graph, highTierContext); + Suites.DEFAULT.highTier.apply(graph, highTierContext); new LoweringPhase(target, runtime, replacements, assumptions).apply(graph); diff -r 3476bda8dd78 -r dedfff70763f graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/BasicConfiguration.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/BasicConfiguration.java Mon Apr 15 16:56:41 2013 +0200 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 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.compiler.phases; + +import com.oracle.graal.api.runtime.*; +import com.oracle.graal.phases.*; +import com.oracle.graal.phases.tiers.*; + +@ServiceProvider(CompilerConfiguration.class) +public class BasicConfiguration implements CompilerConfiguration { + + public PhaseSuite createHighTier() { + return new HighTier(); + } +} diff -r 3476bda8dd78 -r dedfff70763f graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/Suites.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/Suites.java Mon Apr 15 16:47:01 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* - * Copyright (c) 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.compiler.phases; - -import com.oracle.graal.phases.*; -import com.oracle.graal.phases.tiers.*; - -public class Suites { - - public static final PhaseSuite HIGH_TIER = new HighTier(); -} diff -r 3476bda8dd78 -r dedfff70763f graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java --- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java Mon Apr 15 16:47:01 2013 +0200 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java Mon Apr 15 16:56:41 2013 +0200 @@ -36,6 +36,8 @@ public static int Threads = 4; + public static String CompilerConfiguration = "basic"; + // inlining settings public static boolean Inline = true; public static boolean AlwaysInlineIntrinsics = ____; diff -r 3476bda8dd78 -r dedfff70763f graal/com.oracle.graal.phases/src/com/oracle/graal/phases/tiers/CompilerConfiguration.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/tiers/CompilerConfiguration.java Mon Apr 15 16:56:41 2013 +0200 @@ -0,0 +1,30 @@ +/* + * Copyright (c) 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.phases.tiers; + +import com.oracle.graal.phases.*; + +public interface CompilerConfiguration { + + PhaseSuite createHighTier(); +} diff -r 3476bda8dd78 -r dedfff70763f graal/com.oracle.graal.phases/src/com/oracle/graal/phases/tiers/Suites.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/tiers/Suites.java Mon Apr 15 16:56:41 2013 +0200 @@ -0,0 +1,67 @@ +/* + * Copyright (c) 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.phases.tiers; + +import java.util.*; + +import com.oracle.graal.graph.*; +import com.oracle.graal.phases.*; + +public final class Suites { + + public final PhaseSuite highTier; + + public static final Suites DEFAULT; + + private static final Map configurations; + + static { + configurations = new HashMap<>(); + for (CompilerConfiguration config : ServiceLoader.loadInstalled(CompilerConfiguration.class)) { + String name = config.getClass().getSimpleName(); + if (name.endsWith("Configuration")) { + name = name.substring(0, name.length() - "Configuration".length()); + } + configurations.put(name.toLowerCase(), config); + } + + DEFAULT = createDefaultSuites(); + } + + private Suites(CompilerConfiguration config) { + highTier = config.createHighTier(); + } + + public static Suites createDefaultSuites() { + return createSuites(GraalOptions.CompilerConfiguration); + } + + public static Suites createSuites(String name) { + CompilerConfiguration config = configurations.get(name); + if (config == null) { + throw new GraalInternalError("unknown compiler configuration: " + name); + } + return new Suites(config); + } + +} diff -r 3476bda8dd78 -r dedfff70763f make/build-graal.xml --- a/make/build-graal.xml Mon Apr 15 16:47:01 2013 +0200 +++ b/make/build-graal.xml Mon Apr 15 16:56:41 2013 +0200 @@ -32,6 +32,7 @@ + @@ -49,7 +50,6 @@ - diff -r 3476bda8dd78 -r dedfff70763f mx/projects --- a/mx/projects Mon Apr 15 16:47:01 2013 +0200 +++ b/mx/projects Mon Apr 15 16:56:41 2013 +0200 @@ -207,7 +207,7 @@ # 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,com.oracle.graal.api.runtime +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.7 project@com.oracle.graal.replacements@annotationProcessors=com.oracle.graal.replacements.verifier,com.oracle.graal.service.processor @@ -271,9 +271,10 @@ # 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,com.oracle.graal.lir +project@com.oracle.graal.compiler@dependencies=com.oracle.graal.api.runtime,com.oracle.graal.virtual,com.oracle.graal.loop,com.oracle.graal.alloc,com.oracle.graal.lir project@com.oracle.graal.compiler@checkstyle=com.oracle.graal.graph project@com.oracle.graal.compiler@javaCompliance=1.7 +project@com.oracle.graal.compiler@annotationProcessors=com.oracle.graal.service.processor # graal.compiler.amd64 project@com.oracle.graal.compiler.amd64@subDir=graal