# HG changeset patch # User Doug Simon # Date 1335788027 -7200 # Node ID 414c439ddec9231bf75c69c33226bdab4cca63a0 # Parent bb6c9818cd0352584b8a37cebe0782debe1ee3e2 documented the reason for the NodeClassSnippets being written diff -r bb6c9818cd03 -r 414c439ddec9 graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/NodeClassSnippets.java --- a/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/NodeClassSnippets.java Mon Apr 30 13:52:45 2012 +0200 +++ b/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/NodeClassSnippets.java Mon Apr 30 14:13:47 2012 +0200 @@ -27,13 +27,16 @@ import com.oracle.graal.nodes.extended.*; /** - * Snippets for {@link NodeClass} methods. + * Snippets for improving the performance of some critical methods in {@link NodeClass} methods. + * These snippets improve the performance by forcing the relevant methods to be inlined + * (intrinsification being a special form of inlining) and removing a checked cast. + * The latter cannot be done directly in Java code as {@link UnsafeCastNode} + * is not available to the project containing {@link NodeClass}. */ @SuppressWarnings("unused") @ClassSubstitution(NodeClass.class) public class NodeClassSnippets implements SnippetsInterface { - private static Node getNode(Node node, long offset) { return UnsafeCastNode.cast(UnsafeLoadNode.load(node, 0, offset, CiKind.Object), Node.class); }