# HG changeset patch # User Doug Simon # Date 1340883399 -7200 # Node ID 429accae15aa60d545f71b64c0339db8b6746f4b # Parent 10341299528c4f2eaaaaf5ea806677326f126d91 moved some methods from CodeUtil to MetaUtil renamed BaseUnresolved[Method|Field] to Unresolved[Method|Field] and moved them to the graal.api.meta project diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CodeUtil.java --- a/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CodeUtil.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CodeUtil.java Thu Jun 28 13:36:39 2012 +0200 @@ -22,42 +22,17 @@ */ package com.oracle.graal.api.code; -import static java.lang.reflect.Modifier.*; - -import java.lang.annotation.*; import java.util.*; import com.oracle.graal.api.meta.*; -import com.oracle.graal.api.meta.JavaTypeProfile.*; /** - * Miscellaneous collection of utility methods used in the {@code CRI} project. + * Miscellaneous collection of utility methods used by {@code com.oracle.graal.api.code} and its clients. */ public class CodeUtil { public static final String NEW_LINE = String.format("%n"); - /** - * Gets the annotation of a particular type for a formal parameter of a given method. - * - * @param annotationClass the Class object corresponding to the annotation type - * @param parameterIndex the index of a formal parameter of {@code method} - * @param method the method for which a parameter annotation is being requested - * @return the annotation of type {@code annotationClass} for the formal parameter present, else null - * @throws IndexOutOfBoundsException if {@code parameterIndex} does not denote a formal parameter - */ - public static T getParameterAnnotation(Class annotationClass, int parameterIndex, ResolvedJavaMethod method) { - if (parameterIndex >= 0) { - Annotation[][] parameterAnnotations = method.getParameterAnnotations(); - for (Annotation a : parameterAnnotations[parameterIndex]) { - if (a.annotationType() == annotationClass) { - return annotationClass.cast(a); - } - } - } - return null; - } - public static final int K = 1024; public static final int M = 1024 * 1024; @@ -113,197 +88,6 @@ } /** - * Gets a string for a given method formatted according to a given format specification. A format specification is - * composed of characters that are to be copied verbatim to the result and specifiers that denote an attribute of - * the method that is to be copied to the result. A specifier is a single character preceded by a '%' character. The - * accepted specifiers and the method attributes they denote are described below: - * - *
-     *     Specifier | Description                                          | Example(s)
-     *     ----------+------------------------------------------------------------------------------------------
-     *     'R'       | Qualified return type                                | "int" "java.lang.String"
-     *     'r'       | Unqualified return type                              | "int" "String"
-     *     'H'       | Qualified holder                                     | "java.util.Map.Entry"
-     *     'h'       | Unqualified holder                                   | "Entry"
-     *     'n'       | Method name                                          | "add"
-     *     'P'       | Qualified parameter types, separated by ', '         | "int, java.lang.String"
-     *     'p'       | Unqualified parameter types, separated by ', '       | "int, String"
-     *     'f'       | Indicator if method is unresolved, static or virtual | "unresolved" "static" "virtual"
-     *     '%'       | A '%' character                                      | "%"
-     * 
- * - * @param format a format specification - * @param method the method to be formatted - * @return the result of formatting this method according to {@code format} - * @throws IllegalFormatException if an illegal specifier is encountered in {@code format} - */ - public static String format(String format, JavaMethod method) throws IllegalFormatException { - final StringBuilder sb = new StringBuilder(); - int index = 0; - Signature sig = null; - while (index < format.length()) { - final char ch = format.charAt(index++); - if (ch == '%') { - if (index >= format.length()) { - throw new UnknownFormatConversionException("An unquoted '%' character cannot terminate a method format specification"); - } - final char specifier = format.charAt(index++); - boolean qualified = false; - switch (specifier) { - case 'R': - qualified = true; - // fall through - case 'r': { - if (sig == null) { - sig = method.signature(); - } - sb.append(MetaUtil.toJavaName(sig.returnType(null), qualified)); - break; - } - case 'H': - qualified = true; - // fall through - case 'h': { - sb.append(MetaUtil.toJavaName(method.holder(), qualified)); - break; - } - case 'n': { - sb.append(method.name()); - break; - } - case 'P': - qualified = true; - // fall through - case 'p': { - if (sig == null) { - sig = method.signature(); - } - for (int i = 0; i < sig.argumentCount(false); i++) { - if (i != 0) { - sb.append(", "); - } - sb.append(MetaUtil.toJavaName(sig.argumentTypeAt(i, null), qualified)); - } - break; - } - case 'f': { - sb.append(!(method instanceof ResolvedJavaMethod) ? "unresolved" : isStatic(((ResolvedJavaMethod) method).accessFlags()) ? "static" : "virtual"); - break; - } - case '%': { - sb.append('%'); - break; - } - default: { - throw new UnknownFormatConversionException(String.valueOf(specifier)); - } - } - } else { - sb.append(ch); - } - } - return sb.toString(); - } - - /** - * Gets a string for a given field formatted according to a given format specification. A format specification is - * composed of characters that are to be copied verbatim to the result and specifiers that denote an attribute of - * the field that is to be copied to the result. A specifier is a single character preceded by a '%' character. The - * accepted specifiers and the field attributes they denote are described below: - * - *
-     *     Specifier | Description                                          | Example(s)
-     *     ----------+------------------------------------------------------------------------------------------
-     *     'T'       | Qualified type                                       | "int" "java.lang.String"
-     *     't'       | Unqualified type                                     | "int" "String"
-     *     'H'       | Qualified holder                                     | "java.util.Map.Entry"
-     *     'h'       | Unqualified holder                                   | "Entry"
-     *     'n'       | Field name                                           | "age"
-     *     'f'       | Indicator if field is unresolved, static or instance | "unresolved" "static" "instance"
-     *     '%'       | A '%' character                                      | "%"
-     * 
- * - * @param format a format specification - * @param field the field to be formatted - * @return the result of formatting this field according to {@code format} - * @throws IllegalFormatException if an illegal specifier is encountered in {@code format} - */ - public static String format(String format, JavaField field) throws IllegalFormatException { - final StringBuilder sb = new StringBuilder(); - int index = 0; - JavaType type = field.type(); - while (index < format.length()) { - final char ch = format.charAt(index++); - if (ch == '%') { - if (index >= format.length()) { - throw new UnknownFormatConversionException("An unquoted '%' character cannot terminate a field format specification"); - } - final char specifier = format.charAt(index++); - boolean qualified = false; - switch (specifier) { - case 'T': - qualified = true; - // fall through - case 't': { - sb.append(MetaUtil.toJavaName(type, qualified)); - break; - } - case 'H': - qualified = true; - // fall through - case 'h': { - sb.append(MetaUtil.toJavaName(field.holder(), qualified)); - break; - } - case 'n': { - sb.append(field.name()); - break; - } - case 'f': { - sb.append(!(field instanceof ResolvedJavaField) ? "unresolved" : isStatic(((ResolvedJavaField) field).accessFlags()) ? "static" : "instance"); - break; - } - case '%': { - sb.append('%'); - break; - } - default: { - throw new UnknownFormatConversionException(String.valueOf(specifier)); - } - } - } else { - sb.append(ch); - } - } - return sb.toString(); - } - - /** - * Converts a Java source-language class name into the internal form. - * - * @param className the class name - * @return the internal name form of the class name - */ - public static String toInternalName(String className) { - return "L" + className.replace('.', '/') + ";"; - } - - /** - * Prepends the String {@code indentation} to every line in String {@code lines}, including a possibly non-empty - * line following the final newline. - */ - public static String indent(String lines, String indentation) { - if (lines.length() == 0) { - return lines; - } - final String newLine = "\n"; - if (lines.endsWith(newLine)) { - return indentation + (lines.substring(0, lines.length() - 1)).replace(newLine, newLine + indentation) + newLine; - } - return indentation + lines.replace(newLine, newLine + indentation); - } - - /** * Formats the values in a frame as a tabulated string. * * @param frame @@ -391,49 +175,6 @@ } /** - * Convenient shortcut for calling {@link #appendLocation(StringBuilder, ResolvedJavaMethod, int)} without having to supply a - * a {@link StringBuilder} instance and convert the result to a string. - */ - public static String toLocation(ResolvedJavaMethod method, int bci) { - return appendLocation(new StringBuilder(), method, bci).toString(); - } - - /** - * Appends a string representation of a location specified by a given method and bci to a given - * {@link StringBuilder}. If a stack trace element with a non-null file name and non-negative line number is - * {@linkplain ResolvedJavaMethod#toStackTraceElement(int) available} for the given method, then the string returned is the - * {@link StackTraceElement#toString()} value of the stack trace element, suffixed by the bci location. For example: - * - *
-     *     java.lang.String.valueOf(String.java:2930) [bci: 12]
-     * 
- * - * Otherwise, the string returned is the value of {@code CiUtil.format("%H.%n(%p)"}, suffixed by the bci location. - * For example: - * - *
-     *     java.lang.String.valueOf(int) [bci: 12]
-     * 
- * - * @param sb - * @param method - * @param bci - */ - public static StringBuilder appendLocation(StringBuilder sb, ResolvedJavaMethod method, int bci) { - if (method != null) { - StackTraceElement ste = method.toStackTraceElement(bci); - if (ste.getFileName() != null && ste.getLineNumber() > 0) { - sb.append(ste); - } else { - sb.append(CodeUtil.format("%H.%n(%p)", method)); - } - } else { - sb.append("Null method"); - } - return sb.append(" [bci: ").append(bci).append(']'); - } - - /** * Appends a formatted code position to a {@link StringBuilder}. * * @param sb the {@link StringBuilder} to append to @@ -441,7 +182,7 @@ * @return the value of {@code sb} */ public static StringBuilder append(StringBuilder sb, BytecodePosition pos) { - appendLocation(sb.append("at "), pos.getMethod(), pos.getBCI()); + MetaUtil.appendLocation(sb.append("at "), pos.getMethod(), pos.getBCI()); if (pos.getCaller() != null) { sb.append(NEW_LINE); append(sb, pos.getCaller()); @@ -457,7 +198,7 @@ * @return the value of {@code sb} */ public static StringBuilder append(StringBuilder sb, BytecodeFrame frame) { - appendLocation(sb.append("at "), frame.getMethod(), frame.getBCI()); + MetaUtil.appendLocation(sb.append("at "), frame.getMethod(), frame.getBCI()); if (frame.values != null && frame.values.length > 0) { sb.append(NEW_LINE); String table = tabulateValues(frame); @@ -563,103 +304,4 @@ } return sb; } - - public static Kind[] signatureToKinds(ResolvedJavaMethod method) { - Kind receiver = isStatic(method.accessFlags()) ? null : method.holder().kind(); - return signatureToKinds(method.signature(), receiver); - } - - public static Kind[] signatureToKinds(Signature signature, Kind receiverKind) { - int args = signature.argumentCount(false); - Kind[] result; - int i = 0; - if (receiverKind != null) { - result = new Kind[args + 1]; - result[0] = receiverKind; - i = 1; - } else { - result = new Kind[args]; - } - for (int j = 0; j < args; j++) { - result[i + j] = signature.argumentKindAt(j); - } - return result; - } - - public static Class< ? >[] signatureToTypes(Signature signature, ResolvedJavaType accessingClass) { - int count = signature.argumentCount(false); - Class< ? >[] result = new Class< ? >[count]; - for (int i = 0; i < result.length; ++i) { - result[i] = signature.argumentTypeAt(i, accessingClass).resolve(accessingClass).toJava(); - } - return result; - } - - /** - * Formats some profiling information associated as a string. - * - * @param info the profiling info to format - * @param method an optional method that augments the profile string returned - * @param sep the separator to use for each separate profile record - */ - public static String profileToString(ProfilingInfo info, ResolvedJavaMethod method, String sep) { - StringBuilder buf = new StringBuilder(100); - if (method != null) { - buf.append(String.format("canBeStaticallyBound: %b%s", method.canBeStaticallyBound(), sep)). - append(String.format("invocationCount: %d%s", method.invocationCount(), sep)); - } - for (int i = 0; i < info.codeSize(); i++) { - if (info.getExecutionCount(i) != -1) { - buf.append(String.format("executionCount@%d: %d%s", i, info.getExecutionCount(i), sep)); - } - - if (info.getBranchTakenProbability(i) != -1) { - buf.append(String.format("branchProbability@%d: %.3f%s", i, info.getBranchTakenProbability(i), sep)); - } - - double[] switchProbabilities = info.getSwitchProbabilities(i); - if (switchProbabilities != null) { - buf.append(String.format("switchProbabilities@%d:", i)); - for (int j = 0; j < switchProbabilities.length; j++) { - buf.append(String.format(" %.3f", switchProbabilities[j])); - } - buf.append(sep); - } - - if (info.getExceptionSeen(i) != ExceptionSeen.FALSE) { - buf.append(String.format("exceptionSeen@%d: %s%s", i, info.getExceptionSeen(i).name(), sep)); - } - - JavaTypeProfile typeProfile = info.getTypeProfile(i); - if (typeProfile != null) { - ProfiledType[] ptypes = typeProfile.getTypes(); - if (ptypes != null) { - buf.append(String.format("types@%d:", i)); - for (int j = 0; j < ptypes.length; j++) { - ProfiledType ptype = ptypes[j]; - buf.append(String.format(" %.3f (%s)%s", ptype.probability, ptype.type, sep)); - } - buf.append(String.format(" %.3f %s", typeProfile.getNotRecordedProbability(), sep)); - } - } - } - - boolean firstDeoptReason = true; - for (DeoptimizationReason reason: DeoptimizationReason.values()) { - int count = info.getDeoptimizationCount(reason); - if (count > 0) { - if (firstDeoptReason) { - buf.append("deoptimization history").append(sep); - firstDeoptReason = false; - } - buf.append(String.format(" %s: %d%s", reason.name(), count, sep)); - } - } - if (buf.length() == 0) { - return ""; - } - String s = buf.toString(); - assert s.endsWith(sep); - return s.substring(0, s.length() - sep.length()); - } } diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CompilationResult.java --- a/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CompilationResult.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CompilationResult.java Thu Jun 28 13:36:39 2012 +0200 @@ -519,7 +519,7 @@ appendRefMap(sb, "registerMap", info.getRegisterRefMap()); BytecodePosition codePos = info.getBytecodePosition(); if (codePos != null) { - CodeUtil.appendLocation(sb.append(" "), codePos.getMethod(), codePos.getBCI()); + MetaUtil.appendLocation(sb.append(" "), codePos.getMethod(), codePos.getBCI()); if (info.hasFrame()) { sb.append(" #locals=").append(info.frame().numLocals).append(" #expr=").append(info.frame().numStack); if (info.frame().numLocks > 0) { diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaUtil.java --- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaUtil.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaUtil.java Thu Jun 28 13:36:39 2012 +0200 @@ -22,8 +22,18 @@ */ package com.oracle.graal.api.meta; +import static java.lang.reflect.Modifier.*; +import java.lang.annotation.*; +import java.util.*; + +import com.oracle.graal.api.meta.JavaTypeProfile.ProfiledType; + +/** + * Miscellaneous collection of utility methods used by {@code com.oracle.graal.api.meta} and its clients. + */ public class MetaUtil { + /** * Extends the functionality of {@link Class#getSimpleName()} to include a non-empty string for anonymous and local * classes. @@ -76,16 +86,16 @@ * boolean[][] * * - * @param riType the type to be converted to a Java name + * @param type the type to be converted to a Java name * @param qualified specifies if the package prefix of the type should be included in the returned name - * @return the Java name corresponding to {@code riType} + * @return the Java name corresponding to {@code type} */ - public static String toJavaName(JavaType riType, boolean qualified) { - Kind kind = riType.kind(); + public static String toJavaName(JavaType type, boolean qualified) { + Kind kind = type.kind(); if (kind.isObject()) { - return internalNameToJava(riType.name(), qualified); + return internalNameToJava(type.name(), qualified); } - return riType.kind().javaName; + return type.kind().javaName; } /** @@ -98,11 +108,11 @@ * boolean[][] * * - * @param riType the type to be converted to a Java name - * @return the Java name corresponding to {@code riType} + * @param type the type to be converted to a Java name + * @return the Java name corresponding to {@code type} */ - public static String toJavaName(JavaType riType) { - return (riType == null) ? null : internalNameToJava(riType.name(), true); + public static String toJavaName(JavaType type) { + return (type == null) ? null : internalNameToJava(type.name(), true); } public static String internalNameToJava(String name, boolean qualified) { @@ -127,4 +137,369 @@ return Kind.fromPrimitiveOrVoidTypeChar(name.charAt(0)).javaName; } } + + + /** + * Gets a string for a given method formatted according to a given format specification. A format specification is + * composed of characters that are to be copied verbatim to the result and specifiers that denote an attribute of + * the method that is to be copied to the result. A specifier is a single character preceded by a '%' character. The + * accepted specifiers and the method attributes they denote are described below: + * + *
+     *     Specifier | Description                                          | Example(s)
+     *     ----------+------------------------------------------------------------------------------------------
+     *     'R'       | Qualified return type                                | "int" "java.lang.String"
+     *     'r'       | Unqualified return type                              | "int" "String"
+     *     'H'       | Qualified holder                                     | "java.util.Map.Entry"
+     *     'h'       | Unqualified holder                                   | "Entry"
+     *     'n'       | Method name                                          | "add"
+     *     'P'       | Qualified parameter types, separated by ', '         | "int, java.lang.String"
+     *     'p'       | Unqualified parameter types, separated by ', '       | "int, String"
+     *     'f'       | Indicator if method is unresolved, static or virtual | "unresolved" "static" "virtual"
+     *     '%'       | A '%' character                                      | "%"
+     * 
+ * + * @param format a format specification + * @param method the method to be formatted + * @return the result of formatting this method according to {@code format} + * @throws IllegalFormatException if an illegal specifier is encountered in {@code format} + */ + public static String format(String format, JavaMethod method) throws IllegalFormatException { + final StringBuilder sb = new StringBuilder(); + int index = 0; + Signature sig = null; + while (index < format.length()) { + final char ch = format.charAt(index++); + if (ch == '%') { + if (index >= format.length()) { + throw new UnknownFormatConversionException("An unquoted '%' character cannot terminate a method format specification"); + } + final char specifier = format.charAt(index++); + boolean qualified = false; + switch (specifier) { + case 'R': + qualified = true; + // fall through + case 'r': { + if (sig == null) { + sig = method.signature(); + } + sb.append(toJavaName(sig.returnType(null), qualified)); + break; + } + case 'H': + qualified = true; + // fall through + case 'h': { + sb.append(toJavaName(method.holder(), qualified)); + break; + } + case 'n': { + sb.append(method.name()); + break; + } + case 'P': + qualified = true; + // fall through + case 'p': { + if (sig == null) { + sig = method.signature(); + } + for (int i = 0; i < sig.argumentCount(false); i++) { + if (i != 0) { + sb.append(", "); + } + sb.append(toJavaName(sig.argumentTypeAt(i, null), qualified)); + } + break; + } + case 'f': { + sb.append(!(method instanceof ResolvedJavaMethod) ? "unresolved" : isStatic(((ResolvedJavaMethod) method).accessFlags()) ? "static" : "virtual"); + break; + } + case '%': { + sb.append('%'); + break; + } + default: { + throw new UnknownFormatConversionException(String.valueOf(specifier)); + } + } + } else { + sb.append(ch); + } + } + return sb.toString(); + } + + + /** + * Gets a string for a given field formatted according to a given format specification. A format specification is + * composed of characters that are to be copied verbatim to the result and specifiers that denote an attribute of + * the field that is to be copied to the result. A specifier is a single character preceded by a '%' character. The + * accepted specifiers and the field attributes they denote are described below: + * + *
+     *     Specifier | Description                                          | Example(s)
+     *     ----------+------------------------------------------------------------------------------------------
+     *     'T'       | Qualified type                                       | "int" "java.lang.String"
+     *     't'       | Unqualified type                                     | "int" "String"
+     *     'H'       | Qualified holder                                     | "java.util.Map.Entry"
+     *     'h'       | Unqualified holder                                   | "Entry"
+     *     'n'       | Field name                                           | "age"
+     *     'f'       | Indicator if field is unresolved, static or instance | "unresolved" "static" "instance"
+     *     '%'       | A '%' character                                      | "%"
+     * 
+ * + * @param format a format specification + * @param field the field to be formatted + * @return the result of formatting this field according to {@code format} + * @throws IllegalFormatException if an illegal specifier is encountered in {@code format} + */ + public static String format(String format, JavaField field) throws IllegalFormatException { + final StringBuilder sb = new StringBuilder(); + int index = 0; + JavaType type = field.type(); + while (index < format.length()) { + final char ch = format.charAt(index++); + if (ch == '%') { + if (index >= format.length()) { + throw new UnknownFormatConversionException("An unquoted '%' character cannot terminate a field format specification"); + } + final char specifier = format.charAt(index++); + boolean qualified = false; + switch (specifier) { + case 'T': + qualified = true; + // fall through + case 't': { + sb.append(toJavaName(type, qualified)); + break; + } + case 'H': + qualified = true; + // fall through + case 'h': { + sb.append(toJavaName(field.holder(), qualified)); + break; + } + case 'n': { + sb.append(field.name()); + break; + } + case 'f': { + sb.append(!(field instanceof ResolvedJavaField) ? "unresolved" : isStatic(((ResolvedJavaField) field).accessFlags()) ? "static" : "instance"); + break; + } + case '%': { + sb.append('%'); + break; + } + default: { + throw new UnknownFormatConversionException(String.valueOf(specifier)); + } + } + } else { + sb.append(ch); + } + } + return sb.toString(); + } + + + /** + * Gets the annotation of a particular type for a formal parameter of a given method. + * + * @param annotationClass the Class object corresponding to the annotation type + * @param parameterIndex the index of a formal parameter of {@code method} + * @param method the method for which a parameter annotation is being requested + * @return the annotation of type {@code annotationClass} for the formal parameter present, else null + * @throws IndexOutOfBoundsException if {@code parameterIndex} does not denote a formal parameter + */ + public static T getParameterAnnotation(Class annotationClass, int parameterIndex, ResolvedJavaMethod method) { + if (parameterIndex >= 0) { + Annotation[][] parameterAnnotations = method.getParameterAnnotations(); + for (Annotation a : parameterAnnotations[parameterIndex]) { + if (a.annotationType() == annotationClass) { + return annotationClass.cast(a); + } + } + } + return null; + } + + + /** + * Convenient shortcut for calling {@link #appendLocation(StringBuilder, ResolvedJavaMethod, int)} without having to supply a + * a {@link StringBuilder} instance and convert the result to a string. + */ + public static String toLocation(ResolvedJavaMethod method, int bci) { + return appendLocation(new StringBuilder(), method, bci).toString(); + } + + + /** + * Appends a string representation of a location specified by a given method and bci to a given + * {@link StringBuilder}. If a stack trace element with a non-null file name and non-negative line number is + * {@linkplain ResolvedJavaMethod#toStackTraceElement(int) available} for the given method, then the string returned is the + * {@link StackTraceElement#toString()} value of the stack trace element, suffixed by the bci location. For example: + * + *
+     *     java.lang.String.valueOf(String.java:2930) [bci: 12]
+     * 
+ * + * Otherwise, the string returned is the value of {@code CiUtil.format("%H.%n(%p)"}, suffixed by the bci location. + * For example: + * + *
+     *     java.lang.String.valueOf(int) [bci: 12]
+     * 
+ * + * @param sb + * @param method + * @param bci + */ + public static StringBuilder appendLocation(StringBuilder sb, ResolvedJavaMethod method, int bci) { + if (method != null) { + StackTraceElement ste = method.toStackTraceElement(bci); + if (ste.getFileName() != null && ste.getLineNumber() > 0) { + sb.append(ste); + } else { + sb.append(format("%H.%n(%p)", method)); + } + } else { + sb.append("Null method"); + } + return sb.append(" [bci: ").append(bci).append(']'); + } + + + public static Kind[] signatureToKinds(ResolvedJavaMethod method) { + Kind receiver = isStatic(method.accessFlags()) ? null : method.holder().kind(); + return signatureToKinds(method.signature(), receiver); + } + + + public static Kind[] signatureToKinds(Signature signature, Kind receiverKind) { + int args = signature.argumentCount(false); + Kind[] result; + int i = 0; + if (receiverKind != null) { + result = new Kind[args + 1]; + result[0] = receiverKind; + i = 1; + } else { + result = new Kind[args]; + } + for (int j = 0; j < args; j++) { + result[i + j] = signature.argumentKindAt(j); + } + return result; + } + + + public static Class< ? >[] signatureToTypes(Signature signature, ResolvedJavaType accessingClass) { + int count = signature.argumentCount(false); + Class< ? >[] result = new Class< ? >[count]; + for (int i = 0; i < result.length; ++i) { + result[i] = signature.argumentTypeAt(i, accessingClass).resolve(accessingClass).toJava(); + } + return result; + } + + + /** + * Formats some profiling information associated as a string. + * + * @param info the profiling info to format + * @param method an optional method that augments the profile string returned + * @param sep the separator to use for each separate profile record + */ + public static String profileToString(ProfilingInfo info, ResolvedJavaMethod method, String sep) { + StringBuilder buf = new StringBuilder(100); + if (method != null) { + buf.append(String.format("canBeStaticallyBound: %b%s", method.canBeStaticallyBound(), sep)). + append(String.format("invocationCount: %d%s", method.invocationCount(), sep)); + } + for (int i = 0; i < info.codeSize(); i++) { + if (info.getExecutionCount(i) != -1) { + buf.append(String.format("executionCount@%d: %d%s", i, info.getExecutionCount(i), sep)); + } + + if (info.getBranchTakenProbability(i) != -1) { + buf.append(String.format("branchProbability@%d: %.3f%s", i, info.getBranchTakenProbability(i), sep)); + } + + double[] switchProbabilities = info.getSwitchProbabilities(i); + if (switchProbabilities != null) { + buf.append(String.format("switchProbabilities@%d:", i)); + for (int j = 0; j < switchProbabilities.length; j++) { + buf.append(String.format(" %.3f", switchProbabilities[j])); + } + buf.append(sep); + } + + if (info.getExceptionSeen(i) != ExceptionSeen.FALSE) { + buf.append(String.format("exceptionSeen@%d: %s%s", i, info.getExceptionSeen(i).name(), sep)); + } + + JavaTypeProfile typeProfile = info.getTypeProfile(i); + if (typeProfile != null) { + ProfiledType[] ptypes = typeProfile.getTypes(); + if (ptypes != null) { + buf.append(String.format("types@%d:", i)); + for (int j = 0; j < ptypes.length; j++) { + ProfiledType ptype = ptypes[j]; + buf.append(String.format(" %.3f (%s)%s", ptype.probability, ptype.type, sep)); + } + buf.append(String.format(" %.3f %s", typeProfile.getNotRecordedProbability(), sep)); + } + } + } + + boolean firstDeoptReason = true; + for (DeoptimizationReason reason: DeoptimizationReason.values()) { + int count = info.getDeoptimizationCount(reason); + if (count > 0) { + if (firstDeoptReason) { + buf.append("deoptimization history").append(sep); + firstDeoptReason = false; + } + buf.append(String.format(" %s: %d%s", reason.name(), count, sep)); + } + } + if (buf.length() == 0) { + return ""; + } + String s = buf.toString(); + assert s.endsWith(sep); + return s.substring(0, s.length() - sep.length()); + } + + + /** + * Converts a Java source-language class name into the internal form. + * + * @param className the class name + * @return the internal name form of the class name + */ + public static String toInternalName(String className) { + return "L" + className.replace('.', '/') + ";"; + } + + + /** + * Prepends the String {@code indentation} to every line in String {@code lines}, including a possibly non-empty + * line following the final newline. + */ + public static String indent(String lines, String indentation) { + if (lines.length() == 0) { + return lines; + } + final String newLine = "\n"; + if (lines.endsWith(newLine)) { + return indentation + (lines.substring(0, lines.length() - 1)).replace(newLine, newLine + indentation) + newLine; + } + return indentation + lines.replace(newLine, newLine + indentation); + } } diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/UnresolvedField.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/UnresolvedField.java Thu Jun 28 13:36:39 2012 +0200 @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2009, 2011, 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.api.meta; + + +/** + * A implementation of {@link JavaField} for an unresolved field. + */ +public class UnresolvedField implements JavaField { + + public final String name; + public final JavaType holder; + public final JavaType type; + + public UnresolvedField(JavaType holder, String name, JavaType type) { + this.name = name; + this.type = type; + this.holder = holder; + } + + public String name() { + return name; + } + + public JavaType type() { + return type; + } + + public Kind kind() { + return type.kind(); + } + + public JavaType holder() { + return holder; + } + + @Override + public int hashCode() { + return System.identityHashCode(this); + } + + @Override + public boolean equals(Object o) { + return o == this; + } + + /** + * Converts this compiler interface field to a string. + */ + @Override + public String toString() { + return MetaUtil.format("%H.%n [unresolved]", this); + } +} diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/UnresolvedMethod.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/UnresolvedMethod.java Thu Jun 28 13:36:39 2012 +0200 @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2009, 2011, 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.api.meta; + + +/** + * A implementation of {@link JavaMethod} for an unresolved method. + */ +public class UnresolvedMethod implements JavaMethod { + + public final String name; + public final JavaType holder; + public final Signature signature; + + public UnresolvedMethod(JavaType holder, String name, Signature signature) { + this.name = name; + this.holder = holder; + this.signature = signature; + } + + public String name() { + return name; + } + + public JavaType holder() { + return holder; + } + + public Signature signature() { + return signature; + } + + @Override + public int hashCode() { + return System.identityHashCode(this); + } + + @Override + public boolean equals(Object o) { + return o == this; + } + + @Override + public String toString() { + return MetaUtil.format("%H.%n(%p) [unresolved]", this); + } +} diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/OptimisticOptimizations.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/OptimisticOptimizations.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/OptimisticOptimizations.java Thu Jun 28 13:36:39 2012 +0200 @@ -24,7 +24,6 @@ import java.util.*; -import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.debug.*; import com.oracle.max.criutils.*; @@ -71,7 +70,7 @@ for (Optimization opt: Optimization.values()) { if (!enabledOpts.contains(opt)) { if (GraalOptions.PrintDisabledOptimisticOptimizations) { - TTY.println("WARN: deactivated optimistic optimization %s for %s", opt.name(), CodeUtil.format("%H.%n(%p)", method)); + TTY.println("WARN: deactivated optimistic optimization %s for %s", opt.name(), MetaUtil.format("%H.%n(%p)", method)); } disabledOptimisticOptsMetric.increment(); } diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java Thu Jun 28 13:36:39 2012 +0200 @@ -509,7 +509,7 @@ } protected void emitPrologue() { - CallingConvention incomingArguments = frameMap.registerConfig.getCallingConvention(JavaCallee, CodeUtil.signatureToKinds(method), target, false); + CallingConvention incomingArguments = frameMap.registerConfig.getCallingConvention(JavaCallee, MetaUtil.signatureToKinds(method), target, false); Value[] params = new Value[incomingArguments.locations.length]; for (int i = 0; i < params.length; i++) { @@ -888,7 +888,7 @@ Value resultOperand = resultOperandFor(x.node().kind()); - Kind[] signature = CodeUtil.signatureToKinds(callTarget.targetMethod().signature(), callTarget.isStatic() ? null : callTarget.targetMethod().holder().kind()); + Kind[] signature = MetaUtil.signatureToKinds(callTarget.targetMethod().signature(), callTarget.isStatic() ? null : callTarget.targetMethod().holder().kind()); CallingConvention cc = frameMap.registerConfig.getCallingConvention(JavaCall, signature, target(), false); frameMap.callsMethod(cc, JavaCall); List argList = visitInvokeArguments(cc, callTarget.arguments()); diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopEx.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopEx.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopEx.java Thu Jun 28 13:36:39 2012 +0200 @@ -22,7 +22,6 @@ */ package com.oracle.graal.compiler.loop; -import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.debug.*; import com.oracle.graal.graph.*; @@ -129,7 +128,7 @@ } BinaryNode result = BinaryNode.reassociate(binary, invariant); if (result != binary) { - Debug.log(CodeUtil.format("%H::%n", Debug.contextLookup(ResolvedJavaMethod.class)) + " : Reassociated %s into %s", binary, result); + Debug.log(MetaUtil.format("%H::%n", Debug.contextLookup(ResolvedJavaMethod.class)) + " : Reassociated %s into %s", binary, result); graph.replaceFloating(binary, result); } } diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java Thu Jun 28 13:36:39 2012 +0200 @@ -56,9 +56,9 @@ if (!Debug.isLogEnabled()) { return null; } else if (invoke != null && invoke.stateAfter() != null) { - return methodName(invoke.stateAfter(), invoke.bci()) + ": " + CodeUtil.format("%H.%n(%p):%r", method) + " (" + method.codeSize() + " bytes)"; + return methodName(invoke.stateAfter(), invoke.bci()) + ": " + MetaUtil.format("%H.%n(%p):%r", method) + " (" + method.codeSize() + " bytes)"; } else { - return CodeUtil.format("%H.%n(%p):%r", method) + " (" + method.codeSize() + " bytes)"; + return MetaUtil.format("%H.%n(%p):%r", method) + " (" + method.codeSize() + " bytes)"; } } @@ -78,7 +78,7 @@ sb.append(methodName(frameState.outerFrameState(), frameState.outerFrameState().bci)); sb.append("->"); } - sb.append(CodeUtil.format("%h.%n", frameState.method())); + sb.append(MetaUtil.format("%h.%n", frameState.method())); sb.append("@").append(bci); return sb.toString(); } @@ -155,7 +155,7 @@ @Override public String toString() { - return "exact " + CodeUtil.format("%H.%n(%p):%r", concrete); + return "exact " + MetaUtil.format("%H.%n(%p):%r", concrete); } @Override @@ -209,7 +209,7 @@ @Override public String toString() { - return "type-checked " + CodeUtil.format("%H.%n(%p):%r", concrete); + return "type-checked " + MetaUtil.format("%H.%n(%p):%r", concrete); } @Override @@ -487,7 +487,7 @@ StringBuilder builder = new StringBuilder(shouldFallbackToInvoke() ? "megamorphic" : "polymorphic"); builder.append(String.format(", %d methods with %d type checks:", concretes.size(), ptypes.length)); for (int i = 0; i < concretes.size(); i++) { - builder.append(CodeUtil.format(" %H.%n(%p):%r", concretes.get(i))); + builder.append(MetaUtil.format(" %H.%n(%p):%r", concretes.get(i))); } return builder.toString(); } @@ -514,8 +514,8 @@ @Override public void inline(StructuredGraph graph, GraalCodeCacheProvider runtime, InliningCallback callback) { if (Debug.isLogEnabled()) { - String targetName = CodeUtil.format("%H.%n(%p):%r", invoke.callTarget().targetMethod()); - String concreteName = CodeUtil.format("%H.%n(%p):%r", concrete); + String targetName = MetaUtil.format("%H.%n(%p):%r", invoke.callTarget().targetMethod()); + String concreteName = MetaUtil.format("%H.%n(%p):%r", concrete); Debug.log("recording concrete method assumption: %s on receiver type %s -> %s", targetName, context, concreteName); } callback.recordConcreteMethodAssumption(invoke.callTarget().targetMethod(), context, concrete); @@ -525,7 +525,7 @@ @Override public String toString() { - return "assumption " + CodeUtil.format("%H.%n(%p):%r", concrete); + return "assumption " + MetaUtil.format("%H.%n(%p):%r", concrete); } @Override diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationStatistics.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationStatistics.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationStatistics.java Thu Jun 28 13:36:39 2012 +0200 @@ -78,9 +78,9 @@ private CompilationStatistics(ResolvedJavaMethod method) { if (method != null) { - holder = CodeUtil.format("%H", method); + holder = MetaUtil.format("%H", method); name = method.name(); - signature = CodeUtil.format("%p", method); + signature = MetaUtil.format("%p", method); startTime = System.nanoTime(); startInvCount = method.invocationCount(); bytecodeCount = method.codeSize(); diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java Thu Jun 28 13:36:39 2012 +0200 @@ -131,11 +131,11 @@ } catch (BailoutException bailout) { Debug.metric("Bailouts").increment(); if (GraalOptions.ExitVMOnBailout) { - TTY.cachedOut.println(CodeUtil.format("Bailout in %H.%n(%p)", method)); + TTY.cachedOut.println(MetaUtil.format("Bailout in %H.%n(%p)", method)); bailout.printStackTrace(TTY.cachedOut); System.exit(-1); } else if (GraalOptions.PrintBailout) { - TTY.cachedOut.println(CodeUtil.format("Bailout in %H.%n(%p)", method)); + TTY.cachedOut.println(MetaUtil.format("Bailout in %H.%n(%p)", method)); bailout.printStackTrace(TTY.cachedOut); } } catch (Throwable t) { diff -r 10341299528c -r 429accae15aa 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 Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java Thu Jun 28 13:36:39 2012 +0200 @@ -223,9 +223,9 @@ } private void enqueue(Method m) throws Throwable { - JavaMethod riMethod = compiler.getRuntime().getResolvedJavaMethod(m); - assert !Modifier.isAbstract(((HotSpotResolvedJavaMethod) riMethod).accessFlags()) && !Modifier.isNative(((HotSpotResolvedJavaMethod) riMethod).accessFlags()) : riMethod; - compileMethod((HotSpotResolvedJavaMethod) riMethod, 0, false, 10); + JavaMethod javaMethod = compiler.getRuntime().getResolvedJavaMethod(m); + assert !Modifier.isAbstract(((HotSpotResolvedJavaMethod) javaMethod).accessFlags()) && !Modifier.isNative(((HotSpotResolvedJavaMethod) javaMethod).accessFlags()) : javaMethod; + compileMethod((HotSpotResolvedJavaMethod) javaMethod, 0, false, 10); } private static void shutdownCompileQueue(ThreadPoolExecutor queue) throws InterruptedException { @@ -412,7 +412,7 @@ HotSpotResolvedJavaType resolved = (HotSpotResolvedJavaType) holder; return resolved.createRiField(name, type, offset, flags); } - return new BaseUnresolvedField(holder, name, type); + return new UnresolvedField(holder, name, type); } @Override diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/counters/MethodEntryCounters.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/counters/MethodEntryCounters.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/counters/MethodEntryCounters.java Thu Jun 28 13:36:39 2012 +0200 @@ -53,7 +53,7 @@ protected long sortCount; protected Counter(ResolvedJavaMethod method) { - this.method = CodeUtil.format("%H.%n", method); + this.method = MetaUtil.format("%H.%n", method); counters.add(this); } diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCompiledMethod.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCompiledMethod.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCompiledMethod.java Thu Jun 28 13:36:39 2012 +0200 @@ -24,7 +24,6 @@ import java.lang.reflect.*; -import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.hotspot.*; @@ -70,14 +69,14 @@ } private boolean checkArgs(Object... args) { - Kind[] sig = CodeUtil.signatureToKinds(method); - assert args.length == sig.length : CodeUtil.format("%H.%n(%p): expected ", method) + sig.length + " args, got " + args.length; + Kind[] sig = MetaUtil.signatureToKinds(method); + assert args.length == sig.length : MetaUtil.format("%H.%n(%p): expected ", method) + sig.length + " args, got " + args.length; for (int i = 0; i < sig.length; i++) { Object arg = args[i]; if (arg == null) { - assert sig[i].isObject() : CodeUtil.format("%H.%n(%p): expected arg ", method) + i + " to be Object, not " + sig[i]; + assert sig[i].isObject() : MetaUtil.format("%H.%n(%p): expected arg ", method) + i + " to be Object, not " + sig[i]; } else if (!sig[i].isObject()) { - assert sig[i].toBoxedJavaClass() == arg.getClass() : CodeUtil.format("%H.%n(%p): expected arg ", method) + i + " to be " + sig[i] + ", not " + arg.getClass(); + assert sig[i].toBoxedJavaClass() == arg.getClass() : MetaUtil.format("%H.%n(%p): expected arg ", method) + i + " to be " + sig[i] + ", not " + arg.getClass(); } } return true; diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotProfilingInfo.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotProfilingInfo.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotProfilingInfo.java Thu Jun 28 13:36:39 2012 +0200 @@ -22,7 +22,6 @@ */ package com.oracle.graal.hotspot.meta; -import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.debug.*; import com.oracle.graal.hotspot.*; @@ -149,6 +148,6 @@ @Override public String toString() { - return "HotSpotProfilingInfo<" + CodeUtil.profileToString(this, null, "; ") + ">"; + return "HotSpotProfilingInfo<" + MetaUtil.profileToString(this, null, "; ") + ">"; } } diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField.java Thu Jun 28 13:36:39 2012 +0200 @@ -26,7 +26,6 @@ import java.lang.annotation.*; import java.lang.reflect.*; -import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.api.meta.JavaType.*; import com.oracle.graal.compiler.*; @@ -126,7 +125,7 @@ @Override public String toString() { - return "HotSpotField<" + CodeUtil.format("%h.%n", this) + ":" + offset + ">"; + return "HotSpotField<" + MetaUtil.format("%h.%n", this) + ":" + offset + ">"; } @Override diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethod.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethod.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethod.java Thu Jun 28 13:36:39 2012 +0200 @@ -28,7 +28,6 @@ import java.util.*; import java.util.concurrent.*; -import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.bytecode.*; import com.oracle.graal.compiler.*; @@ -164,7 +163,7 @@ @Override public String toString() { - return "HotSpotMethod<" + CodeUtil.format("%h.%n", this) + ">"; + return "HotSpotMethod<" + MetaUtil.format("%h.%n", this) + ">"; } public boolean hasCompiledCode() { @@ -314,7 +313,7 @@ private Method toJava() { try { - return holder.toJava().getDeclaredMethod(name, CodeUtil.signatureToTypes(signature(), holder)); + return holder.toJava().getDeclaredMethod(name, MetaUtil.signatureToTypes(signature(), holder)); } catch (NoSuchMethodException e) { return null; } @@ -322,7 +321,7 @@ private Constructor toJavaConstructor() { try { - return holder.toJava().getDeclaredConstructor(CodeUtil.signatureToTypes(signature(), holder)); + return holder.toJava().getDeclaredConstructor(MetaUtil.signatureToTypes(signature(), holder)); } catch (NoSuchMethodException e) { return null; } diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Thu Jun 28 13:36:39 2012 +0200 @@ -390,7 +390,7 @@ return true; } ResolvedJavaMethod method = graph.method(); - return method != null && CodeUtil.format("%H.%n", method).contains(option); + return method != null && MetaUtil.format("%H.%n", method).contains(option); } return false; } diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/TailcallNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/TailcallNode.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/TailcallNode.java Thu Jun 28 13:36:39 2012 +0200 @@ -61,7 +61,7 @@ ResolvedJavaMethod method = frameState.method(); boolean isStatic = Modifier.isStatic(method.accessFlags()); - Kind[] signature = CodeUtil.signatureToKinds(method.signature(), isStatic ? null : method.holder().kind()); + Kind[] signature = MetaUtil.signatureToKinds(method.signature(), isStatic ? null : method.holder().kind()); CallingConvention cc = gen.frameMap().registerConfig.getCallingConvention(CallingConvention.Type.JavaCall, signature, gen.target(), false); gen.frameMap().callsMethod(cc, CallingConvention.Type.JavaCall); // TODO (aw): I think this is unnecessary for a tail call. List parameters = new ArrayList<>(); diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Thu Jun 28 13:36:39 2012 +0200 @@ -130,13 +130,13 @@ @Override protected String getDetailedName() { - return getName() + " " + CodeUtil.format("%H.%n(%p):%r", method); + return getName() + " " + MetaUtil.format("%H.%n(%p):%r", method); } private BciBlockMapping createBlockMap() { BciBlockMapping map = new BciBlockMapping(method); map.build(); - Debug.dump(map, CodeUtil.format("After block building %f %R %H.%n(%P)", method)); + Debug.dump(map, MetaUtil.format("After block building %f %R %H.%n(%P)", method)); return map; } @@ -149,7 +149,7 @@ if (GraalOptions.PrintProfilingInformation) { TTY.println("Profiling info for " + method); - TTY.println(CodeUtil.indent(CodeUtil.profileToString(profilingInfo, method, CodeUtil.NEW_LINE), " ")); + TTY.println(MetaUtil.indent(MetaUtil.profileToString(profilingInfo, method, CodeUtil.NEW_LINE), " ")); } // compute the block map, setup exception handlers and get the entrypoint(s) @@ -283,9 +283,9 @@ if (con instanceof JavaType) { // this is a load of class constant which might be unresolved - JavaType riType = (JavaType) con; - if (riType instanceof ResolvedJavaType) { - frameState.push(Kind.Object, append(ConstantNode.forConstant(((ResolvedJavaType) riType).getEncoding(Representation.JavaClass), runtime, currentGraph))); + JavaType type = (JavaType) con; + if (type instanceof ResolvedJavaType) { + frameState.push(Kind.Object, append(ConstantNode.forConstant(((ResolvedJavaType) type).getEncoding(Representation.JavaClass), runtime, currentGraph))); } else { append(currentGraph.add(new DeoptimizeNode(DeoptimizationAction.InvalidateRecompile, DeoptimizationReason.Unresolved, graphId))); frameState.push(Kind.Object, append(ConstantNode.forObject(null, runtime, currentGraph))); diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FrameState.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FrameState.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FrameState.java Thu Jun 28 13:36:39 2012 +0200 @@ -325,7 +325,7 @@ String nl = CodeUtil.NEW_LINE; FrameState fs = frameState; while (fs != null) { - CodeUtil.appendLocation(sb, fs.method, fs.bci).append(nl); + MetaUtil.appendLocation(sb, fs.method, fs.bci).append(nl); sb.append("locals: ["); for (int i = 0; i < fs.localsSize(); i++) { sb.append(i == 0 ? "" : ", ").append(fs.localAt(i) == null ? "_" : fs.localAt(i).toString(Verbosity.Id)); @@ -356,7 +356,7 @@ Map properties = super.getDebugProperties(); properties.put("bci", bci); if (method != null) { - properties.put("method", CodeUtil.format("%H.%n(%p):%r", method)); + properties.put("method", MetaUtil.format("%H.%n(%p):%r", method)); StackTraceElement ste = method.toStackTraceElement(bci); if (ste.getFileName() != null && ste.getLineNumber() >= 0) { properties.put("source", ste.getFileName() + ":" + ste.getLineNumber()); diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java Thu Jun 28 13:36:39 2012 +0200 @@ -24,7 +24,6 @@ import java.util.*; -import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.graph.*; import com.oracle.graal.nodes.extended.*; @@ -90,7 +89,7 @@ public Map getDebugProperties() { Map debugProperties = super.getDebugProperties(); if (callTarget != null && callTarget.targetMethod() != null) { - debugProperties.put("targetMethod", CodeUtil.format("%h.%n(%p)", callTarget.targetMethod())); + debugProperties.put("targetMethod", MetaUtil.format("%h.%n(%p)", callTarget.targetMethod())); } return debugProperties; } diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java Thu Jun 28 13:36:39 2012 +0200 @@ -24,7 +24,6 @@ import java.util.*; -import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.graph.*; import com.oracle.graal.nodes.extended.*; @@ -157,7 +156,7 @@ Map debugProperties = super.getDebugProperties(); debugProperties.put("memoryCheckpoint", "true"); if (callTarget != null && callTarget.targetMethod() != null) { - debugProperties.put("targetMethod", CodeUtil.format("%h.%n(%p)", callTarget.targetMethod())); + debugProperties.put("targetMethod", MetaUtil.format("%h.%n(%p)", callTarget.targetMethod())); } return debugProperties; } diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessFieldNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessFieldNode.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessFieldNode.java Thu Jun 28 13:36:39 2012 +0200 @@ -25,7 +25,6 @@ import java.lang.reflect.*; import java.util.*; -import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.cri.*; import com.oracle.graal.nodes.*; @@ -95,7 +94,7 @@ @Override public Map getDebugProperties() { Map debugProperties = super.getDebugProperties(); - debugProperties.put("field", CodeUtil.format("%h.%n", field)); + debugProperties.put("field", MetaUtil.format("%h.%n", field)); return debugProperties; } diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinter.java --- a/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinter.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinter.java Thu Jun 28 13:36:39 2012 +0200 @@ -382,7 +382,7 @@ StringBuilder buf = new StringBuilder(); FrameState curState = state; do { - buf.append(CodeUtil.toLocation(curState.method(), curState.bci)).append('\n'); + buf.append(MetaUtil.toLocation(curState.method(), curState.bci)).append('\n'); if (curState.stackSize() > 0) { buf.append("stack: "); diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.printer/src/com/oracle/graal/printer/IdealGraphPrinterDumpHandler.java --- a/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/IdealGraphPrinterDumpHandler.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/IdealGraphPrinterDumpHandler.java Thu Jun 28 13:36:39 2012 +0200 @@ -27,7 +27,6 @@ import java.util.*; import com.oracle.max.criutils.*; -import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.debug.*; import com.oracle.graal.graph.*; @@ -150,7 +149,7 @@ for (Object o : Debug.context()) { if (o instanceof ResolvedJavaMethod) { ResolvedJavaMethod method = (ResolvedJavaMethod) o; - result.add(CodeUtil.format("%H::%n(%p)", method)); + result.add(MetaUtil.format("%H::%n(%p)", method)); } else if (o instanceof DebugDumpScope) { DebugDumpScope debugDumpScope = (DebugDumpScope) o; if (debugDumpScope.decorator && !result.isEmpty()) { diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/SnippetIntrinsificationPhase.java --- a/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/SnippetIntrinsificationPhase.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/SnippetIntrinsificationPhase.java Thu Jun 28 13:36:39 2012 +0200 @@ -60,7 +60,7 @@ if (intrinsic != null) { assert target.getAnnotation(Fold.class) == null; - Class< ? >[] parameterTypes = CodeUtil.signatureToTypes(target.signature(), target.holder()); + Class< ? >[] parameterTypes = MetaUtil.signatureToTypes(target.signature(), target.holder()); // Prepare the arguments for the reflective constructor call on the node class. Object[] nodeConstructorArguments = prepareArguments(invoke, parameterTypes, target, false); @@ -76,7 +76,7 @@ // Clean up checkcast instructions inserted by javac if the return type is generic. cleanUpReturnCheckCast(newInstance); } else if (target.getAnnotation(Fold.class) != null) { - Class< ? >[] parameterTypes = CodeUtil.signatureToTypes(target.signature(), target.holder()); + Class< ? >[] parameterTypes = MetaUtil.signatureToTypes(target.signature(), target.holder()); // Prepare the arguments for the reflective method call Object[] arguments = prepareArguments(invoke, parameterTypes, target, true); @@ -118,7 +118,7 @@ parameterIndex--; } ValueNode argument = tryBoxingElimination(parameterIndex, target, arguments.get(i)); - if (folding || CodeUtil.getParameterAnnotation(ConstantNodeParameter.class, parameterIndex, target) != null) { + if (folding || MetaUtil.getParameterAnnotation(ConstantNodeParameter.class, parameterIndex, target) != null) { assert argument instanceof ConstantNode : "parameter " + parameterIndex + " must be a compile time constant for calling " + invoke.callTarget().targetMethod() + " at " + sourceLocation(invoke.node()) + ": " + argument; ConstantNode constantNode = (ConstantNode) argument; Constant constant = constantNode.asConstant(); diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/SnippetTemplate.java --- a/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/SnippetTemplate.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/SnippetTemplate.java Thu Jun 28 13:36:39 2012 +0200 @@ -106,7 +106,7 @@ @Override public String toString() { - return CodeUtil.format("%h.%n", method) + map.toString(); + return MetaUtil.format("%h.%n", method) + map.toString(); } } @@ -192,7 +192,7 @@ Parameter[] parameterAnnotations = new Parameter[parameterCount]; ConstantNode[] placeholders = new ConstantNode[parameterCount]; for (int i = 0; i < parameterCount; i++) { - ConstantParameter c = CodeUtil.getParameterAnnotation(ConstantParameter.class, i, method); + ConstantParameter c = MetaUtil.getParameterAnnotation(ConstantParameter.class, i, method); if (c != null) { String name = c.value(); Object arg = key.get(name); @@ -200,7 +200,7 @@ assert checkConstantArgument(method, signature, i, name, arg, kind); replacements.put(snippetGraph.getLocal(i), ConstantNode.forConstant(Constant.forBoxed(kind, arg), runtime, snippetCopy)); } else { - Parameter p = CodeUtil.getParameterAnnotation(Parameter.class, i, method); + Parameter p = MetaUtil.getParameterAnnotation(Parameter.class, i, method); assert p != null : method + ": parameter " + i + " must be annotated with either @Constant or @Parameter"; String name = p.value(); if (p.multiple()) { diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/CompiledMethodTest.java --- a/graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/CompiledMethodTest.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/CompiledMethodTest.java Thu Jun 28 13:36:39 2012 +0200 @@ -66,8 +66,8 @@ } } - final ResolvedJavaMethod riMethod = runtime.getResolvedJavaMethod(method); - InstalledCode compiledMethod = getCode(riMethod, graph); + final ResolvedJavaMethod javaMethod = runtime.getResolvedJavaMethod(method); + InstalledCode compiledMethod = getCode(javaMethod, graph); try { Object result = compiledMethod.execute("1", "2", "3"); Assert.assertEquals("1-2-3", result); @@ -80,8 +80,8 @@ public void test3() { Method method = getMethod("testMethod"); final StructuredGraph graph = parse(method); - final ResolvedJavaMethod riMethod = runtime.getResolvedJavaMethod(method); - InstalledCode compiledMethod = getCode(riMethod, graph); + final ResolvedJavaMethod javaMethod = runtime.getResolvedJavaMethod(method); + InstalledCode compiledMethod = getCode(javaMethod, graph); try { Object result = compiledMethod.executeVarargs("1", "2", "3"); Assert.assertEquals("1 2 3", result); @@ -94,8 +94,8 @@ public void test4() { Method method = getMethod("testMethodVirtual"); final StructuredGraph graph = parse(method); - final ResolvedJavaMethod riMethod = runtime.getResolvedJavaMethod(method); - InstalledCode compiledMethod = getCode(riMethod, graph); + final ResolvedJavaMethod javaMethod = runtime.getResolvedJavaMethod(method); + InstalledCode compiledMethod = getCode(javaMethod, graph); try { f1 = "0"; Object result = compiledMethod.executeVarargs(this, "1", "2", "3"); @@ -108,8 +108,8 @@ @Test public void test2() throws NoSuchMethodException, SecurityException { Method method = CompilableObjectImpl.class.getDeclaredMethod("executeHelper", ObjectCompiler.class, String.class); - ResolvedJavaMethod riMethod = runtime.getResolvedJavaMethod(method); - StructuredGraph graph = new StructuredGraph(riMethod); + ResolvedJavaMethod javaMethod = runtime.getResolvedJavaMethod(method); + StructuredGraph graph = new StructuredGraph(javaMethod); new GraphBuilderPhase(runtime, GraphBuilderConfiguration.getSnippetDefault(), OptimisticOptimizations.NONE).apply(graph); new CanonicalizerPhase(null, runtime, null).apply(graph); new DeadCodeEliminationPhase().apply(graph); @@ -123,7 +123,7 @@ } } - InstalledCode compiledMethod = getCode(riMethod, graph); + InstalledCode compiledMethod = getCode(javaMethod, graph); final CompilableObject compilableObject = new CompilableObjectImpl(0); Object result; diff -r 10341299528c -r 429accae15aa graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/GraalCompilerTest.java --- a/graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/GraalCompilerTest.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/GraalCompilerTest.java Thu Jun 28 13:36:39 2012 +0200 @@ -248,8 +248,8 @@ * Parses a Java method to produce a graph. */ protected StructuredGraph parse(Method m) { - ResolvedJavaMethod riMethod = runtime.getResolvedJavaMethod(m); - StructuredGraph graph = new StructuredGraph(riMethod); + ResolvedJavaMethod javaMethod = runtime.getResolvedJavaMethod(m); + StructuredGraph graph = new StructuredGraph(javaMethod); new GraphBuilderPhase(runtime, GraphBuilderConfiguration.getSnippetDefault(), OptimisticOptimizations.ALL).apply(graph); return graph; } @@ -258,8 +258,8 @@ * Parses a Java method to produce a graph. */ protected StructuredGraph parseProfiled(Method m) { - ResolvedJavaMethod riMethod = runtime.getResolvedJavaMethod(m); - StructuredGraph graph = new StructuredGraph(riMethod); + ResolvedJavaMethod javaMethod = runtime.getResolvedJavaMethod(m); + StructuredGraph graph = new StructuredGraph(javaMethod); new GraphBuilderPhase(runtime, GraphBuilderConfiguration.getDefault(), OptimisticOptimizations.ALL).apply(graph); return graph; } diff -r 10341299528c -r 429accae15aa graal/com.oracle.max.criutils/src/com/oracle/max/criutils/BaseProfilingInfo.java --- a/graal/com.oracle.max.criutils/src/com/oracle/max/criutils/BaseProfilingInfo.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.max.criutils/src/com/oracle/max/criutils/BaseProfilingInfo.java Thu Jun 28 13:36:39 2012 +0200 @@ -22,7 +22,6 @@ */ package com.oracle.max.criutils; -import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; @@ -84,6 +83,6 @@ @Override public String toString() { - return "BaseProfilingInfo<" + CodeUtil.profileToString(this, null, "; ") + ">"; + return "BaseProfilingInfo<" + MetaUtil.profileToString(this, null, "; ") + ">"; } } diff -r 10341299528c -r 429accae15aa graal/com.oracle.max.criutils/src/com/oracle/max/criutils/BaseUnresolvedField.java --- a/graal/com.oracle.max.criutils/src/com/oracle/max/criutils/BaseUnresolvedField.java Thu Jun 28 12:46:04 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2009, 2011, 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.max.criutils; - -import com.oracle.graal.api.code.*; -import com.oracle.graal.api.meta.*; - -/** - * A implementation of {@link JavaField} for an unresolved field. - */ -public class BaseUnresolvedField implements JavaField { - - public final String name; - public final JavaType holder; - public final JavaType type; - - public BaseUnresolvedField(JavaType holder, String name, JavaType type) { - this.name = name; - this.type = type; - this.holder = holder; - } - - public String name() { - return name; - } - - public JavaType type() { - return type; - } - - public Kind kind() { - return type.kind(); - } - - public JavaType holder() { - return holder; - } - - @Override - public int hashCode() { - return System.identityHashCode(this); - } - - @Override - public boolean equals(Object o) { - return o == this; - } - - /** - * Converts this compiler interface field to a string. - */ - @Override - public String toString() { - return CodeUtil.format("%H.%n [unresolved]", this); - } -} diff -r 10341299528c -r 429accae15aa graal/com.oracle.max.criutils/src/com/oracle/max/criutils/BaseUnresolvedMethod.java --- a/graal/com.oracle.max.criutils/src/com/oracle/max/criutils/BaseUnresolvedMethod.java Thu Jun 28 12:46:04 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2009, 2011, 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.max.criutils; - -import com.oracle.graal.api.code.*; -import com.oracle.graal.api.meta.*; - -/** - * A implementation of {@link JavaMethod} for an unresolved method. - */ -public class BaseUnresolvedMethod implements JavaMethod { - - public final String name; - public final JavaType holder; - public final Signature signature; - - public BaseUnresolvedMethod(JavaType holder, String name, Signature signature) { - this.name = name; - this.holder = holder; - this.signature = signature; - } - - public String name() { - return name; - } - - public JavaType holder() { - return holder; - } - - public Signature signature() { - return signature; - } - - @Override - public int hashCode() { - return System.identityHashCode(this); - } - - @Override - public boolean equals(Object o) { - return o == this; - } - - @Override - public String toString() { - return CodeUtil.format("%H.%n(%p) [unresolved]", this); - } -} diff -r 10341299528c -r 429accae15aa graal/com.oracle.max.criutils/src/com/oracle/max/criutils/CompilationPrinter.java --- a/graal/com.oracle.max.criutils/src/com/oracle/max/criutils/CompilationPrinter.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.max.criutils/src/com/oracle/max/criutils/CompilationPrinter.java Thu Jun 28 13:36:39 2012 +0200 @@ -97,8 +97,8 @@ */ public void printCompilation(JavaMethod method) { begin("compilation"); - out.print("name \" ").print(CodeUtil.format("%H::%n", method)).println('"'); - out.print("method \"").print(CodeUtil.format("%f %r %H.%n(%p)", method)).println('"'); + out.print("name \" ").print(MetaUtil.format("%H::%n", method)).println('"'); + out.print("method \"").print(MetaUtil.format("%f %r %H.%n(%p)", method)).println('"'); out.print("date ").println(System.currentTimeMillis()); end("compilation"); } @@ -129,7 +129,7 @@ BytecodePosition curCodePos = codePos; List virtualObjects = new ArrayList<>(); do { - sb.append(CodeUtil.toLocation(curCodePos.getMethod(), curCodePos.getBCI())); + sb.append(MetaUtil.toLocation(curCodePos.getMethod(), curCodePos.getBCI())); sb.append('\n'); if (curCodePos instanceof BytecodeFrame) { BytecodeFrame frame = (BytecodeFrame) curCodePos; diff -r 10341299528c -r 429accae15aa graal/com.oracle.max.criutils/src/com/oracle/max/criutils/SnapshotProfilingInfo.java --- a/graal/com.oracle.max.criutils/src/com/oracle/max/criutils/SnapshotProfilingInfo.java Thu Jun 28 12:46:04 2012 +0200 +++ b/graal/com.oracle.max.criutils/src/com/oracle/max/criutils/SnapshotProfilingInfo.java Thu Jun 28 13:36:39 2012 +0200 @@ -88,7 +88,7 @@ @Override public String toString() { - return CodeUtil.profileToString(this, null, "; "); + return MetaUtil.profileToString(this, null, "; "); } /** @@ -125,7 +125,7 @@ if (txtFile != null) { PrintStream out = new PrintStream(txtFile); try { - out.println(CodeUtil.profileToString(this, null, CodeUtil.NEW_LINE)); + out.println(MetaUtil.profileToString(this, null, CodeUtil.NEW_LINE)); } finally { out.close(); }