# HG changeset patch # User Doug Simon # Date 1354035829 -3600 # Node ID 014727292ae0ffd339370504cdebb1580c4746e9 # Parent 47c120841ceb12dade391986271c03a949afa572 removed more usages of ResolvedJavaType.toJava() diff -r 47c120841ceb -r 014727292ae0 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 Tue Nov 27 17:22:19 2012 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java Tue Nov 27 18:03:49 2012 +0100 @@ -86,7 +86,7 @@ } private static void initMirror(HotSpotTypePrimitive type, long offset) { - Class< ? > mirror = type.toJava(); + Class mirror = type.mirror(); unsafe.putObject(mirror, offset, type); assert unsafe.getObject(mirror, offset) == type; } diff -r 47c120841ceb -r 014727292ae0 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotJavaType.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotJavaType.java Tue Nov 27 17:22:19 2012 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotJavaType.java Tue Nov 27 18:03:49 2012 +0100 @@ -41,4 +41,6 @@ public final String getName() { return name; } + + public abstract Class mirror(); } diff -r 47c120841ceb -r 014727292ae0 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 Tue Nov 27 17:22:19 2012 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField.java Tue Nov 27 18:03:49 2012 +0100 @@ -79,7 +79,7 @@ assert Modifier.isStatic(flags); if (constant == null) { if (holder.isInitialized() && !holder.getName().equals(SystemClassName)) { - if (Modifier.isFinal(getModifiers()) || assumeStaticFieldsFinal(holder.toJava())) { + if (Modifier.isFinal(getModifiers()) || assumeStaticFieldsFinal(holder.mirror())) { constant = readValue(receiver); } } @@ -154,7 +154,7 @@ private Field toJava() { try { - return holder.toJava().getDeclaredField(name); + return holder.mirror().getDeclaredField(name); } catch (NoSuchFieldException e) { return null; } diff -r 47c120841ceb -r 014727292ae0 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 Tue Nov 27 17:22:19 2012 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethod.java Tue Nov 27 18:03:49 2012 +0100 @@ -258,9 +258,19 @@ return javaMethod == null ? null : javaMethod.getGenericParameterTypes(); } + public Class[] signatureToTypes() { + Signature sig = getSignature(); + int count = sig.getParameterCount(false); + Class< ? >[] result = new Class< ? >[count]; + for (int i = 0; i < result.length; ++i) { + result[i] = ((HotSpotJavaType) sig.getParameterType(i, holder).resolve(holder)).mirror(); + } + return result; + } + private Method toJava() { try { - return holder.toJava().getDeclaredMethod(name, MetaUtil.signatureToTypes(getSignature(), holder)); + return holder.mirror().getDeclaredMethod(name, signatureToTypes()); } catch (NoSuchMethodException e) { return null; } @@ -268,7 +278,7 @@ private Constructor toJavaConstructor() { try { - return holder.toJava().getDeclaredConstructor(MetaUtil.signatureToTypes(getSignature(), holder)); + return holder.mirror().getDeclaredConstructor(signatureToTypes()); } catch (NoSuchMethodException e) { return null; } diff -r 47c120841ceb -r 014727292ae0 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaType.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaType.java Tue Nov 27 17:22:19 2012 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaType.java Tue Nov 27 18:03:49 2012 +0100 @@ -457,6 +457,11 @@ } @Override + public Class mirror() { + return javaMirror; + } + + @Override public boolean isClass(Class c) { return c == javaMirror; } diff -r 47c120841ceb -r 014727292ae0 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 Tue Nov 27 17:22:19 2012 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Tue Nov 27 18:03:49 2012 +0100 @@ -460,7 +460,7 @@ ValueNode expected = cas.expected(); if (expected.kind() == Kind.Object && !cas.newValue().objectStamp().alwaysNull()) { ResolvedJavaType type = cas.object().objectStamp().type(); - if (type != null && !type.isArrayClass() && type.toJava() != Object.class) { + if (type != null && !type.isArrayClass() && !type.isClass(Object.class)) { // Use a field write barrier since it's not an array store FieldWriteBarrier writeBarrier = graph.add(new FieldWriteBarrier(cas.object())); graph.addAfterFixed(cas, writeBarrier); @@ -533,7 +533,7 @@ if (write.value().kind() == Kind.Object && !write.value().objectStamp().alwaysNull()) { ResolvedJavaType type = object.objectStamp().type(); WriteBarrier writeBarrier; - if (type != null && !type.isArrayClass() && type.toJava() != Object.class) { + if (type != null && !type.isArrayClass() && !type.isClass(Object.class)) { // Use a field write barrier since it's not an array store writeBarrier = graph.add(new FieldWriteBarrier(object)); } else { @@ -600,7 +600,7 @@ ResolvedJavaType holder = method.getDeclaringClass(); String fullName = method.getName() + ((HotSpotSignature) method.getSignature()).asString(); Kind wordKind = graalRuntime.getTarget().wordKind; - if (holder.toJava() == Object.class) { + if (holder.isClass(Object.class)) { if (fullName.equals("getClass()Ljava/lang/Class;")) { ValueNode obj = (ValueNode) parameters.get(0); ObjectStamp stamp = (ObjectStamp) obj.stamp(); @@ -621,7 +621,7 @@ hub.setNext(ret); return graph; } - } else if (holder.toJava() == Class.class) { + } else if (holder.isClass(Class.class)) { if (fullName.equals("getModifiers()I")) { StructuredGraph graph = new StructuredGraph(); LocalNode receiver = graph.unique(new LocalNode(0, StampFactory.objectNonNull())); @@ -636,7 +636,7 @@ klass.setNext(ret); return graph; } - } else if (holder.toJava() == Thread.class) { + } else if (holder.isClass(Thread.class)) { if (fullName.equals("currentThread()Ljava/lang/Thread;")) { StructuredGraph graph = new StructuredGraph(); ReturnNode ret = graph.add(new ReturnNode(graph.unique(new CurrentThread(config.threadObjectOffset, this)))); diff -r 47c120841ceb -r 014727292ae0 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotTypePrimitive.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotTypePrimitive.java Tue Nov 27 17:22:19 2012 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotTypePrimitive.java Tue Nov 27 18:03:49 2012 +0100 @@ -182,4 +182,9 @@ @Override public void initialize() { } + + @Override + public Class mirror() { + return javaMirror; + } } diff -r 47c120841ceb -r 014727292ae0 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotTypeUnresolved.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotTypeUnresolved.java Tue Nov 27 17:22:19 2012 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotTypeUnresolved.java Tue Nov 27 18:03:49 2012 +0100 @@ -87,4 +87,9 @@ public ResolvedJavaType resolve(ResolvedJavaType accessingClass) { return (ResolvedJavaType) HotSpotGraalRuntime.getInstance().lookupType(getName(), (HotSpotResolvedJavaType) accessingClass, true); } + + @Override + public Class mirror() { + return ((HotSpotJavaType) resolve(null)).mirror(); + } } diff -r 47c120841ceb -r 014727292ae0 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BoxingMethodPool.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BoxingMethodPool.java Tue Nov 27 17:22:19 2012 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BoxingMethodPool.java Tue Nov 27 18:03:49 2012 +0100 @@ -148,6 +148,6 @@ if (boxing == null) { return false; } - return method.getDeclaringClass().toJava() == boxing.type && method.getName().equals(boxing.unboxMethod); + return method.getDeclaringClass().isClass(boxing.type) && method.getName().equals(boxing.unboxMethod); } } diff -r 47c120841ceb -r 014727292ae0 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/BoxingEliminationPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/BoxingEliminationPhase.java Tue Nov 27 17:22:19 2012 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/BoxingEliminationPhase.java Tue Nov 27 18:03:49 2012 +0100 @@ -71,7 +71,7 @@ ObjectStamp stamp = phiNode.objectStamp(); if (stamp.nonNull() && stamp.isExactType()) { ResolvedJavaType type = stamp.type(); - if (type != null && type.toJava() == kind.toBoxedJavaClass()) { + if (type != null && type.isClass(kind.toBoxedJavaClass())) { StructuredGraph graph = (StructuredGraph) phiNode.graph(); result = graph.add(new PhiNode(kind, phiNode.merge())); phiReplacements.put(phiNode, result);