Mercurial > hg > graal-compiler
changeset 8912:9631f95971a3
new GraalOption.BootstrapReplacements for debugging purposes
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Mon, 08 Apr 2013 14:19:52 +0200 |
parents | 5cf8471a4034 |
children | 653110156f8a |
files | graal/com.oracle.graal.api.replacements/src/com/oracle/graal/api/replacements/Replacements.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java |
diffstat | 4 files changed, 25 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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<ResolvedJavaMethod> getAllReplacements(); }
--- 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); + } + } } });
--- 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 = ____;
--- 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<ResolvedJavaMethod> getAllReplacements() { + HashSet<ResolvedJavaMethod> result = new HashSet<>(); + result.addAll(registeredSnippets); + result.addAll(registeredMethodSubstitutions.keySet()); + result.addAll(registerMacroSubstitutions.keySet()); + return result; + } }