# HG changeset patch # User Lukas Stadler # Date 1365423592 -7200 # Node ID 9631f95971a3ef95693bec3efc8f11dcac8b49f3 # Parent 5cf8471a40343f0c3248f4dca6e7b520e137b69b new GraalOption.BootstrapReplacements for debugging purposes diff -r 5cf8471a4034 -r 9631f95971a3 graal/com.oracle.graal.api.replacements/src/com/oracle/graal/api/replacements/Replacements.java --- a/graal/com.oracle.graal.api.replacements/src/com/oracle/graal/api/replacements/Replacements.java Thu Apr 04 18:41:39 2013 +0200 +++ b/graal/com.oracle.graal.api.replacements/src/com/oracle/graal/api/replacements/Replacements.java Mon Apr 08 14:19:52 2013 +0200 @@ -22,6 +22,8 @@ */ package com.oracle.graal.api.replacements; +import java.util.*; + import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.nodes.*; @@ -69,4 +71,10 @@ * macro} substitutions defined by a given class. */ void registerSubstitutions(Class substitutions); + + /** + * Returns all methods that are currently registered as method/macro substitution or as a + * snippet. + */ + Collection getAllReplacements(); } diff -r 5cf8471a4034 -r 9631f95971a3 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java Thu Apr 04 18:41:39 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java Mon Apr 08 14:19:52 2013 +0200 @@ -156,6 +156,13 @@ provider.registerReplacements(replacements); } runtime.registerReplacements(replacements); + if (GraalOptions.BootstrapReplacements) { + for (ResolvedJavaMethod method : replacements.getAllReplacements()) { + replacements.getMacroSubstitution(method); + replacements.getMethodSubstitution(method); + replacements.getSnippet(method); + } + } } }); diff -r 5cf8471a4034 -r 9631f95971a3 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 Thu Apr 04 18:41:39 2013 +0200 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java Mon Apr 08 14:19:52 2013 +0200 @@ -116,6 +116,7 @@ // Debug settings: public static boolean Debug = true; public static boolean DebugReplacements = ____; + public static boolean BootstrapReplacements = ____; public static boolean PerThreadDebugValues = ____; public static boolean SummarizeDebugValues = ____; public static boolean SummarizePerPhase = ____; diff -r 5cf8471a4034 -r 9631f95971a3 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Thu Apr 04 18:41:39 2013 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Mon Apr 08 14:19:52 2013 +0200 @@ -474,4 +474,13 @@ } return pool; } + + @Override + public Collection getAllReplacements() { + HashSet result = new HashSet<>(); + result.addAll(registeredSnippets); + result.addAll(registeredMethodSubstitutions.keySet()); + result.addAll(registerMacroSubstitutions.keySet()); + return result; + } }