Mercurial > hg > truffle
diff graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java @ 11431:ca53d08b8ef9
removed Node.nodeClass field (GRAAL-359)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 26 Aug 2013 21:38:10 +0200 |
parents | 8933659076d3 |
children | 7c2e47970d43 |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java Mon Aug 26 20:16:43 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java Mon Aug 26 21:38:10 2013 +0200 @@ -258,6 +258,33 @@ DynamicCounterNode.enabled = true; } compilerStartTime = System.nanoTime(); + + FastNodeClassRegistry.initialize(); + } + + /** + * A fast-path for {@link NodeClass} retrieval using {@link HotSpotResolvedObjectType}. + */ + static class FastNodeClassRegistry extends NodeClass.Registry { + + @SuppressWarnings("unused") + static void initialize() { + new FastNodeClassRegistry(); + } + + private static HotSpotResolvedObjectType type(Class<? extends Node> key) { + return (HotSpotResolvedObjectType) HotSpotResolvedObjectType.fromClass(key); + } + + @Override + public NodeClass get(Class<? extends Node> key) { + return type(key).getNodeClass(); + } + + @Override + protected void registered(Class<? extends Node> key, NodeClass value) { + type(key).setNodeClass(value); + } } private final class BenchmarkCountersOutputStream extends CallbackOutputStream {